chore: remove unused dependencies, enhance scrollbar functionality, and update VSCode settings

- Removed unused `@types/mdast` dependency from package.json and pnpm-lock.yaml.
- Introduced a custom scrollbar component with theme support in Scrollbar.astro.
- Updated Layout.astro to include the new Scrollbar component.
- Enhanced ThemeToggle.astro to dispatch a theme-changed event on toggle.
- Added global scrollbar styles to global.css and created a new scrollbar.css for custom scrollbar styling.
- Updated VSCode settings to improve editor experience and added recommendations for new extensions.
This commit is contained in:
radishzzz 2025-01-22 23:35:52 +00:00
parent 804cf72052
commit ac9e839a75
12 changed files with 341 additions and 208 deletions

View file

@ -1,4 +1,8 @@
{
"recommendations": ["astro-build.astro-vscode"],
"recommendations": [
"astro-build.astro-vscode",
"antfu.unocss",
"biomejs.biome"
],
"unwantedRecommendations": []
}

42
.vscode/settings.json vendored
View file

@ -1,12 +1,50 @@
{
"[markdown]": {
"editor.quickSuggestions": {
"comments": "on",
"other": "on",
"strings": "on"
}
},
"prettier.enable": false,
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never"
},
"eslint.rules.customizations": [
{ "rule": "style/*", "severity": "off", "fixable": true },
{ "rule": "format/*", "severity": "off", "fixable": true },
{ "rule": "*-indent", "severity": "off", "fixable": true },
{ "rule": "*-spacing", "severity": "off", "fixable": true },
{ "rule": "*-spaces", "severity": "off", "fixable": true },
{ "rule": "*-order", "severity": "off", "fixable": true },
{ "rule": "*-dangle", "severity": "off", "fixable": true },
{ "rule": "*-newline", "severity": "off", "fixable": true },
{ "rule": "*quotes", "severity": "off", "fixable": true },
{ "rule": "*semi", "severity": "off", "fixable": true }
],
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"astro"
"typescriptreact",
"vue",
"html",
"markdown",
"json",
"jsonc",
"yaml",
"toml",
"xml",
"gql",
"graphql",
"astro",
"css",
"less",
"scss",
"pcss",
"postcss"
],
"typescript.tsdk": "node_modules/typescript/lib",
"files.associations": {

View file

@ -20,7 +20,7 @@
"@astrojs/rss": "^4.0.11",
"@astrojs/sitemap": "^3.2.1",
"@rehype-pretty/transformers": "^0.13.2",
"@unocss/reset": "^65.4.2",
"@unocss/reset": "^65.4.3",
"astro": "^5.1.8",
"astro-compress": "^2.3.6",
"astro-robots-txt": "^1.0.0",
@ -34,7 +34,7 @@
"rehype-katex": "^7.0.1",
"rehype-pretty-code": "^0.14.0",
"rehype-slug": "^6.0.0",
"remark-directive": "^3.0.0",
"remark-directive": "^3.0.1",
"remark-github-admonitions-to-directives": "^2.1.0",
"remark-math": "^6.0.0",
"remark-sectionize": "^2.1.0",
@ -45,20 +45,19 @@
"vite": "^6.0.11"
},
"devDependencies": {
"@antfu/eslint-config": "^3.15.0",
"@antfu/eslint-config": "^3.16.0",
"@types/markdown-it": "^14.1.2",
"@types/mdast": "^4.0.4",
"@types/node": "^22.10.7",
"@types/sanitize-html": "^2.13.0",
"@unocss/eslint-plugin": "^65.4.2",
"@unocss/preset-attributify": "^65.4.2",
"@unocss/eslint-plugin": "^65.4.3",
"@unocss/preset-attributify": "^65.4.3",
"astro-eslint-parser": "^1.1.0",
"eslint": "^9.18.0",
"eslint-plugin-astro": "^1.3.1",
"lint-staged": "^15.4.1",
"mdast-util-to-string": "^4.0.0",
"reading-time": "^1.5.0",
"unocss": "^65.4.2",
"unocss": "^65.4.3",
"unocss-preset-theme": "^0.14.1"
},
"lint-staged": {

372
pnpm-lock.yaml generated
View file

@ -27,8 +27,8 @@ importers:
specifier: ^0.13.2
version: 0.13.2
'@unocss/reset':
specifier: ^65.4.2
version: 65.4.2
specifier: ^65.4.3
version: 65.4.3
astro:
specifier: ^5.1.8
version: 5.1.8(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(rollup@4.31.0)(terser@5.37.0)(tsx@4.19.2)(typescript@5.7.3)(yaml@2.7.0)
@ -69,8 +69,8 @@ importers:
specifier: ^6.0.0
version: 6.0.0
remark-directive:
specifier: ^3.0.0
version: 3.0.0
specifier: ^3.0.1
version: 3.0.1
remark-github-admonitions-to-directives:
specifier: ^2.1.0
version: 2.1.0
@ -97,14 +97,11 @@ importers:
version: 6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
devDependencies:
'@antfu/eslint-config':
specifier: ^3.15.0
version: 3.15.0(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.2(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
specifier: ^3.16.0
version: 3.16.0(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
'@types/markdown-it':
specifier: ^14.1.2
version: 14.1.2
'@types/mdast':
specifier: ^4.0.4
version: 4.0.4
'@types/node':
specifier: ^22.10.7
version: 22.10.7
@ -112,11 +109,11 @@ importers:
specifier: ^2.13.0
version: 2.13.0
'@unocss/eslint-plugin':
specifier: ^65.4.2
version: 65.4.2(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
specifier: ^65.4.3
version: 65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
'@unocss/preset-attributify':
specifier: ^65.4.2
version: 65.4.2
specifier: ^65.4.3
version: 65.4.3
astro-eslint-parser:
specifier: ^1.1.0
version: 1.1.0(typescript@5.7.3)
@ -136,11 +133,11 @@ importers:
specifier: ^1.5.0
version: 1.5.0
unocss:
specifier: ^65.4.2
version: 65.4.2(postcss@8.5.1)(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))
specifier: ^65.4.3
version: 65.4.3(postcss@8.5.1)(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))
unocss-preset-theme:
specifier: ^0.14.1
version: 0.14.1(@unocss/core@65.4.2)
version: 0.14.1(@unocss/core@65.4.3)
packages:
@ -148,8 +145,8 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
'@antfu/eslint-config@3.15.0':
resolution: {integrity: sha512-ydUU5By5oxVLOp8tIcDeHQ4RQbJx/8nLwy5FG+uYbOdtTTiB+9eeakEO1ZP87dS+i6vfz7e5Ikgm10t8B+Nm0A==}
'@antfu/eslint-config@3.16.0':
resolution: {integrity: sha512-g6RAXUMeow9vexoOMYwCpByY2xSDpAD78q+rvQLvVpY6MFcxFD/zmdrZGYa/yt7LizK86m17kIYKOGLJ3L8P0w==}
hasBin: true
peerDependencies:
'@eslint-react/eslint-plugin': ^1.19.0
@ -1123,94 +1120,94 @@ packages:
'@ungap/structured-clone@1.2.1':
resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==}
'@unocss/astro@65.4.2':
resolution: {integrity: sha512-5UR8KmonbpeeSG5pxWtBYlwr9XNbcsrVTfXKzWZAic5kRUWQREFpmjMcDL/+Co+OYWe4z5WWayjwfQUmLLPG5w==}
'@unocss/astro@65.4.3':
resolution: {integrity: sha512-yhPKH4CT2CFjvKR8lL6oS/7jarMWp4iSnYcNlTlZLmvTIS3dGxyhAsVy/xkdzdJ6sM+6FS0hUuQNv+NYvArRNg==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
peerDependenciesMeta:
vite:
optional: true
'@unocss/cli@65.4.2':
resolution: {integrity: sha512-eQmzBhph67CDe+MNz8k/3rMwR1g1xCKZIWfrFoSQv7CqlJxgjRgFOxmnIw7pGhUEC0wenrvauGkVjFkIUHFqeg==}
'@unocss/cli@65.4.3':
resolution: {integrity: sha512-pZESqf5tS5AjATkAP11M0ecIiias0//nir7MgUQLs/v2GX0x7K0KhVTJ50TiFePff0TnwTHheDNJGR3gesDiVg==}
engines: {node: '>=14'}
hasBin: true
'@unocss/config@65.4.2':
resolution: {integrity: sha512-2xyWDt6t879rsdxJ0TiRbk9ENkGuLjAWjl3aAph5HHxwgGaBN1c9S5G9607j/WXP+tO6c37B4Q1iG/XYx35HBA==}
'@unocss/config@65.4.3':
resolution: {integrity: sha512-Z3tnQ10UjM09Y1yVqfCYfZEh2pXFQlUQ1g188mMWxjXWEIXeei3f9dIApRBgC+xcPE6prqdu3fDC5emU+sqyxw==}
engines: {node: '>=14'}
'@unocss/core@0.63.6':
resolution: {integrity: sha512-Q4QPgJ271Up89+vIqqOKgtdCKkFpHqvHN8W1LUlKPqtYnOvVYaOIVNAZowaIdEhPuc83yLc6Tg2+7riK18QKEw==}
'@unocss/core@65.4.2':
resolution: {integrity: sha512-VmXy5D25por+pt9LBlKZ3gk4rOE5ldm80MyVOEnLcpaFb9LqB0g/8qUU9/Dk3TSA+ZPeoGm53Juo0p8LMFIigA==}
'@unocss/core@65.4.3':
resolution: {integrity: sha512-luFgdcchSlNrYSaDvU2176T2PPQZdxqfREVbxEXNXlFEgyEFrx5hOSUXoJtJSZjRhAcE6zkWyLDf/JkQJ5Eeyw==}
'@unocss/eslint-plugin@65.4.2':
resolution: {integrity: sha512-Ibk5zLnEvg22S7c7JLusuW8MbWTmw3BwcdP0j/EaGE3sk5Q1mazb8UqO0CymPCaQp/d2Sx1dv1SEEECLkZSUzQ==}
'@unocss/eslint-plugin@65.4.3':
resolution: {integrity: sha512-uK6WpZPy/zJxunw4lh51KjIO370SRAIFlvg/Knh4Kl5214xiJDezKp7F7NATVBx+JqSf7iHYn2qUdB8Z8I7sXg==}
engines: {node: '>=14'}
'@unocss/extractor-arbitrary-variants@65.4.2':
resolution: {integrity: sha512-qm5JXfjbxgXqhQAeOfV1jFT1ThBTi1bP1m+Nu2p6tB9EUbAUp+AKY4sODueqDXoriUtOc7h0QzyW3Lm+s3fTGw==}
'@unocss/extractor-arbitrary-variants@65.4.3':
resolution: {integrity: sha512-RhSOOzOxkNjJl9zeglaBe0U+o39jleCCNPWJ87DDJA3ckbyylIIf21ZwY1Xu76rmdar5DT9ob7ucuPfEpJLN9A==}
'@unocss/inspector@65.4.2':
resolution: {integrity: sha512-64m6SpjbeTQNqgWLUQpVwu1WQpuv4RshA1KIs4cc6WdDivckWb4woA+4Zdm+DjYjm0aLqX7oUE0kWwjK+pIZdA==}
'@unocss/inspector@65.4.3':
resolution: {integrity: sha512-mj3K0WtnP0DuonQPzxkXhLMBU5qi13dpxaJcEOSv+EBMPlJbww0bj7K7uaFqXv8LPufs/hkQzI9yjOrEzR5WBQ==}
'@unocss/postcss@65.4.2':
resolution: {integrity: sha512-LKb8K9B1zTFN6zaQYIYSiFRz4a+HpNHKSIGjo/dtN0p0R1ME7VaGOgwg3+cEsNguNhTeXoaX5y/ADp8KP/HD6A==}
'@unocss/postcss@65.4.3':
resolution: {integrity: sha512-ZHlWfArfhhWBVhUeAETrtnD7nhqpfXv5muGrJCSDHmjgFJX8jtDa6rf52ICCFWEOe8p2dku7o27o26pGXYTYJg==}
engines: {node: '>=14'}
peerDependencies:
postcss: ^8.4.21
'@unocss/preset-attributify@65.4.2':
resolution: {integrity: sha512-DHFHU+tvknLMk01cWQjLjEdJkRyPIdVYVoCoR9yzmwwVT6n7JKK1R/Ailwofm2229GjplY5c9qu1PjA5K1K7Vw==}
'@unocss/preset-attributify@65.4.3':
resolution: {integrity: sha512-kN8levkt+BwzzWKA6glthasuFt/Cplc70oxzAYd/gZcosxwDK5+MmxjGDG5aLLu2PA58tPHUZ+ltW/QG5BM+Xw==}
'@unocss/preset-icons@65.4.2':
resolution: {integrity: sha512-XytFiMSbIqPshiVtsiFoq1nqyFYNTGnxMe6g3w+Zj5B+vNwfwHPR6CD8pTSkXpbW6zo+Ed/CBYe0pRwCrYjcgw==}
'@unocss/preset-icons@65.4.3':
resolution: {integrity: sha512-g1WNamvYOIdD8YAOvZ5h4g3peel3rLTtKvB0wX4pVL5exsYsoyc0tmiGm57k+ZmnIucqSzxoUZ/vjHDLAViahw==}
'@unocss/preset-mini@65.4.2':
resolution: {integrity: sha512-4ZZK9KwDHjI8wFUKeB+30GHekPmy1OzXncjlXhqm+vNQ7FO3xCee7VY00E5bgz5Tt0pXALcKFlrEspjpSaeCoQ==}
'@unocss/preset-mini@65.4.3':
resolution: {integrity: sha512-JajAF18DKJRXgd9usrAYTcHUtZy606mD396ZswDgw/mUSu529tuiT6LOD43aJMYHgPEw7wKYjiGFHkeBTHijuQ==}
'@unocss/preset-tagify@65.4.2':
resolution: {integrity: sha512-Ldk2QU8Zmy9irQQ/ZlFLBTPfPTHDBXcbxsxCFFCjI/MiTMh1Wac6cpryoYlju5SJ+yQuys4sIKzjkhRUD2d7Ug==}
'@unocss/preset-tagify@65.4.3':
resolution: {integrity: sha512-8/MbMbgdvj1A87XNVVzD8gFVqywaSJAD3Bv8RwjcFn0rwlgZY0PdTBYo3M3FH25axb4znzXBmLZdEBVZOGUosg==}
'@unocss/preset-typography@65.4.2':
resolution: {integrity: sha512-Mp3GSS24qP8Fdf3wH2UeM4PRqGOuJGvKMNuZsIPX09Y/HcpleyjolBDNiagaM2rdp5cs2jcvWDAJ2fz9OXR3HQ==}
'@unocss/preset-typography@65.4.3':
resolution: {integrity: sha512-DEo7GECG0AQ8FkzH/x8QCEL5BR1D+GNoxHGmNxc7rFKghJONVyJ3jROA9mDmWNAva8JygN4Up+lzPZG3mNYezQ==}
'@unocss/preset-uno@65.4.2':
resolution: {integrity: sha512-rJcGx/+EWA3wXGOAZdYQFSEn8knsiqiST/Ji1adN+9dTq4BVYMZ9n3zYRF6GZ8p61aZomhU4jmzpLk12RMdxpg==}
'@unocss/preset-uno@65.4.3':
resolution: {integrity: sha512-gxELOQwR3YbMLR+WjYz3m/Zb6VXa8O0Xln0rfS2TI7OXXoQ1twak5zwYPrOI5fJF8lJ5yyKUiXiOR8UEPBpoCQ==}
'@unocss/preset-web-fonts@65.4.2':
resolution: {integrity: sha512-YVgjB3igldU5uKgwkDXNvxe9cISiLBnaKwW2bjJJyyTZ3QbjbYklgI4LyakxtnY4hf6U1vO+1W83/GIhl2RAdw==}
'@unocss/preset-web-fonts@65.4.3':
resolution: {integrity: sha512-edkyohQ4+qjuOxIJf+NeQiEayB47A9eA2NhBLbcqZ0OfMpN8tRZPVW5cyB3b5Ef253NGMd4S8H/96vGTBpqOBA==}
'@unocss/preset-wind@65.4.2':
resolution: {integrity: sha512-TQm9P2UHpqfn92APfZJtbK2brkXQ+GInFL2evup/ZChU1fqdbH9mL0ef6ZNQbCH4gjY6mEzwPXt4lhGod6CajA==}
'@unocss/preset-wind@65.4.3':
resolution: {integrity: sha512-KM13xIARNeZ/ZKJr33fZ89l79wgI+1Oo8VPJzmckLjbH9IGOhcH2GON7wVIxQqqqM9IM3vALEqw2KNdM6ontWw==}
'@unocss/reset@65.4.2':
resolution: {integrity: sha512-Sas0lTGEgzdWKafSiT+dyhhrUOkOpPbhJYbPMgjW6Ol/tB5JXhdlCNm90Xue1wt453P8O3J4v+dQcyrdRSq0Ig==}
'@unocss/reset@65.4.3':
resolution: {integrity: sha512-f9QnMtY1yPS1HEIkeKmSwUYcp4QS6zdo9ZcIFE9PDSLOcns3v+M1lTQg8mLChxJHVl73Cf6PofWVh5tmnxV53Q==}
'@unocss/rule-utils@0.63.6':
resolution: {integrity: sha512-moeDEq5d9mB8gSYeoqHMkXWWekaFFdhg7QCuwwCbxCc+NPMOgGkmfAoafz+y2tdvK7pEuT191RWOiHQ0MkA5oQ==}
engines: {node: '>=14'}
'@unocss/rule-utils@65.4.2':
resolution: {integrity: sha512-OdMSJZiZUr8XmLo3Bz3Wrw1nZLT1nTPnPOV8gdi4vZ+2RgCChua9o8Dz4IyeQ7mMhLXoqHIUpJ7jE5Nv+Uz1Fw==}
'@unocss/rule-utils@65.4.3':
resolution: {integrity: sha512-bzRRdb9mb82IvgOt3KiRyUh/njRfJC3hoV84lMyUPryT8YTEP/hl6kt2KQ2l1K3WDz7ZPQXVi2eqUbqc+AUpwg==}
engines: {node: '>=14'}
'@unocss/transformer-attributify-jsx@65.4.2':
resolution: {integrity: sha512-3jANN8pnOd3xX8PhkUMhRYEwT97HOYNLMiACpRb2x3MRxYjmpOPR/We31r/tYz23hMsbGkR0C5xvpuCkDj2QAA==}
'@unocss/transformer-attributify-jsx@65.4.3':
resolution: {integrity: sha512-GI0joW6+jG3sLMzqDxT/Nr0lGarHKsXQzpKQt1LfBGEDgNSQZtDZ1IGlkdZeErRFvWcDLWU0xm2LikLS4Az8kw==}
'@unocss/transformer-compile-class@65.4.2':
resolution: {integrity: sha512-9kRV7W6LA7D+OBfbA2ayKJyZl9RnOb1mv+XW0KcFdD8KP0r8DfxT5rOj6QpEt88d6KwDo09iOaExsy0rHU7ZTg==}
'@unocss/transformer-compile-class@65.4.3':
resolution: {integrity: sha512-AzLeic0ESQ/yhLKfkSsQ72wQLkKEPsmX578+ZKcPSRh/HM5tfNz8RqffOHr6YOEKKTaZHN23OqbA511amRKC1w==}
'@unocss/transformer-directives@65.4.2':
resolution: {integrity: sha512-u/hbpRe/mEasRdzznGQnKmJqDHcoJ2MJJBLpDc2RisiAEokz73dno3JtT70HZVA+DN7Y9ddAKioxlvSU+iJxFA==}
'@unocss/transformer-directives@65.4.3':
resolution: {integrity: sha512-e3zZYjXqHSWb6YrC09/FnCsndhZdRzmYhPubTzOjnvb5K0ihIiLvHx9c2TRPWvMspXs0wHKQsLW5fAs8oyimeQ==}
'@unocss/transformer-variant-group@65.4.2':
resolution: {integrity: sha512-a5xjR9mPUo7n6wD3nO5tcEcH7j0ks25E3d100XdNUeVUJeszzMAeLZ/uYrkd6Z3amyLLxwVOkAdYcczGhKdsbA==}
'@unocss/transformer-variant-group@65.4.3':
resolution: {integrity: sha512-nZNgKLclhIjfuqCaZTmJwhWSByL7vnhb3l/ChRX4qtWOweRLro79r6MvfcqQNrweK5nCw4yibsXCrFUWq7Jj5w==}
'@unocss/vite@65.4.2':
resolution: {integrity: sha512-pEIU/egxec0CErgUwo/Nuyfi+ZZPIBD+XQBi2Pa51VKeuD91BBnXc1JGu9yzRT2WbrGP3hwsDgYqhj2G6wGXyA==}
'@unocss/vite@65.4.3':
resolution: {integrity: sha512-YajF8Z2J/KvXdnC5BsGJjt3fm4D14vmYaHdlTyzi92Rkh/67JtaCz2OhElDoF6k4S4fm9B8uLRP10p+smRe9Fw==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
@ -1584,8 +1581,8 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
crossws@0.3.1:
resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==}
crossws@0.3.2:
resolution: {integrity: sha512-S2PpQHRcgYABOS2465b34wqTOn5dbLL+iSvyweJYGGFLDsKq88xrjDXUiEhfYkhWZq1HuS6of3okRHILbkrqxw==}
css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
@ -1720,8 +1717,8 @@ packages:
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
electron-to-chromium@1.5.84:
resolution: {integrity: sha512-I+DQ8xgafao9Ha6y0qjHHvpZ9OfyA1qKlkHkjywxzniORU2awxyz7f/iVJcULmrF2yrM3nHQf+iDjJtbbexd/g==}
electron-to-chromium@1.5.85:
resolution: {integrity: sha512-UgTI7ZHxtSjOUwV0vZLpqT604U1Z8L3bq8mAtAKtuRPlMZ/6dLFMYgYnLdXSi/urbVTP2ykDb9EDDUrdIzw4Qg==}
emmet@2.4.11:
resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==}
@ -1802,8 +1799,8 @@ packages:
peerDependencies:
eslint: ^9.5.0
eslint-flat-config-utils@1.0.0:
resolution: {integrity: sha512-tmzcXeCsa24/u3glyw1Mo7KfC/r9a5Vsu1nPCkX7uefD7C5Z4x922Q2KP/drhTLbOI5lcFHYpfXjKhqqnUWObw==}
eslint-flat-config-utils@1.1.0:
resolution: {integrity: sha512-W49wz7yQJGRfg4QSV3nwdO/fYcWetiSKhLV5YykfQMcqnIATNpoS7EPdINhLB9P3fmdjNmFtOgZjiKnCndWAnw==}
eslint-import-resolver-node@0.3.9:
resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
@ -2143,8 +2140,8 @@ packages:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
h3@1.13.1:
resolution: {integrity: sha512-u/z6Z4YY+ANZ05cRRfsFJadTBrNA6e3jxdU+AN5UCbZSZEUwgHiwjvUEe0k1NoQmAvQmETwr+xB5jd7mhCJuIQ==}
h3@1.14.0:
resolution: {integrity: sha512-ao22eiONdgelqcnknw0iD645qW0s9NnrJHr5OBz4WOMdBdycfSas1EQf1wXRsm+PcB2Yoj43pjBPwqIpJQTeWg==}
has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
@ -2562,8 +2559,8 @@ packages:
mdast-util-definitions@6.0.0:
resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==}
mdast-util-directive@3.0.0:
resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==}
mdast-util-directive@3.1.0:
resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==}
mdast-util-find-and-replace@3.0.2:
resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
@ -2734,8 +2731,8 @@ packages:
micromark-util-sanitize-uri@2.0.1:
resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
micromark-util-subtokenize@2.0.3:
resolution: {integrity: sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==}
micromark-util-subtokenize@2.0.4:
resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==}
micromark-util-symbol@2.0.1:
resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
@ -2873,8 +2870,8 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
p-queue@8.0.1:
resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==}
p-queue@8.1.0:
resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==}
engines: {node: '>=18'}
p-timeout@6.1.4:
@ -3137,8 +3134,8 @@ packages:
resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
engines: {node: '>= 0.10'}
remark-directive@3.0.0:
resolution: {integrity: sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==}
remark-directive@3.0.1:
resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==}
remark-gfm@4.0.0:
resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==}
@ -3562,11 +3559,11 @@ packages:
peerDependencies:
'@unocss/core': '>= 0.52.0'
unocss@65.4.2:
resolution: {integrity: sha512-fAmolcpWyU9TlYw04cXu1ba4+lxh/PKjT5xKEAobWCTmwkS+yQDJ3LrEkqfGvry2EJr2os+/qhQm1lAx/0o7Ww==}
unocss@65.4.3:
resolution: {integrity: sha512-mwSVi0ovPxaDv58yFB7Vm5v1x/q/pUc7aTh7SJbeYoRrpbUGdKiVf20YSQfMqmBNXV9CFDr4o6tabP/58as6RQ==}
engines: {node: '>=14'}
peerDependencies:
'@unocss/webpack': 65.4.2
'@unocss/webpack': 65.4.3
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0
peerDependenciesMeta:
'@unocss/webpack':
@ -3947,7 +3944,7 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.8
'@jridgewell/trace-mapping': 0.3.25
'@antfu/eslint-config@3.15.0(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.2(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
'@antfu/eslint-config@3.16.0(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@unocss/eslint-plugin@65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(@vue/compiler-sfc@3.5.13)(astro-eslint-parser@1.1.0(typescript@5.7.3))(eslint-plugin-astro@1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
'@antfu/install-pkg': 1.0.0
'@clack/prompts': 0.9.1
@ -3959,7 +3956,7 @@ snapshots:
'@vitest/eslint-plugin': 1.1.25(@typescript-eslint/utils@8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3))(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
eslint: 9.18.0(jiti@2.4.2)
eslint-config-flat-gitignore: 1.0.0(eslint@9.18.0(jiti@2.4.2))
eslint-flat-config-utils: 1.0.0
eslint-flat-config-utils: 1.1.0
eslint-merge-processors: 1.0.0(eslint@9.18.0(jiti@2.4.2))
eslint-plugin-antfu: 2.7.0(eslint@9.18.0(jiti@2.4.2))
eslint-plugin-command: 2.1.0(eslint@9.18.0(jiti@2.4.2))
@ -3986,7 +3983,7 @@ snapshots:
yaml-eslint-parser: 1.2.3
yargs: 17.7.2
optionalDependencies:
'@unocss/eslint-plugin': 65.4.2(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
'@unocss/eslint-plugin': 65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
astro-eslint-parser: 1.1.0(typescript@5.7.3)
eslint-plugin-astro: 1.3.1(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
transitivePeerDependencies:
@ -4871,11 +4868,11 @@ snapshots:
'@ungap/structured-clone@1.2.1': {}
'@unocss/astro@65.4.2(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))':
'@unocss/astro@65.4.3(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))':
dependencies:
'@unocss/core': 65.4.2
'@unocss/reset': 65.4.2
'@unocss/vite': 65.4.2(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))
'@unocss/core': 65.4.3
'@unocss/reset': 65.4.3
'@unocss/vite': 65.4.3(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))
optionalDependencies:
vite: 6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
transitivePeerDependencies:
@ -4883,42 +4880,42 @@ snapshots:
- supports-color
- vue
'@unocss/cli@65.4.2(rollup@4.31.0)':
'@unocss/cli@65.4.3(rollup@4.31.0)':
dependencies:
'@ampproject/remapping': 2.3.0
'@rollup/pluginutils': 5.1.4(rollup@4.31.0)
'@unocss/config': 65.4.2
'@unocss/core': 65.4.2
'@unocss/preset-uno': 65.4.2
'@unocss/config': 65.4.3
'@unocss/core': 65.4.3
'@unocss/preset-uno': 65.4.3
cac: 6.7.14
chokidar: 3.6.0
colorette: 2.0.20
consola: 3.4.0
magic-string: 0.30.17
pathe: 1.1.2
pathe: 2.0.2
perfect-debounce: 1.0.0
tinyglobby: 0.2.10
transitivePeerDependencies:
- rollup
- supports-color
'@unocss/config@65.4.2':
'@unocss/config@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
unconfig: 0.6.1
transitivePeerDependencies:
- supports-color
'@unocss/core@0.63.6': {}
'@unocss/core@65.4.2': {}
'@unocss/core@65.4.3': {}
'@unocss/eslint-plugin@65.4.2(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
'@unocss/eslint-plugin@65.4.3(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)':
dependencies:
'@typescript-eslint/utils': 8.21.0(eslint@9.18.0(jiti@2.4.2))(typescript@5.7.3)
'@unocss/config': 65.4.2
'@unocss/core': 65.4.2
'@unocss/rule-utils': 65.4.2
'@unocss/config': 65.4.3
'@unocss/core': 65.4.3
'@unocss/rule-utils': 65.4.3
magic-string: 0.30.17
synckit: 0.9.2
transitivePeerDependencies:
@ -4926,14 +4923,14 @@ snapshots:
- supports-color
- typescript
'@unocss/extractor-arbitrary-variants@65.4.2':
'@unocss/extractor-arbitrary-variants@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
'@unocss/inspector@65.4.2(vue@3.5.13(typescript@5.7.3))':
'@unocss/inspector@65.4.3(vue@3.5.13(typescript@5.7.3))':
dependencies:
'@unocss/core': 65.4.2
'@unocss/rule-utils': 65.4.2
'@unocss/core': 65.4.3
'@unocss/rule-utils': 65.4.3
colorette: 2.0.20
gzip-size: 6.0.0
sirv: 3.0.0
@ -4941,99 +4938,99 @@ snapshots:
transitivePeerDependencies:
- vue
'@unocss/postcss@65.4.2(postcss@8.5.1)':
'@unocss/postcss@65.4.3(postcss@8.5.1)':
dependencies:
'@unocss/config': 65.4.2
'@unocss/core': 65.4.2
'@unocss/rule-utils': 65.4.2
'@unocss/config': 65.4.3
'@unocss/core': 65.4.3
'@unocss/rule-utils': 65.4.3
css-tree: 3.1.0
postcss: 8.5.1
tinyglobby: 0.2.10
transitivePeerDependencies:
- supports-color
'@unocss/preset-attributify@65.4.2':
'@unocss/preset-attributify@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
'@unocss/preset-icons@65.4.2':
'@unocss/preset-icons@65.4.3':
dependencies:
'@iconify/utils': 2.2.1
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
ofetch: 1.4.1
transitivePeerDependencies:
- supports-color
'@unocss/preset-mini@65.4.2':
'@unocss/preset-mini@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/extractor-arbitrary-variants': 65.4.2
'@unocss/rule-utils': 65.4.2
'@unocss/core': 65.4.3
'@unocss/extractor-arbitrary-variants': 65.4.3
'@unocss/rule-utils': 65.4.3
'@unocss/preset-tagify@65.4.2':
'@unocss/preset-tagify@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
'@unocss/preset-typography@65.4.2':
'@unocss/preset-typography@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/preset-mini': 65.4.2
'@unocss/core': 65.4.3
'@unocss/preset-mini': 65.4.3
'@unocss/preset-uno@65.4.2':
'@unocss/preset-uno@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/preset-mini': 65.4.2
'@unocss/preset-wind': 65.4.2
'@unocss/rule-utils': 65.4.2
'@unocss/core': 65.4.3
'@unocss/preset-mini': 65.4.3
'@unocss/preset-wind': 65.4.3
'@unocss/rule-utils': 65.4.3
'@unocss/preset-web-fonts@65.4.2':
'@unocss/preset-web-fonts@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
ofetch: 1.4.1
'@unocss/preset-wind@65.4.2':
'@unocss/preset-wind@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/preset-mini': 65.4.2
'@unocss/rule-utils': 65.4.2
'@unocss/core': 65.4.3
'@unocss/preset-mini': 65.4.3
'@unocss/rule-utils': 65.4.3
'@unocss/reset@65.4.2': {}
'@unocss/reset@65.4.3': {}
'@unocss/rule-utils@0.63.6':
dependencies:
'@unocss/core': 0.63.6
magic-string: 0.30.17
'@unocss/rule-utils@65.4.2':
'@unocss/rule-utils@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
magic-string: 0.30.17
'@unocss/transformer-attributify-jsx@65.4.2':
'@unocss/transformer-attributify-jsx@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
'@unocss/transformer-compile-class@65.4.2':
'@unocss/transformer-compile-class@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
'@unocss/transformer-directives@65.4.2':
'@unocss/transformer-directives@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/rule-utils': 65.4.2
'@unocss/core': 65.4.3
'@unocss/rule-utils': 65.4.3
css-tree: 3.1.0
'@unocss/transformer-variant-group@65.4.2':
'@unocss/transformer-variant-group@65.4.3':
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
'@unocss/vite@65.4.2(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))':
'@unocss/vite@65.4.3(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))':
dependencies:
'@ampproject/remapping': 2.3.0
'@rollup/pluginutils': 5.1.4(rollup@4.31.0)
'@unocss/config': 65.4.2
'@unocss/core': 65.4.2
'@unocss/inspector': 65.4.2(vue@3.5.13(typescript@5.7.3))
'@unocss/config': 65.4.3
'@unocss/core': 65.4.3
'@unocss/inspector': 65.4.3(vue@3.5.13(typescript@5.7.3))
chokidar: 3.6.0
magic-string: 0.30.17
tinyglobby: 0.2.10
@ -5327,7 +5324,7 @@ snapshots:
mrmime: 2.0.0
neotraverse: 0.6.18
p-limit: 6.2.0
p-queue: 8.0.1
p-queue: 8.1.0
preferred-pm: 4.0.0
prompts: 2.4.2
rehype: 13.0.2
@ -5428,7 +5425,7 @@ snapshots:
browserslist@4.24.4:
dependencies:
caniuse-lite: 1.0.30001695
electron-to-chromium: 1.5.84
electron-to-chromium: 1.5.85
node-releases: 2.0.19
update-browserslist-db: 1.1.2(browserslist@4.24.4)
@ -5574,7 +5571,7 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
crossws@0.3.1:
crossws@0.3.2:
dependencies:
uncrypto: 0.1.3
@ -5690,7 +5687,7 @@ snapshots:
duplexer@0.1.2: {}
electron-to-chromium@1.5.84: {}
electron-to-chromium@1.5.85: {}
emmet@2.4.11:
dependencies:
@ -5811,7 +5808,7 @@ snapshots:
eslint: 9.18.0(jiti@2.4.2)
find-up-simple: 1.0.0
eslint-flat-config-utils@1.0.0:
eslint-flat-config-utils@1.1.0:
dependencies:
pathe: 2.0.2
@ -6263,10 +6260,10 @@ snapshots:
dependencies:
duplexer: 0.1.2
h3@1.13.1:
h3@1.14.0:
dependencies:
cookie-es: 1.2.2
crossws: 0.3.1
crossws: 0.3.2
defu: 6.1.4
destr: 2.0.3
iron-webcrypto: 1.2.1
@ -6761,10 +6758,11 @@ snapshots:
'@types/unist': 3.0.3
unist-util-visit: 5.0.0
mdast-util-directive@3.0.0:
mdast-util-directive@3.1.0:
dependencies:
'@types/mdast': 4.0.4
'@types/unist': 3.0.3
ccount: 2.0.1
devlop: 1.1.0
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
@ -6976,7 +6974,7 @@ snapshots:
micromark-util-html-tag-name: 2.0.1
micromark-util-normalize-identifier: 2.0.1
micromark-util-resolve-all: 2.0.1
micromark-util-subtokenize: 2.0.3
micromark-util-subtokenize: 2.0.4
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
@ -7214,7 +7212,7 @@ snapshots:
micromark-util-encode: 2.0.1
micromark-util-symbol: 2.0.1
micromark-util-subtokenize@2.0.3:
micromark-util-subtokenize@2.0.4:
dependencies:
devlop: 1.1.0
micromark-util-chunked: 2.0.1
@ -7241,7 +7239,7 @@ snapshots:
micromark-util-normalize-identifier: 2.0.1
micromark-util-resolve-all: 2.0.1
micromark-util-sanitize-uri: 2.0.1
micromark-util-subtokenize: 2.0.3
micromark-util-subtokenize: 2.0.4
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.1
transitivePeerDependencies:
@ -7372,7 +7370,7 @@ snapshots:
dependencies:
p-limit: 3.1.0
p-queue@8.0.1:
p-queue@8.1.0:
dependencies:
eventemitter3: 5.0.1
p-timeout: 6.1.4
@ -7687,10 +7685,10 @@ snapshots:
relateurl@0.2.7: {}
remark-directive@3.0.0:
remark-directive@3.0.1:
dependencies:
'@types/mdast': 4.0.4
mdast-util-directive: 3.0.0
mdast-util-directive: 3.1.0
micromark-extension-directive: 3.0.2
unified: 11.0.5
transitivePeerDependencies:
@ -7710,7 +7708,7 @@ snapshots:
remark-github-admonitions-to-directives@2.1.0:
dependencies:
'@types/mdast': 4.0.4
mdast-util-directive: 3.0.0
mdast-util-directive: 3.1.0
unified: 11.0.5
unist-util-visit: 5.0.0
transitivePeerDependencies:
@ -8222,30 +8220,30 @@ snapshots:
unist-util-is: 6.0.0
unist-util-visit-parents: 6.0.1
unocss-preset-theme@0.14.1(@unocss/core@65.4.2):
unocss-preset-theme@0.14.1(@unocss/core@65.4.3):
dependencies:
'@unocss/core': 65.4.2
'@unocss/core': 65.4.3
'@unocss/rule-utils': 0.63.6
unocss@65.4.2(postcss@8.5.1)(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)):
unocss@65.4.3(postcss@8.5.1)(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3)):
dependencies:
'@unocss/astro': 65.4.2(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))
'@unocss/cli': 65.4.2(rollup@4.31.0)
'@unocss/core': 65.4.2
'@unocss/postcss': 65.4.2(postcss@8.5.1)
'@unocss/preset-attributify': 65.4.2
'@unocss/preset-icons': 65.4.2
'@unocss/preset-mini': 65.4.2
'@unocss/preset-tagify': 65.4.2
'@unocss/preset-typography': 65.4.2
'@unocss/preset-uno': 65.4.2
'@unocss/preset-web-fonts': 65.4.2
'@unocss/preset-wind': 65.4.2
'@unocss/transformer-attributify-jsx': 65.4.2
'@unocss/transformer-compile-class': 65.4.2
'@unocss/transformer-directives': 65.4.2
'@unocss/transformer-variant-group': 65.4.2
'@unocss/vite': 65.4.2(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))
'@unocss/astro': 65.4.3(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))
'@unocss/cli': 65.4.3(rollup@4.31.0)
'@unocss/core': 65.4.3
'@unocss/postcss': 65.4.3(postcss@8.5.1)
'@unocss/preset-attributify': 65.4.3
'@unocss/preset-icons': 65.4.3
'@unocss/preset-mini': 65.4.3
'@unocss/preset-tagify': 65.4.3
'@unocss/preset-typography': 65.4.3
'@unocss/preset-uno': 65.4.3
'@unocss/preset-web-fonts': 65.4.3
'@unocss/preset-wind': 65.4.3
'@unocss/transformer-attributify-jsx': 65.4.3
'@unocss/transformer-compile-class': 65.4.3
'@unocss/transformer-directives': 65.4.3
'@unocss/transformer-variant-group': 65.4.3
'@unocss/vite': 65.4.3(rollup@4.31.0)(vite@6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0))(vue@3.5.13(typescript@5.7.3))
optionalDependencies:
vite: 6.0.11(@types/node@22.10.7)(jiti@2.4.2)(lightningcss@1.28.2)(terser@5.37.0)(tsx@4.19.2)(yaml@2.7.0)
transitivePeerDependencies:
@ -8259,7 +8257,7 @@ snapshots:
anymatch: 3.1.3
chokidar: 3.6.0
destr: 2.0.3
h3: 1.13.1
h3: 1.14.0
lru-cache: 10.4.3
node-fetch-native: 1.6.6
ofetch: 1.4.1

View file

Before

Width:  |  Height:  |  Size: 223 B

After

Width:  |  Height:  |  Size: 223 B

Before After
Before After

View file

@ -0,0 +1,48 @@
<script>
import { OverlayScrollbars } from 'overlayscrollbars'
// Store scrollbar instance for later use
let scrollbarsInstance: ReturnType<typeof OverlayScrollbars> | null = null
// Initialize custom scrollbar with theme support
function initScrollbar() {
const bodyElement = document.body
if (!bodyElement.hasAttribute('data-scrollbar-initialized')) {
scrollbarsInstance = OverlayScrollbars({
target: bodyElement,
}, {
scrollbars: {
theme: document.documentElement.classList.contains('dark') ? 'scrollbar-dark' : 'scrollbar-light',
autoHide: 'scroll',
},
overflow: {
x: 'hidden',
},
})
bodyElement.setAttribute('data-scrollbar-initialized', 'true')
}
}
// Handle theme changes and update scrollbar appearance
document.addEventListener('theme-changed', () => {
scrollbarsInstance?.options({
scrollbars: {
theme: document.documentElement.classList.contains('dark') ? 'scrollbar-dark' : 'scrollbar-light',
},
})
})
// Cleanup scrollbar instance before page transitions
document.addEventListener('astro:before-swap', () => {
scrollbarsInstance?.destroy()
scrollbarsInstance = null
})
document.addEventListener('DOMContentLoaded', initScrollbar)
document.addEventListener('astro:page-load', initScrollbar)
</script>
<style is:global>
@import '@/styles/scrollbar.css';
</style>

View file

@ -8,6 +8,7 @@
const isDark = document.documentElement.classList.toggle('dark')
themeToggle.setAttribute('aria-pressed', String(isDark))
localStorage.setItem('theme', isDark ? 'dark' : 'light')
document.dispatchEvent(new Event('theme-changed'))
}
// Handle theme toggle with view transitions API

View file

@ -1,5 +1,6 @@
---
import Head from '@/components/Head.astro'
import Scrollbar from '@/components/Scrollbar.astro'
import ThemeToggle from '@/components/ThemeToggle.astro'
import themeConfig from '@/config'
import '@/styles/global.css'
@ -16,11 +17,15 @@ const fontStyle = `font-${themeConfig.global.font}`
const colorMode = themeConfig.color.mode
---
<html lang={Astro.currentLocale || 'en-US'} class={`${fontStyle} ${colorMode}`}>
<html
lang={Astro.currentLocale || 'en-US'}
class:list={[fontStyle, colorMode]}
data-overlayscrollbars-initialize
>
<head>
<Head {postTitle} {postDescription} {postImage} />
</head>
<body>
<body data-overlayscrollbars-initialize>
<ThemeToggle />
<main
class="mx-a max-w-123rem h-dvh"
@ -28,5 +33,6 @@ const colorMode = themeConfig.color.mode
>
<slot />
</main>
<Scrollbar />
</body>
</html>

View file

@ -1,13 +1,13 @@
---
import Layout from '@/layouts/Layout.astro'
// import { getPinnedPosts, getPosts } from '@/utils/content.config'
import { getPinnedPosts, getPosts } from '@/utils/content.config'
// const posts = await getPosts()
// const pinnedPosts = await getPinnedPosts()
const posts = await getPosts()
const pinnedPosts = await getPinnedPosts()
---
<Layout>
<!-- <main>
<main>
{pinnedPosts.length > 0 && (
<section>
<ul>
@ -35,5 +35,5 @@ import Layout from '@/layouts/Layout.astro'
))}
</ul>
</section>
</main> -->
</main>
</Layout>

View file

@ -14,6 +14,13 @@ body {
--at-apply: 'transition-all duration-500 ease-in-out';
}
}
* {
scrollbar-width: none;
-ms-overflow-style: none;
}
*::-webkit-scrollbar {
display: none;
}
h1, h2, h3 {
text-rendering: optimizeLegibility;
}

30
src/styles/scrollbar.css Normal file
View file

@ -0,0 +1,30 @@
@import 'overlayscrollbars/overlayscrollbars.css';
.scrollbar-light,
.scrollbar-dark {
--os-size: 1rem;
--os-padding-perpendicular: 0.2rem;
--os-padding-axis: 0.4rem;
--os-handle-border-radius: 0.7rem;
--os-handle-perpendicular-size-hover: 160%;
--os-handle-perpendicular-size-active: 160%;
--os-handle-interactive-area-offset: 3px;
}
.scrollbar-light {
--os-handle-bg: #D1C6BE;
--os-handle-bg-hover: #C1B6AF;
--os-handle-bg-active: #C1B6AF;
}
.scrollbar-dark {
--os-handle-bg: #383838;
--os-handle-bg-hover: #464646;
--os-handle-bg-active: #464646;
}
@media (max-width: 1023px) {
.os-scrollbar {
display: none !important;
}
}

View file

@ -25,10 +25,6 @@ export default defineConfig({
},
}),
],
transformers: [
transformerDirectives(),
transformerVariantGroup(),
],
theme: {
colors: light,
fontFamily: {
@ -39,4 +35,10 @@ export default defineConfig({
custom: ['EarlySummer-custom', 'ui-serif', 'Georgia', 'Cambria', 'Times New Roman', 'Times', 'serif'],
},
},
shortcuts: [],
rules: [],
transformers: [
transformerDirectives(),
transformerVariantGroup(),
],
})