From 6efe80362db4f85c70903941fd788eea6daf1622 Mon Sep 17 00:00:00 2001 From: "leonardo.olivo" <1leonardo.olivo@gmail.com> Date: Thu, 20 Nov 2025 13:50:21 +0000 Subject: [PATCH 01/17] feat: add base formation section --- src/components/Timeline.astro | 88 +++++++++++++++++++++ src/content.config.ts | 17 ++++ src/content/formation/founding.yaml | 11 +++ src/content/formation/office.yaml | 11 +++ src/content/pages/de/past/formation.mdx | 19 +++++ src/layouts/sections/FormationSection.astro | 41 ++++++++++ 6 files changed, 187 insertions(+) create mode 100644 src/components/Timeline.astro create mode 100644 src/content/formation/founding.yaml create mode 100644 src/content/formation/office.yaml create mode 100644 src/layouts/sections/FormationSection.astro diff --git a/src/components/Timeline.astro b/src/components/Timeline.astro new file mode 100644 index 00000000..90c56925 --- /dev/null +++ b/src/components/Timeline.astro @@ -0,0 +1,88 @@ +--- +type Props = { + elements: { + text: string; + title: string; + }[]; +}; + +const { elements } = Astro.props; +--- + +
+
    + { + elements.map((element) => ( +
  1. +
    {element.title}
    +

    {element.text}

    +
  2. + )) + } +
+
+ + diff --git a/src/content.config.ts b/src/content.config.ts index 972a3000..904e089e 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -138,6 +138,22 @@ const galleriesCollection = defineCollection({ ), }); +const formationCollection = defineCollection({ + loader: i18nContentLoader({ pattern: "**/[^_]*.yaml", base: "./src/content/formation" }), + schema: extendI18nLoaderSchema( + z.object({ + items: localized( + z.array( + z.object({ + title: z.string(), + text: z.string(), + }), + ), + ), + }), + ), +}); + export const collections = { navigation: navigationCollection, pages: pagesCollection, @@ -148,4 +164,5 @@ export const collections = { technologies: technologiesCollection, team: teamCollection, galleries: galleriesCollection, + formation: formationCollection, }; diff --git a/src/content/formation/founding.yaml b/src/content/formation/founding.yaml new file mode 100644 index 00000000..5cf1adba --- /dev/null +++ b/src/content/formation/founding.yaml @@ -0,0 +1,11 @@ +items: + de: + - title: Lorem + text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Lorem + text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + en: + - title: Lorem + text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Lorem + text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \ No newline at end of file diff --git a/src/content/formation/office.yaml b/src/content/formation/office.yaml new file mode 100644 index 00000000..5cf1adba --- /dev/null +++ b/src/content/formation/office.yaml @@ -0,0 +1,11 @@ +items: + de: + - title: Lorem + text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Lorem + text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + en: + - title: Lorem + text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Lorem + text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod \ No newline at end of file diff --git a/src/content/pages/de/past/formation.mdx b/src/content/pages/de/past/formation.mdx index c071ac02..397c6f8d 100644 --- a/src/content/pages/de/past/formation.mdx +++ b/src/content/pages/de/past/formation.mdx @@ -2,3 +2,22 @@ path: entstehung title: Entstehung --- + +import FormationSection from "../../../../layouts/sections/FormationSection.astro"; +import Divider from "../../../../components/Divider.astro"; + + +

Gründung

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse cillum +
+ + + + +

Erstes Büro

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna + aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse cillum +
\ No newline at end of file diff --git a/src/layouts/sections/FormationSection.astro b/src/layouts/sections/FormationSection.astro new file mode 100644 index 00000000..0dc6f20e --- /dev/null +++ b/src/layouts/sections/FormationSection.astro @@ -0,0 +1,41 @@ +--- +import { currentLocale } from "astro-nanostores-i18n:runtime"; +import Timeline from "../../components/Timeline.astro"; +import { getCollection } from "astro:content"; + +type Props = { + key: string; + class?: string; +}; + +const { key, class: className } = Astro.props; + +const locale = currentLocale.get(); + +const timelineCollection = await getCollection("formation", (entry) => entry.data.locale === locale); + +const formationData = timelineCollection + .filter((t) => t.id.includes(key)) + .flatMap((t) => { + if (Array.isArray(t.data.items)) { + return t.data.items.map((item) => ({ ...item })); + } + return []; + }); +--- + +
+
+ + +
+ +
+ + From 8b8244bc08ee182f7055606b01bf001a3f3e4e9b Mon Sep 17 00:00:00 2001 From: "leonardo.olivo" <1leonardo.olivo@gmail.com> Date: Thu, 20 Nov 2025 16:30:09 +0000 Subject: [PATCH 02/17] feat: timeline fine tuning, added en formation --- src/components/Timeline.astro | 14 ++++++---- src/content/formation/evolution.yaml | 15 +++++++++++ src/content/formation/founding.yaml | 16 ++++++------ src/content/formation/office.yaml | 20 ++++++++------ src/content/pages/de/past/formation.mdx | 11 +++++++- src/content/pages/en/past/formation.mdx | 29 +++++++++++++++++++++ src/layouts/Shell.css | 1 + src/layouts/sections/FormationSection.astro | 5 ++-- 8 files changed, 87 insertions(+), 24 deletions(-) create mode 100644 src/content/formation/evolution.yaml diff --git a/src/components/Timeline.astro b/src/components/Timeline.astro index 90c56925..51b52bc8 100644 --- a/src/components/Timeline.astro +++ b/src/components/Timeline.astro @@ -4,9 +4,12 @@ type Props = { text: string; title: string; }[]; + shortSpine?: boolean; }; -const { elements } = Astro.props; +const { elements, shortSpine = false } = Astro.props; + +const spineHeight = shortSpine ? "100%" : "calc(100% + var(--size-height-divider) + (2 * var(--size-gutter-massive)))"; ---
@@ -22,7 +25,7 @@ const { elements } = Astro.props;
- diff --git a/src/layouts/sections/FormationSection.astro b/src/layouts/sections/FormationSection.astro index 96f6e838..641e6a16 100644 --- a/src/layouts/sections/FormationSection.astro +++ b/src/layouts/sections/FormationSection.astro @@ -39,4 +39,11 @@ const formationData = timelineCollection column-gap: 1.5rem; grid-template-columns: 60% 40%; } + + @media screen and (max-width: 1025px) { + section { + grid-template-columns: 100%; + row-gap: 1rem; + } + } From 985e6f339187722c5899f942a0bb87c942bf407a Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 1 Dec 2025 09:08:39 +0000 Subject: [PATCH 04/17] chore: add changeset --- .changeset/little-pianos-poke.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/little-pianos-poke.md diff --git a/.changeset/little-pianos-poke.md b/.changeset/little-pianos-poke.md new file mode 100644 index 00000000..71579cf7 --- /dev/null +++ b/.changeset/little-pianos-poke.md @@ -0,0 +1,5 @@ +--- +"openscript-ch-website": patch +--- + +Add formation page From 4729b1b41203490b0f7e9ae3fcd2842707b0071f Mon Sep 17 00:00:00 2001 From: Robin Date: Mon, 1 Dec 2025 10:12:51 +0000 Subject: [PATCH 05/17] docs: add formation content --- src/content/formation/founding.yaml | 16 +++++++------- src/content/pages/de/past/formation.mdx | 26 ++++++++++++++--------- src/content/pages/en/past/formation.mdx | 28 +++++++++++++++---------- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/src/content/formation/founding.yaml b/src/content/formation/founding.yaml index 0d1a8b95..d7178403 100644 --- a/src/content/formation/founding.yaml +++ b/src/content/formation/founding.yaml @@ -1,11 +1,11 @@ items: de: - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Web-Domain + text: Bereits am 24. April 2007 wurde die Domain openscript.ch registriert. + - title: Handelsregistereintrag + text: Seit dem 23. Januar 2020 sind wir im Handelsregister eingetragen. en: - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Web Domain + text: The domain openscript.ch was already registered on April 24, 2007. + - title: Commercial Register Entry + text: We have been registered in the commercial register since January 23, 2020. diff --git a/src/content/pages/de/past/formation.mdx b/src/content/pages/de/past/formation.mdx index 05f5e192..bf778dc8 100644 --- a/src/content/pages/de/past/formation.mdx +++ b/src/content/pages/de/past/formation.mdx @@ -8,25 +8,31 @@ import Divider from "../../../../components/Divider.astro";

Gründung

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum + + Obwohl die Idee und der Name schon einige Zeit zuvor existierten, wurde die Firma offiziell im Januar 2020 von Robin gegründet. Bald nach der Gründung ist Diego als zweiten Mitgründer dazugestossen. Fortan arbeiteten die beiden daran, die ersten Softwareprojekte umzusetzen. +
-

Erstes Büro

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum +

Büro und Mitarbeiter

+ + Zuerst dachten wir, dass wir einfach von zu Hause aus arbeiten. Doch als wir davon erfuhren, dass in Oerlikon das ehemalige Swissôtel in eine WG für Studenten und Startups umgewandelt wird, haben wir uns sofort beworben und Glück gehabt. Die Geschichte kann [hier](https://www.srf.ch/news/schweiz/mit-rund-300-mitbewohnern-dieser-ehemalige-hotelturm-wird-zur-mega-wg) nachgelesen werden. Somit hatten wir von Februar 2021 bis Ende Jahr unser erstes Büro mitten in Oerlikon. + + Dabei haben wir festgestellt, dass es uns sehr hilft, wenn wir uns regelmässig persönlich austauschen können. Deshalb haben wir uns entschieden, auch nach der Zwischennutzung des Swissôtels ein Büro zu mieten. Schnell haben wir ein passendes Büro in Glattbrugg gefunden, welches wir seit Anfang 2022 nutzen. + + In der Zwischenzeit sind auch weitere Mitarbeiter zu uns gestossen, welche uns bei der Umsetzung unserer Projekte unterstützen. +

Entwicklung

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum + + Seither haben wir uns stetig weiterentwickelt und neue Projekte realisiert, die unsere Vision und Mission unterstützen. Wir freuen uns auf die kommenden Herausforderungen und Chancen, die vor uns liegen. + + Möchtest du auch Teil unserer Reise werden? Schau dir unsere [Jobs-Seite](../zukunft/jobs) an oder nimm Kontakt auf, falls du dein Projekt mit uns umsetzen möchtest! +
diff --git a/src/content/pages/en/past/formation.mdx b/src/content/pages/en/past/formation.mdx index 8c6dbeed..5e9b34a1 100644 --- a/src/content/pages/en/past/formation.mdx +++ b/src/content/pages/en/past/formation.mdx @@ -9,25 +9,31 @@ import Divider from "../../../../components/Divider.astro";

Founding

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum + + Although the idea and name had existed for some time before, the company was officially founded by Robin in January 2020. Shortly after the founding, Diego joined as the second co-founder. From then on, the two worked together to implement the first software projects. +
-

First Office

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum +

Office and employees

+ + At first, we thought we would simply work from home. But when we learned that the former Swissôtel in Oerlikon was being converted into shared accommodation for students and startups, we applied immediately and were lucky. The story can be read [here](https://www.srf.ch/news/schweiz/mit-rund-300-mitbewohnern-dieser-ehemalige-hotelturm-wird-zur-mega-wg). Thus, we had our first office in the heart of Oerlikon from February 2021 until the end of the year. + + In doing so, we realized that it helps us greatly when we can exchange ideas in person regularly. Therefore, we decided to rent an office even after the interim use of the Swissôtel. We quickly found a suitable office in Glattbrugg, which we have been using since early 2022. + + In the meantime, additional employees have joined us, supporting us in the implementation of our projects. +

Evolution

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna - aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum -
\ No newline at end of file + + Since then, we have continuously evolved and realized new projects that support our vision and mission. We look forward to the upcoming challenges and opportunities that lie ahead. + + Would you like to become part of our journey? Check out our [jobs page](../future/jobs) or get in touch if you want to realize your project with us! + + From 1c7f72b08d7be718ee6d05bad3f2b81596ee4e22 Mon Sep 17 00:00:00 2001 From: "leonardo.olivo" <1leonardo.olivo@gmail.com> Date: Wed, 3 Dec 2025 09:11:10 +0000 Subject: [PATCH 06/17] feat: add dot at beginning of spine. Add TimelineEntry. --- src/components/Timeline.astro | 91 +++++++-------------- src/components/TimelineEntry.astro | 59 +++++++++++++ src/content/pages/de/past/formation.mdx | 6 +- src/content/pages/en/past/formation.mdx | 7 +- src/layouts/sections/FormationSection.astro | 29 ++++++- 5 files changed, 120 insertions(+), 72 deletions(-) create mode 100644 src/components/TimelineEntry.astro diff --git a/src/components/Timeline.astro b/src/components/Timeline.astro index 8615b1e3..0cd45bae 100644 --- a/src/components/Timeline.astro +++ b/src/components/Timeline.astro @@ -1,42 +1,24 @@ --- type Props = { - elements: { - text: string; - title: string; - }[]; shortSpine?: boolean; }; -const { elements, shortSpine = false } = Astro.props; +const { shortSpine = false } = Astro.props; -const spineHeight = shortSpine ? "100%" : "calc(100% + var(--size-height-divider) + (2 * var(--size-gutter-massive)))"; const displayTriangle = shortSpine ? "none" : "absolute"; --- -
+
+
    - { - elements.map((element) => ( -
  1. -
    {element.title}
    -

    {element.text}

    -
  2. - )) - } +
- diff --git a/src/components/TimelineEntry.astro b/src/components/TimelineEntry.astro new file mode 100644 index 00000000..ab31ae66 --- /dev/null +++ b/src/components/TimelineEntry.astro @@ -0,0 +1,59 @@ +--- + +--- + +
  • + +
  • + + diff --git a/src/content/pages/de/past/formation.mdx b/src/content/pages/de/past/formation.mdx index bf778dc8..1d95b4a7 100644 --- a/src/content/pages/de/past/formation.mdx +++ b/src/content/pages/de/past/formation.mdx @@ -7,7 +7,7 @@ import FormationSection from "../../../../layouts/sections/FormationSection.astr import Divider from "../../../../components/Divider.astro"; -

    Gründung

    +

    Gründung

    Obwohl die Idee und der Name schon einige Zeit zuvor existierten, wurde die Firma offiziell im Januar 2020 von Robin gegründet. Bald nach der Gründung ist Diego als zweiten Mitgründer dazugestossen. Fortan arbeiteten die beiden daran, die ersten Softwareprojekte umzusetzen. @@ -16,7 +16,7 @@ import Divider from "../../../../components/Divider.astro"; -

    Büro und Mitarbeiter

    +

    Büro und Mitarbeiter

    Zuerst dachten wir, dass wir einfach von zu Hause aus arbeiten. Doch als wir davon erfuhren, dass in Oerlikon das ehemalige Swissôtel in eine WG für Studenten und Startups umgewandelt wird, haben wir uns sofort beworben und Glück gehabt. Die Geschichte kann [hier](https://www.srf.ch/news/schweiz/mit-rund-300-mitbewohnern-dieser-ehemalige-hotelturm-wird-zur-mega-wg) nachgelesen werden. Somit hatten wir von Februar 2021 bis Ende Jahr unser erstes Büro mitten in Oerlikon. @@ -29,7 +29,7 @@ import Divider from "../../../../components/Divider.astro"; -

    Entwicklung

    +

    Entwicklung

    Seither haben wir uns stetig weiterentwickelt und neue Projekte realisiert, die unsere Vision und Mission unterstützen. Wir freuen uns auf die kommenden Herausforderungen und Chancen, die vor uns liegen. diff --git a/src/content/pages/en/past/formation.mdx b/src/content/pages/en/past/formation.mdx index 5e9b34a1..4b1ec9c5 100644 --- a/src/content/pages/en/past/formation.mdx +++ b/src/content/pages/en/past/formation.mdx @@ -3,12 +3,11 @@ path: formation title: Formation --- - import FormationSection from "../../../../layouts/sections/FormationSection.astro"; import Divider from "../../../../components/Divider.astro"; -

    Founding

    +

    Founding

    Although the idea and name had existed for some time before, the company was officially founded by Robin in January 2020. Shortly after the founding, Diego joined as the second co-founder. From then on, the two worked together to implement the first software projects. @@ -17,7 +16,7 @@ import Divider from "../../../../components/Divider.astro"; -

    Office and employees

    +

    Office and employees

    At first, we thought we would simply work from home. But when we learned that the former Swissôtel in Oerlikon was being converted into shared accommodation for students and startups, we applied immediately and were lucky. The story can be read [here](https://www.srf.ch/news/schweiz/mit-rund-300-mitbewohnern-dieser-ehemalige-hotelturm-wird-zur-mega-wg). Thus, we had our first office in the heart of Oerlikon from February 2021 until the end of the year. @@ -30,7 +29,7 @@ import Divider from "../../../../components/Divider.astro"; -

    Evolution

    +

    Evolution

    Since then, we have continuously evolved and realized new projects that support our vision and mission. We look forward to the upcoming challenges and opportunities that lie ahead. diff --git a/src/layouts/sections/FormationSection.astro b/src/layouts/sections/FormationSection.astro index 641e6a16..e77d415b 100644 --- a/src/layouts/sections/FormationSection.astro +++ b/src/layouts/sections/FormationSection.astro @@ -2,11 +2,13 @@ import { currentLocale } from "astro-nanostores-i18n:runtime"; import Timeline from "../../components/Timeline.astro"; import { getCollection } from "astro:content"; +import TimelineEntry from "../../components/TimelineEntry.astro"; type Props = { key: string; class?: string; last?: boolean; + start?: boolean; }; const { key, class: className, last } = Astro.props; @@ -27,17 +29,27 @@ const formationData = timelineCollection
    -
    - +
    + + { + formationData.map((element) => ( + +
    {element.title}
    +

    {element.text}

    +
    + )) + } +
    +
    From 186377f7f979bc500d757f30fa178828870edb20 Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 5 Dec 2025 07:32:33 +0000 Subject: [PATCH 07/17] chore: upgrade dependencies --- package.json | 16 +- pnpm-lock.yaml | 505 ++++++++++++++++++++++++------------------------- 2 files changed, 255 insertions(+), 266 deletions(-) diff --git a/package.json b/package.json index 31a10fcb..1308db7c 100644 --- a/package.json +++ b/package.json @@ -36,9 +36,9 @@ "@fontsource/fira-mono": "^5.2.7", "@fontsource/pt-sans": "^5.2.8", "@nanostores/i18n": "^1.2.2", - "astro": "^5.16.3", - "astro-loader-i18n": "^0.9.1", - "astro-nanostores-i18n": "^0.2.1", + "astro": "^5.16.4", + "astro-loader-i18n": "^0.10.7", + "astro-nanostores-i18n": "^0.2.3", "embla-carousel": "^8.6.0", "embla-carousel-autoplay": "^8.6.0", "embla-carousel-class-names": "^8.6.0", @@ -57,8 +57,8 @@ "@openscript/unplugin-favicons": "^1.1.8", "@types/mdast": "^4.0.4", "@types/node": "^24.10.1", - "@typescript-eslint/parser": "^8.48.0", - "@vitest/coverage-v8": "4.0.14", + "@typescript-eslint/parser": "^8.48.1", + "@vitest/coverage-v8": "4.0.15", "astro-eslint-parser": "^1.2.2", "eslint": "^9.39.1", "eslint-config-prettier": "^10.1.8", @@ -68,12 +68,12 @@ "favicons": "^7.2.0", "globals": "^16.5.0", "jiti": "^2.6.1", - "prettier": "^3.7.3", + "prettier": "^3.7.4", "prettier-plugin-astro": "^0.14.1", "sirv": "^3.0.2", "typescript": "^5.9.3", - "typescript-eslint": "^8.48.0", - "vitest": "4.0.14" + "typescript-eslint": "^8.48.1", + "vitest": "4.0.15" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1beed017..85774cd2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,10 +13,10 @@ importers: dependencies: '@astrojs/check': specifier: ^0.9.6 - version: 0.9.6(prettier-plugin-astro@0.14.1)(prettier@3.7.3)(typescript@5.9.3) + version: 0.9.6(prettier-plugin-astro@0.14.1)(prettier@3.7.4)(typescript@5.9.3) '@astrojs/mdx': specifier: ^4.3.12 - version: 4.3.12(astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)) + version: 4.3.12(astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)) '@astrojs/rss': specifier: ^4.0.14 version: 4.0.14 @@ -33,14 +33,14 @@ importers: specifier: ^1.2.2 version: 1.2.2(nanostores@1.0.1) astro: - specifier: ^5.16.3 - version: 5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) + specifier: ^5.16.4 + version: 5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) astro-loader-i18n: - specifier: ^0.9.1 - version: 0.9.1(astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)) + specifier: ^0.10.7 + version: 0.10.7(astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)) astro-nanostores-i18n: - specifier: ^0.2.1 - version: 0.2.1(@nanostores/i18n@1.2.2(nanostores@1.0.1))(astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2))(nanostores@1.0.1) + specifier: ^0.2.3 + version: 0.2.3(@nanostores/i18n@1.2.2(nanostores@1.0.1))(astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2))(nanostores@1.0.1) embla-carousel: specifier: ^8.6.0 version: 8.6.0 @@ -91,11 +91,11 @@ importers: specifier: ^24.10.1 version: 24.10.1 '@typescript-eslint/parser': - specifier: ^8.48.0 - version: 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.48.1 + version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': - specifier: 4.0.14 - version: 4.0.14(vitest@4.0.14(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2)) + specifier: 4.0.15 + version: 4.0.15(vitest@4.0.15(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2)) astro-eslint-parser: specifier: ^1.2.2 version: 1.2.2 @@ -113,7 +113,7 @@ importers: version: 6.10.2(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-prettier: specifier: ^5.5.4 - version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.3) + version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4) favicons: specifier: ^7.2.0 version: 7.2.0 @@ -124,8 +124,8 @@ importers: specifier: ^2.6.1 version: 2.6.1 prettier: - specifier: ^3.7.3 - version: 3.7.3 + specifier: ^3.7.4 + version: 3.7.4 prettier-plugin-astro: specifier: ^0.14.1 version: 0.14.1 @@ -136,11 +136,11 @@ importers: specifier: ^5.9.3 version: 5.9.3 typescript-eslint: - specifier: ^8.48.0 - version: 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + specifier: ^8.48.1 + version: 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) vitest: - specifier: 4.0.14 - version: 4.0.14(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2) + specifier: 4.0.15 + version: 4.0.15(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2) packages: @@ -156,8 +156,8 @@ packages: '@astrojs/internal-helpers@0.7.5': resolution: {integrity: sha512-vreGnYSSKhAjFJCWAwe/CNhONvoc5lokxtRoZims+0wa3KbHBdPHSSthJsKxPd8d/aic6lWKpRTYGY/hsgK6EA==} - '@astrojs/language-server@2.16.1': - resolution: {integrity: sha512-OzTpyEPeCPLpp0oyeI/fSCBYemlVos0GewCTYglAW+TAJAMR3nRl5nYlf9ESMFy97SlptZCsRdKlQXDvFHJRNQ==} + '@astrojs/language-server@2.16.2': + resolution: {integrity: sha512-J3hVx/mFi3FwEzKf8ExYXQNERogD6RXswtbU+TyrxoXRBiQoBO5ooo7/lRWJ+rlUKUd7+rziMPI9jYB7TRlh0w==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -291,9 +291,8 @@ packages: '@emmetio/css-abbreviation@2.1.8': resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} - '@emmetio/css-parser@https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660': - resolution: {tarball: https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660} - version: 0.4.0 + '@emmetio/css-parser@0.4.1': + resolution: {integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==} '@emmetio/html-matcher@1.3.0': resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} @@ -1139,23 +1138,23 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@3.17.1': - resolution: {integrity: sha512-VWsduykcibGU0WMi66PflThDWyqEeTOiWdCRa3wmsZuishh+1PDSOh5gGxHdSrOtS+v1pmYaxodk/JNzwusElA==} + '@shikijs/core@3.19.0': + resolution: {integrity: sha512-L7SrRibU7ZoYi1/TrZsJOFAnnHyLTE1SwHG1yNWjZIVCqjOEmCSuK2ZO9thnRbJG6TOkPp+Z963JmpCNw5nzvA==} - '@shikijs/engine-javascript@3.17.1': - resolution: {integrity: sha512-Ars0DVJITQrkOl5Swwy+94NL/BlOi/w1NSFbPGkcsln7Dv+M2qHaVpNHwdtWCC4/arzvjuHbyWBUsWExDHPDLw==} + '@shikijs/engine-javascript@3.19.0': + resolution: {integrity: sha512-ZfWJNm2VMhKkQIKT9qXbs76RRcT0SF/CAvEz0+RkpUDAoDaCx0uFdCGzSRiD9gSlhm6AHkjdieOBJMaO2eC1rQ==} - '@shikijs/engine-oniguruma@3.17.1': - resolution: {integrity: sha512-fsXPy4va/4iblEGS+22nP5V08IwwBcM+8xHUzSON0QmHm29/AJRghA95w9VDnxuwp9wOdJxEhfPkKp6vqcsN+w==} + '@shikijs/engine-oniguruma@3.19.0': + resolution: {integrity: sha512-1hRxtYIJfJSZeM5ivbUXv9hcJP3PWRo5prG/V2sWwiubUKTa+7P62d2qxCW8jiVFX4pgRHhnHNp+qeR7Xl+6kg==} - '@shikijs/langs@3.17.1': - resolution: {integrity: sha512-YTBVN+L2j7zBuOVjNZ2XiSNQEkm/7wZ1TSc5UO77GJPcg7Rk25WSscWA7y8pW7Bo25JIU0EWchUkq/UQjOJlJA==} + '@shikijs/langs@3.19.0': + resolution: {integrity: sha512-dBMFzzg1QiXqCVQ5ONc0z2ebyoi5BKz+MtfByLm0o5/nbUu3Iz8uaTCa5uzGiscQKm7lVShfZHU1+OG3t5hgwg==} - '@shikijs/themes@3.17.1': - resolution: {integrity: sha512-aohwwqNUB5h2ATfgrqYRPl8vyazqCiQ2wIV4xq+UzaBRHpqLMGSemkasK+vIEpl0YaendoaKUsDfpwhCqyHIaQ==} + '@shikijs/themes@3.19.0': + resolution: {integrity: sha512-H36qw+oh91Y0s6OlFfdSuQ0Ld+5CgB/VE6gNPK+Hk4VRbVG/XQgkjnt4KzfnnoO6tZPtKJKHPjwebOCfjd6F8A==} - '@shikijs/types@3.17.1': - resolution: {integrity: sha512-yUFLiCnZHHJ16KbVbt3B1EzBUadU3OVpq0PEyb301m5BbuFKApQYBzJGhrK48hH/tYWSjzwcj7BSmYbBc0zntQ==} + '@shikijs/types@3.19.0': + resolution: {integrity: sha512-Z2hdeEQlzuntf/BZpFG8a+Fsw9UVXdML7w0o3TgSXV3yNESGon+bs9ITkQb3Ki7zxoXOOu5oJWqZ2uto06V9iQ==} '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} @@ -1230,63 +1229,63 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.48.0': - resolution: {integrity: sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ==} + '@typescript-eslint/eslint-plugin@8.48.1': + resolution: {integrity: sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.48.0 + '@typescript-eslint/parser': ^8.48.1 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.48.0': - resolution: {integrity: sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ==} + '@typescript-eslint/parser@8.48.1': + resolution: {integrity: sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.48.0': - resolution: {integrity: sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==} + '@typescript-eslint/project-service@8.48.1': + resolution: {integrity: sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.48.0': - resolution: {integrity: sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==} + '@typescript-eslint/scope-manager@8.48.1': + resolution: {integrity: sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.48.0': - resolution: {integrity: sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==} + '@typescript-eslint/tsconfig-utils@8.48.1': + resolution: {integrity: sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.48.0': - resolution: {integrity: sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw==} + '@typescript-eslint/type-utils@8.48.1': + resolution: {integrity: sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.48.0': - resolution: {integrity: sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==} + '@typescript-eslint/types@8.48.1': + resolution: {integrity: sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.48.0': - resolution: {integrity: sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==} + '@typescript-eslint/typescript-estree@8.48.1': + resolution: {integrity: sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.48.0': - resolution: {integrity: sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==} + '@typescript-eslint/utils@8.48.1': + resolution: {integrity: sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.48.0': - resolution: {integrity: sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==} + '@typescript-eslint/visitor-keys@8.48.1': + resolution: {integrity: sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -1316,20 +1315,20 @@ packages: engines: {node: '>=18.0.0 <=23.x'} os: [darwin, linux, win32] - '@vitest/coverage-v8@4.0.14': - resolution: {integrity: sha512-EYHLqN/BY6b47qHH7gtMxAg++saoGmsjWmAq9MlXxAz4M0NcHh9iOyKhBZyU4yxZqOd8Xnqp80/5saeitz4Cng==} + '@vitest/coverage-v8@4.0.15': + resolution: {integrity: sha512-FUJ+1RkpTFW7rQITdgTi93qOCWJobWhBirEPCeXh2SW2wsTlFxy51apDz5gzG+ZEYt/THvWeNmhdAoS9DTwpCw==} peerDependencies: - '@vitest/browser': 4.0.14 - vitest: 4.0.14 + '@vitest/browser': 4.0.15 + vitest: 4.0.15 peerDependenciesMeta: '@vitest/browser': optional: true - '@vitest/expect@4.0.14': - resolution: {integrity: sha512-RHk63V3zvRiYOWAV0rGEBRO820ce17hz7cI2kDmEdfQsBjT2luEKB5tCOc91u1oSQoUOZkSv3ZyzkdkSLD7lKw==} + '@vitest/expect@4.0.15': + resolution: {integrity: sha512-Gfyva9/GxPAWXIWjyGDli9O+waHDC0Q0jaLdFP1qPAUUfo1FEXPXUfUkp3eZA0sSq340vPycSyOlYUeM15Ft1w==} - '@vitest/mocker@4.0.14': - resolution: {integrity: sha512-RzS5NujlCzeRPF1MK7MXLiEFpkIXeMdQ+rN3Kk3tDI9j0mtbr7Nmuq67tpkOJQpgyClbOltCXMjLZicJHsH5Cg==} + '@vitest/mocker@4.0.15': + resolution: {integrity: sha512-CZ28GLfOEIFkvCFngN8Sfx5h+Se0zN+h4B7yOsPVCcgtiO7t5jt9xQh2E1UkFep+eb9fjyMfuC5gBypwb07fvQ==} peerDependencies: msw: ^2.4.9 vite: 6.4.1 @@ -1339,20 +1338,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.0.14': - resolution: {integrity: sha512-SOYPgujB6TITcJxgd3wmsLl+wZv+fy3av2PpiPpsWPZ6J1ySUYfScfpIt2Yv56ShJXR2MOA6q2KjKHN4EpdyRQ==} + '@vitest/pretty-format@4.0.15': + resolution: {integrity: sha512-SWdqR8vEv83WtZcrfLNqlqeQXlQLh2iilO1Wk1gv4eiHKjEzvgHb2OVc3mIPyhZE6F+CtfYjNlDJwP5MN6Km7A==} - '@vitest/runner@4.0.14': - resolution: {integrity: sha512-BsAIk3FAqxICqREbX8SetIteT8PiaUL/tgJjmhxJhCsigmzzH8xeadtp7LRnTpCVzvf0ib9BgAfKJHuhNllKLw==} + '@vitest/runner@4.0.15': + resolution: {integrity: sha512-+A+yMY8dGixUhHmNdPUxOh0la6uVzun86vAbuMT3hIDxMrAOmn5ILBHm8ajrqHE0t8R9T1dGnde1A5DTnmi3qw==} - '@vitest/snapshot@4.0.14': - resolution: {integrity: sha512-aQVBfT1PMzDSA16Y3Fp45a0q8nKexx6N5Amw3MX55BeTeZpoC08fGqEZqVmPcqN0ueZsuUQ9rriPMhZ3Mu19Ag==} + '@vitest/snapshot@4.0.15': + resolution: {integrity: sha512-A7Ob8EdFZJIBjLjeO0DZF4lqR6U7Ydi5/5LIZ0xcI+23lYlsYJAfGn8PrIWTYdZQRNnSRlzhg0zyGu37mVdy5g==} - '@vitest/spy@4.0.14': - resolution: {integrity: sha512-JmAZT1UtZooO0tpY3GRyiC/8W7dCs05UOq9rfsUUgEZEdq+DuHLmWhPsrTt0TiW7WYeL/hXpaE07AZ2RCk44hg==} + '@vitest/spy@4.0.15': + resolution: {integrity: sha512-+EIjOJmnY6mIfdXtE/bnozKEvTC4Uczg19yeZ2vtCz5Yyb0QQ31QWVQ8hswJ3Ysx/K2EqaNsVanjr//2+P3FHw==} - '@vitest/utils@4.0.14': - resolution: {integrity: sha512-hLqXZKAWNg8pI+SQXyXxWCTOpA3MvsqcbVeNgSi8x/CSN2wi26dSzn1wrOhmCmFjEvN9p8/kLFRHa6PI8jHazw==} + '@vitest/utils@4.0.15': + resolution: {integrity: sha512-HXjPW2w5dxhTD0dLwtYHDnelK3j8sR8cWIaLxr22evTyY6q8pRCjZSmhRWVjBaOVXChQd6AwMzi9pucorXCPZA==} '@volar/kit@2.4.26': resolution: {integrity: sha512-shgNg7PbV8SIxxQLOQh5zMr8KV0JvdG9If0MwJb5L1HMrBU91jBxR0ANi2OJPMMme6/l1vIYm4hCaO6W2JaEcQ==} @@ -1498,21 +1497,21 @@ packages: peerDependencies: astro: ^4.14.0 || ^5.0.0 - astro-loader-i18n@0.9.1: - resolution: {integrity: sha512-av8gWAwA4g/VtspTQkTtdDzyi4/6lBcTzJQcw7hdDBDv6svS8IkUjy7U5U9BcFg8Xu/VFdbdF+tTY9rR6KaRvg==} + astro-loader-i18n@0.10.7: + resolution: {integrity: sha512-/igix3tvkafPpswJs4I9UjxReknQOqeX6IijEsu9o5E9uai6bXIdnnieW0SMHxl2Estq9uBcQWeUq8LSf+fQWA==} peerDependencies: astro: ^5.5.0 - astro-nanostores-i18n@0.2.1: - resolution: {integrity: sha512-lF5c95tTprU/KO/eKm80NAStO32M2ysSaNlXbs4PNhKi6ocl3FVpnZFivcYYA1lB6hIaKhTE+ZEUhqDlWxAaCg==} + astro-nanostores-i18n@0.2.3: + resolution: {integrity: sha512-eW1+C0xLUhZIRWtyPvCRpcUxe8pstftfA7zHqVGXULWwnAdtbieFh4F/ioxmSCKxXk1ddvWR2Mg/cKyzUFybAQ==} hasBin: true peerDependencies: '@nanostores/i18n': ^1.2.0 astro: ^5.5.0 nanostores: ^1.0.1 - astro@5.16.3: - resolution: {integrity: sha512-KzDk41F9Dspf5fM/Ls4XZhV4/csjJcWBrlenbnp5V3NGwU1zEaJz/HIyrdKdf5yw+FgwCeD2+Yos1Xkx9gnI0A==} + astro@5.16.4: + resolution: {integrity: sha512-rgXI/8/tnO3Y9tfAaUyg/8beKhlIMltbiC8Q6jCoAfEidOyaue4KYKzbe0gJIb6qEdEaG3Kf3BY3EOSLkbWOLg==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true @@ -2363,8 +2362,8 @@ packages: hast-util-to-jsx-runtime@2.3.6: resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} - hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + hast-util-to-parse5@8.0.1: + resolution: {integrity: sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==} hast-util-to-string@3.0.1: resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} @@ -2998,8 +2997,8 @@ packages: node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - node-mock-http@1.0.3: - resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==} + node-mock-http@1.0.4: + resolution: {integrity: sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==} normalize-package-data@8.0.0: resolution: {integrity: sha512-RWk+PI433eESQ7ounYxIp67CYuVsS1uYSonX3kA6ps/3LWfjVQa/ptEg6Y3T6uAMq1mWpX9PQ+qx+QaHpsc7gQ==} @@ -3223,8 +3222,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.7.3: - resolution: {integrity: sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==} + prettier@3.7.4: + resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} engines: {node: '>=14'} hasBin: true @@ -3242,9 +3241,6 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - property-information@7.1.0: resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} @@ -3470,8 +3466,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@3.17.1: - resolution: {integrity: sha512-KbAPJo6pQpfjupOg5HW0fk/OSmeBfzza2IjZ5XbNKbqhZaCoxro/EyOgesaLvTdyDfrsAUDA6L4q14sc+k9i7g==} + shiki@3.19.0: + resolution: {integrity: sha512-77VJr3OR/VUZzPiStyRhADmO2jApMM0V2b1qf0RpfWya8Zr1PeZev5AEpPGAAKWdiYUtcZGBE4F5QvJml1PvWA==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -3684,9 +3680,6 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} - tinyexec@1.0.2: resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} engines: {node: '>=18'} @@ -3766,8 +3759,8 @@ packages: typescript-auto-import-cache@0.3.6: resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} - typescript-eslint@8.48.0: - resolution: {integrity: sha512-fcKOvQD9GUn3Xw63EgiDqhvWJ5jsyZUaekl3KVpGsDJnN46WJTe3jWxtQP9lMZm1LJNkFLlTaWAxK2vUQR+cqw==} + typescript-eslint@8.48.1: + resolution: {integrity: sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3984,18 +3977,18 @@ packages: vite: optional: true - vitest@4.0.14: - resolution: {integrity: sha512-d9B2J9Cm9dN9+6nxMnnNJKJCtcyKfnHj15N6YNJfaFHRLua/d3sRKU9RuKmO9mB0XdFtUizlxfz/VPbd3OxGhw==} + vitest@4.0.15: + resolution: {integrity: sha512-n1RxDp8UJm6N0IbJLQo+yzLZ2sQCDyl1o0LeugbPWf8+8Fttp29GghsQBjYJVmWq3gBFfe9Hs1spR44vovn2wA==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.14 - '@vitest/browser-preview': 4.0.14 - '@vitest/browser-webdriverio': 4.0.14 - '@vitest/ui': 4.0.14 + '@vitest/browser-playwright': 4.0.15 + '@vitest/browser-preview': 4.0.15 + '@vitest/browser-webdriverio': 4.0.15 + '@vitest/ui': 4.0.15 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -4018,32 +4011,32 @@ packages: jsdom: optional: true - volar-service-css@0.0.66: - resolution: {integrity: sha512-XrL1V9LEAHnunglYdDf/7shJbQXqKsHB+P69zPmJTqHx6hqvM9GWNbn2h7M0P/oElW8p/MTVHdfjl6C8cxdsBQ==} + volar-service-css@0.0.67: + resolution: {integrity: sha512-zV7C6enn9T9tuvQ6iSUyYEs34iPXR69Pf9YYWpbFYPWzVs22w96BtE8p04XYXbmjU6unt5oFt+iLL77bMB5fhA==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-emmet@0.0.66: - resolution: {integrity: sha512-BMPSpm6mk0DAEVdI2haxYIOt1Z2oaIZvCGtXuRu95x50a5pOSRPjdeHv2uGp1rQsq1Izigx+VR/bZUf2HcSnVQ==} + volar-service-emmet@0.0.67: + resolution: {integrity: sha512-UDBL5x7KptmuJZNCCXMlCndMhFult/tj+9jXq3FH1ZGS1E4M/1U5hC06pg1c6e4kn+vnR6bqmvX0vIhL4f98+A==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-html@0.0.66: - resolution: {integrity: sha512-MKKD2qM8qVZvBKBIugt00+Bm8j1ehgeX7Cm5XwgeEgdW/3PhUEEe/aeTxQGon1WJIGf2MM/cHPjZxPJOQN4WfQ==} + volar-service-html@0.0.67: + resolution: {integrity: sha512-ljREMF79JbcjNvObiv69HK2HCl5UT7WTD10zi6CRFUHMbPfiF2UZ42HGLsEGSzaHGZz6H4IFjSS/qfENRLUviQ==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-prettier@0.0.66: - resolution: {integrity: sha512-CVaQEyfmFWoq3NhNVExoyDKonPqdacmb/07w7OfTZljxLgZpDRygiHAvzBKIcenb7rKtJNHqfQJv99ULOinJBA==} + volar-service-prettier@0.0.67: + resolution: {integrity: sha512-B4KnPJPNWFTkEDa6Fn08i5PpO6T1CecmLLTFZoXz2eI4Fxwba/3nDaaVSsEP7e/vEe+U5YqV9fBzayJT71G5xg==} peerDependencies: '@volar/language-service': ~2.4.0 prettier: ^2.2 || ^3.0 @@ -4053,35 +4046,35 @@ packages: prettier: optional: true - volar-service-typescript-twoslash-queries@0.0.66: - resolution: {integrity: sha512-PA3CyvEaBrkxJcBq+HFdks1TF1oJ8H+jTOTQUurLDRkVjmUFg8bfdya6U/dWfTsPaDSRM4m/2chwgew5zoQXfg==} + volar-service-typescript-twoslash-queries@0.0.67: + resolution: {integrity: sha512-LD2R7WivDYp1SPgZrxx/0222xVTitDjm36oKo5+bfYG5kEgnw+BOPVHdwmvpJKg/RfssfxDI1ouwD4XkEDEfbA==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-typescript@0.0.66: - resolution: {integrity: sha512-8irsfCEf86R1RqPijrU6p5NCqKDNzyJNWKM6ZXmCcJqhebtl7Hr/a0bnlr59AzqkS3Ym4PbbJZs1K/92CXTDsw==} + volar-service-typescript@0.0.67: + resolution: {integrity: sha512-rfQBy36Rm1PU9vLWHk8BYJ4r2j/CI024vocJcH4Nb6K2RTc2Irmw6UOVY5DdGiPRV5r+e10wLMK5njj/EcL8sA==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-yaml@0.0.66: - resolution: {integrity: sha512-q6oTKD6EMEu1ws1FDjRw+cfCF69Gu51IEGM9jVbtmSZS1qQHKxMqlt2+wBInKl2D+xILtjzkWbfkjQyBYQMw7g==} + volar-service-yaml@0.0.67: + resolution: {integrity: sha512-jkdP/RF6wPIXEE3Ktnd81oJPn7aAvnVSiaqQHThC2Hrvo6xd9pEcqtbBUI+YfqVgvcMtXAkbtNO61K2GPhAiuA==} peerDependencies: '@volar/language-service': ~2.4.0 peerDependenciesMeta: '@volar/language-service': optional: true - vscode-css-languageservice@6.3.8: - resolution: {integrity: sha512-dBk/9ullEjIMbfSYAohGpDOisOVU1x2MQHOeU12ohGJQI7+r0PCimBwaa/pWpxl/vH4f7ibrBfxIZY3anGmHKQ==} + vscode-css-languageservice@6.3.9: + resolution: {integrity: sha512-1tLWfp+TDM5ZuVWht3jmaY5y7O6aZmpeXLoHl5bv1QtRsRKt4xYGRMmdJa5Pqx/FTkgRbsna9R+Gn2xE+evVuA==} - vscode-html-languageservice@5.6.0: - resolution: {integrity: sha512-FIVz83oGw2tBkOr8gQPeiREInnineCKGCz3ZD1Pi6opOuX3nSRkc4y4zLLWsuop+6ttYX//XZCI6SLzGhRzLmA==} + vscode-html-languageservice@5.6.1: + resolution: {integrity: sha512-5Mrqy5CLfFZUgkyhNZLA1Ye5g12Cb/v6VM7SxUzZUaRKWMDz4md+y26PrfRTSU0/eQAl3XpO9m2og+GGtDMuaA==} vscode-json-languageservice@4.1.8: resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} @@ -4260,9 +4253,9 @@ packages: snapshots: - '@astrojs/check@0.9.6(prettier-plugin-astro@0.14.1)(prettier@3.7.3)(typescript@5.9.3)': + '@astrojs/check@0.9.6(prettier-plugin-astro@0.14.1)(prettier@3.7.4)(typescript@5.9.3)': dependencies: - '@astrojs/language-server': 2.16.1(prettier-plugin-astro@0.14.1)(prettier@3.7.3)(typescript@5.9.3) + '@astrojs/language-server': 2.16.2(prettier-plugin-astro@0.14.1)(prettier@3.7.4)(typescript@5.9.3) chokidar: 4.0.3 kleur: 4.1.5 typescript: 5.9.3 @@ -4275,7 +4268,7 @@ snapshots: '@astrojs/internal-helpers@0.7.5': {} - '@astrojs/language-server@2.16.1(prettier-plugin-astro@0.14.1)(prettier@3.7.3)(typescript@5.9.3)': + '@astrojs/language-server@2.16.2(prettier-plugin-astro@0.14.1)(prettier@3.7.4)(typescript@5.9.3)': dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/yaml2ts': 0.2.2 @@ -4286,17 +4279,17 @@ snapshots: '@volar/language-service': 2.4.26 fast-glob: 3.3.3 muggle-string: 0.4.1 - volar-service-css: 0.0.66(@volar/language-service@2.4.26) - volar-service-emmet: 0.0.66(@volar/language-service@2.4.26) - volar-service-html: 0.0.66(@volar/language-service@2.4.26) - volar-service-prettier: 0.0.66(@volar/language-service@2.4.26)(prettier@3.7.3) - volar-service-typescript: 0.0.66(@volar/language-service@2.4.26) - volar-service-typescript-twoslash-queries: 0.0.66(@volar/language-service@2.4.26) - volar-service-yaml: 0.0.66(@volar/language-service@2.4.26) - vscode-html-languageservice: 5.6.0 + volar-service-css: 0.0.67(@volar/language-service@2.4.26) + volar-service-emmet: 0.0.67(@volar/language-service@2.4.26) + volar-service-html: 0.0.67(@volar/language-service@2.4.26) + volar-service-prettier: 0.0.67(@volar/language-service@2.4.26)(prettier@3.7.4) + volar-service-typescript: 0.0.67(@volar/language-service@2.4.26) + volar-service-typescript-twoslash-queries: 0.0.67(@volar/language-service@2.4.26) + volar-service-yaml: 0.0.67(@volar/language-service@2.4.26) + vscode-html-languageservice: 5.6.1 vscode-uri: 3.1.0 optionalDependencies: - prettier: 3.7.3 + prettier: 3.7.4 prettier-plugin-astro: 0.14.1 transitivePeerDependencies: - typescript @@ -4317,7 +4310,7 @@ snapshots: remark-parse: 11.0.0 remark-rehype: 11.1.2 remark-smartypants: 3.0.2 - shiki: 3.17.1 + shiki: 3.19.0 smol-toml: 1.5.2 unified: 11.0.5 unist-util-remove-position: 5.0.0 @@ -4327,12 +4320,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@astrojs/mdx@4.3.12(astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2))': + '@astrojs/mdx@4.3.12(astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2))': dependencies: '@astrojs/markdown-remark': 6.3.9 '@mdx-js/mdx': 3.1.1 acorn: 8.15.0 - astro: 5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) + astro: 5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) es-module-lexer: 1.7.0 estree-util-visit: 2.0.0 hast-util-to-html: 9.0.5 @@ -4558,7 +4551,7 @@ snapshots: dependencies: '@emmetio/scanner': 1.0.4 - '@emmetio/css-parser@https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660': + '@emmetio/css-parser@0.4.1': dependencies: '@emmetio/stream-reader': 2.2.0 '@emmetio/stream-reader-utils': 0.1.0 @@ -5194,33 +5187,33 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.53.3': optional: true - '@shikijs/core@3.17.1': + '@shikijs/core@3.19.0': dependencies: - '@shikijs/types': 3.17.1 + '@shikijs/types': 3.19.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@3.17.1': + '@shikijs/engine-javascript@3.19.0': dependencies: - '@shikijs/types': 3.17.1 + '@shikijs/types': 3.19.0 '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 4.3.4 - '@shikijs/engine-oniguruma@3.17.1': + '@shikijs/engine-oniguruma@3.19.0': dependencies: - '@shikijs/types': 3.17.1 + '@shikijs/types': 3.19.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.17.1': + '@shikijs/langs@3.19.0': dependencies: - '@shikijs/types': 3.17.1 + '@shikijs/types': 3.19.0 - '@shikijs/themes@3.17.1': + '@shikijs/themes@3.19.0': dependencies: - '@shikijs/types': 3.17.1 + '@shikijs/types': 3.19.0 - '@shikijs/types@3.17.1': + '@shikijs/types@3.19.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -5297,14 +5290,14 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.48.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.48.0 - '@typescript-eslint/type-utils': 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.48.0 + '@typescript-eslint/parser': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/type-utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.48.1 eslint: 9.39.1(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 @@ -5314,41 +5307,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.48.0 - '@typescript-eslint/types': 8.48.0 - '@typescript-eslint/typescript-estree': 8.48.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.48.0 + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.48.1 debug: 4.4.3 eslint: 9.39.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.48.0(typescript@5.9.3)': + '@typescript-eslint/project-service@8.48.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.48.0(typescript@5.9.3) - '@typescript-eslint/types': 8.48.0 + '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.9.3) + '@typescript-eslint/types': 8.48.1 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.48.0': + '@typescript-eslint/scope-manager@8.48.1': dependencies: - '@typescript-eslint/types': 8.48.0 - '@typescript-eslint/visitor-keys': 8.48.0 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/visitor-keys': 8.48.1 - '@typescript-eslint/tsconfig-utils@8.48.0(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.48.1(typescript@5.9.3)': dependencies: typescript: 5.9.3 - '@typescript-eslint/type-utils@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.48.0 - '@typescript-eslint/typescript-estree': 8.48.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3 eslint: 9.39.1(jiti@2.6.1) ts-api-utils: 2.1.0(typescript@5.9.3) @@ -5356,14 +5349,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.48.0': {} + '@typescript-eslint/types@8.48.1': {} - '@typescript-eslint/typescript-estree@8.48.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.48.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.48.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.48.0(typescript@5.9.3) - '@typescript-eslint/types': 8.48.0 - '@typescript-eslint/visitor-keys': 8.48.0 + '@typescript-eslint/project-service': 8.48.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.48.1(typescript@5.9.3) + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/visitor-keys': 8.48.1 debug: 4.4.3 minimatch: 9.0.5 semver: 7.7.3 @@ -5373,20 +5366,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.48.0 - '@typescript-eslint/types': 8.48.0 - '@typescript-eslint/typescript-estree': 8.48.0(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) eslint: 9.39.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.48.0': + '@typescript-eslint/visitor-keys@8.48.1': dependencies: - '@typescript-eslint/types': 8.48.0 + '@typescript-eslint/types': 8.48.1 eslint-visitor-keys: 4.2.1 '@ungap/structured-clone@1.3.0': {} @@ -5416,10 +5409,10 @@ snapshots: '@visulima/path@1.4.0': {} - '@vitest/coverage-v8@4.0.14(vitest@4.0.14(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2))': + '@vitest/coverage-v8@4.0.15(vitest@4.0.15(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2))': dependencies: '@bcoe/v8-coverage': 1.0.2 - '@vitest/utils': 4.0.14 + '@vitest/utils': 4.0.15 ast-v8-to-istanbul: 0.3.8 istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 @@ -5429,47 +5422,47 @@ snapshots: obug: 2.1.1 std-env: 3.10.0 tinyrainbow: 3.0.3 - vitest: 4.0.14(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2) + vitest: 4.0.15(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitest/expect@4.0.14': + '@vitest/expect@4.0.15': dependencies: '@standard-schema/spec': 1.0.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.0.14 - '@vitest/utils': 4.0.14 + '@vitest/spy': 4.0.15 + '@vitest/utils': 4.0.15 chai: 6.2.1 tinyrainbow: 3.0.3 - '@vitest/mocker@4.0.14(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2))': + '@vitest/mocker@4.0.15(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2))': dependencies: - '@vitest/spy': 4.0.14 + '@vitest/spy': 4.0.15 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2) - '@vitest/pretty-format@4.0.14': + '@vitest/pretty-format@4.0.15': dependencies: tinyrainbow: 3.0.3 - '@vitest/runner@4.0.14': + '@vitest/runner@4.0.15': dependencies: - '@vitest/utils': 4.0.14 + '@vitest/utils': 4.0.15 pathe: 2.0.3 - '@vitest/snapshot@4.0.14': + '@vitest/snapshot@4.0.15': dependencies: - '@vitest/pretty-format': 4.0.14 + '@vitest/pretty-format': 4.0.15 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.0.14': {} + '@vitest/spy@4.0.15': {} - '@vitest/utils@4.0.14': + '@vitest/utils@4.0.15': dependencies: - '@vitest/pretty-format': 4.0.14 + '@vitest/pretty-format': 4.0.15 tinyrainbow: 3.0.3 '@volar/kit@2.4.26(typescript@5.9.3)': @@ -5638,8 +5631,8 @@ snapshots: astro-eslint-parser@1.2.2: dependencies: '@astrojs/compiler': 2.13.0 - '@typescript-eslint/scope-manager': 8.48.0 - '@typescript-eslint/types': 8.48.0 + '@typescript-eslint/scope-manager': 8.48.1 + '@typescript-eslint/types': 8.48.1 astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.13.0) debug: 4.4.3 entities: 6.0.1 @@ -5652,26 +5645,26 @@ snapshots: transitivePeerDependencies: - supports-color - astro-integration-kit@0.19.1(astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)): + astro-integration-kit@0.19.1(astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)): dependencies: - astro: 5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) + astro: 5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) pathe: 1.1.2 - astro-loader-i18n@0.9.1(astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)): + astro-loader-i18n@0.10.7(astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)): dependencies: - astro: 5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) + astro: 5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) - astro-nanostores-i18n@0.2.1(@nanostores/i18n@1.2.2(nanostores@1.0.1))(astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2))(nanostores@1.0.1): + astro-nanostores-i18n@0.2.3(@nanostores/i18n@1.2.2(nanostores@1.0.1))(astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2))(nanostores@1.0.1): dependencies: '@astrojs/compiler': 2.13.0 '@nanostores/i18n': 1.2.2(nanostores@1.0.1) - astro: 5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) - astro-integration-kit: 0.19.1(astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)) + astro: 5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2) + astro-integration-kit: 0.19.1(astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2)) fast-glob: 3.3.3 nanostores: 1.0.1 typescript: 5.9.3 - astro@5.16.3(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2): + astro@5.16.4(@types/node@24.10.1)(jiti@2.6.1)(rollup@4.53.3)(typescript@5.9.3)(yaml@2.8.2): dependencies: '@astrojs/compiler': 2.13.0 '@astrojs/internal-helpers': 0.7.5 @@ -5717,7 +5710,7 @@ snapshots: prompts: 2.4.2 rehype: 13.0.2 semver: 7.7.3 - shiki: 3.17.1 + shiki: 3.19.0 smol-toml: 1.5.2 svgo: 4.0.0 tinyexec: 1.0.2 @@ -6328,7 +6321,7 @@ snapshots: dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) '@jridgewell/sourcemap-codec': 1.5.5 - '@typescript-eslint/types': 8.48.0 + '@typescript-eslint/types': 8.48.1 astro-eslint-parser: 1.2.2 eslint: 9.39.1(jiti@2.6.1) eslint-compat-utils: 0.6.5(eslint@9.39.1(jiti@2.6.1)) @@ -6357,10 +6350,10 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.3): + eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.7.4): dependencies: eslint: 9.39.1(jiti@2.6.1) - prettier: 3.7.3 + prettier: 3.7.4 prettier-linter-helpers: 1.0.0 synckit: 0.11.11 optionalDependencies: @@ -6687,7 +6680,7 @@ snapshots: defu: 6.1.4 destr: 2.0.5 iron-webcrypto: 1.2.1 - node-mock-http: 1.0.3 + node-mock-http: 1.0.4 radix3: 1.1.2 ufo: 1.6.1 uncrypto: 0.1.3 @@ -6752,7 +6745,7 @@ snapshots: '@types/unist': 3.0.3 '@ungap/structured-clone': 1.3.0 hast-util-from-parse5: 8.0.3 - hast-util-to-parse5: 8.0.0 + hast-util-to-parse5: 8.0.1 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.1 parse5: 7.3.0 @@ -6817,12 +6810,12 @@ snapshots: transitivePeerDependencies: - supports-color - hast-util-to-parse5@8.0.0: + hast-util-to-parse5@8.0.1: dependencies: '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 6.5.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -7698,7 +7691,7 @@ snapshots: node-fetch-native@1.6.7: {} - node-mock-http@1.0.3: {} + node-mock-http@1.0.4: {} normalize-package-data@8.0.0: dependencies: @@ -7930,12 +7923,12 @@ snapshots: prettier-plugin-astro@0.14.1: dependencies: '@astrojs/compiler': 2.13.0 - prettier: 3.7.3 + prettier: 3.7.4 sass-formatter: 0.7.9 prettier@2.8.8: {} - prettier@3.7.3: {} + prettier@3.7.4: {} prettysize@2.0.0: {} @@ -7948,8 +7941,6 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - property-information@6.5.0: {} - property-information@7.1.0: {} punycode@2.3.1: {} @@ -8341,14 +8332,14 @@ snapshots: shebang-regex@3.0.0: {} - shiki@3.17.1: + shiki@3.19.0: dependencies: - '@shikijs/core': 3.17.1 - '@shikijs/engine-javascript': 3.17.1 - '@shikijs/engine-oniguruma': 3.17.1 - '@shikijs/langs': 3.17.1 - '@shikijs/themes': 3.17.1 - '@shikijs/types': 3.17.1 + '@shikijs/core': 3.19.0 + '@shikijs/engine-javascript': 3.19.0 + '@shikijs/engine-oniguruma': 3.19.0 + '@shikijs/langs': 3.19.0 + '@shikijs/themes': 3.19.0 + '@shikijs/types': 3.19.0 '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -8605,8 +8596,6 @@ snapshots: tinybench@2.9.0: {} - tinyexec@0.3.2: {} - tinyexec@1.0.2: {} tinyglobby@0.2.15: @@ -8683,12 +8672,12 @@ snapshots: dependencies: semver: 7.7.3 - typescript-eslint@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + typescript-eslint@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.48.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.48.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 8.48.1(@typescript-eslint/parser@8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.48.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.48.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) eslint: 9.39.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: @@ -8864,15 +8853,15 @@ snapshots: optionalDependencies: vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2) - vitest@4.0.14(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2): + vitest@4.0.15(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2): dependencies: - '@vitest/expect': 4.0.14 - '@vitest/mocker': 4.0.14(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2)) - '@vitest/pretty-format': 4.0.14 - '@vitest/runner': 4.0.14 - '@vitest/snapshot': 4.0.14 - '@vitest/spy': 4.0.14 - '@vitest/utils': 4.0.14 + '@vitest/expect': 4.0.15 + '@vitest/mocker': 4.0.15(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2)) + '@vitest/pretty-format': 4.0.15 + '@vitest/runner': 4.0.15 + '@vitest/snapshot': 4.0.15 + '@vitest/spy': 4.0.15 + '@vitest/utils': 4.0.15 es-module-lexer: 1.7.0 expect-type: 1.2.2 magic-string: 0.30.21 @@ -8881,7 +8870,7 @@ snapshots: picomatch: 4.0.3 std-env: 3.10.0 tinybench: 2.9.0 - tinyexec: 0.3.2 + tinyexec: 1.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.0.3 vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(yaml@2.8.2) @@ -8901,45 +8890,45 @@ snapshots: - tsx - yaml - volar-service-css@0.0.66(@volar/language-service@2.4.26): + volar-service-css@0.0.67(@volar/language-service@2.4.26): dependencies: - vscode-css-languageservice: 6.3.8 + vscode-css-languageservice: 6.3.9 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.26 - volar-service-emmet@0.0.66(@volar/language-service@2.4.26): + volar-service-emmet@0.0.67(@volar/language-service@2.4.26): dependencies: - '@emmetio/css-parser': https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660 + '@emmetio/css-parser': 0.4.1 '@emmetio/html-matcher': 1.3.0 '@vscode/emmet-helper': 2.11.0 vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.26 - volar-service-html@0.0.66(@volar/language-service@2.4.26): + volar-service-html@0.0.67(@volar/language-service@2.4.26): dependencies: - vscode-html-languageservice: 5.6.0 + vscode-html-languageservice: 5.6.1 vscode-languageserver-textdocument: 1.0.12 vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.26 - volar-service-prettier@0.0.66(@volar/language-service@2.4.26)(prettier@3.7.3): + volar-service-prettier@0.0.67(@volar/language-service@2.4.26)(prettier@3.7.4): dependencies: vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.26 - prettier: 3.7.3 + prettier: 3.7.4 - volar-service-typescript-twoslash-queries@0.0.66(@volar/language-service@2.4.26): + volar-service-typescript-twoslash-queries@0.0.67(@volar/language-service@2.4.26): dependencies: vscode-uri: 3.1.0 optionalDependencies: '@volar/language-service': 2.4.26 - volar-service-typescript@0.0.66(@volar/language-service@2.4.26): + volar-service-typescript@0.0.67(@volar/language-service@2.4.26): dependencies: path-browserify: 1.0.1 semver: 7.7.3 @@ -8950,21 +8939,21 @@ snapshots: optionalDependencies: '@volar/language-service': 2.4.26 - volar-service-yaml@0.0.66(@volar/language-service@2.4.26): + volar-service-yaml@0.0.67(@volar/language-service@2.4.26): dependencies: vscode-uri: 3.1.0 yaml-language-server: 1.19.2 optionalDependencies: '@volar/language-service': 2.4.26 - vscode-css-languageservice@6.3.8: + vscode-css-languageservice@6.3.9: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 vscode-languageserver-types: 3.17.5 vscode-uri: 3.1.0 - vscode-html-languageservice@5.6.0: + vscode-html-languageservice@5.6.1: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.12 @@ -9121,7 +9110,7 @@ snapshots: ajv: 8.17.1 ajv-draft-04: 1.0.0(ajv@8.17.1) lodash: 4.17.21 - prettier: 3.7.3 + prettier: 3.7.4 request-light: 0.5.8 vscode-json-languageservice: 4.1.8 vscode-languageserver: 9.0.1 From 83baee309405b00f8ae6109d57c8d926243e34cf Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 5 Dec 2025 08:34:45 +0000 Subject: [PATCH 08/17] chroe: clean up timeline --- src/components/Timeline.astro | 22 ---------------------- src/components/TimelineEntry.astro | 5 +---- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/src/components/Timeline.astro b/src/components/Timeline.astro index 0cd45bae..8651914d 100644 --- a/src/components/Timeline.astro +++ b/src/components/Timeline.astro @@ -8,7 +8,6 @@ const { shortSpine = false } = Astro.props; const displayTriangle = shortSpine ? "none" : "absolute"; --- -
      @@ -18,7 +17,6 @@ const displayTriangle = shortSpine ? "none" : "absolute"; From 8eb953530735d2770f6dc9e563c135f8d9ec465c Mon Sep 17 00:00:00 2001 From: "leonardo.olivo" <1leonardo.olivo@gmail.com> Date: Wed, 10 Dec 2025 15:24:31 +0000 Subject: [PATCH 11/17] chore: remove wrapping div --- src/layouts/sections/FormationSection.astro | 24 ++++++++++----------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/src/layouts/sections/FormationSection.astro b/src/layouts/sections/FormationSection.astro index 15f9374b..c79a3c4b 100644 --- a/src/layouts/sections/FormationSection.astro +++ b/src/layouts/sections/FormationSection.astro @@ -29,18 +29,16 @@ const formationData = timelineCollection
      -
      - - { - formationData.map((element) => ( - -
      {element.title}
      -

      {element.text}

      -
      - )) - } -
      -
      + + { + formationData.map((element) => ( + +
      {element.title}
      +

      {element.text}

      +
      + )) + } +
      diff --git a/src/layouts/Shell.css b/src/layouts/Shell.css index 97859abc..0efa1c02 100644 --- a/src/layouts/Shell.css +++ b/src/layouts/Shell.css @@ -31,7 +31,7 @@ --color-overlay: #f7f9f3; --size-gutter: 1rem; - --size-gutter: 1.5rem; + --size-gutter-medium: 1.5rem; --size-gutter-big: 2rem; --size-gutter-huge: 4rem; --size-gutter-massive: 8rem; From 0968433f1bf99fcece2bfe0a47dd0a98c4a9c7b4 Mon Sep 17 00:00:00 2001 From: Robin Date: Thu, 11 Dec 2025 06:07:28 +0000 Subject: [PATCH 16/17] chore: enhance timeline --- src/components/Timeline.astro | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/components/Timeline.astro b/src/components/Timeline.astro index cd19d9d9..7e13f2c1 100644 --- a/src/components/Timeline.astro +++ b/src/components/Timeline.astro @@ -33,10 +33,14 @@ transform: translateX(-50%); background: linear-gradient( to bottom, - var(--color-primary) 0.4rem, + var(--color-primary) 0.2rem, + transparent 0.2rem, transparent 0.4rem, - transparent 0.55rem, - var(--color-primary) 0.55rem + var(--color-primary) 0.4rem, + var(--color-primary) 0.6rem, + transparent 0.6rem, + transparent 0.8rem, + var(--color-primary) 0.8rem ); z-index: 3; /* above potential dividers */ } From e6c21d678a0b2b4dd1641e3b6cf8a61061d67dfd Mon Sep 17 00:00:00 2001 From: Robin Date: Thu, 11 Dec 2025 07:47:41 +0000 Subject: [PATCH 17/17] chore: add content --- src/components/TimelineEntry.astro | 5 +++++ src/content/formation/evolution.yaml | 20 +++++++---------- src/content/formation/office.yaml | 24 ++++++++++----------- src/content/pages/de/past/formation.mdx | 2 +- src/layouts/sections/FormationSection.astro | 4 ++-- 5 files changed, 28 insertions(+), 27 deletions(-) diff --git a/src/components/TimelineEntry.astro b/src/components/TimelineEntry.astro index 2ec54928..60f8fc5f 100644 --- a/src/components/TimelineEntry.astro +++ b/src/components/TimelineEntry.astro @@ -14,6 +14,7 @@ padding: 1rem; background: var(--color-overlay); width: 45%; + font-size: 1.2rem; } li::after { @@ -29,6 +30,10 @@ z-index: 5; /* above spine */ } + li :global(*:last-child) { + margin-block-end: 0; + } + @media screen and (min-width: 1025px) { li:nth-child(even) { align-self: flex-end; diff --git a/src/content/formation/evolution.yaml b/src/content/formation/evolution.yaml index 4e64b487..bf11078f 100644 --- a/src/content/formation/evolution.yaml +++ b/src/content/formation/evolution.yaml @@ -1,15 +1,11 @@ items: de: - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Praktikumsplatz + text: Im Jahr 2023 absolvierte Micael sein einjähriges Praktikum bei uns. + - title: Weitere Unterstützung + text: Seit Anfang 2025 programmiert Leonardo bei uns fleissig mit. en: - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Internship Position + text: In 2023, Micael completed his one-year internship with us. + - title: Further Support + text: Since early 2025, Leonardo has been programming diligently with us. diff --git a/src/content/formation/office.yaml b/src/content/formation/office.yaml index 4e64b487..f24dffbf 100644 --- a/src/content/formation/office.yaml +++ b/src/content/formation/office.yaml @@ -1,15 +1,15 @@ items: de: - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Temporäres Büro + text: Im Februar 2021 sind wir in ein temporäres Büro im ehemaligen Swissôtel Zürich gezogen. + - title: Unterstützung + text: Ab Frühjahr 2021 unterstützte uns Aaron als Softwareentwickler. + - title: Zweites Büro + text: Seit Anfang 2022 mieten wir ein Büro in Glattbrugg. en: - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - - title: Lorem - text: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + - title: Temporary Office + text: In February 2021, we moved into a temporary office in the former Swissôtel Zürich. + - title: Support + text: From spring 2021, Aaron supported us as a software developer. + - title: Second Office + text: Since early 2022, we have been renting an office in Glattbrugg. diff --git a/src/content/pages/de/past/formation.mdx b/src/content/pages/de/past/formation.mdx index 78265477..e489de81 100644 --- a/src/content/pages/de/past/formation.mdx +++ b/src/content/pages/de/past/formation.mdx @@ -22,7 +22,7 @@ import Divider from "../../../../components/Divider.astro"; Dabei haben wir festgestellt, dass es uns sehr hilft, wenn wir uns regelmässig persönlich austauschen können. Deshalb haben wir uns entschieden, auch nach der Zwischennutzung des Swissôtels ein Büro zu mieten. Schnell haben wir ein passendes Büro in Glattbrugg gefunden, welches wir seit Anfang 2022 nutzen. - In der Zwischenzeit sind auch weitere Mitarbeiter zu uns gestossen, welche uns bei der Umsetzung unserer Projekte unterstützen. + In der Zwischenzeit sind auch weitere Mitarbeiter zu uns gestossen, die uns bei der Umsetzung der Projekte unterstützen. diff --git a/src/layouts/sections/FormationSection.astro b/src/layouts/sections/FormationSection.astro index c79a3c4b..73b7d875 100644 --- a/src/layouts/sections/FormationSection.astro +++ b/src/layouts/sections/FormationSection.astro @@ -45,7 +45,7 @@ const formationData = timelineCollection section { display: grid; column-gap: var(--size-gutter-medium); - grid-template-columns: 55% 45%; + grid-template-columns: 50% 50%; } @media screen and (max-width: 1025px) { @@ -56,7 +56,7 @@ const formationData = timelineCollection } .title { - font-size: 1.5rem; + font-size: 1.3rem; font-weight: bold; }