Compare commits
11 Commits
2.12.0
...
renovate/p
| Author | SHA1 | Date | |
|---|---|---|---|
|
99460f0239
|
|||
| fa2245e939 | |||
|
12a8363dd2
|
|||
| 4f365a4e60 | |||
|
12e74d29af
|
|||
| 7937090533 | |||
|
ebfd8cf4a7
|
|||
| 8270728e8f | |||
| 20d8c7323f | |||
| 5ac23f08a4 | |||
| c6f3179efb |
@@ -60,7 +60,7 @@ jobs:
|
|||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
uses: actions/setup-python@v6
|
uses: actions/setup-python@v6
|
||||||
with:
|
with:
|
||||||
python-version: '3.12'
|
python-version: '3.14'
|
||||||
|
|
||||||
- name: Install GuardDog
|
- name: Install GuardDog
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
185
pnpm-lock.yaml
generated
185
pnpm-lock.yaml
generated
@@ -40,7 +40,7 @@ importers:
|
|||||||
version: 1.2.15
|
version: 1.2.15
|
||||||
'@iconify-json/simple-icons':
|
'@iconify-json/simple-icons':
|
||||||
specifier: ^1.2.70
|
specifier: ^1.2.70
|
||||||
version: 1.2.70
|
version: 1.2.71
|
||||||
'@playform/compress':
|
'@playform/compress':
|
||||||
specifier: ^0.2.1
|
specifier: ^0.2.1
|
||||||
version: 0.2.1(@types/node@25.2.3)(jiti@2.6.1)(rollup@2.79.2)(typescript@5.9.3)(yaml@2.8.2)
|
version: 0.2.1(@types/node@25.2.3)(jiti@2.6.1)(rollup@2.79.2)(typescript@5.9.3)(yaml@2.8.2)
|
||||||
@@ -67,10 +67,10 @@ importers:
|
|||||||
version: 1.1.5
|
version: 1.1.5
|
||||||
marked:
|
marked:
|
||||||
specifier: ^17.0.2
|
specifier: ^17.0.2
|
||||||
version: 17.0.2
|
version: 17.0.3
|
||||||
marked-shiki:
|
marked-shiki:
|
||||||
specifier: ^1.2.1
|
specifier: ^1.2.1
|
||||||
version: 1.2.1(marked@17.0.2)(shiki@3.22.0)
|
version: 1.2.1(marked@17.0.3)(shiki@3.22.0)
|
||||||
mdast-util-to-string:
|
mdast-util-to-string:
|
||||||
specifier: ^4.0.0
|
specifier: ^4.0.0
|
||||||
version: 4.0.0
|
version: 4.0.0
|
||||||
@@ -149,7 +149,7 @@ importers:
|
|||||||
version: 5.9.3
|
version: 5.9.3
|
||||||
typescript-eslint:
|
typescript-eslint:
|
||||||
specifier: ^8.55.0
|
specifier: ^8.55.0
|
||||||
version: 8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
version: 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -1258,8 +1258,8 @@ packages:
|
|||||||
'@iconify-json/pajamas@1.2.15':
|
'@iconify-json/pajamas@1.2.15':
|
||||||
resolution: {integrity: sha512-utUwcOZLNQQEmyY38lBw2VzAKIHg6sI+PuY42o73P67iEou2eafuZ4UQxHvRdcqf8h7sPm0JlsX2cWm/JkT06Q==}
|
resolution: {integrity: sha512-utUwcOZLNQQEmyY38lBw2VzAKIHg6sI+PuY42o73P67iEou2eafuZ4UQxHvRdcqf8h7sPm0JlsX2cWm/JkT06Q==}
|
||||||
|
|
||||||
'@iconify-json/simple-icons@1.2.70':
|
'@iconify-json/simple-icons@1.2.71':
|
||||||
resolution: {integrity: sha512-CYNRCgN6nBTjN4dNkrBCjHXNR2e4hQihdsZUs/afUNFOWLSYjfihca4EFN05rRvDk4Xoy2n8tym6IxBZmcn+Qg==}
|
resolution: {integrity: sha512-rNoDFbq1fAYiEexBvrw613/xiUOPEu5MKVV/X8lI64AgdTzLQUUemr9f9fplxUMPoxCBP2rWzlhOEeTHk/Sf0Q==}
|
||||||
|
|
||||||
'@iconify/tools@4.2.0':
|
'@iconify/tools@4.2.0':
|
||||||
resolution: {integrity: sha512-WRxPva/ipxYkqZd1+CkEAQmd86dQmrwH0vwK89gmp2Kh2WyyVw57XbPng0NehP3x4V1LzLsXUneP1uMfTMZmUA==}
|
resolution: {integrity: sha512-WRxPva/ipxYkqZd1+CkEAQmd86dQmrwH0vwK89gmp2Kh2WyyVw57XbPng0NehP3x4V1LzLsXUneP1uMfTMZmUA==}
|
||||||
@@ -2025,19 +2025,19 @@ packages:
|
|||||||
'@types/yauzl@2.10.3':
|
'@types/yauzl@2.10.3':
|
||||||
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
|
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.55.0':
|
'@typescript-eslint/eslint-plugin@8.56.0':
|
||||||
resolution: {integrity: sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==}
|
resolution: {integrity: sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@typescript-eslint/parser': ^8.55.0
|
'@typescript-eslint/parser': ^8.56.0
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/parser@8.55.0':
|
'@typescript-eslint/parser@8.56.0':
|
||||||
resolution: {integrity: sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==}
|
resolution: {integrity: sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/project-service@8.55.0':
|
'@typescript-eslint/project-service@8.55.0':
|
||||||
@@ -2046,16 +2046,32 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/project-service@8.56.0':
|
||||||
|
resolution: {integrity: sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/scope-manager@8.55.0':
|
'@typescript-eslint/scope-manager@8.55.0':
|
||||||
resolution: {integrity: sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==}
|
resolution: {integrity: sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/scope-manager@8.56.0':
|
||||||
|
resolution: {integrity: sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@typescript-eslint/tsconfig-utils@8.55.0':
|
'@typescript-eslint/tsconfig-utils@8.55.0':
|
||||||
resolution: {integrity: sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==}
|
resolution: {integrity: sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/tsconfig-utils@8.56.0':
|
||||||
|
resolution: {integrity: sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.55.0':
|
'@typescript-eslint/type-utils@8.55.0':
|
||||||
resolution: {integrity: sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==}
|
resolution: {integrity: sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -2063,16 +2079,33 @@ packages:
|
|||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/type-utils@8.56.0':
|
||||||
|
resolution: {integrity: sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/types@8.55.0':
|
'@typescript-eslint/types@8.55.0':
|
||||||
resolution: {integrity: sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==}
|
resolution: {integrity: sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/types@8.56.0':
|
||||||
|
resolution: {integrity: sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@8.55.0':
|
'@typescript-eslint/typescript-estree@8.55.0':
|
||||||
resolution: {integrity: sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==}
|
resolution: {integrity: sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/typescript-estree@8.56.0':
|
||||||
|
resolution: {integrity: sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.55.0':
|
'@typescript-eslint/utils@8.55.0':
|
||||||
resolution: {integrity: sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==}
|
resolution: {integrity: sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
@@ -2080,10 +2113,21 @@ packages:
|
|||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
|
'@typescript-eslint/utils@8.56.0':
|
||||||
|
resolution: {integrity: sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
peerDependencies:
|
||||||
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
||||||
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
'@typescript-eslint/visitor-keys@8.55.0':
|
'@typescript-eslint/visitor-keys@8.55.0':
|
||||||
resolution: {integrity: sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==}
|
resolution: {integrity: sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
|
'@typescript-eslint/visitor-keys@8.56.0':
|
||||||
|
resolution: {integrity: sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==}
|
||||||
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
|
|
||||||
'@ungap/structured-clone@1.3.0':
|
'@ungap/structured-clone@1.3.0':
|
||||||
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
|
||||||
|
|
||||||
@@ -3812,8 +3856,8 @@ packages:
|
|||||||
marked: '>=7.0.0'
|
marked: '>=7.0.0'
|
||||||
shiki: '>=1.0.0'
|
shiki: '>=1.0.0'
|
||||||
|
|
||||||
marked@17.0.2:
|
marked@17.0.3:
|
||||||
resolution: {integrity: sha512-s5HZGFQea7Huv5zZcAGhJLT3qLpAfnY7v7GWkICUr0+Wd5TFEtdlRR2XUL5Gg+RH7u2Df595ifrxR03mBaw7gA==}
|
resolution: {integrity: sha512-jt1v2ObpyOKR8p4XaUJVk3YWRJ5n+i4+rjQopxvV32rSndTJXvIzuUdWWIy/1pFQMkQmvTXawzDNqOH/CUmx6A==}
|
||||||
engines: {node: '>= 20'}
|
engines: {node: '>= 20'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
@@ -5209,11 +5253,11 @@ packages:
|
|||||||
typescript-auto-import-cache@0.3.6:
|
typescript-auto-import-cache@0.3.6:
|
||||||
resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==}
|
resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==}
|
||||||
|
|
||||||
typescript-eslint@8.55.0:
|
typescript-eslint@8.56.0:
|
||||||
resolution: {integrity: sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==}
|
resolution: {integrity: sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==}
|
||||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
eslint: ^8.57.0 || ^9.0.0
|
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
|
||||||
typescript: '>=4.8.4 <6.0.0'
|
typescript: '>=4.8.4 <6.0.0'
|
||||||
|
|
||||||
typescript@4.9.5:
|
typescript@4.9.5:
|
||||||
@@ -6762,7 +6806,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-react/eff': 2.13.0
|
'@eslint-react/eff': 2.13.0
|
||||||
'@typescript-eslint/types': 8.55.0
|
'@typescript-eslint/types': 8.55.0
|
||||||
'@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3)
|
'@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3)
|
||||||
'@typescript-eslint/utils': 8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
'@typescript-eslint/utils': 8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
eslint: 10.0.0(jiti@2.6.1)
|
eslint: 10.0.0(jiti@2.6.1)
|
||||||
string-ts: 2.3.1
|
string-ts: 2.3.1
|
||||||
@@ -6891,7 +6935,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@iconify/types': 2.0.0
|
'@iconify/types': 2.0.0
|
||||||
|
|
||||||
'@iconify-json/simple-icons@1.2.70':
|
'@iconify-json/simple-icons@1.2.71':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@iconify/types': 2.0.0
|
'@iconify/types': 2.0.0
|
||||||
|
|
||||||
@@ -7654,14 +7698,14 @@ snapshots:
|
|||||||
'@types/node': 25.2.3
|
'@types/node': 25.2.3
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.55.0(@typescript-eslint/parser@8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
'@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/regexpp': 4.12.2
|
'@eslint-community/regexpp': 4.12.2
|
||||||
'@typescript-eslint/parser': 8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
'@typescript-eslint/parser': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
'@typescript-eslint/scope-manager': 8.55.0
|
'@typescript-eslint/scope-manager': 8.56.0
|
||||||
'@typescript-eslint/type-utils': 8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
'@typescript-eslint/type-utils': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
'@typescript-eslint/utils': 8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
'@typescript-eslint/utils': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
'@typescript-eslint/visitor-keys': 8.55.0
|
'@typescript-eslint/visitor-keys': 8.56.0
|
||||||
eslint: 10.0.0(jiti@2.6.1)
|
eslint: 10.0.0(jiti@2.6.1)
|
||||||
ignore: 7.0.5
|
ignore: 7.0.5
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
@@ -7670,12 +7714,12 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/parser@8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
'@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 8.55.0
|
'@typescript-eslint/scope-manager': 8.56.0
|
||||||
'@typescript-eslint/types': 8.55.0
|
'@typescript-eslint/types': 8.56.0
|
||||||
'@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3)
|
'@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3)
|
||||||
'@typescript-eslint/visitor-keys': 8.55.0
|
'@typescript-eslint/visitor-keys': 8.56.0
|
||||||
debug: 4.4.3
|
debug: 4.4.3
|
||||||
eslint: 10.0.0(jiti@2.6.1)
|
eslint: 10.0.0(jiti@2.6.1)
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
@@ -7691,15 +7735,33 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/project-service@8.56.0(typescript@5.9.3)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.3)
|
||||||
|
'@typescript-eslint/types': 8.56.0
|
||||||
|
debug: 4.4.3
|
||||||
|
typescript: 5.9.3
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/scope-manager@8.55.0':
|
'@typescript-eslint/scope-manager@8.55.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.55.0
|
'@typescript-eslint/types': 8.55.0
|
||||||
'@typescript-eslint/visitor-keys': 8.55.0
|
'@typescript-eslint/visitor-keys': 8.55.0
|
||||||
|
|
||||||
|
'@typescript-eslint/scope-manager@8.56.0':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.56.0
|
||||||
|
'@typescript-eslint/visitor-keys': 8.56.0
|
||||||
|
|
||||||
'@typescript-eslint/tsconfig-utils@8.55.0(typescript@5.9.3)':
|
'@typescript-eslint/tsconfig-utils@8.55.0(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
|
|
||||||
|
'@typescript-eslint/tsconfig-utils@8.56.0(typescript@5.9.3)':
|
||||||
|
dependencies:
|
||||||
|
typescript: 5.9.3
|
||||||
|
|
||||||
'@typescript-eslint/type-utils@8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
'@typescript-eslint/type-utils@8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.55.0
|
'@typescript-eslint/types': 8.55.0
|
||||||
@@ -7712,8 +7774,22 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/type-utils@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.56.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3)
|
||||||
|
'@typescript-eslint/utils': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
|
debug: 4.4.3
|
||||||
|
eslint: 10.0.0(jiti@2.6.1)
|
||||||
|
ts-api-utils: 2.4.0(typescript@5.9.3)
|
||||||
|
typescript: 5.9.3
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/types@8.55.0': {}
|
'@typescript-eslint/types@8.55.0': {}
|
||||||
|
|
||||||
|
'@typescript-eslint/types@8.56.0': {}
|
||||||
|
|
||||||
'@typescript-eslint/typescript-estree@8.55.0(typescript@5.9.3)':
|
'@typescript-eslint/typescript-estree@8.55.0(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/project-service': 8.55.0(typescript@5.9.3)
|
'@typescript-eslint/project-service': 8.55.0(typescript@5.9.3)
|
||||||
@@ -7729,6 +7805,21 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/typescript-estree@8.56.0(typescript@5.9.3)':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/project-service': 8.56.0(typescript@5.9.3)
|
||||||
|
'@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.3)
|
||||||
|
'@typescript-eslint/types': 8.56.0
|
||||||
|
'@typescript-eslint/visitor-keys': 8.56.0
|
||||||
|
debug: 4.4.3
|
||||||
|
minimatch: 9.0.5
|
||||||
|
semver: 7.7.4
|
||||||
|
tinyglobby: 0.2.15
|
||||||
|
ts-api-utils: 2.4.0(typescript@5.9.3)
|
||||||
|
typescript: 5.9.3
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/utils@8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
'@typescript-eslint/utils@8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.0(jiti@2.6.1))
|
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.0(jiti@2.6.1))
|
||||||
@@ -7740,11 +7831,27 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
|
'@typescript-eslint/utils@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)':
|
||||||
|
dependencies:
|
||||||
|
'@eslint-community/eslint-utils': 4.9.1(eslint@10.0.0(jiti@2.6.1))
|
||||||
|
'@typescript-eslint/scope-manager': 8.56.0
|
||||||
|
'@typescript-eslint/types': 8.56.0
|
||||||
|
'@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3)
|
||||||
|
eslint: 10.0.0(jiti@2.6.1)
|
||||||
|
typescript: 5.9.3
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
'@typescript-eslint/visitor-keys@8.55.0':
|
'@typescript-eslint/visitor-keys@8.55.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/types': 8.55.0
|
'@typescript-eslint/types': 8.55.0
|
||||||
eslint-visitor-keys: 4.2.1
|
eslint-visitor-keys: 4.2.1
|
||||||
|
|
||||||
|
'@typescript-eslint/visitor-keys@8.56.0':
|
||||||
|
dependencies:
|
||||||
|
'@typescript-eslint/types': 8.56.0
|
||||||
|
eslint-visitor-keys: 5.0.0
|
||||||
|
|
||||||
'@ungap/structured-clone@1.3.0': {}
|
'@ungap/structured-clone@1.3.0': {}
|
||||||
|
|
||||||
'@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))':
|
'@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.44.1)(yaml@2.8.2))':
|
||||||
@@ -10010,12 +10117,12 @@ snapshots:
|
|||||||
|
|
||||||
markdown-table@3.0.4: {}
|
markdown-table@3.0.4: {}
|
||||||
|
|
||||||
marked-shiki@1.2.1(marked@17.0.2)(shiki@3.22.0):
|
marked-shiki@1.2.1(marked@17.0.3)(shiki@3.22.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
marked: 17.0.2
|
marked: 17.0.3
|
||||||
shiki: 3.22.0
|
shiki: 3.22.0
|
||||||
|
|
||||||
marked@17.0.2: {}
|
marked@17.0.3: {}
|
||||||
|
|
||||||
math-intrinsics@1.1.0: {}
|
math-intrinsics@1.1.0: {}
|
||||||
|
|
||||||
@@ -11755,12 +11862,12 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.7.4
|
semver: 7.7.4
|
||||||
|
|
||||||
typescript-eslint@8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3):
|
typescript-eslint@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/eslint-plugin': 8.55.0(@typescript-eslint/parser@8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
'@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
'@typescript-eslint/parser': 8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
'@typescript-eslint/parser': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
'@typescript-eslint/typescript-estree': 8.55.0(typescript@5.9.3)
|
'@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3)
|
||||||
'@typescript-eslint/utils': 8.55.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
'@typescript-eslint/utils': 8.56.0(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)
|
||||||
eslint: 10.0.0(jiti@2.6.1)
|
eslint: 10.0.0(jiti@2.6.1)
|
||||||
typescript: 5.9.3
|
typescript: 5.9.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|||||||
@@ -14,81 +14,67 @@ const currentYear = new Date().getFullYear();
|
|||||||
---
|
---
|
||||||
|
|
||||||
<footer
|
<footer
|
||||||
class="w-full overflow-hidden bg-stone-300/40 dark:bg-stone-800/20"
|
class="bg-background-accent w-full overflow-hidden"
|
||||||
transition:animate="none"
|
transition:animate="none"
|
||||||
>
|
>
|
||||||
<div class="relative px-4 pt-16 pb-12 sm:px-6">
|
<div class="relative px-4 sm:px-6 pt-16 pb-12">
|
||||||
<div class="mx-auto max-w-340">
|
<div class="max-w-340 mx-auto">
|
||||||
<div class="grid grid-cols-1 gap-10 md:grid-cols-12">
|
<div class="grid grid-cols-1 md:grid-cols-12 gap-10">
|
||||||
<!-- Brand section -->
|
<!-- Brand section -->
|
||||||
<div class="col-span-1 md:col-span-3">
|
<div class="col-span-1 md:col-span-3">
|
||||||
<a href="/" class="group inline-block">
|
<a href="/" class="group inline-block">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="mx-auto aspect-square overflow-hidden rounded-lg">
|
<div class="mx-auto aspect-square overflow-hidden">
|
||||||
<BrandLogo class="max-h-10 max-w-10 rounded-full" />
|
<BrandLogo class="rounded-lg max-h-10 max-w-10"/>
|
||||||
</div>
|
</div>
|
||||||
|
<span class="text-header text-lg lg:text-2xl font-semibold leading-tight tracking-tight text-balance ml-3">
|
||||||
<span class="ml-3 text-xl font-bold text-neutral-800 dark:text-neutral-200">
|
|
||||||
{global.name}
|
{global.name}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
<p class="text-primary text-sm lg:text-base text-pretty leading-relaxed mt-4">
|
||||||
<p class="mt-4 text-sm leading-relaxed text-neutral-600 dark:text-neutral-400">
|
|
||||||
{global.about}
|
{global.about}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<!-- Left links -->
|
<!-- Left links -->
|
||||||
<div class="col-span-1 md:col-span-2">
|
<div class="col-span-1 md:col-span-2">
|
||||||
<h3
|
<h3 class="relative inline-block text-header after:bg-main text-sm uppercase font-semibold tracking-wider pb-2 after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-8 after:content-['']">
|
||||||
class="after:bg-steel dark:after:bg-bermuda relative inline-block pb-2 text-sm font-semibold tracking-wider text-neutral-800 uppercase after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-8 after:content-[''] dark:text-neutral-100"
|
Site
|
||||||
>
|
|
||||||
Blog
|
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="mt-4 space-y-3">
|
<ul class="mt-4 space-y-3">
|
||||||
{
|
{NavigationLinks.map((link) => (
|
||||||
NavigationLinks.map((link) => (
|
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a
|
||||||
href={link.url}
|
href={link.url}
|
||||||
class="group flex items-center text-base text-neutral-600 transition-colors hover:text-neutral-800 dark:text-neutral-400 dark:hover:text-neutral-200"
|
class="inline-flex items-center text-secondary hover:text-secondary-hover text-base transition-all duration-300 overflow-hidden"
|
||||||
>
|
>
|
||||||
<span class="relative inline-block overflow-hidden">
|
{link.name}
|
||||||
<span class="relative z-10">{link.name}</span>
|
|
||||||
</span>
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
))
|
))}
|
||||||
}
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<!-- Right links -->
|
<!-- Right links -->
|
||||||
<div class="col-span-1 md:col-span-3">
|
<div class="col-span-1 md:col-span-3">
|
||||||
<h3
|
<h3 class="relative inline-block text-header after:bg-main text-sm uppercase font-semibold tracking-wider pb-2 after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-8 after:content-['']">
|
||||||
class="after:bg-steel dark:after:bg-bermuda relative inline-block pb-2 text-sm font-semibold tracking-wider text-neutral-800 uppercase after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-8 after:content-[''] dark:text-neutral-100"
|
|
||||||
>
|
|
||||||
Other
|
Other
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="mt-4 space-y-3">
|
<ul class="mt-4 space-y-3">
|
||||||
{
|
{FooterLinks.map((link) => (
|
||||||
FooterLinks.map((link) => (
|
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a
|
||||||
href={link.url}
|
href={link.url}
|
||||||
class="group flex items-center text-base text-neutral-600 transition-colors hover:text-neutral-800 dark:text-neutral-400 dark:hover:text-neutral-200"
|
class="inline-flex items-center text-secondary hover:text-secondary-hover text-base transition-all duration-300 overflow-hidden"
|
||||||
>
|
>
|
||||||
<span class="relative inline-block overflow-hidden">
|
{link.name}
|
||||||
<span class="relative z-10">{link.name}</span>
|
|
||||||
</span>
|
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
))
|
))}
|
||||||
}
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<!-- Right image -->
|
<!-- Right image -->
|
||||||
<div class="col-span-3 mt-10 flex justify-center md:mt-0">
|
<div class="flex justify-center col-span-4 mt-10 md:mt-0">
|
||||||
<div class="-mt-10 hidden max-h-[460px] max-w-[220px] scale-80 md:block">
|
<div class="md:block max-h-115 max-w-55 -mt-10 scale-80 hidden">
|
||||||
<Image
|
<Image
|
||||||
src={footerImg}
|
src={footerImg}
|
||||||
alt={global.footer_image_alt}
|
alt={global.footer_image_alt}
|
||||||
@@ -104,37 +90,36 @@ const currentYear = new Date().getFullYear();
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Bottom section -->
|
<!-- Bottom section -->
|
||||||
<div class="mt-12 border-t border-neutral-400/30 pt-8 dark:border-neutral-600/50">
|
<div class="border-t border-neutral-400/30 dark:border-neutral-600/50 pt-8 mt-12">
|
||||||
<div class="flex flex-col items-center justify-between gap-4 md:flex-row">
|
<div class="flex flex-col md:flex-row items-center justify-between gap-4">
|
||||||
<p class="text-sm text-neutral-600 dark:text-neutral-400">
|
<p class="text-secondary text-sm">
|
||||||
© {currentYear} All rights reserved.
|
© {currentYear} All rights reserved.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<p class="text-xs text-neutral-500 dark:text-neutral-400">
|
<span class="text-secondary text-sm">
|
||||||
Weather provided by
|
Weather provided by
|
||||||
</p>
|
</span>
|
||||||
<a
|
<a
|
||||||
href="https://open-meteo.com/"
|
href="https://open-meteo.com/"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
class="group inline-flex items-center text-xs text-neutral-600 transition-colors hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100"
|
class="group inline-flex items-center text-secondary hover:text-secondary-hover text-sm transition-all duration-300"
|
||||||
>
|
>
|
||||||
<span class="relative ml-1">
|
<span class="relative underline ml-1">
|
||||||
Open-Meteo.
|
Open-Meteo.
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
|
<div class="ml-4"/>
|
||||||
<div class="ml-4"></div>
|
<span class="text-secondary text-sm">
|
||||||
|
Built with
|
||||||
<span class="text-xs text-neutral-500 dark:text-neutral-400">Built with </span>
|
</span>
|
||||||
<a
|
<a
|
||||||
href="https://astro.build"
|
href="https://astro.build"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noopener noreferrer"
|
rel="noopener noreferrer"
|
||||||
class="group inline-flex items-center text-xs text-neutral-600 transition-colors hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100"
|
class="group inline-flex items-center text-secondary hover:text-secondary-hover text-sm transition-all duration-300"
|
||||||
>
|
>
|
||||||
<span class="relative ml-1">
|
<span class="relative underline ml-1">
|
||||||
Astro.
|
Astro.
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -9,31 +9,31 @@ const currentPath = pathname.slice(1);
|
|||||||
|
|
||||||
<header
|
<header
|
||||||
id="nav"
|
id="nav"
|
||||||
class="sticky inset-x-0 top-4 z-50 flex w-full flex-wrap text-sm transition-none md:flex-nowrap md:justify-start"
|
class="fixed flex flex-wrap md:flex-nowrap md:justify-start inset-x-0 top-0 w-full z-50"
|
||||||
>
|
>
|
||||||
|
<div class="bg-linear-to-b from-background from-65% to-transparent to-90% absolute top-0 bottom-0 left-0 w-full h-36 z-0"/>
|
||||||
<nav
|
<nav
|
||||||
class="relative mx-2 w-full rounded-[36px] border border-neutral-100 bg-neutral-100 px-4 py-3 md:flex md:items-center md:justify-between md:px-6 lg:px-8 dark:border-neutral-700/40 dark:bg-neutral-800/80"
|
class="nav-base relative md:flex md:items-center md:justify-between rounded-[36px] w-full px-4 mx-2 py-3 mt-4"
|
||||||
aria-label="Global"
|
aria-label="Global"
|
||||||
>
|
>
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between ml-0">
|
||||||
<a
|
<a
|
||||||
class="h-[42px] flex-none rounded-lg text-xl font-bold ring-neutral-500 outline-none focus-visible:ring dark:ring-neutral-200 dark:focus:outline-none"
|
class="flex-none rounded-full h-10.5"
|
||||||
href="/"
|
href="/"
|
||||||
aria-label="Brand"
|
aria-label="Brand"
|
||||||
>
|
>
|
||||||
<BrandLogo class="h-full w-auto rounded-full object-cover" />
|
<BrandLogo class="h-full w-auto rounded-full object-cover"/>
|
||||||
</a>
|
</a>
|
||||||
|
<div class="md:hidden mr-auto ml-4">
|
||||||
<div class="ml-auto md:hidden">
|
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
class="hs-collapse-toggle flex h-8 w-8 items-center justify-center rounded-full text-sm font-bold text-neutral-600 transition duration-300 hover:bg-neutral-200 disabled:pointer-events-none disabled:opacity-50 dark:text-neutral-400 dark:hover:bg-neutral-700 dark:focus:outline-none"
|
class="hs-collapse-toggle flex items-center justify-center text-secondary text-sm font-bold hover:bg-neutral-200 dark:hover:bg-neutral-700 rounded-full transition duration-300 disabled:pointer-events-none disabled:opacity-50 h-8 w-8"
|
||||||
data-hs-collapse="#navbar-collapse-with-animation"
|
data-hs-collapse="#navbar-collapse-with-animation"
|
||||||
aria-controls="navbar-collapse-with-animation"
|
aria-controls="navbar-collapse-with-animation"
|
||||||
aria-label="Toggle navigation"
|
aria-label="Toggle navigation"
|
||||||
>
|
>
|
||||||
<svg
|
<svg
|
||||||
class="hs-collapse-open:hidden h-5 w-5 shrink-0"
|
class="hs-collapse-open:hidden shrink-0 h-5 w-5"
|
||||||
width="24"
|
width="24"
|
||||||
height="24"
|
height="24"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
@@ -48,7 +48,7 @@ const currentPath = pathname.slice(1);
|
|||||||
<line x1="3" x2="21" y1="18" y2="18"></line>
|
<line x1="3" x2="21" y1="18" y2="18"></line>
|
||||||
</svg>
|
</svg>
|
||||||
<svg
|
<svg
|
||||||
class="hs-collapse-open:block hidden h-5 w-5 shrink-0"
|
class="hs-collapse-open:block shrink-0 h-5 w-5 hidden"
|
||||||
width="24"
|
width="24"
|
||||||
height="24"
|
height="24"
|
||||||
viewBox="0 0 24 24"
|
viewBox="0 0 24 24"
|
||||||
@@ -63,33 +63,33 @@ const currentPath = pathname.slice(1);
|
|||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="md:hidden ml-2 mr-2">
|
||||||
|
<span class="">
|
||||||
|
<ThemeToggleButton />
|
||||||
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex md:flex-row items-center justify-between">
|
||||||
<div
|
<div
|
||||||
id="navbar-collapse-with-animation"
|
id="navbar-collapse-with-animation"
|
||||||
class="hs-collapse hidden grow basis-full overflow-hidden transition-all duration-300 md:block md:overflow-visible"
|
class="hs-collapse grow basis-full md:block transition-all duration-300 ml-2 mb-2 md:mb-0 hidden overflow-hidden md:overflow-visible"
|
||||||
>
|
>
|
||||||
<div
|
<div class="flex flex-col md:flex-row md:items-center md:justify-end gap-x-0 md:gap-x-4 lg:gap-x-7 gap-y-4 md:gap-y-0 md:ps-7 mr-2 mt-5 md:mt-0">
|
||||||
class="mt-5 flex flex-col gap-x-0 gap-y-4 md:mt-0 md:flex-row md:items-center md:justify-end md:gap-x-4 md:gap-y-0 md:ps-7 lg:gap-x-7"
|
{NavigationLinks.map((item) => {
|
||||||
>
|
|
||||||
{
|
|
||||||
NavigationLinks.map((item) => {
|
|
||||||
const isActive = currentPath === (item.url === '/' ? '' : item.url.slice(1));
|
const isActive = currentPath === (item.url === '/' ? '' : item.url.slice(1));
|
||||||
return (
|
return (
|
||||||
<a
|
<a
|
||||||
href={item.url}
|
href={item.url}
|
||||||
class={`text-sm font-medium ${
|
class={`text-sm font-medium ${isActive ? 'text-active' : 'text-secondary hover:text-secondary-hover'}`}
|
||||||
isActive
|
|
||||||
? 'text-orange-500 dark:text-orange-300'
|
|
||||||
: 'text-neutral-600 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100'
|
|
||||||
}`}
|
|
||||||
>
|
>
|
||||||
{item.name}
|
{item.name}
|
||||||
</a>
|
</a>
|
||||||
);
|
);
|
||||||
})
|
})}
|
||||||
}
|
</div>
|
||||||
<span class="md:inline-block">
|
</div>
|
||||||
|
<div class="hidden md:flex ml-2">
|
||||||
|
<span class="">
|
||||||
<ThemeToggleButton />
|
<ThemeToggleButton />
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
import { ClientRouter } from 'astro:transitions';
|
import { ClientRouter } from 'astro:transitions';
|
||||||
import { readSingleton } from '@directus/sdk';
|
import { readSingleton } from '@directus/sdk';
|
||||||
|
|
||||||
import directus from '@lib/directus';
|
|
||||||
import BaseHead from '@components/BaseHead.astro';
|
import BaseHead from '@components/BaseHead.astro';
|
||||||
import Footer from '@components/Footer.astro';
|
import Footer from '@components/Footer.astro';
|
||||||
import Header from '@components/Header.astro';
|
import Header from '@components/Header.astro';
|
||||||
|
import directus from '@lib/directus';
|
||||||
|
|
||||||
import '@styles/global.css';
|
import '@styles/global.css';
|
||||||
|
|
||||||
@@ -20,12 +20,16 @@ interface Props {
|
|||||||
const { title, description = 'Alex Lebens', ogImage, lang = 'en', structuredData } = Astro.props;
|
const { title, description = 'Alex Lebens', ogImage, lang = 'en', structuredData } = Astro.props;
|
||||||
|
|
||||||
const global = await directus.request(readSingleton('site_global'));
|
const global = await directus.request(readSingleton('site_global'));
|
||||||
|
|
||||||
const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
|
const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
|
||||||
---
|
---
|
||||||
|
|
||||||
<html lang={lang}>
|
<html lang={lang}>
|
||||||
<head>
|
<head>
|
||||||
<title>{normalizeTitle}</title>
|
<title>
|
||||||
|
{normalizeTitle}
|
||||||
|
</title>
|
||||||
|
|
||||||
<BaseHead
|
<BaseHead
|
||||||
title={normalizeTitle}
|
title={normalizeTitle}
|
||||||
description={description}
|
description={description}
|
||||||
@@ -34,7 +38,9 @@ const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
|
|||||||
ogDescription={description}
|
ogDescription={description}
|
||||||
structuredData={structuredData}
|
structuredData={structuredData}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<ClientRouter fallback="swap" />
|
<ClientRouter fallback="swap" />
|
||||||
|
|
||||||
<script is:inline>
|
<script is:inline>
|
||||||
const theme = (() => {
|
const theme = (() => {
|
||||||
if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
|
if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
|
||||||
@@ -53,30 +59,35 @@ const normalizeTitle = !title ? global.name : `${title} | ${global.name}`;
|
|||||||
}
|
}
|
||||||
window.localStorage.setItem('theme', theme);
|
window.localStorage.setItem('theme', theme);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- Rybbit Tracking Snippet -->
|
<!-- Rybbit Tracking Snippet -->
|
||||||
<script
|
<script
|
||||||
src="https://rybbit.alexlebens.dev/api/script.js"
|
src="https://rybbit.alexlebens.dev/api/script.js"
|
||||||
data-site-id={global.rybbit_site_id}
|
data-site-id={global.rybbit_site_id}
|
||||||
defer
|
defer
|
||||||
></script>
|
/>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body class="bg-stone-200 selection:bg-yellow-400 selection:text-neutral-700 dark:bg-stone-700">
|
|
||||||
<div class="mx-auto w-full max-w-(--breakpoint-2xl) grow px-4 sm:px-6 lg:px-8">
|
<body class="bg-background selection:bg-yellow-400">
|
||||||
|
<!-- Disabled texture background for now
|
||||||
|
<div class="fixed inset-0 -z-10">
|
||||||
|
<div class="bg-grid-pattern absolute inset-0 mask-[radial-gradient(white,transparent_85%)] bg-position-[center_top_-1px]"/>
|
||||||
|
</div>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<div class="grow w-full max-w-(--breakpoint-2xl) px-4 sm:px-6 lg:px-8 py-20 mx-auto">
|
||||||
|
|
||||||
<Header />
|
<Header />
|
||||||
|
|
||||||
<main class="min-h-screen">
|
<main class="min-h-screen">
|
||||||
<slot />
|
<slot />
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Footer />
|
<Footer />
|
||||||
<style>
|
|
||||||
.scrollbar-hide::-webkit-scrollbar {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.scrollbar-hide {
|
|
||||||
-ms-overflow-style: none;
|
|
||||||
scrollbar-width: none;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|||||||
@@ -28,11 +28,16 @@
|
|||||||
|
|
||||||
--color-main: light-dark(var(--color-steel), var(--color-bermuda));
|
--color-main: light-dark(var(--color-steel), var(--color-bermuda));
|
||||||
--color-accent: light-dark(var(--color-bronze), var(--color-desert));
|
--color-accent: light-dark(var(--color-bronze), var(--color-desert));
|
||||||
|
--color-active: light-dark(var(--color-orange-500), var(--color-orange-300));
|
||||||
|
|
||||||
--color-header: light-dark(var(--color-neutral-800), var(--color-neutral-200));
|
--color-header: light-dark(var(--color-neutral-800), var(--color-neutral-200));
|
||||||
--color-primary: light-dark(var(--color-neutral-600), var(--color-neutral-200));
|
--color-primary: light-dark(var(--color-neutral-600), var(--color-neutral-200));
|
||||||
--color-primary-hover: light-dark(var(--color-neutral-800), var(--color-neutral-400));
|
--color-primary-hover: light-dark(var(--color-neutral-800), var(--color-neutral-400));
|
||||||
--color-secondary: light-dark(var(--color-neutral-500), var(--color-neutral-400));
|
--color-secondary: light-dark(var(--color-neutral-500), var(--color-neutral-400));
|
||||||
|
--color-secondary-hover: light-dark(var(--color-neutral-800), var(--color-neutral-200));
|
||||||
|
|
||||||
|
--color-background: light-dark(var(--color-neutral-200), var(--color-stone-700));
|
||||||
|
--color-background-accent: light-dark(color-mix(in srgb, var(--color-stone-300) 40%, transparent), color-mix(in srgb, var(--color-stone-800) 20%, transparent));
|
||||||
}
|
}
|
||||||
|
|
||||||
@layer base {
|
@layer base {
|
||||||
|
|||||||
@@ -113,6 +113,11 @@
|
|||||||
group-hover:text-main
|
group-hover:text-main
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@utility card-hover-text-neutral {
|
||||||
|
@apply transition-all duration-300
|
||||||
|
group-hover:text-primary-hover
|
||||||
|
}
|
||||||
|
|
||||||
@utility card-hover-text-gitea {
|
@utility card-hover-text-gitea {
|
||||||
@apply transition-all duration-300
|
@apply transition-all duration-300
|
||||||
group-hover:text-gitea-primary
|
group-hover:text-gitea-primary
|
||||||
@@ -121,3 +126,10 @@
|
|||||||
@utility card-text-description {
|
@utility card-text-description {
|
||||||
@apply text-secondary
|
@apply text-secondary
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Misc */
|
||||||
|
@utility nav-base {
|
||||||
|
@apply border border-neutral-100 dark:border-stone-500/20
|
||||||
|
bg-neutral-100 dark:bg-neutral-800
|
||||||
|
shadow-xs dark:shadow-md
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user