diff --git a/package.json b/package.json
index 795f608..83509fb 100644
--- a/package.json
+++ b/package.json
@@ -17,6 +17,7 @@
"scripts": {
"ci:biome": "biome ci",
"build": "tsdown",
+ "build:docs": "pnpm -C packages/docs run build",
"typecheck": "pnpm -r run typecheck",
"test": "vitest run"
}
diff --git a/packages/docs/astro.config.mjs b/packages/docs/astro.config.mjs
new file mode 100644
index 0000000..aedd866
--- /dev/null
+++ b/packages/docs/astro.config.mjs
@@ -0,0 +1,61 @@
+// @ts-check
+
+import starlight from "@astrojs/starlight";
+import { defineConfig } from "astro/config";
+import starlightLinksValidator from "starlight-links-validator";
+
+// https://astro.build/config
+export default defineConfig({
+ experimental: {
+ clientPrerender: true,
+ },
+ integrations: [
+ starlight({
+ title: "Mighty",
+ plugins: [starlightLinksValidator()],
+ logo: {
+ src: "@/assets/mighty.svg",
+ },
+ components: {
+ SiteTitle: "@/components/starlight/SiteTitle.astro",
+ Hero: "@/components/starlight/Hero.astro",
+ },
+ customCss: ["./src/styles/custom.css"],
+ social: [
+ {
+ icon: "github",
+ label: "GitHub",
+ href: "https://github.com/gomighty/mighty",
+ },
+ ],
+ head: [
+ {
+ tag: "link",
+ attrs: {
+ rel: "icon",
+ type: "image/png",
+ href: "/favicon-96x96.png",
+ sizes: "96x96",
+ },
+ },
+ ],
+ sidebar: [
+ {
+ label: "Hello, World!",
+ autogenerate: { directory: "guides/hello-world" },
+ },
+ {
+ label: "Core Concepts",
+ autogenerate: { directory: "guides/core-concepts" },
+ },
+ {
+ label: "Backend Adapters",
+ autogenerate: { directory: "guides/backend-adapters" },
+ },
+ {
+ slug: "guides/roadmap",
+ },
+ ],
+ }),
+ ],
+});
diff --git a/packages/docs/package.json b/packages/docs/package.json
new file mode 100644
index 0000000..81531b4
--- /dev/null
+++ b/packages/docs/package.json
@@ -0,0 +1,28 @@
+{
+ "name": "@gomighty/docs",
+ "private": true,
+ "type": "module",
+ "version": "0.0.1",
+ "scripts": {
+ "dev": "astro dev",
+ "start": "astro dev",
+ "build": "astro build",
+ "preview": "astro preview",
+ "astro": "astro",
+ "typecheck": "astro check"
+ },
+ "engines": {
+ "node": "24.x"
+ },
+ "dependencies": {
+ "@astrojs/starlight": "^0.38.2",
+ "astro": "catalog:",
+ "motion": "^12.23.12",
+ "sharp": "^0.34.2",
+ "starlight-links-validator": "^0.20.1"
+ },
+ "devDependencies": {
+ "@astrojs/check": "^0.9.4",
+ "typescript": "^5.9.3"
+ }
+}
diff --git a/packages/docs/public/favicon-96x96.png b/packages/docs/public/favicon-96x96.png
new file mode 100644
index 0000000..fe95739
Binary files /dev/null and b/packages/docs/public/favicon-96x96.png differ
diff --git a/packages/docs/public/favicon.svg b/packages/docs/public/favicon.svg
new file mode 100644
index 0000000..8febb82
--- /dev/null
+++ b/packages/docs/public/favicon.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/src/assets/mighty.svg b/packages/docs/src/assets/mighty.svg
new file mode 100644
index 0000000..39e133d
--- /dev/null
+++ b/packages/docs/src/assets/mighty.svg
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/docs/src/components/PackageManagerTabs.astro b/packages/docs/src/components/PackageManagerTabs.astro
new file mode 100644
index 0000000..b7e5bd4
--- /dev/null
+++ b/packages/docs/src/components/PackageManagerTabs.astro
@@ -0,0 +1,15 @@
+---
+import { TabItem, Tabs } from "@astrojs/starlight/components";
+---
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/docs/src/components/starlight/Hero.astro b/packages/docs/src/components/starlight/Hero.astro
new file mode 100644
index 0000000..fe67f35
--- /dev/null
+++ b/packages/docs/src/components/starlight/Hero.astro
@@ -0,0 +1,143 @@
+---
+import { LinkButton } from "@astrojs/starlight/components";
+import MightyLogo from "@/assets/mighty.svg";
+
+const { data } = Astro.locals.starlightRoute.entry;
+const { title = data.title, tagline, actions = [] } = data.hero || {};
+
+const PAGE_TITLE_ID = "_top";
+---
+
+
+
+
+
+ {
+ actions.length > 0 && (
+
+ {actions.map(
+ ({
+ attrs: { class: className, ...attrs } = {},
+ icon,
+ link: href,
+ text,
+ variant,
+ }) => (
+
+ {text}
+ {icon?.html && }
+
+ ),
+ )}
+
+ )
+ }
+
+
+
+
+
+
diff --git a/packages/docs/src/components/starlight/SiteTitle.astro b/packages/docs/src/components/starlight/SiteTitle.astro
new file mode 100644
index 0000000..848db63
--- /dev/null
+++ b/packages/docs/src/components/starlight/SiteTitle.astro
@@ -0,0 +1,93 @@
+---
+import config from "virtual:starlight/user-config";
+import MightyLogo from "@/assets/mighty.svg";
+
+const { siteTitle, siteTitleHref } = Astro.locals.starlightRoute;
+
+const anchorHref = Astro.url.pathname === "/" ? "/#" : siteTitleHref;
+---
+
+
+
+
+ {siteTitle}
+
+
+
+
+
+
+
+
diff --git a/packages/docs/src/content.config.ts b/packages/docs/src/content.config.ts
new file mode 100644
index 0000000..7fbcf2c
--- /dev/null
+++ b/packages/docs/src/content.config.ts
@@ -0,0 +1,7 @@
+import { defineCollection } from "astro:content";
+import { docsLoader } from "@astrojs/starlight/loaders";
+import { docsSchema } from "@astrojs/starlight/schema";
+
+export const collections = {
+ docs: defineCollection({ loader: docsLoader(), schema: docsSchema() }),
+};
diff --git a/packages/docs/src/content/docs/guides/backend-adapters/hono.mdx b/packages/docs/src/content/docs/guides/backend-adapters/hono.mdx
new file mode 100644
index 0000000..7c6a6ba
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/backend-adapters/hono.mdx
@@ -0,0 +1,232 @@
+---
+title: Hono
+description: Install Mighty in your Hono project, and learn how to render Astro components from your Hono code.
+sidebar:
+ order: 3
+---
+
+import { Aside, FileTree } from "@astrojs/starlight/components";
+import PackageManagerTabs from "@/components/PackageManagerTabs.astro";
+
+The Hono backend adapter integrates Mighty with your Hono project, allowing you to render Astro components from your Hono code.
+
+## Installation
+
+Refer to [the installation guide](/guides/hello-world/installation) to use Mighty in a new project, or an existing one.
+
+## Getting started
+
+### Project structure
+
+Once you are done setting up Mighty in your Hono project, you should have the following structure in place:
+
+
+- astro
+ - components
+ - Welcome.astro
+ - layouts
+ - Layout.astro
+ - pages
+ - **index.astro**
+- astro.config.ts
+- tsconfig.astro.json
+
+
+
+Mighty will **only** detect and render Astro components inside the `pages` directory.
+
+Components inside other directories (e.g. `components` and `layouts`) will not be detected, but can be used in components inside the `pages` directory.
+
+
+
+### Run the development server
+
+You can run the development server by using the `startServer` function:
+
+```ts {8}
+import { Hono } from "hono";
+import { startServer } from "@gomighty/hono";
+
+const app = new Hono();
+
+// ...
+
+startServer(app);
+```
+
+This will start a server that renders Astro components on-demand, with Hot Module Replacement (HMR) included for fast updates.
+
+The server will only start **in development** (i.e. when `NODE_ENV=development`), and the `startServer` function will do nothing in production.
+
+
+When using Hono, Mighty runs the development server in [**middleware mode**](https://vite.dev/config/server-options.html#server-middlewaremode).
+
+This means the development server is not standalone and will not take up a port.
+
+
+
+### Build production assets
+
+Before using Mighty in production, first build optimized versions of your components:
+
+
+
+ ```shell
+ # build assets with npm
+ npx @gomighty/hono build
+ ```
+
+
+ ```shell
+ # build assets with pnpm
+ pnpx @gomighty/hono build
+ ```
+
+
+ ```shell
+ # build assets with bun
+ bunx @gomighty/hono build
+ ```
+
+
+
+Mighty will now use render optimized Astro components either statically or on-demand, depending on your rendering strategy.
+
+
+ When using Hono, you do not need to run a separate production server.
+
+
+### Render Astro components from Hono code
+
+You can use Astro as a rendering engine for your application by returning Astro components from your Hono code.
+
+```ts {7-10}
+import { Hono } from "hono";
+import { db } from "./lib/db";
+import { startServer, render } from "@gomighty/hono";
+
+const app = new Hono();
+
+app.get("/", async (c) => {
+ const posts = await db.getPosts();
+ return render(c, "posts.index", { posts });
+});
+
+startServer(app);
+```
+
+This will render the following Astro component and pass it the `posts` prop:
+
+
+- astro
+ - pages
+ - posts
+ - **index.astro**
+
+
+You can then use the `posts` prop in your Astro component:
+
+```astro title="resources/astro/pages/posts/index.astro"
+---
+interface Props {
+ posts: { id: number; title: string; content: string }[];
+}
+
+const { posts } = Astro.props;
+---
+
+
+ {
+ posts.map((post) => (
+
+ {post.title}
+ {post.content}
+
+ ))
+ }
+
+```
+
+### Shared properties
+
+You might want to pass properties to every Astro component, such as the current user or notification content.
+
+To do this, use the `share` function in your Hono code:
+
+```ts
+import { Hono } from "hono";
+import { db } from "./lib/db";
+import { startServer, render, share } from "@gomighty/hono";
+
+const app = new Hono();
+
+app.get("/", async (c) => {
+ const posts = await db.getPosts();
+ return render(c, "posts.index", { posts });
+});
+
+startServer(app);
+
+share(app, async (c) => {
+ return {
+ user: db.getUser(),
+ };
+});
+```
+
+You can use shared properties in your Astro component by using the `shared` function:
+
+```astro
+---
+import { shared } from "@gomighty/hono";
+
+const { user } = shared<{ user: { id: number; name: string } | undefined }>();
+---
+
+{user ? `Welcome back, ${user.name}!` : "Please log in!"}
+```
+
+### Using the Astro render context
+
+You can use Astro render context properties, such as `Astro.request`, just like you would in a standard Astro project.
+
+```astro
+---
+interface Props {
+ posts: { id: number; title: string; content: string }[];
+}
+
+const { posts } = Astro.props;
+
+const isBot =
+ Astro.request.headers.get("User-Agent")?.startsWith("curl") ?? false;
+---
+
+{
+ isBot ? (
+ Hey, no scraping!
+ ) : (
+
+ {posts.map((post) => (
+
+ {post.title}
+ {post.content}
+
+ ))}
+
+ )
+}
+```
+
+### Hono-specific utilities
+
+
+Do you need any Hono-specific utilities?
+
+Let us know by opening an issue or submitting a pull request!
+
+
+
+## Manual setup
+
+Check back later for instructions on setting up Mighty manually!
diff --git a/packages/docs/src/content/docs/guides/backend-adapters/laravel.mdx b/packages/docs/src/content/docs/guides/backend-adapters/laravel.mdx
new file mode 100644
index 0000000..f8b7781
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/backend-adapters/laravel.mdx
@@ -0,0 +1,369 @@
+---
+title: Laravel
+description: Install Mighty in your Laravel project, and learn how to render Astro components from your controllers or inside your Blade/Livewire views.
+sidebar:
+ order: 2
+---
+
+import { Aside, FileTree } from "@astrojs/starlight/components";
+
+The Laravel backend adapter integrates Mighty with your Laravel project, allowing you to render Astro components from your controllers or within your Blade/Livewire views.
+
+## Installation
+
+Refer to [the installation guide](/guides/hello-world/installation) to use Mighty in a new project, or an existing one.
+
+[A Laravel starter kit](/guides/hello-world/installation#laravel-starter-kit) for Mighty is also available.
+
+## Getting started
+
+### Project structure
+
+Once you are done setting up Mighty in your Laravel project, you should have the following structure in place:
+
+
+- resources
+ - astro
+ - components
+ - Welcome.astro
+ - layouts
+ - Layout.astro
+ - pages
+ - **index.astro**
+- astro.config.ts
+- tsconfig.astro.json
+
+
+
+Mighty will **only** detect and render Astro components inside the `pages` directory.
+
+Components inside other directories (e.g. `components` and `layouts`) will not be detected, but can be used in components inside the `pages` directory.
+
+
+
+### Run the development server
+
+To start the development server, run the following command:
+
+```shell
+php artisan mighty:dev
+```
+
+This will start a server that renders Astro components on-demand, with Hot Module Replacement (HMR) included for fast updates.
+
+### Start the production server
+
+Before starting the production server, first build optimized versions of your components:
+
+```shell
+php artisan mighty:build
+```
+
+You can then start the production server with the following command:
+
+```shell
+php artisan mighty:start
+```
+
+This will start a server that either returns static Astro components or renders them on-demand, depending on your rendering strategy.
+
+
+You only need to run either the development server or the production server.
+
+When rendering Astro components from Laravel, Mighty will automatically detect which server is running, and serve the appropriate versions of your components.
+
+
+
+### Render Astro components from controllers
+
+You can use Astro as a rendering engine for your application by returning Astro components from your controllers.
+
+```php title="app/Http/Controllers/PostController.php" {11-13}
+ Post:all(),
+ ]);
+ }
+}
+```
+
+This will render the following Astro component and pass it the `posts` prop:
+
+
+- resources
+ - astro
+ - pages
+ - posts
+ - **index.astro**
+
+
+You can then use the `posts` prop in your Astro component:
+
+```astro title="resources/astro/pages/posts/index.astro"
+---
+interface Props {
+ posts: { id: number; title: string; content: string }[];
+}
+
+const { posts } = Astro.props;
+---
+
+
+ {
+ posts.map((post) => (
+
+ {post.title}
+ {post.content}
+
+ ))
+ }
+
+```
+
+### Render Astro components inside Blade/Livewire views
+
+You can use Astro inside your Blade/Livewire views, with a syntax similar to rendering Livewire components.
+
+This can be very useful when you need to use UI frameworks for a specific use-case, e.g. React Flow for interactive diagrams.
+
+```blade title="resources/views/index.blade.php" ins={4}
+
+
+
+```
+
+This will render the following Astro component and pass it the `posts` prop:
+
+
+- resources
+ - astro
+ - pages
+ - posts
+ - **index.astro**
+
+
+You can then use the `posts` prop in your Astro component:
+
+```astro title="resources/astro/pages/posts/index.astro"
+---
+interface Props {
+ posts: { id: number; title: string; content: string }[];
+}
+
+const { posts } = Astro.props;
+---
+
+
+ {
+ posts.map((post) => (
+
+ {post.title}
+ {post.content}
+
+ ))
+ }
+
+```
+
+### Shared properties
+
+You might want to pass properties to every Astro component, such as the current user or notification content.
+
+To do this, use the `share` method in one of your service providers (typically `AppServiceProvider`):
+
+```php title="AppServiceProvider.php" {22-24}
+share(fn () => [
+ 'user' => auth()->user(),
+ ]);
+ }
+}
+```
+
+You can use shared properties in your Astro component by using the `shared` function:
+
+```astro
+---
+import { shared } from "@gomighty/laravel";
+
+const { user } = shared<{ user: { id: number; name: string } | null }>();
+---
+
+{user !== null ? `Welcome back, ${user.name}!` : "Please log in!"}
+```
+
+
+ We plan to implement type safety for shared properties, similar to what
+ [Hybridly](https://hybridly.dev/) does.
+
+
+### Routing
+
+
+We plan to have first-class support for routing inside Astro components.
+
+In the meantime, you can use [Ziggy](https://github.com/tighten/ziggy) or [Laravel Wayfinder](https://github.com/laravel/wayfinder/) to retrieve your Laravel routes and controllers from Astro components.
+
+
+
+### Using the Astro render context
+
+You can use Astro render context properties, such as `Astro.request`, just like you would in a standard Astro project.
+
+```astro
+---
+interface Props {
+ posts: { id: number; title: string; content: string }[];
+}
+
+const { posts } = Astro.props;
+
+const isBot =
+ Astro.request.headers.get("User-Agent")?.startsWith("curl") ?? false;
+---
+
+{
+ isBot ? (
+ Hey, no scraping!
+ ) : (
+
+ {posts.map((post) => (
+
+ {post.title}
+ {post.content}
+
+ ))}
+
+ )
+}
+```
+
+### Laravel-specific utilities
+
+
+ This part is a work in progress, as we add more and more utilities!
+
+
+In addition to the Astro render context, Mighty provides the following utilities:
+
+- A `user` function for getting the current user:
+
+ ```astro
+ ---
+ import { user } from "@gomighty/laravel";
+
+ const currentUser = user<{ id: number; name: string } | null>(); // or user('guard')
+ ---
+
+ {
+ currentUser !== null
+ ? `Welcome back, ${currentUser.name}!`
+ : "Please log in!"
+ }
+ ```
+
+- A `session` function to get session info:
+
+ ```astro
+ ---
+ import { session } from "@gomighty/laravel";
+
+ const { numberOfProductsInCart } = session<{
+ numberOfProductsInCart: number;
+ }>();
+ // or
+ const numberOfProductsInCart = session("numberOfProductsInCart");
+ ---
+
+ You have {numberOfProductsInCart} products in your cart.
+ ```
+
+ First-class support for Astro sessions is on the roadmap!
+
+- An `errors` function to get validation errors:
+
+ ```astro
+ ---
+ import { errors } from "@gomighty/laravel";
+
+ const { email: emailError } = errors(); // or errors('errorBag')
+ ---
+
+
+ ```
+
+- A `csrfToken` function and a `` component for form submission:
+
+ ```astro
+ ---
+ import { csrfToken, CSRF } from "@gomighty/laravel";
+ ---
+
+
+ ```
+
+- A `` component for form method spoofing:
+
+ ```astro
+ ---
+ import { CSRF, Method } from "@gomighty/laravel";
+ ---
+
+
+ ```
+
+## Manual setup
+
+Check back later for instructions on setting up Mighty manually!
diff --git a/packages/docs/src/content/docs/guides/backend-adapters/what-is-an-adapter.mdx b/packages/docs/src/content/docs/guides/backend-adapters/what-is-an-adapter.mdx
new file mode 100644
index 0000000..81ad276
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/backend-adapters/what-is-an-adapter.mdx
@@ -0,0 +1,28 @@
+---
+title: What is an adapter?
+description: Understand what Mighty backend adapters are, and how they work to make integrating Astro with your backend seamless.
+sidebar:
+ order: 1
+---
+
+Backend adapters are what connect Mighty to your backend framework. They have two main responsibilities:
+
+- Rendering Astro components on your backend.
+- Providing backend context (request info, user info, etc.) to your Astro components.
+
+While Mighty's [development server](/guides/core-concepts/development-server) and [production server](/guides/core-concepts/production-server) provide core functionality, adapters are highly specific to the backend you are using.
+
+## Available adapters
+
+We officially support the following backend adapters:
+
+- [Laravel](/guides/backend-adapters/laravel)
+- [Hono](/guides/backend-adapters/hono)
+
+## Write your own adapter
+
+If your backend doesn't have an adapter yet, you can write your own!
+
+Mighty provides a unified backend adapter interface, making it easy to implement initial support for other backends, then progressively add features as you go.
+
+Learn how to integrate Mighty with your backend in the [**Write Your Own Adapter**](/guides/backend-adapters/write-your-own-adapter) guide.
diff --git a/packages/docs/src/content/docs/guides/backend-adapters/write-your-own-adapter.mdx b/packages/docs/src/content/docs/guides/backend-adapters/write-your-own-adapter.mdx
new file mode 100644
index 0000000..09e6614
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/backend-adapters/write-your-own-adapter.mdx
@@ -0,0 +1,173 @@
+---
+title: Write your own adapter
+sidebar:
+ order: 4
+---
+
+import { Aside, FileTree } from "@astrojs/starlight/components";
+
+This is a work in progress! PRs welcome.
+
+While Mighty provides backend adapters for Laravel and Hono, you might want to use another backend.
+
+Mighty provides a Node.js-based adapter interface, making it easy to add support for your favorite backend.
+
+## Backend adapter building pieces
+
+A backend adapter consists of the following building pieces:
+
+- A way to start Mighty's development and production servers (usually by calling Mighty's helper functions).
+- An interface for rendering Astro components from your backend code (usually written in your backend's programming language).
+- Additional helper functions and types to improve developer experience (optional, usually written in JS/TS).
+
+A backend adapter is considered "usable" if it implements the first two building pieces.
+
+
+Providing helper functions is recommended, but optional!
+
+Focusing first on making the backend adapter usable is a viable strategy.
+
+
+
+## Set up the project structure
+
+First, set up your project structure as follows:
+
+
+- astro
+ - components
+ - layouts
+ - pages
+ - posts
+ - index.astro
+- astro.config.ts
+- tsconfig.astro.json
+
+
+Your project should have at the very least:
+
+- An Astro config file (`astro.config.ts`).
+- A TypeScript config file for Astro components (`tsconfig.astro.json`).
+- A `pages` directory for your components.
+
+## Start Mighty's development and production servers
+
+Mighty provides helper functions to start the development server, build assets, and start the production server:
+
+```ts
+import { dev, build, start } from "@gomighty/core";
+
+// Start the development server
+await dev();
+
+// Build assets
+await build();
+
+// Start the production server
+await start();
+```
+
+All helper functions accept an object with the following options:
+
+```ts
+export type MightyServerOptions = {
+ config?: AstroUserConfig;
+ hooks?: {
+ "mighty:server:start"?: (options: {
+ address: AddressInfo;
+ }) => void | Promise;
+ };
+};
+```
+
+### `config` option
+
+A custom Astro configuration.
+
+You should use this to point to the Astro root [you set up earlier](#set-up-the-project-structure).
+
+This is also useful if you want to automatically provide your own [Astro integration](https://docs.astro.build/en/reference/integrations-reference).
+
+
+The configuration from the `config` option is automatically merged with the Astro config file and Mighty's own configuration.
+
+If there is a configuration value conflict, Mighty's configuration overrides the `config` option, which in turn overrides the Astro config file.
+
+
+
+### `hooks` option
+
+A series of events to hook into the Mighty pipeline.
+
+Use the `mighty:server:start` hook to get the Mighty server's address.
+
+This is useful when you want to send the server's host and port to your backend.
+
+## Render Astro components from your backend code
+
+We assume your backend has knowledge about Mighty's server host and port (e.g. `http://localhost:4321`).
+
+You can now call the server on the `/render` endpoint to render Astro components:
+
+```ts
+const res = await fetch("http://localhost:4321", {
+ method: "POST",
+ headers: { "Content-Type": "application/json" },
+ body: JSON.stringify({
+ component: "posts.index",
+ props: { id: 1 },
+ context: { backendVersion: "v1.2.0" },
+ }),
+});
+const astroComponentBody = await res.text();
+```
+
+The `/render` endpoint accepts a JSON body with the following options:
+
+```ts
+export type MightyRenderRequest = {
+ component: string;
+ props?: Record;
+ context?: Record;
+};
+```
+
+### `component` option
+
+The name of the Astro component to render, in dot notation.
+
+`posts.index` refers to the following path:
+
+
+- astro
+ - pages
+ - posts
+ - **index.astro**
+
+
+### `props` option
+
+An object containing the props to pass to the Astro component.
+
+These are available as `Astro.props` inside the component.
+
+### `context` option
+
+An object containing additional request data.
+
+This can be used to pass shared data that you want to pass to all components, or backend-related info (e.g. user data).
+
+## Provide helper functions
+
+You might want to provide a way to access data from [the Mighty render context](#context-option).
+
+To do so, you can use Mighty's `getContext` helper function:
+
+```ts
+import { getContext } from "@gomighty/core";
+
+export function getBackendVersion() {
+ const context = getContext<{ backendVersion: string }>();
+ return context.backendVersion;
+}
+```
diff --git a/packages/docs/src/content/docs/guides/core-concepts/development-server.mdx b/packages/docs/src/content/docs/guides/core-concepts/development-server.mdx
new file mode 100644
index 0000000..0033846
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/core-concepts/development-server.mdx
@@ -0,0 +1,39 @@
+---
+title: The development server
+description: Learn about Mighty's development server, how it works on top of Astro's development server, and how to run it with your specific backend adapter.
+---
+
+import { Aside } from "@astrojs/starlight/components";
+
+Mighty provides a development server, built on top of Astro's own server to integrate with other backends.
+
+
+When using Hono, Mighty runs the development server in [**middleware mode**](https://vite.dev/config/server-options.html#server-middlewaremode).
+
+In this case, there is no need to run the server separately.
+
+
+
+## How it works
+
+When starting the development server, Mighty:
+
+1. Reads the [Astro config file](https://docs.astro.build/en/guides/configuring-astro/#the-astro-config-file) in the project root.
+1. Analyzes included integrations, and adds required configuration for UI renderers (e.g. React) and script injections (e.g. Alpine.js).
+1. Runs Astro's development server, with custom component rendering middleware included.
+
+In addition, backend adapters may perform additional tasks for better integration, e.g. injecting Astro styles in the `` tag of Blade views (for Laravel).
+
+
+Mighty will **not** read Vite config files (e.g. vite.config.js), even those managed by the backend you use.
+
+Mighty runs in a different context than other frameworks, and will not be affected by any changes to these frameworks' bundler configuration.
+
+
+
+## Run the development server
+
+To run the development server, refer to the instructions your backend adapter provides:
+
+- [Laravel](/guides/backend-adapters/laravel#run-the-development-server)
+- [Hono](/guides/backend-adapters/hono#run-the-development-server)
diff --git a/packages/docs/src/content/docs/guides/core-concepts/production-server.mdx b/packages/docs/src/content/docs/guides/core-concepts/production-server.mdx
new file mode 100644
index 0000000..4c1625b
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/core-concepts/production-server.mdx
@@ -0,0 +1,32 @@
+---
+title: The production server
+description: Learn about Mighty's production server, how it renders optimized Astro components on-demand, and how to run it with your specific backend adapter.
+---
+
+import { Aside } from "@astrojs/starlight/components";
+
+Mighty provides a production server, based on Hono, that renders Astro components on-demand.
+
+
+When using Hono, Mighty provides helper functions to render Astro components.
+
+In this case, there is no need to run a separate server.
+
+
+
+## How it works
+
+Mighty first builds optimized versions of your components through the Astro build process.
+
+Then, when starting the production server, Mighty:
+
+1. Renders the optimized components.
+1. Provides necessary logic for UI renderers (e.g. React) and styling to work.
+
+In addition, backend adapters may perform additional tasks for better integration, e.g. injecting Astro styles in the `` tag of Blade views (for Laravel).
+
+## Run the production server
+
+To run the production server, refer to the instructions your backend adapter provides:
+
+- [Laravel](/guides/backend-adapters/laravel#start-the-production-server)
diff --git a/packages/docs/src/content/docs/guides/hello-world/comparisons.mdx b/packages/docs/src/content/docs/guides/hello-world/comparisons.mdx
new file mode 100644
index 0000000..e38d73d
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/hello-world/comparisons.mdx
@@ -0,0 +1,147 @@
+---
+title: Comparisons
+description: See how Mighty stacks up against other popular solutions like Inertia.js, Livewire, and Astro itself.
+sidebar:
+ order: 2
+---
+
+import { Aside } from "@astrojs/starlight/components";
+
+There are a multitude of ways to build web applications, each with its strengths and weaknesses.
+
+In this page, we compare Mighty to other similar solutions, showcasing different tradeoffs depending on your use case.
+
+This isn't necessarily a "Mighty vs. X" situation; as you will see, some of these solutions can actually be paired with Mighty to improve developer experience!
+
+
+ If you're the author of one of these solutions, or if you have experience in
+ one of them, feel free to contribute to this page by leaving a PR!
+
+
+## Astro itself
+
+Let's first address the elephant in the room: why not **_just use Astro_?**
+
+While Astro prerenders all pages by default, it can be configured to render pages on-demand on the server, making it a full-stack framework.
+
+Astro's developer experience is fantastic, and depending on your use case, you might just want to build your backend on top of it.
+
+However, there are some limitations in Astro's model:
+
+- Astro is limited to building JavaScript/TypeScript backends, as it is a JavaScript framework.
+- To use a backend built in another language, you'll have to build an API to interface with your Astro application.
+- You're also bound to Astro's project structure, and all its decisions regarding file-based routing, middleware design, etc.
+
+Of course, these limitations might not matter if your use case fits Astro's model, in which case you might not need Mighty!
+
+But if the above sounds like a dealbreaker, or if you want the freedom to use any backend without fussing around with APIs, Mighty is a great choice.
+
+## Inertia.js
+
+[Inertia.js](https://inertiajs.com/) allows you to build a modern Single-Page App (SPA) on top of your backend, without having to implement APIs or client-side routing.
+
+In this sense, it's very similar to what Mighty is trying to do, and Inertia.js is in fact a big inspiration for Mighty!
+
+There are some important differences between the two projects:
+
+- Inertia.js is designed for SPAs (be they server- or client-rendered), while Mighty helps you build Multi-Page Apps (MPAs).
+- Inertia.js supports [a wide range of backends](https://inertiajs.com/community-adapters), while Mighty currently has official support for Laravel and Hono (for now!).
+- Given its MPA nature, Mighty is more deeply integrated with the backend, letting you use backend context (e.g. user info) on the Astro side.
+
+Depending on your requirements, you might opt for Inertia.js to build an interaction-rich SPA app!
+
+You might want to consider Mighty if your app doesn't require fine-grained interactions everywhere, or if you prefer to avoid having a UI framework take over your entire page.
+
+
+We plan to implement an SPA mode in Mighty, similar to what Inertia.js does!
+
+Mighty will eventually aim to be a drop-in replacement for Inertia.js, with deeper integration with the backend.
+
+
+
+## Laravel-specific solutions
+
+### Blade
+
+[Blade](https://laravel.com/docs/12.x/blade) is Laravel's built-in, battle-tested, and feature-rich templating engine.
+
+Blade is similar to Astro as it is mainly used to build MPAs, and it can perfectly meet your needs, especially when coupled with a lightweight JavaScript library like [Alpine.js](https://alpinejs.dev/).
+
+On the other hand, if you want both Astro's unmatched developer experience on the frontend and Laravel's batteries-included approach, Mighty helps bridge the gap between them.
+
+Mighty can also be used **_alongside_** Blade, with the ability to render Astro components inside your Blade views.
+
+### Livewire
+
+[Livewire](https://livewire.laravel.com/) is a full-stack framework for Laravel for building dynamic interfaces in PHP, with no or little JavaScript required.
+
+Livewire builds on top of Blade and Alpine.js to deliver a reactive, SPA-like experience, while Mighty is more geared for building MPAs.
+
+If your use case requires you to build in PHP as much as possible, Livewire is an excellent choice!
+
+Alternatively, if you prefer to leverage Astro's great developer experience, you might want to consider Mighty.
+
+Since Livewire uses Blade, you can use Mighty **_alongside_** Livewire, with the ability to render Astro components inside your Livewire components.
+
+
+We plan to implement Livewire support inside Astro components!
+
+You will be able to use HTML directives (e.g. `wire:click`) as well as the `$wire` object to interact with Livewire components.
+
+
+
+### Mingle.js
+
+[Mingle.js](https://github.com/ijpatricio/mingle) is a library that allows you to use React/Vue components in Livewire.
+
+This is similar to Mighty's support for Livewire, though Mighty supports more UI frameworks out of the box, including Svelte, SolidJS, and Angular.
+
+Mingle.js includes support for using Livewire directives inside React/Vue components, a feature not yet implemented in Mighty.
+
+### Hybridly
+
+[Hybridly](https://hybridly.dev/) is an alternative to [Inertia.js](#inertiajs), built using Laravel and Vue.
+
+Compared to Inertia.js, Hybridly puts emphasis on end-to-end type safety, as well as providing common building blocks such as headless dialogs and tables, filtering and more.
+
+As a developer experience focused library, Mighty aims to provide a similar level of type safety as Hybridly.
+
+### Fusion
+
+[Fusion](https://github.com/fusion-php/fusion) was a project aiming to unite a Vue frontend and a Laravel backend in the same Single-File Component file.
+
+```vue
+
+ // Define a prop in PHP
+ $name = prop(Auth::user()->name);
+
+
+
+
+ Hello {{ name }}!
+
+```
+
+Fusion, while very appealing and ambitious, failed to gain traction and was put on hold for a variety of reasons:
+
+- Confusion regarding the execution model; some people thought Fusion executed PHP code **inside** of Vue, which was not the case
+- Lack of support for React and other frameworks
+- Lack of interest from the community; Fusion was built on top of Inertia.js, which meant it was not doing much more than what Inertia.js was doing
+
+Mighty is in a unique position to solve most or all of these concerns, with potential support for far more frameworks than Fusion ever did.
+
+This is our current stance on the matter:
+
+- We **will be implementing** file-based routing and some version of frontend-backend colocation in the future, with support for more frameworks than Fusion.
+- We **might not implement** same-file colocation support, as this might lead to confusion on where code actually executes
+
+## Hono-specific solutions
+
+### HonoX
+
+
+While we see HonoX as similar to Mighty in some aspects, we do not have enough information to do a valid comparison.
+
+If you have experience in HonoX, please feel free to leave a PR and fill this section!
+
+
diff --git a/packages/docs/src/content/docs/guides/hello-world/installation.mdx b/packages/docs/src/content/docs/guides/hello-world/installation.mdx
new file mode 100644
index 0000000..29f17ce
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/hello-world/installation.mdx
@@ -0,0 +1,66 @@
+---
+title: Installation
+description: Learn how to install Mighty in your new or existing project.
+sidebar:
+ order: 3
+---
+
+import { Aside } from "@astrojs/starlight/components";
+import PackageManagerTabs from "@/components/PackageManagerTabs.astro";
+
+
+ This is very likely to change as the project is in a README-driven development
+ phase.
+
+
+Ready to take Mighty for a spin?
+
+The easiest way to install Mighty is by using the [`create-mighty`](#install-with-create-mighty) CLI command, which will guide you through the setup process.
+
+If you are using Laravel, a [Laravel starter kit](#laravel-starter-kit) is also available.
+
+## Install with create-mighty
+
+Run the following command in a new or existing project to get started:
+
+
+
+ ```shell
+ # create a new project with npm
+ npm create mighty@latest
+ ```
+
+
+ ```shell
+ # create a new project with pnpm
+ pnpm create mighty@latest
+ ```
+
+
+ ```shell
+ # create a new project with bun
+ bun create mighty@latest
+ ```
+
+
+
+For new projects (if no compatible project is found in the current directory), the `create-mighty` CLI command will prompt you to create a new directory and set up a new project.
+
+For existing Laravel and Hono projects, the `create-mighty` CLI command will install the corresponding adapter and make it possible to run Mighty inside your development environment.
+
+## Laravel starter kit
+
+A Laravel starter kit for Mighty is also available through the Laravel installer.
+
+Make sure [the Laravel installer is available](https://laravel.com/docs/12.x/installation#installing-php), then run the command below:
+
+```shell
+laravel new my-app --using=gomighty/laravel-starter-kit
+```
+
+## Manual setup
+
+To manually set up Mighty, refer to the instructions your backend adapter provides:
+
+- [Laravel](/guides/backend-adapters/laravel#manual-setup)
+- [Hono](/guides/backend-adapters/hono#manual-setup)
diff --git a/packages/docs/src/content/docs/guides/hello-world/introduction.mdx b/packages/docs/src/content/docs/guides/hello-world/introduction.mdx
new file mode 100644
index 0000000..e9917ff
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/hello-world/introduction.mdx
@@ -0,0 +1,36 @@
+---
+title: Why Mighty?
+description: Discover what Mighty is, its core features, and what it aims to be.
+sidebar:
+ order: 1
+---
+
+Mighty is a library for building apps with Astro and your favorite backend.
+
+Historically, you could only render Astro components within an Astro project.
+In contrast, other web frameworks like React and Vue usually provide a rendering function (e.g. `renderToString`) to use in other contexts.
+
+However, the release of the experimental Container API now makes it possible to render Astro components in any server context.
+
+Mighty builds on top of the Container API to provide a simple way of pairing Astro with the backend of your choice.
+
+## Features
+
+- Render Astro components in any server environment, directly in your project or through a lightweight server.
+- Use all your favorite Astro features, including styling, UI framework integrations, and more.
+- Hit the ground running using your favorite backend with an available adapter, or create your own.
+
+## Key Principles
+
+Mighty aims to be...
+
+1. **Invisible**: You should feel like you're just using Astro + a backend, with no APIs or additional setup needed.
+1. **Easy to try**: Using Mighty in your existing project should be easy, and not conflict with your existing setup.
+1. **Feature-rich**: Mighty should provide all the features that make Astro great, including actions, server islands, sessions, and more.
+1. **Extensible**: It should be easy to use any backend you'd like, either by using an available adapter or by creating your own.
+
+## Convinced?
+
+Are you sold on Mighty? Great! Check out the [Installation](/guides/hello-world/installation) guide to get started.
+
+If you're still on the fence, check out the [Comparisons](/guides/hello-world/comparisons) page to see how Mighty compares to other solutions.
diff --git a/packages/docs/src/content/docs/guides/roadmap.mdx b/packages/docs/src/content/docs/guides/roadmap.mdx
new file mode 100644
index 0000000..8505995
--- /dev/null
+++ b/packages/docs/src/content/docs/guides/roadmap.mdx
@@ -0,0 +1,113 @@
+---
+title: Roadmap
+description: Learn what Mighty has in store for next versions, including Actions, Sessions and more.
+---
+
+Mighty is very much a work in progress, and is still feature-incomplete.
+
+Here is a peek at some features we plan to implement.
+
+## Actions
+
+Mighty plans to fully support [Astro Actions](https://docs.astro.build/en/guides/actions/).
+
+You will be able to define actions in your backend:
+
+```php {10}
+validated());
+ }
+}
+```
+
+... then use them in your Astro components:
+
+```astro
+---
+import { actions } from "astro:actions";
+
+const result = Astro.getActionResult(actions.createPost);
+const inputErrors = isInputError(result?.error) ? result.error.fields : {};
+---
+
+
+```
+
+## Sessions
+
+Mighty plans to support additional drivers for [Astro Sessions](https://docs.astro.build/en/guides/sessions/).
+
+You will be able to write session keys in your backend:
+
+```php title="app/Http/Controllers/PostController.php" {11}
+put(['isThisWorking' => true])
+ return mighty('posts.index', [
+ 'posts' => Post:all(),
+ ]);
+ }
+}
+```
+
+... then use these keys in your Astro components:
+
+```astro title="resources/astro/pages/posts/index.astro"
+---
+interface Props {
+ posts: { id: number; title: string; content: string }[];
+}
+
+const { posts } = Astro.props;
+
+const isThisWorking = await Astro.session?.get("isThisWorking");
+---
+
+{isThisWorking && Sessions work!
}
+
+
+ {
+ posts.map((post) => (
+
+ {post.title}
+ {post.content}
+
+ ))
+ }
+
+```
+
+## SPA Mode
+
+We plan to implement an SPA mode in Mighty, with routing, form handling, and more baked-in.
+
+Mighty will eventually aim to be a drop-in replacement for Inertia.js, with support for more frontend frameworks and deeper integration with the backend.
+
+## File-based Routing
+
+We plan to implement some sort of file-based routing, though we need to iron out the details.
diff --git a/packages/docs/src/content/docs/index.mdx b/packages/docs/src/content/docs/index.mdx
new file mode 100644
index 0000000..4554b0e
--- /dev/null
+++ b/packages/docs/src/content/docs/index.mdx
@@ -0,0 +1,15 @@
+---
+title: Welcome to Mighty
+description: Bring your own backend and build Mighty apps with Astro.
+template: splash
+hero:
+ tagline: Mighty is a framework for building apps with Astro and the backend of your choice.
+ actions:
+ - text: Get Started
+ link: /guides/hello-world/installation
+ icon: rocket
+ - text: Learn more
+ link: /guides/hello-world/introduction
+ icon: right-arrow
+ variant: minimal
+---
diff --git a/packages/docs/src/styles/custom.css b/packages/docs/src/styles/custom.css
new file mode 100644
index 0000000..db4d46d
--- /dev/null
+++ b/packages/docs/src/styles/custom.css
@@ -0,0 +1,31 @@
+:root {
+ --sl-nav-gap: 1rem;
+ --accent-color: 335, 72%, 54%;
+
+ --overlay-color: hsla(var(--accent-color), 0.2);
+}
+
+[data-has-hero] .page {
+ background:
+ linear-gradient(215deg, var(--overlay-color), transparent 40%),
+ radial-gradient(var(--overlay-color), transparent 40%) no-repeat -60vw -40vh
+ / 105vw 200vh,
+ radial-gradient(var(--overlay-color), transparent 65%) no-repeat 50%
+ calc(100% + 20rem) / 60rem 30rem;
+}
+
+:root[data-theme="dark"] {
+ --overlay-color: hsla(var(--accent-color), 0.5);
+}
+
+@view-transition {
+ /* biome-ignore lint/correctness/noUnknownProperty: View Transitions navigation is valid CSS. */
+ navigation: auto;
+}
+
+/* biome-ignore lint/correctness/noUnknownTypeSelector: View Transitions pseudo-elements are valid CSS. */
+::view-transition-old(root),
+/* biome-ignore lint/correctness/noUnknownTypeSelector: View Transitions pseudo-elements are valid CSS. */
+ ::view-transition-new(root) {
+ animation: none;
+}
diff --git a/packages/docs/tsconfig.json b/packages/docs/tsconfig.json
new file mode 100644
index 0000000..4392049
--- /dev/null
+++ b/packages/docs/tsconfig.json
@@ -0,0 +1,12 @@
+{
+ "extends": "astro/tsconfigs/strict",
+ "include": [".astro/types.d.ts", "**/*"],
+ "exclude": ["dist"],
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/components/*": ["src/components/*"],
+ "@/assets/*": ["src/assets/*"]
+ }
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4c1ebce..92adf86 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -34,7 +34,7 @@ importers:
version: 0.21.0(@typescript/native-preview@7.0.0-dev.20260319.1)(typescript@5.9.3)
vitest:
specifier: ^4.1.0
- version: 4.1.0(@types/node@25.3.5)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1))
+ version: 4.1.0(@types/node@25.3.5)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3))
packages/core:
dependencies:
@@ -43,7 +43,7 @@ importers:
version: 4.0.1
astro:
specifier: 'catalog:'
- version: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)
+ version: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)
hast-util-to-html:
specifier: ^9.0.0
version: 9.0.5
@@ -58,7 +58,7 @@ importers:
version: 5.1.0
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)
+ version: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)
devDependencies:
'@astrojs/alpinejs':
specifier: 0.5.0
@@ -68,7 +68,7 @@ importers:
version: 2.1.5
'@astrojs/react':
specifier: 5.0.0
- version: 5.0.0(@types/node@25.3.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ version: 5.0.0(@types/node@25.3.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(yaml@2.8.3)
'@gomighty/tsconfig':
specifier: workspace:*
version: link:../tsconfig
@@ -103,6 +103,31 @@ importers:
specifier: ^4.0.1
version: 4.0.1
+ packages/docs:
+ dependencies:
+ '@astrojs/starlight':
+ specifier: ^0.38.2
+ version: 0.38.2(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3))
+ astro:
+ specifier: 'catalog:'
+ version: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)
+ motion:
+ specifier: ^12.23.12
+ version: 12.38.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ sharp:
+ specifier: ^0.34.2
+ version: 0.34.5
+ starlight-links-validator:
+ specifier: ^0.20.1
+ version: 0.20.1(@astrojs/starlight@0.38.2(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3))
+ devDependencies:
+ '@astrojs/check':
+ specifier: ^0.9.4
+ version: 0.9.8(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)
+ typescript:
+ specifier: ^5.9.3
+ version: 5.9.3
+
packages/hono:
dependencies:
'@gomighty/core':
@@ -113,7 +138,7 @@ importers:
version: 1.19.11(hono@4.12.5)
astro:
specifier: 'catalog:'
- version: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)
+ version: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)
fetch-to-node:
specifier: ^2.1.0
version: 2.1.0
@@ -129,7 +154,7 @@ importers:
version: link:../tsconfig
vite:
specifier: ^7.3.1
- version: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)
+ version: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)
packages/tsconfig: {}
@@ -141,15 +166,45 @@ packages:
'@types/alpinejs': ^3.0.0
alpinejs: ^3.0.0
+ '@astrojs/check@0.9.8':
+ resolution: {integrity: sha512-LDng8446QLS5ToKjRHd3bgUdirvemVVExV7nRyJfW2wV36xuv7vDxwy5NWN9zqeSEDgg0Tv84sP+T3yEq+Zlkw==}
+ hasBin: true
+ peerDependencies:
+ typescript: ^5.0.0
+
+ '@astrojs/compiler@2.13.1':
+ resolution: {integrity: sha512-f3FN83d2G/v32ipNClRKgYv30onQlMZX1vCeZMjPsMMPl1mDpmbl0+N5BYo4S/ofzqJyS5hvwacEo0CCVDn/Qg==}
+
'@astrojs/compiler@3.0.0':
resolution: {integrity: sha512-MwAbDE5mawZ1SS+D8qWiHdprdME5Tlj2e0YjxnEICvcOpbSukNS7Sa7hA5PK+6RrmUr/t6Gi5YgrdZKjbO/WPQ==}
'@astrojs/internal-helpers@0.8.0':
resolution: {integrity: sha512-J56GrhEiV+4dmrGLPNOl2pZjpHXAndWVyiVDYGDuw6MWKpBSEMLdFxHzeM/6sqaknw9M+HFfHZAcvi3OfT3D/w==}
+ '@astrojs/language-server@2.16.6':
+ resolution: {integrity: sha512-N990lu+HSFiG57owR0XBkr02BYMgiLCshLf+4QG4v6jjSWkBeQGnzqi+E1L08xFPPJ7eEeXnxPXGLaVv5pa4Ug==}
+ hasBin: true
+ peerDependencies:
+ prettier: ^3.0.0
+ prettier-plugin-astro: '>=0.11.0'
+ peerDependenciesMeta:
+ prettier:
+ optional: true
+ prettier-plugin-astro:
+ optional: true
+
'@astrojs/markdown-remark@7.0.0':
resolution: {integrity: sha512-jTAXHPy45L7o1ljH4jYV+ShtOHtyQUa1mGp3a5fJp1soX8lInuTJQ6ihmldHzVM4Q7QptU4SzIDIcKbBJO7sXQ==}
+ '@astrojs/markdown-remark@7.0.1':
+ resolution: {integrity: sha512-zAfLJmn07u9SlDNNHTpjv0RT4F8D4k54NR7ReRas8CO4OeGoqSvOuKwqCFg2/cqN3wHwdWlK/7Yv/lMXlhVIaw==}
+
+ '@astrojs/mdx@5.0.2':
+ resolution: {integrity: sha512-0as6odPH9ZQhS3pdH9dWmVOwgXuDtytJiE4VvYgR0lSFBvF4PSTyE0HdODHm/d7dBghvWTPc2bQaBm4y4nTBNw==}
+ engines: {node: '>=22.12.0'}
+ peerDependencies:
+ astro: ^6.0.0
+
'@astrojs/partytown@2.1.5':
resolution: {integrity: sha512-Uo2Uqmvjh/5w08wGoVAspdj14hUoE28uQH8SkzaBMw9bTBNIviEkPi3VkJi+tj1ZYAY9oX7OSkRDJ48QRtMhlw==}
@@ -157,6 +212,10 @@ packages:
resolution: {integrity: sha512-NndtNPpxaGinRpRytljGBvYHpTOwHycSZ/c+lQi5cHvkqqrHKWdkPEhImlODBNmbuB+vyQUNUDXyjzt66CihJg==}
engines: {node: ^20.19.1 || >=22.12.0}
+ '@astrojs/prism@4.0.1':
+ resolution: {integrity: sha512-nksZQVjlferuWzhPsBpQ1JE5XuKAf1id1/9Hj4a9KG4+ofrlzxUUwX4YGQF/SuDiuiGKEnzopGOt38F3AnVWsQ==}
+ engines: {node: '>=22.12.0'}
+
'@astrojs/react@5.0.0':
resolution: {integrity: sha512-OuM+0QFsoPkvv8ZB57kVLxKOqvR+84GR/Em9lh/tAL4fV4CnpBPDxc++0vd1CipH4o99Is7GribuTHFy3doF6g==}
engines: {node: ^20.19.1 || >=22.12.0}
@@ -166,10 +225,21 @@ packages:
react: ^17.0.2 || ^18.0.0 || ^19.0.0
react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0
+ '@astrojs/sitemap@3.7.1':
+ resolution: {integrity: sha512-IzQqdTeskaMX+QDZCzMuJIp8A8C1vgzMBp/NmHNnadepHYNHcxQdGLQZYfkbd2EbRXUfOS+UDIKx8sKg0oWVdw==}
+
+ '@astrojs/starlight@0.38.2':
+ resolution: {integrity: sha512-7AsrvG4EsXUmJT5uqiXJN4oZqKaY0wc/Ip7C6/zGnShHRVoTAA4jxeYIZ3wqbqA6zv4cnp9qk31vB2m2dUcmfg==}
+ peerDependencies:
+ astro: ^6.0.0
+
'@astrojs/telemetry@3.3.0':
resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0}
+ '@astrojs/yaml2ts@0.2.3':
+ resolution: {integrity: sha512-PJzRmgQzUxI2uwpdX2lXSHtP4G8ocp24/t+bZyf5Fy0SZLSF9f9KXZoMlFM/XCGue+B0nH/2IZ7FpBYQATBsCg==}
+
'@babel/code-frame@7.29.0':
resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==}
engines: {node: '>=6.9.0'}
@@ -258,6 +328,10 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
+ '@babel/runtime@7.29.2':
+ resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==}
+ engines: {node: '>=6.9.0'}
+
'@babel/template@7.28.6':
resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==}
engines: {node: '>=6.9.0'}
@@ -341,6 +415,31 @@ packages:
'@clack/prompts@1.1.0':
resolution: {integrity: sha512-pkqbPGtohJAvm4Dphs2M8xE29ggupihHdy1x84HNojZuMtFsHiUlRvqD24tM2+XmI+61LlfNceM3Wr7U5QES5g==}
+ '@ctrl/tinycolor@4.2.0':
+ resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==}
+ engines: {node: '>=14'}
+
+ '@emmetio/abbreviation@2.3.3':
+ resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==}
+
+ '@emmetio/css-abbreviation@2.1.8':
+ resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==}
+
+ '@emmetio/css-parser@0.4.1':
+ resolution: {integrity: sha512-2bC6m0MV/voF4CTZiAbG5MWKbq5EBmDPKu9Sb7s7nVcEzNQlrZP6mFFFlIaISM8X6514H9shWMme1fCm8cWAfQ==}
+
+ '@emmetio/html-matcher@1.3.0':
+ resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==}
+
+ '@emmetio/scanner@1.0.4':
+ resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==}
+
+ '@emmetio/stream-reader-utils@0.1.0':
+ resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==}
+
+ '@emmetio/stream-reader@2.2.0':
+ resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==}
+
'@emnapi/core@1.8.1':
resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==}
@@ -506,6 +605,18 @@ packages:
cpu: [x64]
os: [win32]
+ '@expressive-code/core@0.41.7':
+ resolution: {integrity: sha512-ck92uZYZ9Wba2zxkiZLsZGi9N54pMSAVdrI9uW3Oo9AtLglD5RmrdTwbYPCT2S/jC36JGB2i+pnQtBm/Ib2+dg==}
+
+ '@expressive-code/plugin-frames@0.41.7':
+ resolution: {integrity: sha512-diKtxjQw/979cTglRFaMCY/sR6hWF0kSMg8jsKLXaZBSfGS0I/Hoe7Qds3vVEgeoW+GHHQzMcwvgx/MOIXhrTA==}
+
+ '@expressive-code/plugin-shiki@0.41.7':
+ resolution: {integrity: sha512-DL605bLrUOgqTdZ0Ot5MlTaWzppRkzzqzeGEu7ODnHF39IkEBbFdsC7pbl3LbUQ1DFtnfx6rD54k/cdofbW6KQ==}
+
+ '@expressive-code/plugin-text-markers@0.41.7':
+ resolution: {integrity: sha512-Ewpwuc5t6eFdZmWlFyeuy3e1PTQC0jFvw2Q+2bpcWXbOZhPLsT7+h8lsSIJxb5mS7wZko7cKyQ2RLYDyK6Fpmw==}
+
'@hono/node-server@1.19.11':
resolution: {integrity: sha512-dr8/3zEaB+p0D2n/IUrlPF1HZm586qgJNXK1a9fhg/PzdtkK7Ksd5l312tJX2yBuALqDYBlG20QEbayqPyxn+g==}
engines: {node: '>=18.14.1'}
@@ -681,6 +792,9 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+ '@mdx-js/mdx@3.1.1':
+ resolution: {integrity: sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==}
+
'@napi-rs/wasm-runtime@1.1.1':
resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==}
@@ -690,6 +804,39 @@ packages:
'@oxc-project/types@0.115.0':
resolution: {integrity: sha512-4n91DKnebUS4yjUHl2g3/b2T+IUdCfmoZGhmwsovZCDaJSs+QkVAM+0AqqTxHSsHfeiMuueT75cZaZcT/m0pSw==}
+ '@pagefind/darwin-arm64@1.4.0':
+ resolution: {integrity: sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@pagefind/darwin-x64@1.4.0':
+ resolution: {integrity: sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@pagefind/default-ui@1.4.0':
+ resolution: {integrity: sha512-wie82VWn3cnGEdIjh4YwNESyS1G6vRHwL6cNjy9CFgNnWW/PGRjsLq300xjVH5sfPFK3iK36UxvIBymtQIEiSQ==}
+
+ '@pagefind/freebsd-x64@1.4.0':
+ resolution: {integrity: sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q==}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@pagefind/linux-arm64@1.4.0':
+ resolution: {integrity: sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@pagefind/linux-x64@1.4.0':
+ resolution: {integrity: sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg==}
+ cpu: [x64]
+ os: [linux]
+
+ '@pagefind/windows-x64@1.4.0':
+ resolution: {integrity: sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g==}
+ cpu: [x64]
+ os: [win32]
+
'@quansync/fs@1.0.0':
resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==}
@@ -946,18 +1093,30 @@ packages:
cpu: [x64]
os: [win32]
+ '@shikijs/core@3.23.0':
+ resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==}
+
'@shikijs/core@4.0.1':
resolution: {integrity: sha512-vWvqi9JNgz1dRL9Nvog5wtx7RuNkf7MEPl2mU/cyUUxJeH1CAr3t+81h8zO8zs7DK6cKLMoU9TvukWIDjP4Lzg==}
engines: {node: '>=20'}
+ '@shikijs/engine-javascript@3.23.0':
+ resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==}
+
'@shikijs/engine-javascript@4.0.1':
resolution: {integrity: sha512-DJK9NiwtGYqMuKCRO4Ip0FKNDQpmaiS+K5bFjJ7DWFn4zHueDWgaUG8kAofkrnXF6zPPYYQY7J5FYVW9MbZyBg==}
engines: {node: '>=20'}
+ '@shikijs/engine-oniguruma@3.23.0':
+ resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==}
+
'@shikijs/engine-oniguruma@4.0.1':
resolution: {integrity: sha512-oCWdCTDch3J8Kc0OZJ98KuUPC02O1VqIE3W/e2uvrHqTxYRR21RGEJMtchrgrxhsoJJCzmIciKsqG+q/yD+Cxg==}
engines: {node: '>=20'}
+ '@shikijs/langs@3.23.0':
+ resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==}
+
'@shikijs/langs@4.0.1':
resolution: {integrity: sha512-v/mluaybWdnGJR4GqAR6zh8qAZohW9k+cGYT28Y7M8+jLbC0l4yG085O1A+WkseHTn+awd+P3UBymb2+MXFc8w==}
engines: {node: '>=20'}
@@ -966,6 +1125,9 @@ packages:
resolution: {integrity: sha512-ns0hHZc5eWZuvuIEJz2pTx3Qecz0aRVYumVQJ8JgWY2tq/dH8WxdcVM49Fc2NsHEILNIT6vfdW9MF26RANWiTA==}
engines: {node: '>=20'}
+ '@shikijs/themes@3.23.0':
+ resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==}
+
'@shikijs/themes@4.0.1':
resolution: {integrity: sha512-FW41C/D6j/yKQkzVdjrRPiJCtgeDaYRJFEyCKFCINuRJRj9WcmubhP4KQHPZ4+9eT87jruSrYPyoblNRyDFzvA==}
engines: {node: '>=20'}
@@ -974,6 +1136,9 @@ packages:
resolution: {integrity: sha512-oE46W2eHpvD06+C0MBthd2YrDM6cktvJDFl764tOEXxfr3dAJhxMc0uNZ2tQXp+bkMgl4E7IL88Mj9RnSqiayw==}
engines: {node: '>=20'}
+ '@shikijs/types@3.23.0':
+ resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==}
+
'@shikijs/types@4.0.1':
resolution: {integrity: sha512-EaygPEn57+jJ76mw+nTLvIpJMAcMPokFbrF8lufsZP7Ukk+ToJYEcswN1G0e49nUZAq7aCQtoeW219A8HK1ZOw==}
engines: {node: '>=20'}
@@ -1011,27 +1176,42 @@ packages:
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+ '@types/estree-jsx@1.0.5':
+ resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
+
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
'@types/hast@3.0.4':
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
+ '@types/js-yaml@4.0.9':
+ resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
+
'@types/jsesc@2.5.1':
resolution: {integrity: sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==}
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+ '@types/mdx@2.0.13':
+ resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==}
+
'@types/ms@2.1.0':
resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
'@types/nlcst@2.0.3':
resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==}
+ '@types/node@24.12.0':
+ resolution: {integrity: sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==}
+
'@types/node@25.3.5':
resolution: {integrity: sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==}
+ '@types/picomatch@4.0.2':
+ resolution: {integrity: sha512-qHHxQ+P9PysNEGbALT8f8YOSHW0KJu6l2xU8DYY0fu/EmGxXdVnuTLvFUvBgPJMSqXq29SYHveejeAha+4AYgA==}
+
'@types/react-dom@19.2.3':
resolution: {integrity: sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==}
peerDependencies:
@@ -1040,6 +1220,12 @@ packages:
'@types/react@19.2.14':
resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==}
+ '@types/sax@1.2.7':
+ resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
+
+ '@types/unist@2.0.11':
+ resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==}
+
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
@@ -1120,15 +1306,74 @@ packages:
'@vitest/utils@4.1.0':
resolution: {integrity: sha512-XfPXT6a8TZY3dcGY8EdwsBulFCIw+BeeX0RZn2x/BtiY/75YGh8FeWGG8QISN/WhaqSrE2OrlDgtF8q5uhOTmw==}
+ '@volar/kit@2.4.28':
+ resolution: {integrity: sha512-cKX4vK9dtZvDRaAzeoUdaAJEew6IdxHNCRrdp5Kvcl6zZOqb6jTOfk3kXkIkG3T7oTFXguEMt5+9ptyqYR84Pg==}
+ peerDependencies:
+ typescript: '*'
+
+ '@volar/language-core@2.4.28':
+ resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==}
+
+ '@volar/language-server@2.4.28':
+ resolution: {integrity: sha512-NqcLnE5gERKuS4PUFwlhMxf6vqYo7hXtbMFbViXcbVkbZ905AIVWhnSo0ZNBC2V127H1/2zP7RvVOVnyITFfBw==}
+
+ '@volar/language-service@2.4.28':
+ resolution: {integrity: sha512-Rh/wYCZJrI5vCwMk9xyw/Z+MsWxlJY1rmMZPsxUoJKfzIRjS/NF1NmnuEcrMbEVGja00aVpCsInJfixQTMdvLw==}
+
+ '@volar/source-map@2.4.28':
+ resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==}
+
+ '@volar/typescript@2.4.28':
+ resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==}
+
+ '@vscode/emmet-helper@2.11.0':
+ resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==}
+
+ '@vscode/l10n@0.0.18':
+ resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==}
+
'@vue/reactivity@3.1.5':
resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==}
'@vue/shared@3.1.5':
resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==}
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ ajv-draft-04@1.0.0:
+ resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==}
+ peerDependencies:
+ ajv: ^8.5.0
+ peerDependenciesMeta:
+ ajv:
+ optional: true
+
+ ajv@8.18.0:
+ resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==}
+
alpinejs@3.15.8:
resolution: {integrity: sha512-zxIfCRTBGvF1CCLIOMQOxAyBuqibxSEwS6Jm1a3HGA9rgrJVcjEWlwLcQTVGAWGS8YhAsTRLVrtQ5a5QT9bSSQ==}
+ ansi-escapes@7.3.0:
+ resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==}
+ engines: {node: '>=18'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
ansis@4.2.0:
resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==}
engines: {node: '>=14'}
@@ -1137,6 +1382,9 @@ packages:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
+ arg@5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -1155,6 +1403,15 @@ packages:
resolution: {integrity: sha512-trmleAnZ2PxN/loHWVhhx1qeOHSRXq4TDsBBxq3GqeJitfk3+jTQ+v/C1km/KYq9M7wKqCewMh+/NAvVH7m+bw==}
engines: {node: '>=20.19.0'}
+ astring@1.9.0:
+ resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
+ hasBin: true
+
+ astro-expressive-code@0.41.7:
+ resolution: {integrity: sha512-hUpogGc6DdAd+I7pPXsctyYPRBJDK7Q7d06s4cyP0Vz3OcbziP3FNzN0jZci1BpCvLn9675DvS7B9ctKKX64JQ==}
+ peerDependencies:
+ astro: ^4.0.0-beta || ^5.0.0-beta || ^3.3.0 || ^6.0.0-beta
+
astro@6.0.4:
resolution: {integrity: sha512-1piLJCPTL/x7AMO2cjVFSTFyRqKuC3W8sSEySCt1aJio+p/wGs5H3K+Xr/rE9ftKtknLUtjxCqCE7/0NsXfGpQ==}
engines: {node: ^20.19.1 || >=22.12.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
@@ -1172,6 +1429,12 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
+ bcp-47-match@2.0.3:
+ resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==}
+
+ bcp-47@2.1.0:
+ resolution: {integrity: sha512-9IIS3UPrvIa1Ej+lVDdDwO7zLehjqsaByECw0bu2RRGP73jALm6FYbzI5gWbgHLvNdkvfXB5YrSbocZdOS0c0w==}
+
birpc@4.0.0:
resolution: {integrity: sha512-LShSxJP0KTmd101b6DRyGBj57LZxSDYWKitQNW/mi8GRMvZb078Uf9+pveax1DrVL89vm7mWe+TovdI/UDOuPw==}
@@ -1206,6 +1469,13 @@ packages:
character-entities@2.0.2:
resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==}
+ character-reference-invalid@2.0.1:
+ resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==}
+
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
+
chokidar@5.0.0:
resolution: {integrity: sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==}
engines: {node: '>= 20.19.0'}
@@ -1214,10 +1484,24 @@ packages:
resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==}
engines: {node: '>=8'}
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
clsx@2.1.1:
resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
engines: {node: '>=6'}
+ collapse-white-space@2.1.0:
+ resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
comma-separated-tokens@2.0.3:
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
@@ -1245,6 +1529,9 @@ packages:
css-select@5.2.2:
resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==}
+ css-selector-parser@3.3.0:
+ resolution: {integrity: sha512-Y2asgMGFqJKF4fq4xHDSlFYIkeVfRsm69lQC1q9kbEsH5XtnINTMrweLkjYMeaUgiXBy/uvKeO/a1JHTNnmB2g==}
+
css-tree@2.2.1:
resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
@@ -1257,6 +1544,11 @@ packages:
resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==}
engines: {node: '>= 6'}
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
csso@5.0.5:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
@@ -1300,6 +1592,10 @@ packages:
resolution: {integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==}
engines: {node: '>=0.3.1'}
+ direction@2.0.1:
+ resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==}
+ hasBin: true
+
dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
@@ -1336,6 +1632,12 @@ packages:
electron-to-chromium@1.5.307:
resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==}
+ emmet@2.4.11:
+ resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
empathic@2.0.0:
resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
engines: {node: '>=14'}
@@ -1348,9 +1650,19 @@ packages:
resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
engines: {node: '>=0.12'}
+ environment@1.1.0:
+ resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
+ engines: {node: '>=18'}
+
es-module-lexer@2.0.0:
resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==}
+ esast-util-from-estree@2.0.0:
+ resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==}
+
+ esast-util-from-js@2.0.1:
+ resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==}
+
esbuild@0.27.3:
resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==}
engines: {node: '>=18'}
@@ -1364,6 +1676,24 @@ packages:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'}
+ estree-util-attach-comments@3.0.0:
+ resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==}
+
+ estree-util-build-jsx@3.0.1:
+ resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==}
+
+ estree-util-is-identifier-name@3.0.0:
+ resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==}
+
+ estree-util-scope@1.0.0:
+ resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==}
+
+ estree-util-to-js@2.0.0:
+ resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==}
+
+ estree-util-visit@2.0.0:
+ resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==}
+
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
@@ -1377,9 +1707,18 @@ packages:
resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
engines: {node: '>=12.0.0'}
+ expressive-code@0.41.7:
+ resolution: {integrity: sha512-2wZjC8OQ3TaVEMcBtYY4Va3lo6J+Ai9jf3d4dbhURMJcU4Pbqe6EcHe424MIZI0VHUA1bR6xdpoHYi3yxokWqA==}
+
extend@3.0.2:
resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-uri@3.1.0:
+ resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
+
fdir@6.5.0:
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
engines: {node: '>=12.0.0'}
@@ -1403,6 +1742,20 @@ packages:
resolution: {integrity: sha512-Wp1zXWPVUPBmfoa3Cqc9ctaKuzKAV6uLstRqlR56kSjplf5uAce+qeyYym7F+PHbGTk+tCEdkCW6RD7DX/gBZw==}
engines: {node: '>=20'}
+ framer-motion@12.38.0:
+ resolution: {integrity: sha512-rFYkY/pigbcswl1XQSb7q424kSTQ8q6eAC+YUsSKooHQYuLdzdHjrt6uxUC+PRAO++q5IS7+TamgIw1AphxR+g==}
+ peerDependencies:
+ '@emotion/is-prop-valid': '*'
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/is-prop-valid':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@@ -1412,6 +1765,10 @@ packages:
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
engines: {node: '>=6.9.0'}
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
get-tsconfig@4.13.6:
resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==}
@@ -1421,27 +1778,61 @@ packages:
h3@1.15.5:
resolution: {integrity: sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==}
+ has-flag@5.0.1:
+ resolution: {integrity: sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==}
+ engines: {node: '>=12'}
+
+ hast-util-embedded@3.0.0:
+ resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==}
+
+ hast-util-format@1.1.0:
+ resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==}
+
hast-util-from-html@2.0.3:
resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==}
hast-util-from-parse5@8.0.3:
resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==}
+ hast-util-has-property@3.0.0:
+ resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==}
+
+ hast-util-is-body-ok-link@3.0.1:
+ resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==}
+
hast-util-is-element@3.0.0:
resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==}
+ hast-util-minify-whitespace@1.0.1:
+ resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==}
+
hast-util-parse-selector@4.0.0:
resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==}
+ hast-util-phrasing@3.0.1:
+ resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==}
+
hast-util-raw@9.1.0:
resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==}
+ hast-util-select@6.0.4:
+ resolution: {integrity: sha512-RqGS1ZgI0MwxLaKLDxjprynNzINEkRHY2i8ln4DDjgv9ZhcYVIHN9rlpiYsqtFwrgpYU361SyWDQcGNIBVu3lw==}
+
+ hast-util-to-estree@3.1.3:
+ resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==}
+
hast-util-to-html@9.0.5:
resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
+ hast-util-to-jsx-runtime@2.3.6:
+ resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==}
+
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==}
+
hast-util-to-text@4.0.2:
resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==}
@@ -1464,21 +1855,50 @@ packages:
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
+ html-whitespace-sensitive-tag-names@3.0.1:
+ resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==}
+
http-cache-semantics@4.2.0:
resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==}
+ i18next@23.16.8:
+ resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==}
+
import-without-cache@0.2.5:
resolution: {integrity: sha512-B6Lc2s6yApwnD2/pMzFh/d5AVjdsDXjgkeJ766FmFuJELIGHNycKRj+l3A39yZPM4CchqNCB4RITEAYB1KUM6A==}
engines: {node: '>=20.19.0'}
+ inline-style-parser@0.2.7:
+ resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==}
+
iron-webcrypto@1.2.1:
resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
+ is-absolute-url@5.0.0:
+ resolution: {integrity: sha512-sdJyNpBnQHuVnBunfzjAecOhZr2+A30ywfFvu3EnxtKLUWfwGgyWUmqHbGZiU6vTfHpCPm5GvLe4BAvlU9n8VQ==}
+ engines: {node: '>=20'}
+
+ is-alphabetical@2.0.1:
+ resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==}
+
+ is-alphanumerical@2.0.1:
+ resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==}
+
+ is-decimal@2.0.1:
+ resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==}
+
is-docker@3.0.0:
resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
hasBin: true
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ is-hexadecimal@2.0.1:
+ resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==}
+
is-inside-container@1.0.0:
resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
engines: {node: '>=14.16'}
@@ -1508,11 +1928,28 @@ packages:
engines: {node: '>=6'}
hasBin: true
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
hasBin: true
+ jsonc-parser@2.3.1:
+ resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==}
+
+ jsonc-parser@3.3.1:
+ resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==}
+
+ kleur@4.1.5:
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+ engines: {node: '>=6'}
+
+ klona@2.0.6:
+ resolution: {integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==}
+ engines: {node: '>= 8'}
+
longest-streak@3.1.0:
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
@@ -1529,12 +1966,19 @@ packages:
magicast@0.5.2:
resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==}
+ markdown-extensions@2.0.0:
+ resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==}
+ engines: {node: '>=16'}
+
markdown-table@3.0.4:
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
mdast-util-definitions@6.0.0:
resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==}
+ mdast-util-directive@3.1.0:
+ resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==}
+
mdast-util-find-and-replace@3.0.2:
resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==}
@@ -1559,6 +2003,18 @@ packages:
mdast-util-gfm@3.1.0:
resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==}
+ mdast-util-mdx-expression@2.0.1:
+ resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==}
+
+ mdast-util-mdx-jsx@3.2.0:
+ resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==}
+
+ mdast-util-mdx@3.0.0:
+ resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==}
+
+ mdast-util-mdxjs-esm@2.0.1:
+ resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==}
+
mdast-util-phrasing@4.1.0:
resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==}
@@ -1580,6 +2036,9 @@ packages:
micromark-core-commonmark@2.0.3:
resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
+ micromark-extension-directive@3.0.2:
+ resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==}
+
micromark-extension-gfm-autolink-literal@2.1.0:
resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
@@ -1601,12 +2060,30 @@ packages:
micromark-extension-gfm@3.0.0:
resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==}
+ micromark-extension-mdx-expression@3.0.1:
+ resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==}
+
+ micromark-extension-mdx-jsx@3.0.2:
+ resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==}
+
+ micromark-extension-mdx-md@2.0.0:
+ resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==}
+
+ micromark-extension-mdxjs-esm@3.0.0:
+ resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==}
+
+ micromark-extension-mdxjs@3.0.0:
+ resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==}
+
micromark-factory-destination@2.0.1:
resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==}
micromark-factory-label@2.0.1:
resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==}
+ micromark-factory-mdx-expression@2.0.3:
+ resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==}
+
micromark-factory-space@2.0.1:
resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==}
@@ -1637,6 +2114,9 @@ packages:
micromark-util-encode@2.0.1:
resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
+ micromark-util-events-to-acorn@2.0.3:
+ resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==}
+
micromark-util-html-tag-name@2.0.1:
resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==}
@@ -1661,6 +2141,26 @@ packages:
micromark@4.0.2:
resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==}
+ motion-dom@12.38.0:
+ resolution: {integrity: sha512-pdkHLD8QYRp8VfiNLb8xIBJis1byQ9gPT3Jnh2jqfFtAsWUA3dEepDlsWe/xMpO8McV+VdpKVcp+E+TGJEtOoA==}
+
+ motion-utils@12.36.0:
+ resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==}
+
+ motion@12.38.0:
+ resolution: {integrity: sha512-uYfXzeHlgThchzwz5Te47dlv5JOUC7OB4rjJ/7XTUgtBZD8CchMN8qEJ4ZVsUmTyYA44zjV0fBwsiktRuFnn+w==}
+ peerDependencies:
+ '@emotion/is-prop-valid': '*'
+ react: ^18.0.0 || ^19.0.0
+ react-dom: ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@emotion/is-prop-valid':
+ optional: true
+ react:
+ optional: true
+ react-dom:
+ optional: true
+
mrmime@2.0.1:
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
engines: {node: '>=10'}
@@ -1668,6 +2168,9 @@ packages:
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+ muggle-string@0.4.1:
+ resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
+
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -1726,12 +2229,22 @@ packages:
package-manager-detector@1.6.0:
resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==}
+ pagefind@1.4.0:
+ resolution: {integrity: sha512-z2kY1mQlL4J8q5EIsQkLzQjilovKzfNVhX8De6oyE6uHpfFtyBaqUpcl/XzJC/4fjD8vBDyh1zolimIcVrCn9g==}
+ hasBin: true
+
+ parse-entities@4.0.2:
+ resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==}
+
parse-latin@7.0.0:
resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==}
parse5@7.3.0:
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+ path-browserify@1.0.1:
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
@@ -1749,10 +2262,29 @@ packages:
resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==}
engines: {node: '>=12'}
+ postcss-nested@6.2.0:
+ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-selector-parser@6.1.2:
+ resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+ engines: {node: '>=4'}
+
postcss@8.5.8:
resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==}
engines: {node: ^10 || ^12 || >=14}
+ prettier-plugin-astro@0.14.1:
+ resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==}
+ engines: {node: ^14.15.0 || >=16.0.0}
+
+ prettier@3.6.2:
+ resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
+ engines: {node: '>=14'}
+ hasBin: true
+
prismjs@1.30.0:
resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==}
engines: {node: '>=6'}
@@ -1779,10 +2311,28 @@ packages:
resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==}
engines: {node: '>=0.10.0'}
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
readdirp@5.0.0:
resolution: {integrity: sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==}
engines: {node: '>= 20.19.0'}
+ recma-build-jsx@1.0.0:
+ resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==}
+
+ recma-jsx@1.0.1:
+ resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ recma-parse@1.0.0:
+ resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==}
+
+ recma-stringify@1.0.0:
+ resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==}
+
regex-recursion@6.0.2:
resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
@@ -1792,21 +2342,36 @@ packages:
regex@6.1.0:
resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==}
+ rehype-expressive-code@0.41.7:
+ resolution: {integrity: sha512-25f8ZMSF1d9CMscX7Cft0TSQIqdwjce2gDOvQ+d/w0FovsMwrSt3ODP4P3Z7wO1jsIJ4eYyaDRnIR/27bd/EMQ==}
+
+ rehype-format@5.0.1:
+ resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==}
+
rehype-parse@9.0.1:
resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==}
rehype-raw@7.0.0:
resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==}
+ rehype-recma@1.0.0:
+ resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==}
+
rehype-stringify@10.0.1:
resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==}
rehype@13.0.2:
resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==}
+ remark-directive@3.0.1:
+ resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==}
+
remark-gfm@4.0.1:
resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
+ remark-mdx@3.1.1:
+ resolution: {integrity: sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==}
+
remark-parse@11.0.0:
resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==}
@@ -1820,6 +2385,20 @@ packages:
remark-stringify@11.0.0:
resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==}
+ request-light@0.5.8:
+ resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==}
+
+ request-light@0.7.0:
+ resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
@@ -1864,6 +2443,12 @@ packages:
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
+ s.color@0.0.15:
+ resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==}
+
+ sass-formatter@0.7.9:
+ resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==}
+
sax@1.5.0:
resolution: {integrity: sha512-21IYA3Q5cQf089Z6tgaUTr7lDAyzoTPx5HRtbhsME8Udispad8dC/+sziTNugOEx54ilvatQ9YCzl4KQLPcRHA==}
engines: {node: '>=11.0.0'}
@@ -1884,6 +2469,9 @@ packages:
resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==}
engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ shiki@3.23.0:
+ resolution: {integrity: sha512-55Dj73uq9ZXL5zyeRPzHQsK7Nbyt6Y10k5s7OjuFZGMhpp4r/rsLBH0o/0fstIzX1Lep9VxefWljK/SKCzygIA==}
+
shiki@4.0.1:
resolution: {integrity: sha512-EkAEhDTN5WhpoQFXFw79OHIrSAfHhlImeCdSyg4u4XvrpxKEmdo/9x/HWSowujAnUrFsGOwWiE58a6GVentMnQ==}
engines: {node: '>=20'}
@@ -1894,6 +2482,11 @@ packages:
sisteransi@1.0.5:
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
+ sitemap@9.0.1:
+ resolution: {integrity: sha512-S6hzjGJSG3d6if0YoF5kTyeRJvia6FSTBroE5fQ0bu1QNxyJqhhinfUsXi9fH3MgtXODWvwo2BDyQSnhPQ88uQ==}
+ engines: {node: '>=20.19.5', npm: '>=10.8.2'}
+ hasBin: true
+
smol-toml@1.6.0:
resolution: {integrity: sha512-4zemZi0HvTnYwLfrpk/CF9LOd9Lt87kAt50GnqhMpyF9U3poDAP2+iukq2bZsO/ufegbYehBkqINbsWxj4l4cw==}
engines: {node: '>= 18'}
@@ -1902,23 +2495,66 @@ packages:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
+ source-map@0.7.6:
+ resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
+ engines: {node: '>= 12'}
+
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
stackback@0.0.2:
resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
+ starlight-links-validator@0.20.1:
+ resolution: {integrity: sha512-bPfX9tlvkLcygIwo4nszOf7TOj1iqfZEpUss5oxRlaa3/mt7zGBHANSkanVMd0FK6VQa2oUD9MjH1DszykkwPA==}
+ engines: {node: '>=22.12.0'}
+ peerDependencies:
+ '@astrojs/starlight': '>=0.38.0'
+ astro: '>=6.0.0'
+
std-env@4.0.0:
resolution: {integrity: sha512-zUMPtQ/HBY3/50VbpkupYHbRroTRZJPRLvreamgErJVys0ceuzMkD44J/QjqhHjOzK42GQ3QZIeFG1OYfOtKqQ==}
+ stream-replace-string@2.0.0:
+ resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
stringify-entities@4.0.4:
resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ style-to-js@1.1.21:
+ resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==}
+
+ style-to-object@1.0.14:
+ resolution: {integrity: sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==}
+
+ suf-log@2.5.3:
+ resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==}
+
+ supports-color@10.2.2:
+ resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
+ engines: {node: '>=18'}
+
+ supports-hyperlinks@4.4.0:
+ resolution: {integrity: sha512-UKbpT93hN5Nr9go5UY7bopIB9YQlMz9nm/ct4IXt/irb5YRkn9WaqrOBJGZ5Pwvsd5FQzSVeYlGdXoCAPQZrPg==}
+ engines: {node: '>=20'}
+
svgo@4.0.1:
resolution: {integrity: sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==}
engines: {node: '>=16'}
hasBin: true
+ terminal-link@5.0.0:
+ resolution: {integrity: sha512-qFAy10MTMwjzjU8U16YS4YoZD+NQLHzLssFMNqgravjbvIPNiqkGFR4yjhJfmY9R5OFU7+yHxc6y+uGHkKwLRA==}
+ engines: {node: '>=20'}
+
tiny-inflate@1.0.3:
resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==}
@@ -1992,6 +2628,12 @@ packages:
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+ typesafe-path@0.2.2:
+ resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==}
+
+ typescript-auto-import-cache@0.3.6:
+ resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==}
+
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
@@ -2009,6 +2651,9 @@ packages:
uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
undici-types@7.18.2:
resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==}
@@ -2027,6 +2672,9 @@ packages:
unist-util-modify-children@4.0.0:
resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==}
+ unist-util-position-from-estree@2.0.0:
+ resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==}
+
unist-util-position@5.0.0:
resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
@@ -2123,6 +2771,9 @@ packages:
peerDependencies:
browserslist: '>= 4.21.0'
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
vfile-location@5.0.3:
resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==}
@@ -2215,9 +2866,101 @@ packages:
jsdom:
optional: true
- web-namespaces@2.0.1:
- resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
-
+ volar-service-css@0.0.70:
+ resolution: {integrity: sha512-K1qyOvBpE3rzdAv3e4/6Rv5yizrYPy5R/ne3IWCAzLBuMO4qBMV3kSqWzj6KUVe6S0AnN6wxF7cRkiaKfYMYJw==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+
+ volar-service-emmet@0.0.70:
+ resolution: {integrity: sha512-xi5bC4m/VyE3zy/n2CXspKeDZs3qA41tHLTw275/7dNWM/RqE2z3BnDICQybHIVp/6G1iOQj5c1qXMgQC08TNg==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+
+ volar-service-html@0.0.70:
+ resolution: {integrity: sha512-eR6vCgMdmYAo4n+gcT7DSyBQbwB8S3HZZvSagTf0sxNaD4WppMCFfpqWnkrlGStPKMZvMiejRRVmqsX9dYcTvQ==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+
+ volar-service-prettier@0.0.70:
+ resolution: {integrity: sha512-Z6BCFSpGVCd8BPAsZ785Kce1BGlWd5ODqmqZGVuB14MJvrR4+CYz6cDy4F+igmE1gMifqfvMhdgT8Aud4M5ngg==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ prettier: ^2.2 || ^3.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+ prettier:
+ optional: true
+
+ volar-service-typescript-twoslash-queries@0.0.70:
+ resolution: {integrity: sha512-IdD13Z9N2Bu8EM6CM0fDV1E69olEYGHDU25X51YXmq8Y0CmJ2LNj6gOiBJgpS5JGUqFzECVhMNBW7R0sPdRTMQ==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+
+ volar-service-typescript@0.0.70:
+ resolution: {integrity: sha512-l46Bx4cokkUedTd74ojO5H/zqHZJ8SUuyZ0IB8JN4jfRqUM3bQFBHoOwlZCyZmOeO0A3RQNkMnFclxO4c++gsg==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+
+ volar-service-yaml@0.0.70:
+ resolution: {integrity: sha512-0c8bXDBeoATF9F6iPIlOuYTuZAC4c+yi0siQo920u7eiBJk8oQmUmg9cDUbR4+Gl++bvGP4plj3fErbJuPqdcQ==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+
+ vscode-css-languageservice@6.3.10:
+ resolution: {integrity: sha512-eq5N9Er3fC4vA9zd9EFhyBG90wtCCuXgRSpAndaOgXMh1Wgep5lBgRIeDgjZBW9pa+332yC9+49cZMW8jcL3MA==}
+
+ vscode-html-languageservice@5.6.2:
+ resolution: {integrity: sha512-ulCrSnFnfQ16YzvwnYUgEbUEl/ZG7u2eV27YhvLObSHKkb8fw1Z9cgsnUwjTEeDIdJDoTDTDpxuhQwoenoLNMg==}
+
+ vscode-json-languageservice@4.1.8:
+ resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==}
+ engines: {npm: '>=7.0.0'}
+
+ vscode-jsonrpc@8.2.0:
+ resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==}
+ engines: {node: '>=14.0.0'}
+
+ vscode-languageserver-protocol@3.17.5:
+ resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==}
+
+ vscode-languageserver-textdocument@1.0.12:
+ resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==}
+
+ vscode-languageserver-types@3.17.5:
+ resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==}
+
+ vscode-languageserver@9.0.1:
+ resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==}
+ hasBin: true
+
+ vscode-nls@5.2.0:
+ resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==}
+
+ vscode-uri@3.1.0:
+ resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
+
+ web-namespaces@2.0.1:
+ resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
+
which-pm-runs@1.1.0:
resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==}
engines: {node: '>=4'}
@@ -2227,16 +2970,46 @@ packages:
engines: {node: '>=8'}
hasBin: true
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
xxhash-wasm@1.1.0:
resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==}
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+ yaml-language-server@1.20.0:
+ resolution: {integrity: sha512-qhjK/bzSRZ6HtTvgeFvjNPJGWdZ0+x5NREV/9XZWFjIGezew2b4r5JPy66IfOhd5OA7KeFwk1JfmEbnTvev0cA==}
+ hasBin: true
+
+ yaml@2.7.1:
+ resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==}
+ engines: {node: '>= 14'}
+ hasBin: true
+
+ yaml@2.8.3:
+ resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
yargs-parser@22.0.0:
resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==}
engines: {node: ^20.19.0 || ^22.12.0 || >=23}
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
yocto-queue@1.2.2:
resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
engines: {node: '>=12.20'}
@@ -2254,12 +3027,51 @@ snapshots:
'@types/alpinejs': 3.13.11
alpinejs: 3.15.8
+ '@astrojs/check@0.9.8(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)':
+ dependencies:
+ '@astrojs/language-server': 2.16.6(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)
+ chokidar: 4.0.3
+ kleur: 4.1.5
+ typescript: 5.9.3
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - prettier
+ - prettier-plugin-astro
+
+ '@astrojs/compiler@2.13.1': {}
+
'@astrojs/compiler@3.0.0': {}
'@astrojs/internal-helpers@0.8.0':
dependencies:
picomatch: 4.0.3
+ '@astrojs/language-server@2.16.6(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)':
+ dependencies:
+ '@astrojs/compiler': 2.13.1
+ '@astrojs/yaml2ts': 0.2.3
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@volar/kit': 2.4.28(typescript@5.9.3)
+ '@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.15
+ volar-service-css: 0.0.70(@volar/language-service@2.4.28)
+ volar-service-emmet: 0.0.70(@volar/language-service@2.4.28)
+ volar-service-html: 0.0.70(@volar/language-service@2.4.28)
+ volar-service-prettier: 0.0.70(@volar/language-service@2.4.28)(prettier@3.6.2)
+ volar-service-typescript: 0.0.70(@volar/language-service@2.4.28)
+ volar-service-typescript-twoslash-queries: 0.0.70(@volar/language-service@2.4.28)
+ volar-service-yaml: 0.0.70(@volar/language-service@2.4.28)
+ vscode-html-languageservice: 5.6.2
+ vscode-uri: 3.1.0
+ optionalDependencies:
+ prettier: 3.6.2
+ prettier-plugin-astro: 0.14.1
+ transitivePeerDependencies:
+ - typescript
+
'@astrojs/markdown-remark@7.0.0':
dependencies:
'@astrojs/internal-helpers': 0.8.0
@@ -2285,6 +3097,50 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@astrojs/markdown-remark@7.0.1':
+ dependencies:
+ '@astrojs/internal-helpers': 0.8.0
+ '@astrojs/prism': 4.0.1
+ github-slugger: 2.0.0
+ hast-util-from-html: 2.0.3
+ hast-util-to-text: 4.0.2
+ js-yaml: 4.1.1
+ mdast-util-definitions: 6.0.0
+ rehype-raw: 7.0.0
+ rehype-stringify: 10.0.1
+ remark-gfm: 4.0.1
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.2
+ remark-smartypants: 3.0.2
+ shiki: 4.0.1
+ smol-toml: 1.6.0
+ unified: 11.0.5
+ unist-util-remove-position: 5.0.0
+ unist-util-visit: 5.1.0
+ unist-util-visit-parents: 6.0.2
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@astrojs/mdx@5.0.2(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3))':
+ dependencies:
+ '@astrojs/markdown-remark': 7.0.1
+ '@mdx-js/mdx': 3.1.1
+ acorn: 8.16.0
+ astro: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)
+ es-module-lexer: 2.0.0
+ estree-util-visit: 2.0.0
+ hast-util-to-html: 9.0.5
+ piccolore: 0.1.3
+ rehype-raw: 7.0.0
+ remark-gfm: 4.0.1
+ remark-smartypants: 3.0.2
+ source-map: 0.7.6
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
'@astrojs/partytown@2.1.5':
dependencies:
'@qwik.dev/partytown': 0.11.2
@@ -2294,17 +3150,21 @@ snapshots:
dependencies:
prismjs: 1.30.0
- '@astrojs/react@5.0.0(@types/node@25.3.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
+ '@astrojs/prism@4.0.1':
+ dependencies:
+ prismjs: 1.30.0
+
+ '@astrojs/react@5.0.0(@types/node@25.3.5)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(yaml@2.8.3)':
dependencies:
'@astrojs/internal-helpers': 0.8.0
'@types/react': 19.2.14
'@types/react-dom': 19.2.3(@types/react@19.2.14)
- '@vitejs/plugin-react': 5.1.4(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1))
+ '@vitejs/plugin-react': 5.1.4(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3))
devalue: 5.6.3
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
ultrahtml: 1.6.0
- vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -2319,6 +3179,46 @@ snapshots:
- tsx
- yaml
+ '@astrojs/sitemap@3.7.1':
+ dependencies:
+ sitemap: 9.0.1
+ stream-replace-string: 2.0.0
+ zod: 4.3.6
+
+ '@astrojs/starlight@0.38.2(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3))':
+ dependencies:
+ '@astrojs/markdown-remark': 7.0.1
+ '@astrojs/mdx': 5.0.2(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3))
+ '@astrojs/sitemap': 3.7.1
+ '@pagefind/default-ui': 1.4.0
+ '@types/hast': 3.0.4
+ '@types/js-yaml': 4.0.9
+ '@types/mdast': 4.0.4
+ astro: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)
+ astro-expressive-code: 0.41.7(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3))
+ bcp-47: 2.1.0
+ hast-util-from-html: 2.0.3
+ hast-util-select: 6.0.4
+ hast-util-to-string: 3.0.1
+ hastscript: 9.0.1
+ i18next: 23.16.8
+ js-yaml: 4.1.1
+ klona: 2.0.6
+ magic-string: 0.30.21
+ mdast-util-directive: 3.1.0
+ mdast-util-to-markdown: 2.1.2
+ mdast-util-to-string: 4.0.0
+ pagefind: 1.4.0
+ rehype: 13.0.2
+ rehype-format: 5.0.1
+ remark-directive: 3.0.1
+ ultrahtml: 1.6.0
+ unified: 11.0.5
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
'@astrojs/telemetry@3.3.0':
dependencies:
ci-info: 4.4.0
@@ -2331,6 +3231,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@astrojs/yaml2ts@0.2.3':
+ dependencies:
+ yaml: 2.8.3
+
'@babel/code-frame@7.29.0':
dependencies:
'@babel/helper-validator-identifier': 7.28.5
@@ -2437,6 +3341,8 @@ snapshots:
'@babel/core': 7.29.0
'@babel/helper-plugin-utils': 7.28.6
+ '@babel/runtime@7.29.2': {}
+
'@babel/template@7.28.6':
dependencies:
'@babel/code-frame': 7.29.0
@@ -2513,6 +3419,31 @@ snapshots:
'@clack/core': 1.1.0
sisteransi: 1.0.5
+ '@ctrl/tinycolor@4.2.0': {}
+
+ '@emmetio/abbreviation@2.3.3':
+ dependencies:
+ '@emmetio/scanner': 1.0.4
+
+ '@emmetio/css-abbreviation@2.1.8':
+ dependencies:
+ '@emmetio/scanner': 1.0.4
+
+ '@emmetio/css-parser@0.4.1':
+ dependencies:
+ '@emmetio/stream-reader': 2.2.0
+ '@emmetio/stream-reader-utils': 0.1.0
+
+ '@emmetio/html-matcher@1.3.0':
+ dependencies:
+ '@emmetio/scanner': 1.0.4
+
+ '@emmetio/scanner@1.0.4': {}
+
+ '@emmetio/stream-reader-utils@0.1.0': {}
+
+ '@emmetio/stream-reader@2.2.0': {}
+
'@emnapi/core@1.8.1':
dependencies:
'@emnapi/wasi-threads': 1.1.0
@@ -2607,12 +3538,36 @@ snapshots:
'@esbuild/win32-x64@0.27.3':
optional: true
+ '@expressive-code/core@0.41.7':
+ dependencies:
+ '@ctrl/tinycolor': 4.2.0
+ hast-util-select: 6.0.4
+ hast-util-to-html: 9.0.5
+ hast-util-to-text: 4.0.2
+ hastscript: 9.0.1
+ postcss: 8.5.8
+ postcss-nested: 6.2.0(postcss@8.5.8)
+ unist-util-visit: 5.1.0
+ unist-util-visit-parents: 6.0.2
+
+ '@expressive-code/plugin-frames@0.41.7':
+ dependencies:
+ '@expressive-code/core': 0.41.7
+
+ '@expressive-code/plugin-shiki@0.41.7':
+ dependencies:
+ '@expressive-code/core': 0.41.7
+ shiki: 3.23.0
+
+ '@expressive-code/plugin-text-markers@0.41.7':
+ dependencies:
+ '@expressive-code/core': 0.41.7
+
'@hono/node-server@1.19.11(hono@4.12.5)':
dependencies:
hono: 4.12.5
- '@img/colour@1.1.0':
- optional: true
+ '@img/colour@1.1.0': {}
'@img/sharp-darwin-arm64@0.34.5':
optionalDependencies:
@@ -2727,6 +3682,36 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
+ '@mdx-js/mdx@3.1.1':
+ dependencies:
+ '@types/estree': 1.0.8
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdx': 2.0.13
+ acorn: 8.16.0
+ collapse-white-space: 2.1.0
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ estree-util-scope: 1.0.0
+ estree-walker: 3.0.3
+ hast-util-to-jsx-runtime: 2.3.6
+ markdown-extensions: 2.0.0
+ recma-build-jsx: 1.0.0
+ recma-jsx: 1.0.1(acorn@8.16.0)
+ recma-stringify: 1.0.0
+ rehype-recma: 1.0.0
+ remark-mdx: 3.1.1
+ remark-parse: 11.0.0
+ remark-rehype: 11.1.2
+ source-map: 0.7.6
+ unified: 11.0.5
+ unist-util-position-from-estree: 2.0.0
+ unist-util-stringify-position: 4.0.0
+ unist-util-visit: 5.1.0
+ vfile: 6.0.3
+ transitivePeerDependencies:
+ - supports-color
+
'@napi-rs/wasm-runtime@1.1.1':
dependencies:
'@emnapi/core': 1.8.1
@@ -2738,6 +3723,26 @@ snapshots:
'@oxc-project/types@0.115.0': {}
+ '@pagefind/darwin-arm64@1.4.0':
+ optional: true
+
+ '@pagefind/darwin-x64@1.4.0':
+ optional: true
+
+ '@pagefind/default-ui@1.4.0': {}
+
+ '@pagefind/freebsd-x64@1.4.0':
+ optional: true
+
+ '@pagefind/linux-arm64@1.4.0':
+ optional: true
+
+ '@pagefind/linux-x64@1.4.0':
+ optional: true
+
+ '@pagefind/windows-x64@1.4.0':
+ optional: true
+
'@quansync/fs@1.0.0':
dependencies:
quansync: 1.0.0
@@ -2880,6 +3885,13 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.59.0':
optional: true
+ '@shikijs/core@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+ hast-util-to-html: 9.0.5
+
'@shikijs/core@4.0.1':
dependencies:
'@shikijs/primitive': 4.0.1
@@ -2888,17 +3900,32 @@ snapshots:
'@types/hast': 3.0.4
hast-util-to-html: 9.0.5
+ '@shikijs/engine-javascript@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.0.2
+ oniguruma-to-es: 4.3.4
+
'@shikijs/engine-javascript@4.0.1':
dependencies:
'@shikijs/types': 4.0.1
'@shikijs/vscode-textmate': 10.0.2
oniguruma-to-es: 4.3.4
+ '@shikijs/engine-oniguruma@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.0.2
+
'@shikijs/engine-oniguruma@4.0.1':
dependencies:
'@shikijs/types': 4.0.1
'@shikijs/vscode-textmate': 10.0.2
+ '@shikijs/langs@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+
'@shikijs/langs@4.0.1':
dependencies:
'@shikijs/types': 4.0.1
@@ -2909,6 +3936,10 @@ snapshots:
'@shikijs/vscode-textmate': 10.0.2
'@types/hast': 3.0.4
+ '@shikijs/themes@3.23.0':
+ dependencies:
+ '@shikijs/types': 3.23.0
+
'@shikijs/themes@4.0.1':
dependencies:
'@shikijs/types': 4.0.1
@@ -2918,6 +3949,11 @@ snapshots:
'@shikijs/core': 4.0.1
'@shikijs/types': 4.0.1
+ '@shikijs/types@3.23.0':
+ dependencies:
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
+
'@shikijs/types@4.0.1':
dependencies:
'@shikijs/vscode-textmate': 10.0.2
@@ -2966,28 +4002,42 @@ snapshots:
'@types/deep-eql@4.0.2': {}
+ '@types/estree-jsx@1.0.5':
+ dependencies:
+ '@types/estree': 1.0.8
+
'@types/estree@1.0.8': {}
'@types/hast@3.0.4':
dependencies:
'@types/unist': 3.0.3
+ '@types/js-yaml@4.0.9': {}
+
'@types/jsesc@2.5.1': {}
'@types/mdast@4.0.4':
dependencies:
'@types/unist': 3.0.3
+ '@types/mdx@2.0.13': {}
+
'@types/ms@2.1.0': {}
'@types/nlcst@2.0.3':
dependencies:
'@types/unist': 3.0.3
+ '@types/node@24.12.0':
+ dependencies:
+ undici-types: 7.16.0
+
'@types/node@25.3.5':
dependencies:
undici-types: 7.18.2
+ '@types/picomatch@4.0.2': {}
+
'@types/react-dom@19.2.3(@types/react@19.2.14)':
dependencies:
'@types/react': 19.2.14
@@ -2996,6 +4046,12 @@ snapshots:
dependencies:
csstype: 3.2.3
+ '@types/sax@1.2.7':
+ dependencies:
+ '@types/node': 25.3.5
+
+ '@types/unist@2.0.11': {}
+
'@types/unist@3.0.3': {}
'@typescript/native-preview-darwin-arm64@7.0.0-dev.20260319.1':
@@ -3031,7 +4087,7 @@ snapshots:
'@ungap/structured-clone@1.3.0': {}
- '@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1))':
+ '@vitejs/plugin-react@5.1.4(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
@@ -3039,7 +4095,7 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-rc.3
'@types/babel__core': 7.20.5
react-refresh: 0.18.0
- vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)
transitivePeerDependencies:
- supports-color
@@ -3052,13 +4108,13 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.1.0(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1))':
+ '@vitest/mocker@4.1.0(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
'@vitest/spy': 4.1.0
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)
'@vitest/pretty-format@4.1.0':
dependencies:
@@ -3084,16 +4140,93 @@ snapshots:
convert-source-map: 2.0.0
tinyrainbow: 3.1.0
+ '@volar/kit@2.4.28(typescript@5.9.3)':
+ dependencies:
+ '@volar/language-service': 2.4.28
+ '@volar/typescript': 2.4.28
+ typesafe-path: 0.2.2
+ typescript: 5.9.3
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-uri: 3.1.0
+
+ '@volar/language-core@2.4.28':
+ dependencies:
+ '@volar/source-map': 2.4.28
+
+ '@volar/language-server@2.4.28':
+ 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.12
+ vscode-uri: 3.1.0
+
+ '@volar/language-service@2.4.28':
+ dependencies:
+ '@volar/language-core': 2.4.28
+ vscode-languageserver-protocol: 3.17.5
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-uri: 3.1.0
+
+ '@volar/source-map@2.4.28': {}
+
+ '@volar/typescript@2.4.28':
+ dependencies:
+ '@volar/language-core': 2.4.28
+ path-browserify: 1.0.1
+ vscode-uri: 3.1.0
+
+ '@vscode/emmet-helper@2.11.0':
+ dependencies:
+ emmet: 2.4.11
+ jsonc-parser: 2.3.1
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-languageserver-types: 3.17.5
+ vscode-uri: 3.1.0
+
+ '@vscode/l10n@0.0.18': {}
+
'@vue/reactivity@3.1.5':
dependencies:
'@vue/shared': 3.1.5
'@vue/shared@3.1.5': {}
+ acorn-jsx@5.3.2(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
+
+ acorn@8.16.0: {}
+
+ ajv-draft-04@1.0.0(ajv@8.18.0):
+ optionalDependencies:
+ ajv: 8.18.0
+
+ ajv@8.18.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.1.0
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
alpinejs@3.15.8:
dependencies:
'@vue/reactivity': 3.1.5
+ ansi-escapes@7.3.0:
+ dependencies:
+ environment: 1.1.0
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
ansis@4.2.0: {}
anymatch@3.1.3:
@@ -3101,6 +4234,8 @@ snapshots:
normalize-path: 3.0.0
picomatch: 2.3.1
+ arg@5.0.2: {}
+
argparse@2.0.1: {}
aria-query@5.3.2: {}
@@ -3115,7 +4250,14 @@ snapshots:
estree-walker: 3.0.3
pathe: 2.0.3
- astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3):
+ astring@1.9.0: {}
+
+ astro-expressive-code@0.41.7(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)):
+ dependencies:
+ astro: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)
+ rehype-expressive-code: 0.41.7
+
+ astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3):
dependencies:
'@astrojs/compiler': 3.0.0
'@astrojs/internal-helpers': 0.8.0
@@ -3167,8 +4309,8 @@ snapshots:
unist-util-visit: 5.1.0
unstorage: 1.17.4
vfile: 6.0.3
- vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)
- vitefu: 1.1.2(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1))
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)
+ vitefu: 1.1.2(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3))
xxhash-wasm: 1.1.0
yargs-parser: 22.0.0
zod: 4.3.6
@@ -3215,6 +4357,14 @@ snapshots:
baseline-browser-mapping@2.10.0: {}
+ bcp-47-match@2.0.3: {}
+
+ bcp-47@2.1.0:
+ dependencies:
+ is-alphabetical: 2.0.1
+ is-alphanumerical: 2.0.1
+ is-decimal: 2.0.1
+
birpc@4.0.0: {}
boolbase@1.0.0: {}
@@ -3241,13 +4391,33 @@ snapshots:
character-entities@2.0.2: {}
+ character-reference-invalid@2.0.1: {}
+
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.1.2
+
chokidar@5.0.0:
dependencies:
readdirp: 5.0.0
ci-info@4.4.0: {}
- clsx@2.1.1: {}
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ clsx@2.1.1: {}
+
+ collapse-white-space@2.1.0: {}
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
comma-separated-tokens@2.0.3: {}
@@ -3273,6 +4443,8 @@ snapshots:
domutils: 3.2.2
nth-check: 2.1.1
+ css-selector-parser@3.3.0: {}
+
css-tree@2.2.1:
dependencies:
mdn-data: 2.0.28
@@ -3285,6 +4457,8 @@ snapshots:
css-what@6.2.2: {}
+ cssesc@3.0.0: {}
+
csso@5.0.5:
dependencies:
css-tree: 2.2.1
@@ -3305,8 +4479,7 @@ snapshots:
destr@2.0.5: {}
- detect-libc@2.1.2:
- optional: true
+ detect-libc@2.1.2: {}
devalue@5.6.3: {}
@@ -3316,6 +4489,8 @@ snapshots:
diff@8.0.3: {}
+ direction@2.0.1: {}
+
dlv@1.1.3: {}
dom-serializer@2.0.0:
@@ -3344,14 +4519,37 @@ snapshots:
electron-to-chromium@1.5.307: {}
+ emmet@2.4.11:
+ dependencies:
+ '@emmetio/abbreviation': 2.3.3
+ '@emmetio/css-abbreviation': 2.1.8
+
+ emoji-regex@8.0.0: {}
+
empathic@2.0.0: {}
entities@4.5.0: {}
entities@6.0.1: {}
+ environment@1.1.0: {}
+
es-module-lexer@2.0.0: {}
+ esast-util-from-estree@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ devlop: 1.1.0
+ estree-util-visit: 2.0.0
+ unist-util-position-from-estree: 2.0.0
+
+ esast-util-from-js@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ acorn: 8.16.0
+ esast-util-from-estree: 2.0.0
+ vfile-message: 4.0.3
+
esbuild@0.27.3:
optionalDependencies:
'@esbuild/aix-ppc64': 0.27.3
@@ -3385,6 +4583,35 @@ snapshots:
escape-string-regexp@5.0.0: {}
+ estree-util-attach-comments@3.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+
+ estree-util-build-jsx@3.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ estree-walker: 3.0.3
+
+ estree-util-is-identifier-name@3.0.0: {}
+
+ estree-util-scope@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+ devlop: 1.1.0
+
+ estree-util-to-js@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ astring: 1.9.0
+ source-map: 0.7.6
+
+ estree-util-visit@2.0.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/unist': 3.0.3
+
estree-walker@2.0.2: {}
estree-walker@3.0.3:
@@ -3395,8 +4622,19 @@ snapshots:
expect-type@1.3.0: {}
+ expressive-code@0.41.7:
+ dependencies:
+ '@expressive-code/core': 0.41.7
+ '@expressive-code/plugin-frames': 0.41.7
+ '@expressive-code/plugin-shiki': 0.41.7
+ '@expressive-code/plugin-text-markers': 0.41.7
+
extend@3.0.2: {}
+ fast-deep-equal@3.1.3: {}
+
+ fast-uri@3.1.0: {}
+
fdir@6.5.0(picomatch@4.0.3):
optionalDependencies:
picomatch: 4.0.3
@@ -3413,11 +4651,22 @@ snapshots:
dependencies:
tiny-inflate: 1.0.3
+ framer-motion@12.38.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
+ dependencies:
+ motion-dom: 12.38.0
+ motion-utils: 12.36.0
+ tslib: 2.8.1
+ optionalDependencies:
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+
fsevents@2.3.3:
optional: true
gensync@1.0.0-beta.2: {}
+ get-caller-file@2.0.5: {}
+
get-tsconfig@4.13.6:
dependencies:
resolve-pkg-maps: 1.0.0
@@ -3436,6 +4685,23 @@ snapshots:
ufo: 1.6.3
uncrypto: 0.1.3
+ has-flag@5.0.1: {}
+
+ hast-util-embedded@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ hast-util-is-element: 3.0.0
+
+ hast-util-format@1.1.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ hast-util-embedded: 3.0.0
+ hast-util-minify-whitespace: 1.0.1
+ hast-util-phrasing: 3.0.1
+ hast-util-whitespace: 3.0.0
+ html-whitespace-sensitive-tag-names: 3.0.1
+ unist-util-visit-parents: 6.0.2
+
hast-util-from-html@2.0.3:
dependencies:
'@types/hast': 3.0.4
@@ -3456,14 +4722,38 @@ snapshots:
vfile-location: 5.0.3
web-namespaces: 2.0.1
+ hast-util-has-property@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+
+ hast-util-is-body-ok-link@3.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+
hast-util-is-element@3.0.0:
dependencies:
'@types/hast': 3.0.4
+ hast-util-minify-whitespace@1.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ hast-util-embedded: 3.0.0
+ hast-util-is-element: 3.0.0
+ hast-util-whitespace: 3.0.0
+ unist-util-is: 6.0.1
+
hast-util-parse-selector@4.0.0:
dependencies:
'@types/hast': 3.0.4
+ hast-util-phrasing@3.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ hast-util-embedded: 3.0.0
+ hast-util-has-property: 3.0.0
+ hast-util-is-body-ok-link: 3.0.1
+ hast-util-is-element: 3.0.0
+
hast-util-raw@9.1.0:
dependencies:
'@types/hast': 3.0.4
@@ -3480,6 +4770,45 @@ snapshots:
web-namespaces: 2.0.1
zwitch: 2.0.4
+ hast-util-select@6.0.4:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ bcp-47-match: 2.0.3
+ comma-separated-tokens: 2.0.3
+ css-selector-parser: 3.3.0
+ devlop: 1.1.0
+ direction: 2.0.1
+ hast-util-has-property: 3.0.0
+ hast-util-to-string: 3.0.1
+ hast-util-whitespace: 3.0.0
+ nth-check: 2.1.1
+ property-information: 7.1.0
+ space-separated-tokens: 2.0.2
+ unist-util-visit: 5.1.0
+ zwitch: 2.0.4
+
+ hast-util-to-estree@3.1.3:
+ dependencies:
+ '@types/estree': 1.0.8
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ comma-separated-tokens: 2.0.3
+ devlop: 1.1.0
+ estree-util-attach-comments: 3.0.0
+ estree-util-is-identifier-name: 3.0.0
+ hast-util-whitespace: 3.0.0
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ property-information: 7.1.0
+ space-separated-tokens: 2.0.2
+ style-to-js: 1.1.21
+ unist-util-position: 5.0.0
+ zwitch: 2.0.4
+ transitivePeerDependencies:
+ - supports-color
+
hast-util-to-html@9.0.5:
dependencies:
'@types/hast': 3.0.4
@@ -3494,6 +4823,26 @@ snapshots:
stringify-entities: 4.0.4
zwitch: 2.0.4
+ hast-util-to-jsx-runtime@2.3.6:
+ dependencies:
+ '@types/estree': 1.0.8
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ comma-separated-tokens: 2.0.3
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ hast-util-whitespace: 3.0.0
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ property-information: 7.1.0
+ space-separated-tokens: 2.0.2
+ style-to-js: 1.1.21
+ unist-util-position: 5.0.0
+ vfile-message: 4.0.3
+ transitivePeerDependencies:
+ - supports-color
+
hast-util-to-parse5@8.0.1:
dependencies:
'@types/hast': 3.0.4
@@ -3504,6 +4853,10 @@ snapshots:
web-namespaces: 2.0.1
zwitch: 2.0.4
+ hast-util-to-string@3.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+
hast-util-to-text@4.0.2:
dependencies:
'@types/hast': 3.0.4
@@ -3531,14 +4884,37 @@ snapshots:
html-void-elements@3.0.0: {}
+ html-whitespace-sensitive-tag-names@3.0.1: {}
+
http-cache-semantics@4.2.0: {}
+ i18next@23.16.8:
+ dependencies:
+ '@babel/runtime': 7.29.2
+
import-without-cache@0.2.5: {}
+ inline-style-parser@0.2.7: {}
+
iron-webcrypto@1.2.1: {}
+ is-absolute-url@5.0.0: {}
+
+ is-alphabetical@2.0.1: {}
+
+ is-alphanumerical@2.0.1:
+ dependencies:
+ is-alphabetical: 2.0.1
+ is-decimal: 2.0.1
+
+ is-decimal@2.0.1: {}
+
is-docker@3.0.0: {}
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-hexadecimal@2.0.1: {}
+
is-inside-container@1.0.0:
dependencies:
is-docker: 3.0.0
@@ -3560,8 +4936,18 @@ snapshots:
jsesc@3.1.0: {}
+ json-schema-traverse@1.0.0: {}
+
json5@2.2.3: {}
+ jsonc-parser@2.3.1: {}
+
+ jsonc-parser@3.3.1: {}
+
+ kleur@4.1.5: {}
+
+ klona@2.0.6: {}
+
longest-streak@3.1.0: {}
lru-cache@11.2.6: {}
@@ -3580,6 +4966,8 @@ snapshots:
'@babel/types': 7.29.0
source-map-js: 1.2.1
+ markdown-extensions@2.0.0: {}
+
markdown-table@3.0.4: {}
mdast-util-definitions@6.0.0:
@@ -3588,6 +4976,20 @@ snapshots:
'@types/unist': 3.0.3
unist-util-visit: 5.1.0
+ mdast-util-directive@3.1.0:
+ dependencies:
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ ccount: 2.0.1
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ parse-entities: 4.0.2
+ stringify-entities: 4.0.4
+ unist-util-visit-parents: 6.0.2
+ transitivePeerDependencies:
+ - supports-color
+
mdast-util-find-and-replace@3.0.2:
dependencies:
'@types/mdast': 4.0.4
@@ -3669,6 +5071,55 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ mdast-util-mdx-expression@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdx-jsx@3.2.0:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ '@types/unist': 3.0.3
+ ccount: 2.0.1
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ parse-entities: 4.0.2
+ stringify-entities: 4.0.4
+ unist-util-stringify-position: 4.0.0
+ vfile-message: 4.0.3
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdx@3.0.0:
+ dependencies:
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-mdx-expression: 2.0.1
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-mdxjs-esm: 2.0.1
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ mdast-util-mdxjs-esm@2.0.1:
+ dependencies:
+ '@types/estree-jsx': 1.0.5
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ devlop: 1.1.0
+ mdast-util-from-markdown: 2.0.3
+ mdast-util-to-markdown: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
mdast-util-phrasing@4.1.0:
dependencies:
'@types/mdast': 4.0.4
@@ -3725,6 +5176,16 @@ snapshots:
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.2
+ micromark-extension-directive@3.0.2:
+ dependencies:
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-factory-whitespace: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ parse-entities: 4.0.2
+
micromark-extension-gfm-autolink-literal@2.1.0:
dependencies:
micromark-util-character: 2.1.1
@@ -3783,6 +5244,57 @@ snapshots:
micromark-util-combine-extensions: 2.0.1
micromark-util-types: 2.0.2
+ micromark-extension-mdx-expression@3.0.1:
+ dependencies:
+ '@types/estree': 1.0.8
+ devlop: 1.1.0
+ micromark-factory-mdx-expression: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+
+ micromark-extension-mdx-jsx@3.0.2:
+ dependencies:
+ '@types/estree': 1.0.8
+ devlop: 1.1.0
+ estree-util-is-identifier-name: 3.0.0
+ micromark-factory-mdx-expression: 2.0.3
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ vfile-message: 4.0.3
+
+ micromark-extension-mdx-md@2.0.0:
+ dependencies:
+ micromark-util-types: 2.0.2
+
+ micromark-extension-mdxjs-esm@3.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+ devlop: 1.1.0
+ micromark-core-commonmark: 2.0.3
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ unist-util-position-from-estree: 2.0.0
+ vfile-message: 4.0.3
+
+ micromark-extension-mdxjs@3.0.0:
+ dependencies:
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
+ micromark-extension-mdx-expression: 3.0.1
+ micromark-extension-mdx-jsx: 3.0.2
+ micromark-extension-mdx-md: 2.0.0
+ micromark-extension-mdxjs-esm: 3.0.0
+ micromark-util-combine-extensions: 2.0.1
+ micromark-util-types: 2.0.2
+
micromark-factory-destination@2.0.1:
dependencies:
micromark-util-character: 2.1.1
@@ -3796,6 +5308,18 @@ snapshots:
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.2
+ micromark-factory-mdx-expression@2.0.3:
+ dependencies:
+ '@types/estree': 1.0.8
+ devlop: 1.1.0
+ micromark-factory-space: 2.0.1
+ micromark-util-character: 2.1.1
+ micromark-util-events-to-acorn: 2.0.3
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ unist-util-position-from-estree: 2.0.0
+ vfile-message: 4.0.3
+
micromark-factory-space@2.0.1:
dependencies:
micromark-util-character: 2.1.1
@@ -3848,6 +5372,16 @@ snapshots:
micromark-util-encode@2.0.1: {}
+ micromark-util-events-to-acorn@2.0.3:
+ dependencies:
+ '@types/estree': 1.0.8
+ '@types/unist': 3.0.3
+ devlop: 1.1.0
+ estree-util-visit: 2.0.0
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.2
+ vfile-message: 4.0.3
+
micromark-util-html-tag-name@2.0.1: {}
micromark-util-normalize-identifier@2.0.1:
@@ -3897,10 +5431,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ motion-dom@12.38.0:
+ dependencies:
+ motion-utils: 12.36.0
+
+ motion-utils@12.36.0: {}
+
+ motion@12.38.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4):
+ dependencies:
+ framer-motion: 12.38.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+ tslib: 2.8.1
+ optionalDependencies:
+ react: 19.2.4
+ react-dom: 19.2.4(react@19.2.4)
+
mrmime@2.0.1: {}
ms@2.1.3: {}
+ muggle-string@0.4.1: {}
+
nanoid@3.3.11: {}
neotraverse@0.6.18: {}
@@ -3952,6 +5502,25 @@ snapshots:
package-manager-detector@1.6.0: {}
+ pagefind@1.4.0:
+ optionalDependencies:
+ '@pagefind/darwin-arm64': 1.4.0
+ '@pagefind/darwin-x64': 1.4.0
+ '@pagefind/freebsd-x64': 1.4.0
+ '@pagefind/linux-arm64': 1.4.0
+ '@pagefind/linux-x64': 1.4.0
+ '@pagefind/windows-x64': 1.4.0
+
+ parse-entities@4.0.2:
+ dependencies:
+ '@types/unist': 2.0.11
+ character-entities-legacy: 3.0.0
+ character-reference-invalid: 2.0.1
+ decode-named-character-reference: 1.3.0
+ is-alphanumerical: 2.0.1
+ is-decimal: 2.0.1
+ is-hexadecimal: 2.0.1
+
parse-latin@7.0.0:
dependencies:
'@types/nlcst': 2.0.3
@@ -3965,6 +5534,8 @@ snapshots:
dependencies:
entities: 6.0.1
+ path-browserify@1.0.1: {}
+
pathe@2.0.3: {}
piccolore@0.1.3: {}
@@ -3975,12 +5546,31 @@ snapshots:
picomatch@4.0.3: {}
+ postcss-nested@6.2.0(postcss@8.5.8):
+ dependencies:
+ postcss: 8.5.8
+ postcss-selector-parser: 6.1.2
+
+ postcss-selector-parser@6.1.2:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
postcss@8.5.8:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
source-map-js: 1.2.1
+ prettier-plugin-astro@0.14.1:
+ dependencies:
+ '@astrojs/compiler': 2.13.1
+ prettier: 3.6.2
+ sass-formatter: 0.7.9
+ optional: true
+
+ prettier@3.6.2: {}
+
prismjs@1.30.0: {}
property-information@7.1.0: {}
@@ -3998,8 +5588,39 @@ snapshots:
react@19.2.4: {}
+ readdirp@4.1.2: {}
+
readdirp@5.0.0: {}
+ recma-build-jsx@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+ estree-util-build-jsx: 3.0.1
+ vfile: 6.0.3
+
+ recma-jsx@1.0.1(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
+ estree-util-to-js: 2.0.0
+ recma-parse: 1.0.0
+ recma-stringify: 1.0.0
+ unified: 11.0.5
+
+ recma-parse@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+ esast-util-from-js: 2.0.1
+ unified: 11.0.5
+ vfile: 6.0.3
+
+ recma-stringify@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+ estree-util-to-js: 2.0.0
+ unified: 11.0.5
+ vfile: 6.0.3
+
regex-recursion@6.0.2:
dependencies:
regex-utilities: 2.3.0
@@ -4010,6 +5631,15 @@ snapshots:
dependencies:
regex-utilities: 2.3.0
+ rehype-expressive-code@0.41.7:
+ dependencies:
+ expressive-code: 0.41.7
+
+ rehype-format@5.0.1:
+ dependencies:
+ '@types/hast': 3.0.4
+ hast-util-format: 1.1.0
+
rehype-parse@9.0.1:
dependencies:
'@types/hast': 3.0.4
@@ -4022,6 +5652,14 @@ snapshots:
hast-util-raw: 9.1.0
vfile: 6.0.3
+ rehype-recma@1.0.0:
+ dependencies:
+ '@types/estree': 1.0.8
+ '@types/hast': 3.0.4
+ hast-util-to-estree: 3.1.3
+ transitivePeerDependencies:
+ - supports-color
+
rehype-stringify@10.0.1:
dependencies:
'@types/hast': 3.0.4
@@ -4035,6 +5673,15 @@ snapshots:
rehype-stringify: 10.0.1
unified: 11.0.5
+ remark-directive@3.0.1:
+ dependencies:
+ '@types/mdast': 4.0.4
+ mdast-util-directive: 3.1.0
+ micromark-extension-directive: 3.0.2
+ unified: 11.0.5
+ transitivePeerDependencies:
+ - supports-color
+
remark-gfm@4.0.1:
dependencies:
'@types/mdast': 4.0.4
@@ -4046,6 +5693,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ remark-mdx@3.1.1:
+ dependencies:
+ mdast-util-mdx: 3.0.0
+ micromark-extension-mdxjs: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
remark-parse@11.0.0:
dependencies:
'@types/mdast': 4.0.4
@@ -4076,6 +5730,14 @@ snapshots:
mdast-util-to-markdown: 2.1.2
unified: 11.0.5
+ request-light@0.5.8: {}
+
+ request-light@0.7.0: {}
+
+ require-directory@2.1.1: {}
+
+ require-from-string@2.0.2: {}
+
resolve-pkg-maps@1.0.0: {}
retext-latin@4.0.0:
@@ -4173,6 +5835,14 @@ snapshots:
'@rollup/rollup-win32-x64-msvc': 4.59.0
fsevents: 2.3.3
+ s.color@0.0.15:
+ optional: true
+
+ sass-formatter@0.7.9:
+ dependencies:
+ suf-log: 2.5.3
+ optional: true
+
sax@1.5.0: {}
scheduler@0.27.0: {}
@@ -4211,7 +5881,17 @@ snapshots:
'@img/sharp-win32-arm64': 0.34.5
'@img/sharp-win32-ia32': 0.34.5
'@img/sharp-win32-x64': 0.34.5
- optional: true
+
+ shiki@3.23.0:
+ dependencies:
+ '@shikijs/core': 3.23.0
+ '@shikijs/engine-javascript': 3.23.0
+ '@shikijs/engine-oniguruma': 3.23.0
+ '@shikijs/langs': 3.23.0
+ '@shikijs/themes': 3.23.0
+ '@shikijs/types': 3.23.0
+ '@shikijs/vscode-textmate': 10.0.2
+ '@types/hast': 3.0.4
shiki@4.0.1:
dependencies:
@@ -4228,21 +5908,80 @@ snapshots:
sisteransi@1.0.5: {}
+ sitemap@9.0.1:
+ dependencies:
+ '@types/node': 24.12.0
+ '@types/sax': 1.2.7
+ arg: 5.0.2
+ sax: 1.5.0
+
smol-toml@1.6.0: {}
source-map-js@1.2.1: {}
+ source-map@0.7.6: {}
+
space-separated-tokens@2.0.2: {}
stackback@0.0.2: {}
+ starlight-links-validator@0.20.1(@astrojs/starlight@0.38.2(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)))(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)):
+ dependencies:
+ '@astrojs/starlight': 0.38.2(astro@6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3))
+ '@types/picomatch': 4.0.2
+ astro: 6.0.4(@types/node@25.3.5)(jiti@2.6.1)(rollup@4.59.0)(typescript@5.9.3)(yaml@2.8.3)
+ github-slugger: 2.0.0
+ hast-util-from-html: 2.0.3
+ hast-util-has-property: 3.0.0
+ is-absolute-url: 5.0.0
+ kleur: 4.1.5
+ mdast-util-mdx-jsx: 3.2.0
+ mdast-util-to-string: 4.0.0
+ picomatch: 4.0.3
+ terminal-link: 5.0.0
+ unist-util-visit: 5.1.0
+ transitivePeerDependencies:
+ - supports-color
+
std-env@4.0.0: {}
+ stream-replace-string@2.0.0: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
stringify-entities@4.0.4:
dependencies:
character-entities-html4: 2.1.0
character-entities-legacy: 3.0.0
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ style-to-js@1.1.21:
+ dependencies:
+ style-to-object: 1.0.14
+
+ style-to-object@1.0.14:
+ dependencies:
+ inline-style-parser: 0.2.7
+
+ suf-log@2.5.3:
+ dependencies:
+ s.color: 0.0.15
+ optional: true
+
+ supports-color@10.2.2: {}
+
+ supports-hyperlinks@4.4.0:
+ dependencies:
+ has-flag: 5.0.1
+ supports-color: 10.2.2
+
svgo@4.0.1:
dependencies:
commander: 11.1.0
@@ -4253,6 +5992,11 @@ snapshots:
picocolors: 1.1.1
sax: 1.5.0
+ terminal-link@5.0.0:
+ dependencies:
+ ansi-escapes: 7.3.0
+ supports-hyperlinks: 4.4.0
+
tiny-inflate@1.0.3: {}
tinybench@2.9.0: {}
@@ -4305,11 +6049,15 @@ snapshots:
- synckit
- vue-tsc
- tslib@2.8.1:
- optional: true
+ tslib@2.8.1: {}
- typescript@5.9.3:
- optional: true
+ typesafe-path@0.2.2: {}
+
+ typescript-auto-import-cache@0.3.6:
+ dependencies:
+ semver: 7.7.4
+
+ typescript@5.9.3: {}
ufo@1.6.3: {}
@@ -4322,6 +6070,8 @@ snapshots:
uncrypto@0.1.3: {}
+ undici-types@7.16.0: {}
+
undici-types@7.18.2: {}
unified@11.0.5:
@@ -4354,6 +6104,10 @@ snapshots:
'@types/unist': 3.0.3
array-iterate: 2.0.1
+ unist-util-position-from-estree@2.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
unist-util-position@5.0.0:
dependencies:
'@types/unist': 3.0.3
@@ -4403,6 +6157,8 @@ snapshots:
escalade: 3.2.0
picocolors: 1.1.1
+ util-deprecate@1.0.2: {}
+
vfile-location@5.0.3:
dependencies:
'@types/unist': 3.0.3
@@ -4418,7 +6174,7 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
- vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1):
+ vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3):
dependencies:
esbuild: 0.27.3
fdir: 6.5.0(picomatch@4.0.3)
@@ -4430,15 +6186,16 @@ snapshots:
'@types/node': 25.3.5
fsevents: 2.3.3
jiti: 2.6.1
+ yaml: 2.8.3
- vitefu@1.1.2(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)):
+ vitefu@1.1.2(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)):
optionalDependencies:
- vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)
- vitest@4.1.0(@types/node@25.3.5)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)):
+ vitest@4.1.0(@types/node@25.3.5)(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)):
dependencies:
'@vitest/expect': 4.1.0
- '@vitest/mocker': 4.1.0(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1))
+ '@vitest/mocker': 4.1.0(vite@7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3))
'@vitest/pretty-format': 4.1.0
'@vitest/runner': 4.1.0
'@vitest/snapshot': 4.1.0
@@ -4455,13 +6212,110 @@ snapshots:
tinyexec: 1.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.1.0
- vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)
+ vite: 7.3.1(@types/node@25.3.5)(jiti@2.6.1)(yaml@2.8.3)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 25.3.5
transitivePeerDependencies:
- msw
+ volar-service-css@0.0.70(@volar/language-service@2.4.28):
+ dependencies:
+ vscode-css-languageservice: 6.3.10
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-uri: 3.1.0
+ optionalDependencies:
+ '@volar/language-service': 2.4.28
+
+ volar-service-emmet@0.0.70(@volar/language-service@2.4.28):
+ dependencies:
+ '@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.28
+
+ volar-service-html@0.0.70(@volar/language-service@2.4.28):
+ dependencies:
+ vscode-html-languageservice: 5.6.2
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-uri: 3.1.0
+ optionalDependencies:
+ '@volar/language-service': 2.4.28
+
+ volar-service-prettier@0.0.70(@volar/language-service@2.4.28)(prettier@3.6.2):
+ dependencies:
+ vscode-uri: 3.1.0
+ optionalDependencies:
+ '@volar/language-service': 2.4.28
+ prettier: 3.6.2
+
+ volar-service-typescript-twoslash-queries@0.0.70(@volar/language-service@2.4.28):
+ dependencies:
+ vscode-uri: 3.1.0
+ optionalDependencies:
+ '@volar/language-service': 2.4.28
+
+ volar-service-typescript@0.0.70(@volar/language-service@2.4.28):
+ dependencies:
+ path-browserify: 1.0.1
+ semver: 7.7.4
+ typescript-auto-import-cache: 0.3.6
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-nls: 5.2.0
+ vscode-uri: 3.1.0
+ optionalDependencies:
+ '@volar/language-service': 2.4.28
+
+ volar-service-yaml@0.0.70(@volar/language-service@2.4.28):
+ dependencies:
+ vscode-uri: 3.1.0
+ yaml-language-server: 1.20.0
+ optionalDependencies:
+ '@volar/language-service': 2.4.28
+
+ vscode-css-languageservice@6.3.10:
+ 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.2:
+ dependencies:
+ '@vscode/l10n': 0.0.18
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-languageserver-types: 3.17.5
+ vscode-uri: 3.1.0
+
+ vscode-json-languageservice@4.1.8:
+ dependencies:
+ jsonc-parser: 3.3.1
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-languageserver-types: 3.17.5
+ vscode-nls: 5.2.0
+ vscode-uri: 3.1.0
+
+ vscode-jsonrpc@8.2.0: {}
+
+ vscode-languageserver-protocol@3.17.5:
+ dependencies:
+ vscode-jsonrpc: 8.2.0
+ vscode-languageserver-types: 3.17.5
+
+ vscode-languageserver-textdocument@1.0.12: {}
+
+ vscode-languageserver-types@3.17.5: {}
+
+ vscode-languageserver@9.0.1:
+ dependencies:
+ vscode-languageserver-protocol: 3.17.5
+
+ vscode-nls@5.2.0: {}
+
+ vscode-uri@3.1.0: {}
+
web-namespaces@2.0.1: {}
which-pm-runs@1.1.0: {}
@@ -4471,12 +6325,50 @@ snapshots:
siginfo: 2.0.0
stackback: 0.0.2
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
xxhash-wasm@1.1.0: {}
+ y18n@5.0.8: {}
+
yallist@3.1.1: {}
+ yaml-language-server@1.20.0:
+ dependencies:
+ '@vscode/l10n': 0.0.18
+ ajv: 8.18.0
+ ajv-draft-04: 1.0.0(ajv@8.18.0)
+ prettier: 3.6.2
+ request-light: 0.5.8
+ vscode-json-languageservice: 4.1.8
+ vscode-languageserver: 9.0.1
+ vscode-languageserver-textdocument: 1.0.12
+ vscode-languageserver-types: 3.17.5
+ vscode-uri: 3.1.0
+ yaml: 2.7.1
+
+ yaml@2.7.1: {}
+
+ yaml@2.8.3: {}
+
+ yargs-parser@21.1.1: {}
+
yargs-parser@22.0.0: {}
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
yocto-queue@1.2.2: {}
zod@4.3.6: {}