From 55708f280f9fd330769733c77e507714e647ce15 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Wed, 23 Sep 2026 17:43:22 -0400 Subject: [PATCH 01/23] Adding red colour to variables --- src/styles/variables.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/styles/variables.css b/src/styles/variables.css index a65e7b3..e5ef0a9 100644 --- a/src/styles/variables.css +++ b/src/styles/variables.css @@ -16,6 +16,7 @@ --blue: oklch(0.6988 0.1864 252.372); --purple: oklch(0.6988 0.1864 325.529); --green: oklch(0.6988 0.1864 151.37); + --red: oklch(0.6988 0.1864 24.41); --accent: var(--green); --accent-text: var(--dark-grey); From 66b8a17f7b9cda1516f9cbc65a8c37b960950337 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Wed, 23 Sep 2026 17:48:32 -0400 Subject: [PATCH 02/23] Clearing unused imports --- src/pages/[...lang]/guidelines/[id].astro | 3 +-- src/pages/[...lang]/updates/[id].astro | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/pages/[...lang]/guidelines/[id].astro b/src/pages/[...lang]/guidelines/[id].astro index e64753b..f547da7 100644 --- a/src/pages/[...lang]/guidelines/[id].astro +++ b/src/pages/[...lang]/guidelines/[id].astro @@ -1,7 +1,6 @@ --- import { getCollection, render } from "astro:content"; -import { getRelativeLocaleUrl } from "astro:i18n"; -import { defaultLang, languages } from "@i18n/ui"; +import { defaultLang } from "@i18n/ui"; import { getLangFromUrl, useTranslations } from "@i18n/utils"; import BaseLayout from "@layouts/BaseLayout.astro"; import ContentLayout from "@layouts/ContentLayout.astro"; diff --git a/src/pages/[...lang]/updates/[id].astro b/src/pages/[...lang]/updates/[id].astro index 086e15c..055a95d 100644 --- a/src/pages/[...lang]/updates/[id].astro +++ b/src/pages/[...lang]/updates/[id].astro @@ -1,7 +1,7 @@ --- import { getCollection, render } from "astro:content"; import { getRelativeLocaleUrl } from "astro:i18n"; -import { defaultLang, languages } from "@i18n/ui"; +import { defaultLang } from "@i18n/ui"; import { getLangFromUrl } from "@i18n/utils"; import BaseLayout from "@layouts/BaseLayout.astro"; import ContentLayout from "@layouts/ContentLayout.astro"; From ba481b8afb28fb37df25521dbc66234528763fb8 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Wed, 23 Sep 2026 17:49:03 -0400 Subject: [PATCH 03/23] .flow class refinements, and added reduced motion smooth scroll preference styling --- src/styles/base.css | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/styles/base.css b/src/styles/base.css index cb70ebc..0edad1e 100644 --- a/src/styles/base.css +++ b/src/styles/base.css @@ -11,18 +11,13 @@ margin: 0; } - @media (prefers-reduced-motion: no-preference) { - html { - interpolate-size: allow-keywords; - } - } - html { color-scheme: light dark; font-size: var(--font-base); color: var(--text-secondary); background-color: var(--bg-primary); scrollbar-gutter: stable; + scroll-behavior: auto; block-size: 100%; font-family: "Archivo", sans-serif; &:lang(ja) { @@ -30,6 +25,13 @@ } } + @media (prefers-reduced-motion: no-preference) { + html { + interpolate-size: allow-keywords; + scroll-behavior: smooth; + } + } + html:has([value="light"]:checked) { color-scheme: light; } @@ -89,9 +91,10 @@ h4, h5, h6 { + --_header-scroll-margin: var(--header-scroll-margin, 1); text-wrap: balance; color: var(--text-main); - scroll-margin-block-start: calc(var(--header-height) * 2); + scroll-margin-block-start: calc(var(--header-height) * var(--_header-scroll-margin)); } h1 { @@ -262,10 +265,10 @@ /* === LAYOUTS === */ .flow { - --_flow-space: var(--flow-space, var(--space-sm)); + --_flow-space: var(--flow-space, 1.25em); - & > * + * { - margin-top: var(--_flow-space, 1em); + & > * + *:not(:first-child) { + margin-top: var(--_flow-space); } &.flow--dense { @@ -274,7 +277,7 @@ img { max-width: 95%; - margin: var(--_flow-space, 1em) auto; + margin: var(--_flow-space) auto; } &.flow--dense { From 409d62d621f636c5f40e0404dc4eb9e130dd7f15 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Wed, 23 Sep 2026 19:12:46 -0400 Subject: [PATCH 04/23] Adding astro/check to dev dependencies --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 6f3a6e5..bc7abd7 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "typescript": "^6.0.3" }, "devDependencies": { + "@astrojs/check": "^0.9.10", "@biomejs/biome": "2.5.0", "@testing-library/svelte": "^5.4.1", "@types/node": "^26.1.1", From 609a63c36276fdd5c6967566153a286dd5ee8f65 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Wed, 23 Sep 2026 19:13:20 -0400 Subject: [PATCH 05/23] Added simple override function to avoid routing conflict Sveltia panel on local dev builds --- astro.config.mjs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/astro.config.mjs b/astro.config.mjs index 0e4e9c2..0fd08f6 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -11,6 +11,21 @@ import { getHeaders } from "./satteri-plugins/getHeaders.mjs"; import { guardTitleH1 } from "./satteri-plugins/guardTitleH1.mjs"; import { insertTableWrapper } from "./satteri-plugins/insertTableWrapper.mjs"; +// Correctly routes requests to Sveltia's admin panel in local dev builds +const adminDevEnvOverride = () => ({ + name: "admin-dev-env-override", + hooks: { + "astro:server:setup": ({ server }) => { + server.middlewares.use((req, _res, next) => { + if (req.url && /^\/admin\/?(\?.*)?$/.test(req.url)) { + req.url = "/admin/index.html"; + } + next(); + }); + }, + }, +}); + // https://astro.build/config export default defineConfig({ site: "https://hyperlayering.org/", @@ -54,6 +69,7 @@ export default defineConfig({ }, }, }), + adminDevEnvOverride(), starlight({ title: "Docs", disable404Route: true, From b4cb195439f68240613ac8a6c799a19e29a41680 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Wed, 23 Sep 2026 19:13:35 -0400 Subject: [PATCH 06/23] Update package-lock --- package-lock.json | 905 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 895 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8524cee..8a35d19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "typescript": "^6.0.3" }, "devDependencies": { + "@astrojs/check": "^0.9.10", "@biomejs/biome": "2.5.0", "@testing-library/svelte": "^5.4.1", "@types/node": "^26.1.1", @@ -84,6 +85,65 @@ "dev": true, "license": "MIT" }, + "node_modules/@astrojs/astro2tsx": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@astrojs/astro2tsx/-/astro2tsx-0.1.1.tgz", + "integrity": "sha512-VNhvoKzs0FXF3iq+2QVIjTqA6awKDKpd2U7khYg3AhcxjM1KMINEma4IeqQnMqJUakw0MNQygntLvLmSPS5pLA==", + "license": "MIT", + "dependencies": { + "@emnapi/core": "1.11.3", + "@napi-rs/wasm-runtime": "1.2.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@astrojs/check": { + "version": "0.9.10", + "resolved": "https://registry.npmjs.org/@astrojs/check/-/check-0.9.10.tgz", + "integrity": "sha512-zgx/UQMozdjOa3bOxjgeCFdtpE3c9rRX6xHwa+2QXvy8z8Akifu2AtubHyv/zzC2znO8dl8fFWL4K+Ba9kS8HQ==", + "license": "MIT", + "dependencies": { + "@astrojs/language-server": "^2.16.7", + "chokidar": "^4.0.3", + "kleur": "^4.1.5", + "yargs": "^18.0.0" + }, + "bin": { + "astro-check": "bin/astro-check.js" + }, + "peerDependencies": { + "typescript": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/@astrojs/check/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@astrojs/check/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@astrojs/cloudflare": { "version": "14.3.2", "resolved": "https://registry.npmjs.org/@astrojs/cloudflare/-/cloudflare-14.3.2.tgz", @@ -322,6 +382,46 @@ "unified": "^11.0.5" } }, + "node_modules/@astrojs/language-server": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/@astrojs/language-server/-/language-server-2.17.1.tgz", + "integrity": "sha512-gG7bvMVNIXgoSe1pM9dI1HsSDLU1EIc/dSAYQ0DuReLyLkOBjsiqvaRYgQltWaldLxh0bNEqjgreLfjd9OnUxQ==", + "license": "MIT", + "dependencies": { + "@astrojs/astro2tsx": "^0.1.0", + "@astrojs/yaml2ts": "^0.2.4", + "@volar/kit": "~2.4.28", + "@volar/language-core": "~2.4.28", + "@volar/language-server": "~2.4.28", + "@volar/language-service": "~2.4.28", + "muggle-string": "^0.4.1", + "tinyglobby": "^0.2.17", + "volar-service-css": "0.0.71", + "volar-service-emmet": "0.0.71", + "volar-service-html": "0.0.71", + "volar-service-prettier": "0.0.71", + "volar-service-typescript": "0.0.71", + "volar-service-typescript-twoslash-queries": "0.0.71", + "volar-service-yaml": "0.0.71", + "vscode-html-languageservice": "^5.6.2", + "vscode-uri": "^3.2.0" + }, + "bin": { + "astro-ls": "bin/nodeServer.js" + }, + "peerDependencies": { + "prettier": "^3.0.0", + "prettier-plugin-astro": ">=0.11.0" + }, + "peerDependenciesMeta": { + "prettier": { + "optional": true + }, + "prettier-plugin-astro": { + "optional": true + } + } + }, "node_modules/@astrojs/markdown-satteri": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@astrojs/markdown-satteri/-/markdown-satteri-0.4.1.tgz", @@ -475,6 +575,15 @@ "integrity": "sha512-sD3bn7i2yC+ocxlhCTshdg3gUM471Nag3wgyHilA+kpmufokvmUu1p5Mw5GT5Xp8SPC1Nlq0BJAgV/lslnWvRw==", "license": "MIT" }, + "node_modules/@astrojs/yaml2ts": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@astrojs/yaml2ts/-/yaml2ts-0.2.4.tgz", + "integrity": "sha512-8oddpOae35pJsXPQXhTkM0ypfKPskVsh2bCxRtbf7e+/Epw2nReakFYpLKjZMEr75CsoF203PMnCocpfz0s69A==", + "license": "MIT", + "dependencies": { + "yaml": "^2.8.3" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", @@ -1193,13 +1302,66 @@ "node": ">=14" } }, + "node_modules/@emmetio/abbreviation": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@emmetio/abbreviation/-/abbreviation-2.3.3.tgz", + "integrity": "sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==", + "license": "MIT", + "dependencies": { + "@emmetio/scanner": "^1.0.4" + } + }, + "node_modules/@emmetio/css-abbreviation": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@emmetio/css-abbreviation/-/css-abbreviation-2.1.8.tgz", + "integrity": "sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==", + "license": "MIT", + "dependencies": { + "@emmetio/scanner": "^1.0.4" + } + }, + "node_modules/@emmetio/css-parser": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@emmetio/css-parser/-/css-parser-0.4.1.tgz", + "integrity": "sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==", + "license": "MIT", + "dependencies": { + "@emmetio/stream-reader": "^2.2.0", + "@emmetio/stream-reader-utils": "^0.1.0" + } + }, + "node_modules/@emmetio/html-matcher": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emmetio/html-matcher/-/html-matcher-1.3.0.tgz", + "integrity": "sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==", + "license": "ISC", + "dependencies": { + "@emmetio/scanner": "^1.0.0" + } + }, + "node_modules/@emmetio/scanner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@emmetio/scanner/-/scanner-1.0.4.tgz", + "integrity": "sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==", + "license": "MIT" + }, + "node_modules/@emmetio/stream-reader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz", + "integrity": "sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==", + "license": "MIT" + }, + "node_modules/@emmetio/stream-reader-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz", + "integrity": "sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==", + "license": "MIT" + }, "node_modules/@emnapi/core": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.11.3.tgz", "integrity": "sha512-zLpS5asjEb7lq8jYLq37N6XKaE41DIexlY1rF/z4/tIl3wo13Sqm28fRyfIsKZD+NZ8mM5RoKkpW/rBcuoSZSg==", "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "@emnapi/wasi-threads": "1.2.3", "tslib": "^2.4.0" @@ -1210,8 +1372,6 @@ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.3.tgz", "integrity": "sha512-ELEBe8PsLvvJ6QMr0zLt8ffvOHW/dc1m3CEzNMg7aJUv3bMaoDtw2TXyDAwkYBuroxxuHEwhRTLJSe5sya547g==", "license": "MIT", - "optional": true, - "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -1221,7 +1381,6 @@ "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.11.1.tgz", "integrity": "sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==", "license": "MIT", - "optional": true, "dependencies": { "tslib": "^2.4.0" } @@ -2343,7 +2502,6 @@ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.2.4.tgz", "integrity": "sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==", "license": "MIT", - "optional": true, "dependencies": { "@tybys/wasm-util": "^0.10.3" }, @@ -2974,7 +3132,6 @@ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", "license": "MIT", - "optional": true, "dependencies": { "tslib": "^2.4.0" } @@ -3216,6 +3373,102 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/@volar/kit": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/kit/-/kit-2.4.28.tgz", + "integrity": "sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==", + "license": "MIT", + "dependencies": { + "@volar/language-service": "2.4.28", + "@volar/typescript": "2.4.28", + "typesafe-path": "^0.2.2", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.28.tgz", + "integrity": "sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==", + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.28" + } + }, + "node_modules/@volar/language-server": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-server/-/language-server-2.4.28.tgz", + "integrity": "sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "@volar/language-service": "2.4.28", + "@volar/typescript": "2.4.28", + "path-browserify": "^1.0.1", + "request-light": "^0.7.0", + "vscode-languageserver": "^9.0.1", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@volar/language-service": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/language-service/-/language-service-2.4.28.tgz", + "integrity": "sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "vscode-languageserver-protocol": "^3.17.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.28.tgz", + "integrity": "sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==", + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.28", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.28.tgz", + "integrity": "sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==", + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.28", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vscode/emmet-helper": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@vscode/emmet-helper/-/emmet-helper-2.11.0.tgz", + "integrity": "sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==", + "license": "MIT", + "dependencies": { + "emmet": "^2.4.3", + "jsonc-parser": "^2.3.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.15.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vscode/emmet-helper/node_modules/jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "license": "MIT" + }, + "node_modules/@vscode/l10n": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz", + "integrity": "sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==", + "license": "MIT" + }, "node_modules/acorn": { "version": "8.17.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", @@ -3238,6 +3491,45 @@ "node": ">= 14" } }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-i18n": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ajv-i18n/-/ajv-i18n-4.2.0.tgz", + "integrity": "sha512-v/ei2UkCEeuKNXh8RToiFsUclmU+G57LO1Oo22OagNMENIw+Yb8eMwvHu7Vn9fmkjJyv6XclhJ8TbuigSglPkg==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.0.0-beta.0" + } + }, "node_modules/am-i-vibing": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/am-i-vibing/-/am-i-vibing-0.4.0.tgz", @@ -3614,6 +3906,37 @@ "node": ">=8" } }, + "node_modules/cliui": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-9.0.1.tgz", + "integrity": "sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==", + "license": "ISC", + "dependencies": { + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -4024,6 +4347,28 @@ "node": ">=4" } }, + "node_modules/emmet": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/emmet/-/emmet-2.4.11.tgz", + "integrity": "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==", + "license": "MIT", + "workspaces": [ + "./packages/scanner", + "./packages/abbreviation", + "./packages/css-abbreviation", + "./" + ], + "dependencies": { + "@emmetio/abbreviation": "^2.3.3", + "@emmetio/css-abbreviation": "^2.1.8" + } + }, + "node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, "node_modules/entities": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/entities/-/entities-8.0.0.tgz", @@ -4093,6 +4438,15 @@ "@esbuild/win32-x64": "0.28.2" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/esm-env": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", @@ -4160,6 +4514,12 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, "node_modules/fast-string-truncated-width": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fast-string-truncated-width/-/fast-string-truncated-width-3.0.3.tgz", @@ -4175,6 +4535,22 @@ "fast-string-truncated-width": "^3.0.2" } }, + "node_modules/fast-uri": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.8.tgz", + "integrity": "sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fast-wrap-ansi": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/fast-wrap-ansi/-/fast-wrap-ansi-0.2.2.tgz", @@ -4254,6 +4630,27 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.7.0.tgz", + "integrity": "sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-tsconfig": { "version": "5.0.0-beta.4", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-5.0.0-beta.4.tgz", @@ -4787,6 +5184,12 @@ } } }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, "node_modules/jsonc-parser": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", @@ -5728,6 +6131,12 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "license": "MIT" }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "license": "MIT" + }, "node_modules/nanoid": { "version": "3.3.19", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.19.tgz", @@ -5953,6 +6362,12 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "license": "MIT" + }, "node_modules/path-to-regexp": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", @@ -6055,6 +6470,21 @@ "node": ">=4" } }, + "node_modules/prettier": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.9.tgz", + "integrity": "sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==", + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/pretty-format": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", @@ -6183,11 +6613,16 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/request-light": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.7.0.tgz", + "integrity": "sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==", + "license": "MIT" + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -6473,6 +6908,22 @@ "dev": true, "license": "MIT" }, + "node_modules/string-width": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.2.2.tgz", + "integrity": "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==", + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.5.0", + "strip-ansi": "^7.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -6487,6 +6938,33 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.3.0.tgz", + "integrity": "sha512-WpDfL7NO6j7tH88IDBNVdUJxDh9nmCteAVW9dsep846XdwF4naCBK+/tGLX3KJgcpgMRXCFlTM2hKGoK9FsdrQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/supports-color": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", @@ -6708,8 +7186,13 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "optional": true + "license": "0BSD" + }, + "node_modules/typesafe-path": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/typesafe-path/-/typesafe-path-0.2.2.tgz", + "integrity": "sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==", + "license": "MIT" }, "node_modules/typescript": { "version": "6.0.3", @@ -6724,6 +7207,15 @@ "node": ">=14.17" } }, + "node_modules/typescript-auto-import-cache": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/typescript-auto-import-cache/-/typescript-auto-import-cache-0.3.6.tgz", + "integrity": "sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.8" + } + }, "node_modules/ufo": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", @@ -7227,6 +7719,268 @@ } } }, + "node_modules/volar-service-css": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-css/-/volar-service-css-0.0.71.tgz", + "integrity": "sha512-wRRFt9BpjMKCazcgOh67MSjUjiWUCAh99DyYSDIOTuxaRjEtDC7PpB0k1Y1wbJIW/pVtMUSVbpPo3UGSm0Byxw==", + "license": "MIT", + "dependencies": { + "vscode-css-languageservice": "^6.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-emmet": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-emmet/-/volar-service-emmet-0.0.71.tgz", + "integrity": "sha512-zqjzt6bN95e3CUstBm0PBFAJnrfz0ZAARka87fart46/gNCLLuP3Vujy8V/J8HEziTFLnfkgIASLFYPUhonJcA==", + "license": "MIT", + "dependencies": { + "@emmetio/css-parser": "^0.4.1", + "@emmetio/html-matcher": "^1.3.0", + "@vscode/emmet-helper": "^2.9.3", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-html": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-html/-/volar-service-html-0.0.71.tgz", + "integrity": "sha512-e8tHPhgQ7ooLfudAEIku+kgd9pWkq3SSz8RbnQDI1+Eb8wbenkLGHqoirLqz5ORLV6wIMr2Iv08RWBG5eOcgpw==", + "license": "MIT", + "dependencies": { + "vscode-html-languageservice": "^5.3.0", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-prettier": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-prettier/-/volar-service-prettier-0.0.71.tgz", + "integrity": "sha512-Rz7JVH3qD108UCdmIEiZvOBNljMt2nLFdbN8AXcDfn7xD9F5I2aCIsDVqBbXw21PsnxG0b7MfwtNF+zPS/NKUg==", + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0", + "prettier": "^2.2 || ^3.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + }, + "prettier": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-typescript/-/volar-service-typescript-0.0.71.tgz", + "integrity": "sha512-yTtM/BVT6hoyEYnDtaCyAtNhdNeS/mhTTABlBOdw3NNiRBUin3IznFJpgfjer4c6RYopiPjjQjc9VFhxVl1mLw==", + "license": "MIT", + "dependencies": { + "path-browserify": "^1.0.1", + "semver": "^7.6.2", + "typescript-auto-import-cache": "^0.3.5", + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-nls": "^5.2.0", + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-typescript-twoslash-queries": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-typescript-twoslash-queries/-/volar-service-typescript-twoslash-queries-0.0.71.tgz", + "integrity": "sha512-9K2k72s4n7rV9s4bX0MyjbX9iBribvKZbBJKuEmTCZfeWJXs6Yh7bGpY4eoc7UufAjvpheBqwyZCOIPBvxCv0A==", + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/volar-service-yaml": { + "version": "0.0.71", + "resolved": "https://registry.npmjs.org/volar-service-yaml/-/volar-service-yaml-0.0.71.tgz", + "integrity": "sha512-qYGWGuVpUTnZGu5P/CR4KLK4aIR8RrcVnmfZ2eRcj9q/I8VZCoC5yy9FtEvfNvnDp4MU17yhdJcvpQPIqhJS2Q==", + "license": "MIT", + "dependencies": { + "vscode-uri": "^3.0.8", + "yaml-language-server": "~1.23.0" + }, + "peerDependencies": { + "@volar/language-service": "~2.4.0" + }, + "peerDependenciesMeta": { + "@volar/language-service": { + "optional": true + } + } + }, + "node_modules/vscode-css-languageservice": { + "version": "6.3.10", + "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-6.3.10.tgz", + "integrity": "sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==", + "license": "MIT", + "dependencies": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "3.17.5", + "vscode-uri": "^3.1.0" + } + }, + "node_modules/vscode-css-languageservice/node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT" + }, + "node_modules/vscode-html-languageservice": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-5.6.2.tgz", + "integrity": "sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==", + "license": "MIT", + "dependencies": { + "@vscode/l10n": "^0.0.18", + "vscode-languageserver-textdocument": "^1.0.12", + "vscode-languageserver-types": "^3.17.5", + "vscode-uri": "^3.1.0" + } + }, + "node_modules/vscode-json-languageservice": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.8.tgz", + "integrity": "sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==", + "license": "MIT", + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.16.0", + "vscode-nls": "^5.0.0", + "vscode-uri": "^3.0.2" + }, + "engines": { + "npm": ">=7.0.0" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.2.tgz", + "integrity": "sha512-SbQSV9yRemARxeXw6LU5sS6Zq0e9/DgCCX5yelH263ZQWukbTk8EF8fjTrr1dziasf4GwlJbvTwFnTrnQFWZXQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz", + "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==", + "license": "MIT", + "dependencies": { + "vscode-languageserver-protocol": "3.17.5" + }, + "bin": { + "installServerIntoExtension": "bin/installServerIntoExtension" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.3.tgz", + "integrity": "sha512-DF49+WeV5py4zO5hhobp60jjsDSK0lAqA0OuKBLBvp423HPWQcCbhZz3JgyfIewsEz2f8U+X75xNIFHdiXZm2w==", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "9.0.2", + "vscode-languageserver-types": "3.18.3" + } + }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.14.tgz", + "integrity": "sha512-EQyqJMi552E4ZTf46izQ4Fj6XquqxCySR3J5ZSD1SisMf6RfpeOWHxGBE8Gr6V0/3GHIGdAzDn8F8+1nTGCnoQ==", + "license": "MIT" + }, + "node_modules/vscode-languageserver-types": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.3.tgz", + "integrity": "sha512-XIlzJ7Qp/jzSI1ds7/FwPAWrPeTZA7pAtlW4hdJ1J6xXWJL6dR9QYnDhJOdLzdKhUQ5Mm6mvUMw+3DcOQQasPw==", + "license": "MIT" + }, + "node_modules/vscode-languageserver/node_modules/vscode-jsonrpc": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz", + "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageserver/node_modules/vscode-languageserver-protocol": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz", + "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==", + "license": "MIT", + "dependencies": { + "vscode-jsonrpc": "8.2.0", + "vscode-languageserver-types": "3.17.5" + } + }, + "node_modules/vscode-languageserver/node_modules/vscode-languageserver-types": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz", + "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==", + "license": "MIT" + }, + "node_modules/vscode-nls": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.2.0.tgz", + "integrity": "sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==", + "license": "MIT" + }, + "node_modules/vscode-uri": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.2.0.tgz", + "integrity": "sha512-m2gXo3bn0G1kT9InzMf07fTbqMbGtyckj3bH5ktLO+1Ssv+yiATZ4dhwaQv9UZWxJh6E9IFGnQyjgWVDWVBDrg==", + "license": "MIT" + }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", @@ -7804,6 +8558,52 @@ "@esbuild/win32-x64": "0.28.1" } }, + "node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ws": { "version": "8.21.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", @@ -7848,6 +8648,91 @@ "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", "license": "MIT" }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.1.tgz", + "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yaml-language-server": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.23.0.tgz", + "integrity": "sha512-3qVyCOexLCWw06PQa5kRPwvMWMZ/eZeCRWUvgD6a0OkqL/4iCnxy2WumbWifa937Uo5xhyWJ0uxlU39ljhNh7A==", + "license": "MIT", + "dependencies": { + "@vscode/l10n": "^0.0.18", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "ajv-i18n": "^4.2.0", + "prettier": "^3.8.1", + "request-light": "^0.5.7", + "vscode-json-languageservice": "4.1.8", + "vscode-languageserver": "^9.0.0", + "vscode-languageserver-textdocument": "^1.0.1", + "vscode-languageserver-types": "^3.16.0", + "vscode-uri": "^3.0.2", + "yaml": "2.8.3" + }, + "bin": { + "yaml-language-server": "bin/yaml-language-server" + } + }, + "node_modules/yaml-language-server/node_modules/request-light": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/request-light/-/request-light-0.5.8.tgz", + "integrity": "sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==", + "license": "MIT" + }, + "node_modules/yaml-language-server/node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, + "node_modules/yargs": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-18.2.0.tgz", + "integrity": "sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==", + "license": "MIT", + "dependencies": { + "cliui": "^9.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "string-width": "^8.2.1", + "y18n": "^5.0.5", + "yargs-parser": "^22.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=23" + } + }, "node_modules/yargs-parser": { "version": "22.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-22.0.0.tgz", From 89c3508e0bdb5ba437450c2a96e015021fb592fa Mon Sep 17 00:00:00 2001 From: ethanmci Date: Wed, 23 Sep 2026 19:13:47 -0400 Subject: [PATCH 07/23] Remove unused imports and clean up layout styles in ContentLayout.astro --- src/layouts/ContentLayout.astro | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/layouts/ContentLayout.astro b/src/layouts/ContentLayout.astro index fb41efd..3c06c1b 100644 --- a/src/layouts/ContentLayout.astro +++ b/src/layouts/ContentLayout.astro @@ -1,16 +1,11 @@ --- -import { getCollection, render } from "astro:content"; -import { getRelativeLocaleUrl } from "astro:i18n"; import TableOfContents from "@components/TableOfContents.svelte"; -import { defaultLang, languages } from "@i18n/ui"; -import { getLangFromUrl } from "@i18n/utils"; interface Props { title: string; tocHeaders?: TocItem[] | undefined; } -const lang = getLangFromUrl(Astro.url); const { title, tocHeaders = [] } = Astro.props; --- @@ -33,9 +28,6 @@ const { title, tocHeaders = [] } = Astro.props; From f026fe831324d04edecb49eb6e8ffd2e6183f268 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 00:46:20 -0400 Subject: [PATCH 13/23] Modifying update card body font size for better visual hierarchy --- src/components/UpdateCard.svelte | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/components/UpdateCard.svelte b/src/components/UpdateCard.svelte index c6c6679..202ed5d 100644 --- a/src/components/UpdateCard.svelte +++ b/src/components/UpdateCard.svelte @@ -65,6 +65,12 @@ let updateLinkElement: HTMLAnchorElement | null = $state(null); text-underline-offset var(--timing-fast); } + .body { + font-size: var(--font-sm); + line-height: 1.5em; + margin-block-end: var(--space-xs); + } + :global(.details-arrow) { opacity: 0; visibility: hidden; From 41b9382a90ec6792d048d80af92f7fb0aaecdf40 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 00:46:50 -0400 Subject: [PATCH 14/23] setting up preview for guidelines and updates, and adding char limit to descriptions --- public/admin/config.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/public/admin/config.yml b/public/admin/config.yml index 6390370..036ef20 100644 --- a/public/admin/config.yml +++ b/public/admin/config.yml @@ -5,6 +5,8 @@ backend: branch: main base_url: https://sveltia-cms-auth.hla-201.workers.dev auth: [oauth] + site_url: https://hyperlayering.org/ + preview_context: Cloudflare Workers media_folder: /public/assets public_folder: /assets @@ -25,12 +27,14 @@ i18n: structure: multiple_folders locales: [en, ja] default_locale: en + omit_default_locale_from_preview_path: true collections: - name: updates label: Updates label_singular: Update folder: src/content/updates + preview_path: "/{{locale}}/updates/{{slug}}" i18n: true fields: - name: title @@ -50,6 +54,7 @@ collections: label: Description widget: string i18n: true + maxlength: 250 - name: showToc label: Show Table of Contents comment: Use Table of Contents for long posts only. @@ -78,6 +83,7 @@ collections: label: Guidelines label_singular: Update folder: src/content/guidelines + preview_path: "/{{locale}}/guidelines/{{slug}}" i18n: true fields: - name: title From b1f7b2854be9d5dfbc1dba3013eb69867dba1c1b Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 00:46:56 -0400 Subject: [PATCH 15/23] Update page title for admin panel to reflect correct branding --- public/admin/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/admin/index.html b/public/admin/index.html index 8126a9d..55c0acf 100644 --- a/public/admin/index.html +++ b/public/admin/index.html @@ -3,7 +3,7 @@ - Sveltia CMS + Hyperlayering.org | Admin Panel From 571ae60ef3bbabd7c54f750c0a920834dcaaa9b2 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 00:47:01 -0400 Subject: [PATCH 16/23] Refactor updates page layout for improved structure and styling --- src/pages/[...lang]/updates/index.astro | 38 +++++++++++++++++-------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/src/pages/[...lang]/updates/index.astro b/src/pages/[...lang]/updates/index.astro index 805e2db..9115fdb 100644 --- a/src/pages/[...lang]/updates/index.astro +++ b/src/pages/[...lang]/updates/index.astro @@ -9,26 +9,27 @@ import BaseLayout from "@layouts/BaseLayout.astro"; const lang = getLangFromUrl(Astro.url); const t = useTranslations(lang); const updates = ( - await getCollection("update", ({ id }) => { - const [updateLang, updateId] = id.split("/"); - if (updateLang === lang) return updateId; - }) + await getCollection("update", ({ id }) => { + const [updateLang, updateId] = id.split("/"); + if (updateLang === lang) return updateId; + }) ).sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); export async function getStaticPaths() { - const locales = Object.keys(languages); - return locales.map((locale) => ({ - params: { lang: locale !== defaultLang ? locale : undefined }, - })); + const locales = Object.keys(languages); + return locales.map((locale) => ({ + params: { lang: locale !== defaultLang ? locale : undefined }, + })); } ---
-
-

{t("page.updates.title")}

-
-
+
+
+

{t("page.updates.title")}

+
+
{ updates.map((post) => { const [, updateId] = post.id.split("/"); @@ -49,3 +50,16 @@ export async function getStaticPaths() {
+ + From a4ccf7528472b15cb9b45098ab0f895aada6303d Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 00:47:05 -0400 Subject: [PATCH 17/23] Update font size for xs to enhance typography consistency --- src/styles/variables.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/variables.css b/src/styles/variables.css index 5f7d82d..d5cb935 100644 --- a/src/styles/variables.css +++ b/src/styles/variables.css @@ -44,7 +44,7 @@ --round-full: 100%; /* ==== Typography ==== */ - --font-xs: clamp(0.6rem, 0.6rem + 0.25vw, 0.625rem); + --font-xs: clamp(0.7rem, 0.6rem + 0.25vw, 0.625rem); --font-sm: clamp(0.8rem, 0.75rem + 0.25vw, 0.875rem); --font-base: clamp(1rem, 0.9rem + 0.5vw, 1.125rem); --font-lg: clamp(1.125rem, 1rem + 0.75vw, 1.375rem); From 5ab91212a172336512393660a14975fc5ab1ce75 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 13:20:47 -0400 Subject: [PATCH 18/23] Added inline styling --- src/styles/base.css | 11 +++++++++++ src/styles/variables.css | 3 +++ 2 files changed, 14 insertions(+) diff --git a/src/styles/base.css b/src/styles/base.css index a074e71..387c465 100644 --- a/src/styles/base.css +++ b/src/styles/base.css @@ -223,6 +223,17 @@ } } } + + :not(pre) > code { + font-family: var(--font-mono); + font-weight: normal; + font-size: 0.8em; + color: var(--text-accent); + padding: var(--space-xxs); + border-radius: var(--round-xs); + background: var(--bg-secondary); + border: 1px solid var(--bg-tertiary); + } } /* === UTILITIES === */ diff --git a/src/styles/variables.css b/src/styles/variables.css index d5cb935..f0d4edc 100644 --- a/src/styles/variables.css +++ b/src/styles/variables.css @@ -1,5 +1,6 @@ @import url("https://fonts.googleapis.com/css2?family=Archivo:ital,wdth,wght@0,62..125,100..900;1,62..125,100..900&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap"); +@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@300..700&display=swap'); :root { --header-height: 68px; @@ -24,6 +25,7 @@ --text-main: light-dark(var(--black), var(--white)); --text-secondary: light-dark(var(--dark-grey), var(--mid-white)); --text-tertiary: light-dark(var(--mid-grey), var(--light-grey)); + --text-accent: light-dark(oklch(from var(--green) calc(l - 0.2) c h), var(--green)); --accent-pair-text: var(--black); --bg-primary: light-dark(var(--white), var(--black)); --bg-secondary: light-dark(var(--off-white), var(--dark-grey)); @@ -56,6 +58,7 @@ --paragraph-width: 80ch; --heading-width: 100ch; --font-wide: 125%; + --font-mono: var("Fira Code", monospace); /* ==== Timing ==== */ --timing-fastest: 100ms; From 6f403e017d5d5e70f7c2e55c71dd044571d1e6c8 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 16:17:21 -0400 Subject: [PATCH 19/23] small landing paragraph styling fix --- src/pages/[...lang]/index.astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/[...lang]/index.astro b/src/pages/[...lang]/index.astro index dd60894..d8473a2 100644 --- a/src/pages/[...lang]/index.astro +++ b/src/pages/[...lang]/index.astro @@ -105,7 +105,7 @@ export async function getStaticPaths() { justify-content: center; align-items: center; min-height: 30vh; - max-width: var(--paragraph-width); + max-width: min(100%, var(--paragraph-width)); margin: auto; } From a771e71c244833c2710983b0a6bf8577d1e5ed2f Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 17:24:57 -0400 Subject: [PATCH 20/23] css formatting changes --- src/styles/base.css | 5 ++++- src/styles/variables.css | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/styles/base.css b/src/styles/base.css index 387c465..5510329 100644 --- a/src/styles/base.css +++ b/src/styles/base.css @@ -94,7 +94,10 @@ --_header-scroll-margin: var(--header-scroll-margin, 1); text-wrap: balance; color: var(--text-main); - scroll-margin-block-start: calc(var(--header-height) * var(--_header-scroll-margin)); + scroll-margin-block-start: calc( + var(--header-height) * + var(--_header-scroll-margin) + ); } h1 { diff --git a/src/styles/variables.css b/src/styles/variables.css index f0d4edc..30dc33f 100644 --- a/src/styles/variables.css +++ b/src/styles/variables.css @@ -1,6 +1,6 @@ @import url("https://fonts.googleapis.com/css2?family=Archivo:ital,wdth,wght@0,62..125,100..900;1,62..125,100..900&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap"); -@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@300..700&display=swap'); +@import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@300..700&display=swap"); :root { --header-height: 68px; @@ -25,7 +25,10 @@ --text-main: light-dark(var(--black), var(--white)); --text-secondary: light-dark(var(--dark-grey), var(--mid-white)); --text-tertiary: light-dark(var(--mid-grey), var(--light-grey)); - --text-accent: light-dark(oklch(from var(--green) calc(l - 0.2) c h), var(--green)); + --text-accent: light-dark( + oklch(from var(--green) calc(l - 0.2) c h), + var(--green) + ); --accent-pair-text: var(--black); --bg-primary: light-dark(var(--white), var(--black)); --bg-secondary: light-dark(var(--off-white), var(--dark-grey)); From fc9dc9c2c2b34ba8004ea098264bc1c0beeb836f Mon Sep 17 00:00:00 2001 From: ethanmci Date: Fri, 25 Sep 2026 17:25:02 -0400 Subject: [PATCH 21/23] formatting changes --- src/pages/[...lang]/updates/index.astro | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/pages/[...lang]/updates/index.astro b/src/pages/[...lang]/updates/index.astro index 9115fdb..dbbc3fa 100644 --- a/src/pages/[...lang]/updates/index.astro +++ b/src/pages/[...lang]/updates/index.astro @@ -9,17 +9,17 @@ import BaseLayout from "@layouts/BaseLayout.astro"; const lang = getLangFromUrl(Astro.url); const t = useTranslations(lang); const updates = ( - await getCollection("update", ({ id }) => { - const [updateLang, updateId] = id.split("/"); - if (updateLang === lang) return updateId; - }) + await getCollection("update", ({ id }) => { + const [updateLang, updateId] = id.split("/"); + if (updateLang === lang) return updateId; + }) ).sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); export async function getStaticPaths() { - const locales = Object.keys(languages); - return locales.map((locale) => ({ - params: { lang: locale !== defaultLang ? locale : undefined }, - })); + const locales = Object.keys(languages); + return locales.map((locale) => ({ + params: { lang: locale !== defaultLang ? locale : undefined }, + })); } --- From 704312504d8c9217f2561ff493c89532601fde3a Mon Sep 17 00:00:00 2001 From: ethanmci Date: Tue, 29 Sep 2026 12:44:12 -0400 Subject: [PATCH 22/23] Comment explaining on header scroll margins --- src/styles/base.css | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/styles/base.css b/src/styles/base.css index 5510329..239ab8c 100644 --- a/src/styles/base.css +++ b/src/styles/base.css @@ -91,12 +91,16 @@ h4, h5, h6 { + /* + Anywhere the scroll margin needs to be increased eg. sticky ToC pages use + --header-scroll-margin to multiply the default scroll margin on headers + */ --_header-scroll-margin: var(--header-scroll-margin, 1); text-wrap: balance; color: var(--text-main); - scroll-margin-block-start: calc( + scroll-margin-block-start: calc(( var(--header-height) * - var(--_header-scroll-margin) + var(--_header-scroll-margin) + var(--space-xxs)) ); } From c618f7fef8b6964c90e3fa10e42f1f7c3378eda3 Mon Sep 17 00:00:00 2001 From: ethanmci Date: Tue, 29 Sep 2026 12:45:45 -0400 Subject: [PATCH 23/23] biome formatting --- src/styles/base.css | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/styles/base.css b/src/styles/base.css index 239ab8c..ecf4cdb 100644 --- a/src/styles/base.css +++ b/src/styles/base.css @@ -98,9 +98,8 @@ --_header-scroll-margin: var(--header-scroll-margin, 1); text-wrap: balance; color: var(--text-main); - scroll-margin-block-start: calc(( - var(--header-height) * - var(--_header-scroll-margin) + var(--space-xxs)) + scroll-margin-block-start: calc( + (var(--header-height) * var(--_header-scroll-margin) + var(--space-xxs)) ); }