diff --git a/.changeset/blue-colts-film.md b/.changeset/blue-colts-film.md new file mode 100644 index 000000000000..9df2e9e56031 --- /dev/null +++ b/.changeset/blue-colts-film.md @@ -0,0 +1,23 @@ +--- +'@astrojs/db': minor +--- + +Removes the `AstroDbIntegration` type + +Astro integration hooks can now be extended and as such `@astrojs/db` no longer needs to declare it's own integration type. Using `AstroIntegration` will have the same type. + +If you were using the `AstroDbIntegration` type, apply this change to your integration code: + +```diff +- import { defineDbIntegration, type AstroDbIntegration } from '@astrojs/db/utils'; ++ import { defineDbIntegration } from '@astrojs/db/utils'; +import type { AstroIntegration } from 'astro'; + +- export default (): AstroDbIntegration => { ++ export default (): AstroIntegration => { + return defineDbIntegration({ + name: 'your-integration', + hooks: {}, + }); +} +``` diff --git a/.changeset/calm-beans-jam.md b/.changeset/calm-beans-jam.md deleted file mode 100644 index 2fb50132e062..000000000000 --- a/.changeset/calm-beans-jam.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fixes false positive audit warnings on elements with the role "tabpanel". diff --git a/.changeset/chilled-impalas-dance.md b/.changeset/chilled-impalas-dance.md new file mode 100644 index 000000000000..51d6708011fd --- /dev/null +++ b/.changeset/chilled-impalas-dance.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes an issue where the development server was emitting a 404 status code when the user uses a rewrite that emits a 200 status code. diff --git a/.changeset/chilly-jokes-fold.md b/.changeset/chilly-jokes-fold.md new file mode 100644 index 000000000000..3410cdeb95f9 --- /dev/null +++ b/.changeset/chilly-jokes-fold.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes a case where invalid `astro:env` variables at runtime would not throw correctly diff --git a/.changeset/cold-crabs-arrive.md b/.changeset/cold-crabs-arrive.md new file mode 100644 index 000000000000..6bde11b6a818 --- /dev/null +++ b/.changeset/cold-crabs-arrive.md @@ -0,0 +1,32 @@ +--- +'@astrojs/markdown-remark': minor +'astro': minor +--- + +Adds support for [Shiki's `defaultColor` option](https://shiki.style/guide/dual-themes#without-default-color). + +This option allows you to override the values of a theme's inline style, adding only CSS variables to give you more flexibility in applying multiple color themes. + +Configure `defaultColor: false` in your Shiki config to apply throughout your site, or pass to Astro's built-in `` component to style an individual code block. + +```js title="astro.config.mjs" +import { defineConfig } from 'astro/config'; +export default defineConfig({ + markdown: { + shikiConfig: { + themes: { + light: 'github-light', + dark: 'github-dark', + }, + defaultColor: false, + }, + }, +}); +``` + +```astro +--- +import { Code } from 'astro:components'; +--- + +``` diff --git a/.changeset/curvy-otters-jog.md b/.changeset/curvy-otters-jog.md new file mode 100644 index 000000000000..8bfa0a17ced7 --- /dev/null +++ b/.changeset/curvy-otters-jog.md @@ -0,0 +1,58 @@ +--- +'astro': minor +--- + +Refactors the type for integration hooks so that integration authors writing custom integration hooks can now allow runtime interactions between their integration and other integrations. + +This internal change should not break existing code for integration authors. + +To declare your own hooks for your integration, extend the `Astro.IntegrationHooks` interface: + +```ts +// your-integration/types.ts +declare global { + namespace Astro { + interface IntegrationHooks { + 'myLib:eventHappened': (your: string, parameters: number) => Promise; + } + } +} +``` + +Call your hooks on all other integrations installed in a project at the appropriate time. For example, you can call your hook on initialization before either the Vite or Astro config have resolved: + +```ts +// your-integration/index.ts +import './types.ts'; + +export default (): AstroIntegration => { + return { + name: 'your-integration', + hooks: { + 'astro:config:setup': async ({ config }) => { + for (const integration of config.integrations) { + await integration.hooks['myLib:eventHappened'].?('your values', 123); + } + }, + } + } +} +``` + +Other integrations can also now declare your hooks: + +```ts +// other-integration/index.ts +import 'your-integration/types.ts'; + +export default (): AstroIntegration => { + return { + name: 'other-integration', + hooks: { + 'myLib:eventHappened': async (your, values) => { + // ... + }, + } + } +} +``` diff --git a/.changeset/five-rocks-vanish.md b/.changeset/five-rocks-vanish.md new file mode 100644 index 000000000000..7113deb2969b --- /dev/null +++ b/.changeset/five-rocks-vanish.md @@ -0,0 +1,42 @@ +--- +'astro': minor +--- + +Experimental Server Islands + +Server Islands allow you to specify components that should run on the server, allowing the rest of the page to be more aggressively cached, or even generated statically. Turn any `.astro` component into a server island by adding the `server:defer` directive and optionally, fallback placeholder content: + +```astro +--- +import Avatar from '../components/Avatar.astro'; +import GenericUser from '../components/GenericUser.astro'; +--- + +
+

Page Title

+
+ + + +
+
+``` + +The `server:defer` directive can be used on any Astro component in a project using `hybrid` or `server` mode with an adapter. There are no special APIs needed inside of the island. + +Enable server islands by adding the experimental flag to your Astro config with an appropriate `output` mode and adatper: + +```js +import { defineConfig } from 'astro/config'; +import netlify from '@astrojs/netlify'; + +export default defineConfig({ + output: 'hybrid', + adapter: netlify(), + experimental { + serverIslands: true, + }, +}); +``` + +For more information, see the [server islands documentation](https://docs.astro.build/en/reference/configuration-reference/#experimentalserverislands). diff --git a/.changeset/grumpy-dolphins-jump.md b/.changeset/grumpy-dolphins-jump.md new file mode 100644 index 000000000000..3a900ef8effd --- /dev/null +++ b/.changeset/grumpy-dolphins-jump.md @@ -0,0 +1,5 @@ +--- +'astro': minor +--- + +Adds a `--noSync` parameter to the `astro check` command to skip the type-gen step. This can be useful when running `astro check` inside packages that have Astro components, but are not Astro projects diff --git a/.changeset/large-geese-play.md b/.changeset/large-geese-play.md new file mode 100644 index 000000000000..2cfd9788df9a --- /dev/null +++ b/.changeset/large-geese-play.md @@ -0,0 +1,20 @@ +--- +"astro": minor +--- + +Adds a new `inferRemoteSize()` function that can be used to infer the dimensions of a remote image. + +Previously, the ability to infer these values was only available by adding the [`inferSize`] attribute to the `` and `` components or `getImage()`. Now, you can also access this data outside of these components. + +This is useful for when you need to know the dimensions of an image for styling purposes or to calculate different densities for responsive images. + +```astro +--- +import { inferRemoteSize, Image } from 'astro:assets'; + +const imageUrl = 'https://...'; +const { width, height } = await inferRemoteSize(imageUrl); +--- + + +``` diff --git a/.changeset/loud-socks-doubt.md b/.changeset/loud-socks-doubt.md deleted file mode 100644 index 4af3b4607703..000000000000 --- a/.changeset/loud-socks-doubt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Fixes a case where Astro's config `experimental.env.schema` keys did not allow numbers. Numbers are still not allowed as the first character to be able to generate valid JavaScript identifiers diff --git a/.changeset/modern-buses-check.md b/.changeset/modern-buses-check.md new file mode 100644 index 000000000000..3cf7482c1bf1 --- /dev/null +++ b/.changeset/modern-buses-check.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Refactors how `sync` works and when it's called. Fixes an issue with `astro:env` types in dev not being generated diff --git a/.changeset/nasty-poems-juggle.md b/.changeset/nasty-poems-juggle.md deleted file mode 100644 index 74e1b176d036..000000000000 --- a/.changeset/nasty-poems-juggle.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -'astro': patch ---- - -Expands the `isInputError()` utility from `astro:actions` to accept errors of any type. This should now allow type narrowing from a try / catch block. - -```ts -// example.ts -import { actions, isInputError } from 'astro:actions'; - -try { - await actions.like(new FormData()); -} catch (error) { - if (isInputError(error)) { - console.log(error.fields); - } -} -``` diff --git a/.changeset/plenty-socks-talk.md b/.changeset/plenty-socks-talk.md deleted file mode 100644 index 2749228dd952..000000000000 --- a/.changeset/plenty-socks-talk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'astro': patch ---- - -Exposes utility types from `astro:actions` for the `defineAction` handler (`ActionHandler`) and the `ActionError` code (`ActionErrorCode`). diff --git a/.changeset/seven-donuts-happen.md b/.changeset/seven-donuts-happen.md new file mode 100644 index 000000000000..cf6b85b5b958 --- /dev/null +++ b/.changeset/seven-donuts-happen.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Supports importing Astro components with Vite queries, like `?url`, `?raw`, and `?direct` diff --git a/.changeset/slow-roses-call.md b/.changeset/slow-roses-call.md deleted file mode 100644 index 9217f96fe965..000000000000 --- a/.changeset/slow-roses-call.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -'astro': patch ---- - -Adds a new property `experimental.env.validateSecrets` to allow validating private variables on the server. - -By default, this is set to `false` and only public variables are checked on start. If enabled, secrets will also be checked on start (dev/build modes). This is useful for example in some CIs to make sure all your secrets are correctly set before deploying. - -```js -// astro.config.mjs -import { defineConfig, envField } from "astro/config" - -export default defineConfig({ - experimental: { - env: { - schema: { - // ... - }, - validateSecrets: true - } - } -}) -``` diff --git a/.changeset/small-vans-own.md b/.changeset/small-vans-own.md deleted file mode 100644 index 06352e256af0..000000000000 --- a/.changeset/small-vans-own.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -'astro': patch ---- - -Expose new `ActionReturnType` utility from `astro:actions`. This infers the return type of an action by passing `typeof actions.name` as a type argument. This example defines a `like` action that returns `likes` as an object: - -```ts -// actions/index.ts -import { defineAction } from 'astro:actions'; - -export const server = { - like: defineAction({ - handler: () => { - /* ... */ - return { likes: 42 } - } - }) -} -``` - -In your client code, you can infer this handler return value with `ActionReturnType`: - -```ts -// client.ts -import { actions, ActionReturnType } from 'astro:actions'; - -type LikesResult = ActionReturnType; -// -> { likes: number } -``` diff --git a/.changeset/swift-cows-walk.md b/.changeset/swift-cows-walk.md deleted file mode 100644 index 212d0417e699..000000000000 --- a/.changeset/swift-cows-walk.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"astro": patch ---- - -Fixes `astro:actions` autocompletion for the `defineAction` `accept` property diff --git a/.changeset/thin-dodos-serve.md b/.changeset/thin-dodos-serve.md new file mode 100644 index 000000000000..72294343da66 --- /dev/null +++ b/.changeset/thin-dodos-serve.md @@ -0,0 +1,5 @@ +--- +'astro': minor +--- + +Adds Shiki's [`defaultColor`](https://shiki.style/guide/dual-themes#without-default-color) option to the `` component, giving you more control in applying multiple themes diff --git a/.changeset/twenty-maps-glow.md b/.changeset/twenty-maps-glow.md new file mode 100644 index 000000000000..9588a45bc2e4 --- /dev/null +++ b/.changeset/twenty-maps-glow.md @@ -0,0 +1,5 @@ +--- +'astro': minor +--- + +Adds two new values to the [pagination `page` prop](https://docs.astro.build/en/reference/api-reference/#the-pagination-page-prop): `page.first` and `page.last` for accessing the URLs of the first and last pages. diff --git a/.changeset/warm-lizards-mate.md b/.changeset/warm-lizards-mate.md new file mode 100644 index 000000000000..a954475107f3 --- /dev/null +++ b/.changeset/warm-lizards-mate.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes Astro not working on low versions of Node 18 and 20 diff --git a/examples/basics/package.json b/examples/basics/package.json index ed7f452c2051..d922caebfbb8 100644 --- a/examples/basics/package.json +++ b/examples/basics/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/blog/package.json b/examples/blog/package.json index 29d33e4f9c4a..6954ca7e03eb 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -14,6 +14,6 @@ "@astrojs/mdx": "^3.1.2", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/component/package.json b/examples/component/package.json index dadb92b7b359..1d40ec2f1247 100644 --- a/examples/component/package.json +++ b/examples/component/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/container-with-vitest/package.json b/examples/container-with-vitest/package.json index 4fa718428ffe..c8aec215ffff 100644 --- a/examples/container-with-vitest/package.json +++ b/examples/container-with-vitest/package.json @@ -12,11 +12,11 @@ "test": "vitest run" }, "dependencies": { - "astro": "^4.11.5", + "astro": "^4.11.6", "@astrojs/react": "^3.6.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "vitest": "^1.6.0" + "vitest": "^2.0.3" }, "devDependencies": { "@types/react-dom": "^18.3.0", diff --git a/examples/framework-alpine/package.json b/examples/framework-alpine/package.json index 60d3bd55984d..22d788d8617a 100644 --- a/examples/framework-alpine/package.json +++ b/examples/framework-alpine/package.json @@ -14,6 +14,6 @@ "@astrojs/alpinejs": "^0.4.0", "@types/alpinejs": "^3.13.10", "alpinejs": "^3.14.1", - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/framework-lit/package.json b/examples/framework-lit/package.json index 701d46f235df..9d4baa253e74 100644 --- a/examples/framework-lit/package.json +++ b/examples/framework-lit/package.json @@ -13,7 +13,7 @@ "dependencies": { "@astrojs/lit": "^4.3.0", "@webcomponents/template-shadowroot": "^0.2.1", - "astro": "^4.11.5", + "astro": "^4.11.6", "lit": "^3.1.4" } } diff --git a/examples/framework-multiple/package.json b/examples/framework-multiple/package.json index ef70525d9c6a..941b71491297 100644 --- a/examples/framework-multiple/package.json +++ b/examples/framework-multiple/package.json @@ -11,14 +11,14 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.0", + "@astrojs/preact": "^3.5.1", "@astrojs/react": "^3.6.0", "@astrojs/solid-js": "^4.4.0", "@astrojs/svelte": "^5.6.0", "@astrojs/vue": "^4.5.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "preact": "^10.22.1", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/examples/framework-preact/package.json b/examples/framework-preact/package.json index b1b672385bd5..77a95ac08f07 100644 --- a/examples/framework-preact/package.json +++ b/examples/framework-preact/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.0", - "@preact/signals": "^1.2.3", - "astro": "^4.11.5", + "@astrojs/preact": "^3.5.1", + "@preact/signals": "^1.3.0", + "astro": "^4.11.6", "preact": "^10.22.1" } } diff --git a/examples/framework-react/package.json b/examples/framework-react/package.json index 20484e8dd198..b9d21852400a 100644 --- a/examples/framework-react/package.json +++ b/examples/framework-react/package.json @@ -14,7 +14,7 @@ "@astrojs/react": "^3.6.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "react": "^18.3.1", "react-dom": "^18.3.1" } diff --git a/examples/framework-solid/package.json b/examples/framework-solid/package.json index 945aa9987359..42a886518188 100644 --- a/examples/framework-solid/package.json +++ b/examples/framework-solid/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/solid-js": "^4.4.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "solid-js": "^1.8.18" } } diff --git a/examples/framework-svelte/package.json b/examples/framework-svelte/package.json index 60658a81a378..adb56ccb1e99 100644 --- a/examples/framework-svelte/package.json +++ b/examples/framework-svelte/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/svelte": "^5.6.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "svelte": "^4.2.18" } } diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json index 2225addab524..8632013551d7 100644 --- a/examples/framework-vue/package.json +++ b/examples/framework-vue/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/vue": "^4.5.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "vue": "^3.4.31" } } diff --git a/examples/hackernews/package.json b/examples/hackernews/package.json index fa6298bc5356..f81f208c38fc 100644 --- a/examples/hackernews/package.json +++ b/examples/hackernews/package.json @@ -12,6 +12,6 @@ }, "dependencies": { "@astrojs/node": "^8.3.2", - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/integration/package.json b/examples/integration/package.json index cf3d457f731f..3c80d79c2c3e 100644 --- a/examples/integration/package.json +++ b/examples/integration/package.json @@ -15,7 +15,7 @@ ], "scripts": {}, "devDependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" }, "peerDependencies": { "astro": "^4.0.0" diff --git a/examples/middleware/package.json b/examples/middleware/package.json index 4daf9ed748f5..51b813736a5a 100644 --- a/examples/middleware/package.json +++ b/examples/middleware/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "@astrojs/node": "^8.3.2", - "astro": "^4.11.5", + "astro": "^4.11.6", "html-minifier": "^4.0.0" }, "devDependencies": { diff --git a/examples/minimal/package.json b/examples/minimal/package.json index c4290981616d..120306263178 100644 --- a/examples/minimal/package.json +++ b/examples/minimal/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/non-html-pages/package.json b/examples/non-html-pages/package.json index 988bec080883..7485ab41914f 100644 --- a/examples/non-html-pages/package.json +++ b/examples/non-html-pages/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/portfolio/package.json b/examples/portfolio/package.json index 93454dcae621..9f446ac7473e 100644 --- a/examples/portfolio/package.json +++ b/examples/portfolio/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/server-islands/astro.config.mjs b/examples/server-islands/astro.config.mjs new file mode 100644 index 000000000000..c0d6b918a52e --- /dev/null +++ b/examples/server-islands/astro.config.mjs @@ -0,0 +1,18 @@ +import { defineConfig } from 'astro/config'; +import nodejs from '@astrojs/node'; +import react from '@astrojs/react'; +import tailwind from '@astrojs/tailwind'; + +// https://astro.build/config +export default defineConfig({ + output: 'server', + adapter: nodejs({ mode: 'standalone' }), + integrations: [ + react(), + tailwind({ applyBaseStyles: false }) + ], + devToolbar: { enabled: false }, + experimental: { + serverIslands: true, + } +}); diff --git a/examples/server-islands/package.json b/examples/server-islands/package.json new file mode 100644 index 000000000000..b80361b5e65b --- /dev/null +++ b/examples/server-islands/package.json @@ -0,0 +1,26 @@ +{ + "name": "@example/server-islands", + "version": "0.0.1", + "private": true, + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "astro": "astro" + }, + "devDependencies": { + "@astrojs/node": "^8.2.6", + "@astrojs/react": "^3.6.0", + "@astrojs/tailwind": "^5.1.0", + "@fortawesome/fontawesome-free": "^6.5.2", + "@tailwindcss/forms": "^0.5.7", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "astro": "workspace:*", + "postcss": "^8.4.38", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "tailwindcss": "^3.4.3" + } +} diff --git a/examples/server-islands/public/assets/css/main.css b/examples/server-islands/public/assets/css/main.css new file mode 100644 index 000000000000..5b49f60e1f1e --- /dev/null +++ b/examples/server-islands/public/assets/css/main.css @@ -0,0 +1,1874 @@ +/* @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap"); +@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap"); */ + +/* ! tailwindcss v3.0.23 | MIT License | https://tailwindcss.com */ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #e5e7eb; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +*/ + +html { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: + ui-sans-serif, + system-ui, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + 'Helvetica Neue', + Arial, + 'Noto Sans', + sans-serif, + 'Apple Color Emoji', + 'Segoe UI Emoji', + 'Segoe UI Symbol', + 'Noto Color Emoji'; + /* 4 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font family by default. +2. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', + 'Courier New', monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, +textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role='button'] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* +Ensure the default browser behavior of the `hidden` attribute. +*/ + +[hidden] { + display: none; +} + +[type='text'], +[type='email'], +[type='url'], +[type='password'], +[type='number'], +[type='date'], +[type='datetime-local'], +[type='month'], +[type='search'], +[type='tel'], +[type='time'], +[type='week'], +[multiple], +textarea, +select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #6b7280; + border-width: 1px; + border-radius: 0px; + padding-top: 0.5rem; + padding-right: 0.75rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + font-size: 1rem; + line-height: 1.5rem; + --tw-shadow: 0 0 #0000; +} + +[type='text']:focus, +[type='email']:focus, +[type='url']:focus, +[type='password']:focus, +[type='number']:focus, +[type='date']:focus, +[type='datetime-local']:focus, +[type='month']:focus, +[type='search']:focus, +[type='tel']:focus, +[type='time']:focus, +[type='week']:focus, +[multiple]:focus, +textarea:focus, +select:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/); + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #2563eb; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) + var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) + var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + border-color: #2563eb; +} + +input::-moz-placeholder, +textarea::-moz-placeholder { + color: #6b7280; + opacity: 1; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #6b7280; + opacity: 1; +} + +input::placeholder, +textarea::placeholder { + color: #6b7280; + opacity: 1; +} + +::-webkit-datetime-edit-fields-wrapper { + padding: 0; +} + +::-webkit-date-and-time-value { + min-height: 1.5em; +} + +::-webkit-datetime-edit, +::-webkit-datetime-edit-year-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-minute-field, +::-webkit-datetime-edit-second-field, +::-webkit-datetime-edit-millisecond-field, +::-webkit-datetime-edit-meridiem-field { + padding-top: 0; + padding-bottom: 0; +} + +select { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); + background-position: right 0.5rem center; + background-repeat: no-repeat; + background-size: 1.5em 1.5em; + padding-right: 2.5rem; + -webkit-print-color-adjust: exact; + color-adjust: exact; +} + +[multiple] { + background-image: initial; + background-position: initial; + background-repeat: unset; + background-size: initial; + padding-right: 0.75rem; + -webkit-print-color-adjust: unset; + color-adjust: unset; +} + +[type='checkbox'], +[type='radio'] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + padding: 0; + -webkit-print-color-adjust: exact; + color-adjust: exact; + display: inline-block; + vertical-align: middle; + background-origin: border-box; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + flex-shrink: 0; + height: 1rem; + width: 1rem; + color: #2563eb; + background-color: #fff; + border-color: #6b7280; + border-width: 1px; + --tw-shadow: 0 0 #0000; +} + +[type='checkbox'] { + border-radius: 0px; +} + +[type='radio'] { + border-radius: 100%; +} + +[type='checkbox']:focus, +[type='radio']:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/); + --tw-ring-offset-width: 2px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #2563eb; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) + var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) + var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); +} + +[type='checkbox']:checked, +[type='radio']:checked { + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +[type='checkbox']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); +} + +[type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); +} + +[type='checkbox']:checked:hover, +[type='checkbox']:checked:focus, +[type='radio']:checked:hover, +[type='radio']:checked:focus { + border-color: transparent; + background-color: currentColor; +} + +[type='checkbox']:indeterminate { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +[type='checkbox']:indeterminate:hover, +[type='checkbox']:indeterminate:focus { + border-color: transparent; + background-color: currentColor; +} + +[type='file'] { + background: unset; + border-color: inherit; + border-width: 0; + border-radius: 0; + padding: 0; + font-size: unset; + line-height: inherit; +} + +[type='file']:focus { + outline: 1px auto -webkit-focus-ring-color; +} + +body { + font-family: Poppins, sans-serif; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: Roboto, sans-serif; +} + +*, +::before, +::after { + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; +} + +.container { + width: 100%; + margin-right: auto; + margin-left: auto; + padding-right: 1rem; + padding-left: 1rem; +} + +@media (min-width: 640px) { + .container { + max-width: 640px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 768px; + } +} + +@media (min-width: 1024px) { + .container { + max-width: 1024px; + } +} + +@media (min-width: 1280px) { + .container { + max-width: 1280px; + } +} + +@media (min-width: 1536px) { + .container { + max-width: 1536px; + } +} + +.size-selector input:checked + label { + --tw-bg-opacity: 1; + background-color: rgb(253 61 87 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.color-selector input:checked + label { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) + var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) + var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); + --tw-ring-opacity: 1; + --tw-ring-color: rgb(253 61 87 / var(--tw-ring-opacity)); +} + +.input-box { + display: block; + width: 100%; + border-radius: 0.25rem; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + font-size: 0.875rem; + line-height: 1.25rem; + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.input-box::-moz-placeholder { + --tw-placeholder-opacity: 1; + color: rgb(156 163 175 / var(--tw-placeholder-opacity)); +} + +.input-box:-ms-input-placeholder { + --tw-placeholder-opacity: 1; + color: rgb(156 163 175 / var(--tw-placeholder-opacity)); +} + +.input-box::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(156 163 175 / var(--tw-placeholder-opacity)); +} + +.input-box:focus { + --tw-border-opacity: 1; + border-color: rgb(253 61 87 / var(--tw-border-opacity)); + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) + var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) + var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.invisible { + visibility: hidden; +} + +.absolute { + position: absolute; +} + +.relative { + position: relative; +} + +.inset-0 { + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; +} + +.left-4 { + left: 1rem; +} + +.top-3 { + top: 0.75rem; +} + +.right-0 { + right: 0px; +} + +.-top-1 { + top: -0.25rem; +} + +.-right-3 { + right: -0.75rem; +} + +.left-0 { + left: 0px; +} + +.top-full { + top: 100%; +} + +.-left-8 { + left: -2rem; +} + +.top-0 { + top: 0px; +} + +.z-10 { + z-index: 10; +} + +.col-span-1 { + grid-column: span 1 / span 1; +} + +.col-span-2 { + grid-column: span 2 / span 2; +} + +.col-span-3 { + grid-column: span 3 / span 3; +} + +.col-span-9 { + grid-column: span 9 / span 9; +} + +.col-span-8 { + grid-column: span 8 / span 8; +} + +.col-span-4 { + grid-column: span 4 / span 4; +} + +.mx-auto { + margin-left: auto; + margin-right: auto; +} + +.mx-3 { + margin-left: 0.75rem; + margin-right: 0.75rem; +} + +.ml-2 { + margin-left: 0.5rem; +} + +.ml-6 { + margin-left: 1.5rem; +} + +.mb-4 { + margin-bottom: 1rem; +} + +.mt-12 { + margin-top: 3rem; +} + +.mb-6 { + margin-bottom: 1.5rem; +} + +.mb-2 { + margin-bottom: 0.5rem; +} + +.mb-1 { + margin-bottom: 0.25rem; +} + +.ml-3 { + margin-left: 0.75rem; +} + +.mr-2 { + margin-right: 0.5rem; +} + +.mt-4 { + margin-top: 1rem; +} + +.mt-6 { + margin-top: 1.5rem; +} + +.mt-1 { + margin-top: 0.25rem; +} + +.mt-2 { + margin-top: 0.5rem; +} + +.mb-3 { + margin-bottom: 0.75rem; +} + +.ml-auto { + margin-left: auto; +} + +.block { + display: block; +} + +.flex { + display: flex; +} + +.table { + display: table; +} + +.grid { + display: grid; +} + +.hidden { + display: none; +} + +.h-5 { + height: 1.25rem; +} + +.h-12 { + height: 3rem; +} + +.h-8 { + height: 2rem; +} + +.h-14 { + height: 3.5rem; +} + +.h-3 { + height: 0.75rem; +} + +.h-6 { + height: 1.5rem; +} + +.h-9 { + height: 2.25rem; +} + +.w-32 { + width: 8rem; +} + +.w-full { + width: 100%; +} + +.w-5 { + width: 1.25rem; +} + +.w-10\/12 { + width: 83.333333%; +} + +.w-12 { + width: 3rem; +} + +.w-9 { + width: 2.25rem; +} + +.w-14 { + width: 3.5rem; +} + +.w-3 { + width: 0.75rem; +} + +.w-1\/2 { + width: 50%; +} + +.w-6 { + width: 1.5rem; +} + +.w-max { + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; +} + +.w-8 { + width: 2rem; +} + +.w-3\/5 { + width: 60%; +} + +.w-40 { + width: 10rem; +} + +.w-44 { + width: 11rem; +} + +.w-10 { + width: 2.5rem; +} + +.w-28 { + width: 7rem; +} + +.w-1\/3 { + width: 33.333333%; +} + +.max-w-xl { + max-width: 36rem; +} + +.max-w-lg { + max-width: 32rem; +} + +.flex-shrink-0 { + flex-shrink: 0; +} + +.flex-grow { + flex-grow: 1; +} + +.table-auto { + table-layout: auto; +} + +.border-collapse { + border-collapse: collapse; +} + +.cursor-pointer { + cursor: pointer; +} + +.cursor-not-allowed { + cursor: not-allowed; +} + +.select-none { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} + +.grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.grid-cols-12 { + grid-template-columns: repeat(12, minmax(0, 1fr)); +} + +.grid-cols-5 { + grid-template-columns: repeat(5, minmax(0, 1fr)); +} + +.grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.items-start { + align-items: flex-start; +} + +.items-center { + align-items: center; +} + +.items-baseline { + align-items: baseline; +} + +.justify-center { + justify-content: center; +} + +.justify-between { + justify-content: space-between; +} + +.gap-6 { + gap: 1.5rem; +} + +.gap-5 { + gap: 1.25rem; +} + +.gap-3 { + gap: 0.75rem; +} + +.gap-2 { + gap: 0.5rem; +} + +.gap-1 { + gap: 0.25rem; +} + +.gap-4 { + gap: 1rem; +} + +.gap-8 { + gap: 2rem; +} + +.space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-x-6 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1.5rem * var(--tw-space-x-reverse)); + margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-x-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(0.5rem * var(--tw-space-x-reverse)); + margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-y-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1rem * var(--tw-space-y-reverse)); +} + +.space-x-5 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1.25rem * var(--tw-space-x-reverse)); + margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse))); +} + +.space-y-1 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); +} + +.space-y-8 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(2rem * var(--tw-space-y-reverse)); +} + +.space-y-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); +} + +.space-y-5 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); +} + +.divide-y > :not([hidden]) ~ :not([hidden]) { + --tw-divide-y-reverse: 0; + border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); +} + +.divide-x > :not([hidden]) ~ :not([hidden]) { + --tw-divide-x-reverse: 0; + border-right-width: calc(1px * var(--tw-divide-x-reverse)); + border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); +} + +.divide-dashed > :not([hidden]) ~ :not([hidden]) { + border-style: dashed; +} + +.divide-gray-300 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-divide-opacity)); +} + +.divide-gray-200 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgb(229 231 235 / var(--tw-divide-opacity)); +} + +.overflow-hidden { + overflow: hidden; +} + +.rounded-full { + border-radius: 9999px; +} + +.rounded-md { + border-radius: 0.375rem; +} + +.rounded-sm { + border-radius: 0.125rem; +} + +.rounded { + border-radius: 0.25rem; +} + +.rounded-l-md { + border-top-left-radius: 0.375rem; + border-bottom-left-radius: 0.375rem; +} + +.rounded-r-md { + border-top-right-radius: 0.375rem; + border-bottom-right-radius: 0.375rem; +} + +.rounded-b { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.border { + border-width: 1px; +} + +.border-r-0 { + border-right-width: 0px; +} + +.border-t { + border-top-width: 1px; +} + +.border-b { + border-bottom-width: 1px; +} + +.border-b-2 { + border-bottom-width: 2px; +} + +.border-primary { + --tw-border-opacity: 1; + border-color: rgb(253 61 87 / var(--tw-border-opacity)); +} + +.border-gray-100 { + --tw-border-opacity: 1; + border-color: rgb(243 244 246 / var(--tw-border-opacity)); +} + +.border-gray-200 { + --tw-border-opacity: 1; + border-color: rgb(229 231 235 / var(--tw-border-opacity)); +} + +.border-gray-300 { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + +.border-red-400 { + --tw-border-opacity: 1; + border-color: rgb(248 113 113 / var(--tw-border-opacity)); +} + +.bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.bg-primary { + --tw-bg-opacity: 1; + background-color: rgb(253 61 87 / var(--tw-bg-opacity)); +} + +.bg-gray-800 { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.bg-black { + --tw-bg-opacity: 1; + background-color: rgb(0 0 0 / var(--tw-bg-opacity)); +} + +.bg-blue-800 { + --tw-bg-opacity: 1; + background-color: rgb(30 64 175 / var(--tw-bg-opacity)); +} + +.bg-red-600 { + --tw-bg-opacity: 1; + background-color: rgb(220 38 38 / var(--tw-bg-opacity)); +} + +.bg-red-400 { + --tw-bg-opacity: 1; + background-color: rgb(248 113 113 / var(--tw-bg-opacity)); +} + +.bg-opacity-40 { + --tw-bg-opacity: 0.4; +} + +.bg-cover { + background-size: cover; +} + +.bg-center { + background-position: center; +} + +.bg-no-repeat { + background-repeat: no-repeat; +} + +.object-contain { + -o-object-fit: contain; + object-fit: contain; +} + +.object-cover { + -o-object-fit: cover; + object-fit: cover; +} + +.p-1 { + padding: 0.25rem; +} + +.p-4 { + padding: 1rem; +} + +.py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.px-8 { + padding-left: 2rem; + padding-right: 2rem; +} + +.px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + +.py-36 { + padding-top: 9rem; + padding-bottom: 9rem; +} + +.py-16 { + padding-top: 4rem; + padding-bottom: 4rem; +} + +.px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.py-7 { + padding-top: 1.75rem; + padding-bottom: 1.75rem; +} + +.py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.pl-12 { + padding-left: 3rem; +} + +.pr-3 { + padding-right: 0.75rem; +} + +.pb-16 { + padding-bottom: 4rem; +} + +.pt-4 { + padding-top: 1rem; +} + +.pb-3 { + padding-bottom: 0.75rem; +} + +.pt-16 { + padding-top: 4rem; +} + +.pb-12 { + padding-bottom: 3rem; +} + +.pl-8 { + padding-left: 2rem; +} + +.pt-6 { + padding-top: 1.5rem; +} + +.pb-8 { + padding-bottom: 2rem; +} + +.pb-5 { + padding-bottom: 1.25rem; +} + +.pt-5 { + padding-top: 1.25rem; +} + +.pb-7 { + padding-bottom: 1.75rem; +} + +.pb-6 { + padding-bottom: 1.5rem; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.font-roboto { + font-family: Roboto, sans-serif; +} + +.text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} + +.text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.text-6xl { + font-size: 3.75rem; + line-height: 1; +} + +.text-xl { + font-size: 1.25rem; + line-height: 1.75rem; +} + +.text-base { + font-size: 1rem; + line-height: 1.5rem; +} + +.text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.font-medium { + font-weight: 500; +} + +.font-semibold { + font-weight: 600; +} + +.uppercase { + text-transform: uppercase; +} + +.capitalize { + text-transform: capitalize; +} + +.leading-3 { + line-height: 0.75rem; +} + +.tracking-wider { + letter-spacing: 0.05em; +} + +.text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.text-gray-600 { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.text-gray-200 { + --tw-text-opacity: 1; + color: rgb(229 231 235 / var(--tw-text-opacity)); +} + +.text-gray-800 { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} + +.text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.text-primary { + --tw-text-opacity: 1; + color: rgb(253 61 87 / var(--tw-text-opacity)); +} + +.text-yellow-400 { + --tw-text-opacity: 1; + color: rgb(250 204 21 / var(--tw-text-opacity)); +} + +.text-green-600 { + --tw-text-opacity: 1; + color: rgb(22 163 74 / var(--tw-text-opacity)); +} + +.text-red-600 { + --tw-text-opacity: 1; + color: rgb(220 38 38 / var(--tw-text-opacity)); +} + +.line-through { + -webkit-text-decoration-line: line-through; + text-decoration-line: line-through; +} + +.placeholder-gray-400::-moz-placeholder { + --tw-placeholder-opacity: 1; + color: rgb(156 163 175 / var(--tw-placeholder-opacity)); +} + +.placeholder-gray-400:-ms-input-placeholder { + --tw-placeholder-opacity: 1; + color: rgb(156 163 175 / var(--tw-placeholder-opacity)); +} + +.placeholder-gray-400::placeholder { + --tw-placeholder-opacity: 1; + color: rgb(156 163 175 / var(--tw-placeholder-opacity)); +} + +.opacity-0 { + opacity: 0; +} + +.shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), + var(--tw-shadow); +} + +.shadow-md { + --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), + var(--tw-shadow); +} + +.shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), + var(--tw-shadow); +} + +.transition { + transition-property: + color, + background-color, + border-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + -webkit-text-decoration-color, + -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, + opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: + color, + background-color, + border-color, + text-decoration-color, + fill, + stroke, + opacity, + box-shadow, + transform, + filter, + backdrop-filter, + -webkit-text-decoration-color, + -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.duration-300 { + transition-duration: 300ms; +} + +.hover\:bg-transparent:hover { + background-color: transparent; +} + +.hover\:bg-gray-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} + +.hover\:bg-gray-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(31 41 55 / var(--tw-bg-opacity)); +} + +.hover\:bg-blue-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(29 78 216 / var(--tw-bg-opacity)); +} + +.hover\:bg-red-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(239 68 68 / var(--tw-bg-opacity)); +} + +.hover\:text-primary:hover { + --tw-text-opacity: 1; + color: rgb(253 61 87 / var(--tw-text-opacity)); +} + +.hover\:text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.hover\:text-gray-500:hover { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.hover\:text-gray-900:hover { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} + +.focus\:border-primary:focus { + --tw-border-opacity: 1; + border-color: rgb(253 61 87 / var(--tw-border-opacity)); +} + +.focus\:outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.focus\:ring-0:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) + var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) + var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:ring-primary:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(253 61 87 / var(--tw-ring-opacity)); +} + +.group:hover .group-hover\:visible { + visibility: visible; +} + +.group:hover .group-hover\:bg-opacity-60 { + --tw-bg-opacity: 0.6; +} + +.group:hover .group-hover\:opacity-100 { + opacity: 1; +} + +@media (min-width: 768px) { + .md\:block { + display: block; + } + + .md\:flex { + display: flex; + } + + .md\:grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .md\:grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .md\:gap-8 { + gap: 2rem; + } + + .md\:pl-12 { + padding-left: 3rem; + } +} diff --git a/examples/server-islands/public/assets/images/avatar.png b/examples/server-islands/public/assets/images/avatar.png new file mode 100644 index 000000000000..4e8512382cdd Binary files /dev/null and b/examples/server-islands/public/assets/images/avatar.png differ diff --git a/examples/server-islands/public/assets/images/banner-bg.jpg b/examples/server-islands/public/assets/images/banner-bg.jpg new file mode 100644 index 000000000000..0ce119a45584 Binary files /dev/null and b/examples/server-islands/public/assets/images/banner-bg.jpg differ diff --git a/examples/server-islands/public/assets/images/category/category-1.jpg b/examples/server-islands/public/assets/images/category/category-1.jpg new file mode 100644 index 000000000000..e45bf4ae01ec Binary files /dev/null and b/examples/server-islands/public/assets/images/category/category-1.jpg differ diff --git a/examples/server-islands/public/assets/images/category/category-2.jpg b/examples/server-islands/public/assets/images/category/category-2.jpg new file mode 100644 index 000000000000..56249e6a3f7d Binary files /dev/null and b/examples/server-islands/public/assets/images/category/category-2.jpg differ diff --git a/examples/server-islands/public/assets/images/category/category-3.jpg b/examples/server-islands/public/assets/images/category/category-3.jpg new file mode 100644 index 000000000000..5ef6659465e9 Binary files /dev/null and b/examples/server-islands/public/assets/images/category/category-3.jpg differ diff --git a/examples/server-islands/public/assets/images/category/category-4.jpg b/examples/server-islands/public/assets/images/category/category-4.jpg new file mode 100644 index 000000000000..b12e648303c9 Binary files /dev/null and b/examples/server-islands/public/assets/images/category/category-4.jpg differ diff --git a/examples/server-islands/public/assets/images/category/category-5.jpg b/examples/server-islands/public/assets/images/category/category-5.jpg new file mode 100644 index 000000000000..f8e804f8c066 Binary files /dev/null and b/examples/server-islands/public/assets/images/category/category-5.jpg differ diff --git a/examples/server-islands/public/assets/images/category/category-6.jpg b/examples/server-islands/public/assets/images/category/category-6.jpg new file mode 100644 index 000000000000..e1991d35cbbd Binary files /dev/null and b/examples/server-islands/public/assets/images/category/category-6.jpg differ diff --git a/examples/server-islands/public/assets/images/complete.png b/examples/server-islands/public/assets/images/complete.png new file mode 100644 index 000000000000..ea3fe9681e09 Binary files /dev/null and b/examples/server-islands/public/assets/images/complete.png differ diff --git a/examples/server-islands/public/assets/images/favicon/about.txt b/examples/server-islands/public/assets/images/favicon/about.txt new file mode 100644 index 000000000000..7229927f7072 --- /dev/null +++ b/examples/server-islands/public/assets/images/favicon/about.txt @@ -0,0 +1,6 @@ +This favicon was generated using the following font: + +- Font Title: Roboto +- Font Author: Copyright 2011 Google Inc. All Rights Reserved. +- Font Source: http://fonts.gstatic.com/s/roboto/v29/KFOlCnqEu92Fr1MmWUlvAx05IsDqlA.ttf +- Font License: Apache License, version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html)) diff --git a/examples/server-islands/public/assets/images/favicon/android-chrome-192x192.png b/examples/server-islands/public/assets/images/favicon/android-chrome-192x192.png new file mode 100644 index 000000000000..6809c797894d Binary files /dev/null and b/examples/server-islands/public/assets/images/favicon/android-chrome-192x192.png differ diff --git a/examples/server-islands/public/assets/images/favicon/android-chrome-512x512.png b/examples/server-islands/public/assets/images/favicon/android-chrome-512x512.png new file mode 100644 index 000000000000..27d7db79c6a0 Binary files /dev/null and b/examples/server-islands/public/assets/images/favicon/android-chrome-512x512.png differ diff --git a/examples/server-islands/public/assets/images/favicon/apple-touch-icon.png b/examples/server-islands/public/assets/images/favicon/apple-touch-icon.png new file mode 100644 index 000000000000..ff578ae53911 Binary files /dev/null and b/examples/server-islands/public/assets/images/favicon/apple-touch-icon.png differ diff --git a/examples/server-islands/public/assets/images/favicon/favicon-16x16.png b/examples/server-islands/public/assets/images/favicon/favicon-16x16.png new file mode 100644 index 000000000000..470a85966941 Binary files /dev/null and b/examples/server-islands/public/assets/images/favicon/favicon-16x16.png differ diff --git a/examples/server-islands/public/assets/images/favicon/favicon-32x32.png b/examples/server-islands/public/assets/images/favicon/favicon-32x32.png new file mode 100644 index 000000000000..56afd053d926 Binary files /dev/null and b/examples/server-islands/public/assets/images/favicon/favicon-32x32.png differ diff --git a/examples/server-islands/public/assets/images/favicon/favicon.ico b/examples/server-islands/public/assets/images/favicon/favicon.ico new file mode 100644 index 000000000000..77bb5fa1839f Binary files /dev/null and b/examples/server-islands/public/assets/images/favicon/favicon.ico differ diff --git a/examples/server-islands/public/assets/images/favicon/site.webmanifest b/examples/server-islands/public/assets/images/favicon/site.webmanifest new file mode 100644 index 000000000000..52a2fe3f611f --- /dev/null +++ b/examples/server-islands/public/assets/images/favicon/site.webmanifest @@ -0,0 +1,11 @@ +{ + "name": "", + "short_name": "", + "icons": [ + { "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, + { "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} diff --git a/examples/server-islands/public/assets/images/icons/bed-2.svg b/examples/server-islands/public/assets/images/icons/bed-2.svg new file mode 100644 index 000000000000..09b790da78db --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/bed-2.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/server-islands/public/assets/images/icons/bed.svg b/examples/server-islands/public/assets/images/icons/bed.svg new file mode 100644 index 000000000000..d66adb50136e --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/bed.svg @@ -0,0 +1,2 @@ + + diff --git a/examples/server-islands/public/assets/images/icons/delivery-van.svg b/examples/server-islands/public/assets/images/icons/delivery-van.svg new file mode 100644 index 000000000000..a6c08a447c8c --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/delivery-van.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/examples/server-islands/public/assets/images/icons/money-back.svg b/examples/server-islands/public/assets/images/icons/money-back.svg new file mode 100644 index 000000000000..8722d553853c --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/money-back.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/examples/server-islands/public/assets/images/icons/office.svg b/examples/server-islands/public/assets/images/icons/office.svg new file mode 100644 index 000000000000..27451293b5d7 --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/office.svg @@ -0,0 +1,2 @@ + + diff --git a/examples/server-islands/public/assets/images/icons/outdoor-cafe.svg b/examples/server-islands/public/assets/images/icons/outdoor-cafe.svg new file mode 100644 index 000000000000..2f014997946d --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/outdoor-cafe.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/server-islands/public/assets/images/icons/phone.svg b/examples/server-islands/public/assets/images/icons/phone.svg new file mode 100644 index 000000000000..1ab3dafd2160 --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/phone.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/examples/server-islands/public/assets/images/icons/restaurant.svg b/examples/server-islands/public/assets/images/icons/restaurant.svg new file mode 100644 index 000000000000..859ca4457609 --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/restaurant.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/server-islands/public/assets/images/icons/service-hours.svg b/examples/server-islands/public/assets/images/icons/service-hours.svg new file mode 100644 index 000000000000..311820ec5c45 --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/service-hours.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/server-islands/public/assets/images/icons/sofa.svg b/examples/server-islands/public/assets/images/icons/sofa.svg new file mode 100644 index 000000000000..61608eb42e03 --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/sofa.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/server-islands/public/assets/images/icons/terrace.svg b/examples/server-islands/public/assets/images/icons/terrace.svg new file mode 100644 index 000000000000..40cd91ff4fc9 --- /dev/null +++ b/examples/server-islands/public/assets/images/icons/terrace.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/server-islands/public/assets/images/logo.svg b/examples/server-islands/public/assets/images/logo.svg new file mode 100644 index 000000000000..4a698caaad39 --- /dev/null +++ b/examples/server-islands/public/assets/images/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/examples/server-islands/public/assets/images/methods.png b/examples/server-islands/public/assets/images/methods.png new file mode 100644 index 000000000000..6ab2499aa3cb Binary files /dev/null and b/examples/server-islands/public/assets/images/methods.png differ diff --git a/examples/server-islands/public/assets/images/offer.jpg b/examples/server-islands/public/assets/images/offer.jpg new file mode 100644 index 000000000000..1b735cdb8801 Binary files /dev/null and b/examples/server-islands/public/assets/images/offer.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product1.jpg b/examples/server-islands/public/assets/images/products/product1.jpg new file mode 100644 index 000000000000..523c18d1ce82 Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product1.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product10.jpg b/examples/server-islands/public/assets/images/products/product10.jpg new file mode 100644 index 000000000000..234c4b1bacf0 Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product10.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product11.jpg b/examples/server-islands/public/assets/images/products/product11.jpg new file mode 100644 index 000000000000..8f23255cf6fb Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product11.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product12.jpg b/examples/server-islands/public/assets/images/products/product12.jpg new file mode 100644 index 000000000000..f1f32d6ddf4b Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product12.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product2.jpg b/examples/server-islands/public/assets/images/products/product2.jpg new file mode 100644 index 000000000000..ab2fc5d8b59d Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product2.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product3.jpg b/examples/server-islands/public/assets/images/products/product3.jpg new file mode 100644 index 000000000000..dd2e27bc4d5a Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product3.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product4.jpg b/examples/server-islands/public/assets/images/products/product4.jpg new file mode 100644 index 000000000000..4e31e49b8008 Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product4.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product5.jpg b/examples/server-islands/public/assets/images/products/product5.jpg new file mode 100644 index 000000000000..e950c71fd260 Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product5.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product6.jpg b/examples/server-islands/public/assets/images/products/product6.jpg new file mode 100644 index 000000000000..fb68277067b4 Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product6.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product7.jpg b/examples/server-islands/public/assets/images/products/product7.jpg new file mode 100644 index 000000000000..e0c355a9bb3d Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product7.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product8.jpg b/examples/server-islands/public/assets/images/products/product8.jpg new file mode 100644 index 000000000000..bca29d380cf1 Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product8.jpg differ diff --git a/examples/server-islands/public/assets/images/products/product9.jpg b/examples/server-islands/public/assets/images/products/product9.jpg new file mode 100644 index 000000000000..7e4558371a70 Binary files /dev/null and b/examples/server-islands/public/assets/images/products/product9.jpg differ diff --git a/examples/server-islands/src/base.css b/examples/server-islands/src/base.css new file mode 100644 index 000000000000..d0ae7cae47ae --- /dev/null +++ b/examples/server-islands/src/base.css @@ -0,0 +1,32 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap'); + +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + body { + @apply font-poppins; + } + h1, + h2, + h3, + h4, + h5, + h6 { + @apply font-roboto; + } +} + +@layer components { + .size-selector input:checked + label { + @apply bg-primary text-white; + } + .color-selector input:checked + label { + @apply ring-2 ring-primary; + } + + .input-box { + @apply block w-full border border-gray-300 px-4 py-3 text-gray-600 text-sm rounded placeholder-gray-400 focus:border-primary focus:ring-0; + } +} diff --git a/examples/server-islands/src/cart.ts b/examples/server-islands/src/cart.ts new file mode 100644 index 000000000000..355074a38c3b --- /dev/null +++ b/examples/server-islands/src/cart.ts @@ -0,0 +1,20 @@ + +const channel = new MessageChannel(); + +function onNewCartItem(cb: (m: any) => void) { + let onMessage = (ev: MessageEvent) => { + cb(ev.data); + }; + channel.port2.addEventListener('message', onMessage); + channel.port2.start(); + return () => channel.port2.removeEventListener('message', onMessage); +} + +function addToCart(item: any) { + channel.port1.postMessage(item); +} + +export { + onNewCartItem, + addToCart +} diff --git a/examples/server-islands/src/components/AddToCart.tsx b/examples/server-islands/src/components/AddToCart.tsx new file mode 100644 index 000000000000..5fcfc4eaa172 --- /dev/null +++ b/examples/server-islands/src/components/AddToCart.tsx @@ -0,0 +1,27 @@ +import { addToCart } from '../cart'; + +export default function({ small }) { + function onClick(ev: Event) { + ev.preventDefault(); + let item = { name: 'Sofa' }; + addToCart(item); + + } + + if(small) { + return ( + Add + to cart + ) + } + + return ( + + Add to cart + + ) +} diff --git a/examples/server-islands/src/components/CartCount.tsx b/examples/server-islands/src/components/CartCount.tsx new file mode 100644 index 000000000000..5c3d3e3928d3 --- /dev/null +++ b/examples/server-islands/src/components/CartCount.tsx @@ -0,0 +1,14 @@ +import { useEffect, useState } from 'react'; +import { onNewCartItem } from '../cart'; + +export default function({ count: initialCount }) { + const [count, setCount] = useState(initialCount); + useEffect(() => { + return onNewCartItem(() => setCount(count + 1)); + }, [count]); + + return ( +
+{count}
+ ); +} diff --git a/examples/server-islands/src/components/PersonalBar.astro b/examples/server-islands/src/components/PersonalBar.astro new file mode 100644 index 000000000000..afff16d607cd --- /dev/null +++ b/examples/server-islands/src/components/PersonalBar.astro @@ -0,0 +1,36 @@ +--- +import CartCount from './CartCount'; + +const { placeholder } = Astro.props; +let wishlist = 0; +let cart = 0; + +if (!placeholder) { + await new Promise((resolve) => setTimeout(resolve, 3000)); +} +--- + + +
+ +
+
Wishlist
+
+ {wishlist} +
+
+ +
+ +
+
Cart
+ +
+ +
+ +
+
Account
+
diff --git a/examples/server-islands/src/pages/index.astro b/examples/server-islands/src/pages/index.astro new file mode 100644 index 000000000000..b12fb0c5e73e --- /dev/null +++ b/examples/server-islands/src/pages/index.astro @@ -0,0 +1,678 @@ +--- +import '../base.css'; +import AddToCart from '../components/AddToCart'; +import PersonalBar from '../components/PersonalBar.astro'; +import '@fortawesome/fontawesome-free/css/all.min.css'; +--- + + + + + + + + Product - Ecommerce Tailwind + + + + + + + + + + +
+
+ + Logo + + +
+ + + + + +
+ +
+ + + +
+
+
+ + + + + + + +
+ + + + + + +

Product

+
+ + + +
+
+ product +
+ product2 + product2 + product2 + product2 + product2 +
+
+ +
+

Italian L Shape Sofa

+
+
+ + + + + +
+
(150 Reviews)
+
+
+

+ Availability: + In Stock +

+

+ Brand: + Apex +

+

+ Category: + Sofa +

+

+ SKU: + BE45VGRT +

+
+
+

$45.00

+

$55.00

+
+ +

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Eos eius eum reprehenderit dolore + vel mollitia optio consequatur hic asperiores inventore suscipit, velit consequuntur, + voluptate doloremque iure necessitatibus adipisci magnam porro. +

+ +
+

Size

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+

Color

+
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+

Quantity

+
+
+ - +
+
4
+
+ + +
+
+
+ + + + +
+
+ + + +
+

+ Product details +

+
+
+

+ Lorem, ipsum dolor sit amet consectetur adipisicing elit. Tenetur necessitatibus + deleniti natus dolore cum maiores suscipit optio itaque voluptatibus veritatis tempora + iste facilis non aut sapiente dolor quisquam, ex ab. +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum, quae accusantium + voluptatem blanditiis sapiente voluptatum. Autem ab, dolorum assumenda earum veniam eius + illo fugiat possimus illum dolor totam, ducimus excepturi. +

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Error quia modi ut expedita! + Iure molestiae labore cumque nobis quasi fuga, quibusdam rem? Temporibus consectetur + corrupti rerum veritatis numquam labore amet. +

+
+ + + + + + + + + + + + + + +
ColorBlank, Brown, Red
MaterialLatex
Weight55kg
+
+
+ + + +
+

Related products

+
+
+
+ product 1 + +
+
+ +

+ Guyer Chair +

+
+
+

$45.00

+

$55.90

+
+
+
+ + + + + +
+
(150)
+
+
+ +
+
+
+ product 1 + +
+
+ +

+ Bed King Size +

+
+
+

$45.00

+

$55.90

+
+
+
+ + + + + +
+
(150)
+
+
+ +
+
+
+ product 1 + +
+
+ +

+ Couple Sofa +

+
+
+

$45.00

+

$55.90

+
+
+
+ + + + + +
+
(150)
+
+
+ +
+
+
+ product 1 + +
+
+ +

+ Mattrass X +

+
+
+

$45.00

+

$55.90

+
+
+
+ + + + + +
+
(150)
+
+
+ +
+
+
+ + + + + + + +
+
+

© TailCommerce - All Right Reserved

+
+ methods +
+
+
+ + + diff --git a/examples/server-islands/tailwind.config.cjs b/examples/server-islands/tailwind.config.cjs new file mode 100644 index 000000000000..4076218af7f3 --- /dev/null +++ b/examples/server-islands/tailwind.config.cjs @@ -0,0 +1,27 @@ +module.exports = { + content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], + theme: { + screen: { + sm: "576px", + md: "768px", + lg: "992px", + xl: "1200px", + }, + container: { + center: true, + padding: "1rem", + }, + extend: { + fontFamily: { + poppins: ["Poppins", "sans-serif"], + roboto: ["Roboto", "sans-serif"], + }, + colors: { + primary: "#fd3d57", + }, + }, + }, + plugins: [ + require("@tailwindcss/forms"), + ], +}; diff --git a/examples/ssr/package.json b/examples/ssr/package.json index c59ebd382edd..18bda715305e 100644 --- a/examples/ssr/package.json +++ b/examples/ssr/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/node": "^8.3.2", "@astrojs/svelte": "^5.6.0", - "astro": "^4.11.5", + "astro": "^4.11.6", "svelte": "^4.2.18" } } diff --git a/examples/starlog/package.json b/examples/starlog/package.json index ec3a948803ce..dd06787c1a78 100644 --- a/examples/starlog/package.json +++ b/examples/starlog/package.json @@ -10,8 +10,8 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5", - "sass": "^1.77.6", + "astro": "^4.11.6", + "sass": "^1.77.8", "sharp": "^0.33.3" } } diff --git a/examples/toolbar-app/package.json b/examples/toolbar-app/package.json index bb93e381a785..c34863aae384 100644 --- a/examples/toolbar-app/package.json +++ b/examples/toolbar-app/package.json @@ -15,6 +15,6 @@ "./app": "./dist/app.js" }, "devDependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/view-transitions/package.json b/examples/view-transitions/package.json index c0847ef49ae3..1b1cb9936f16 100644 --- a/examples/view-transitions/package.json +++ b/examples/view-transitions/package.json @@ -12,6 +12,6 @@ "devDependencies": { "@astrojs/tailwind": "^5.1.0", "@astrojs/node": "^8.3.2", - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/with-markdoc/package.json b/examples/with-markdoc/package.json index cf908daad7dd..f74158cb5c0c 100644 --- a/examples/with-markdoc/package.json +++ b/examples/with-markdoc/package.json @@ -11,7 +11,7 @@ "astro": "astro" }, "dependencies": { - "@astrojs/markdoc": "^0.11.1", - "astro": "^4.11.5" + "@astrojs/markdoc": "^0.11.2", + "astro": "^4.11.6" } } diff --git a/examples/with-markdown-plugins/package.json b/examples/with-markdown-plugins/package.json index dc53eb70d0ef..cacf0fdb559b 100644 --- a/examples/with-markdown-plugins/package.json +++ b/examples/with-markdown-plugins/package.json @@ -12,7 +12,7 @@ }, "dependencies": { "@astrojs/markdown-remark": "^5.1.1", - "astro": "^4.11.5", + "astro": "^4.11.6", "hast-util-select": "^6.0.2", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", diff --git a/examples/with-markdown-shiki/package.json b/examples/with-markdown-shiki/package.json index 2c681672dec8..89da7396b270 100644 --- a/examples/with-markdown-shiki/package.json +++ b/examples/with-markdown-shiki/package.json @@ -11,6 +11,6 @@ "astro": "astro" }, "dependencies": { - "astro": "^4.11.5" + "astro": "^4.11.6" } } diff --git a/examples/with-mdx/package.json b/examples/with-mdx/package.json index d3a50340be37..b517d7d1d51d 100644 --- a/examples/with-mdx/package.json +++ b/examples/with-mdx/package.json @@ -12,8 +12,8 @@ }, "dependencies": { "@astrojs/mdx": "^3.1.2", - "@astrojs/preact": "^3.5.0", - "astro": "^4.11.5", + "@astrojs/preact": "^3.5.1", + "astro": "^4.11.6", "preact": "^10.22.1" } } diff --git a/examples/with-nanostores/package.json b/examples/with-nanostores/package.json index c5d22c730680..a1903af8b5a2 100644 --- a/examples/with-nanostores/package.json +++ b/examples/with-nanostores/package.json @@ -11,9 +11,9 @@ "astro": "astro" }, "dependencies": { - "@astrojs/preact": "^3.5.0", + "@astrojs/preact": "^3.5.1", "@nanostores/preact": "^0.5.1", - "astro": "^4.11.5", + "astro": "^4.11.6", "nanostores": "^0.10.3", "preact": "^10.22.1" } diff --git a/examples/with-tailwindcss/package.json b/examples/with-tailwindcss/package.json index 8d35a24a1737..9a8a0cea622a 100644 --- a/examples/with-tailwindcss/package.json +++ b/examples/with-tailwindcss/package.json @@ -14,10 +14,10 @@ "@astrojs/mdx": "^3.1.2", "@astrojs/tailwind": "^5.1.0", "@types/canvas-confetti": "^1.6.4", - "astro": "^4.11.5", + "astro": "^4.11.6", "autoprefixer": "^10.4.19", "canvas-confetti": "^1.9.3", "postcss": "^8.4.39", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.5" } } diff --git a/examples/with-vitest/package.json b/examples/with-vitest/package.json index 91bb845784b8..60f1a0a9ee83 100644 --- a/examples/with-vitest/package.json +++ b/examples/with-vitest/package.json @@ -12,7 +12,7 @@ "test": "vitest" }, "dependencies": { - "astro": "^4.11.5", - "vitest": "^1.6.0" + "astro": "^4.11.6", + "vitest": "^2.0.3" } } diff --git a/package.json b/package.json index b0980f57b86b..baeb1f7e871f 100644 --- a/package.json +++ b/package.json @@ -52,25 +52,25 @@ "astro-benchmark": "workspace:*" }, "devDependencies": { - "@astrojs/check": "^0.7.0", + "@astrojs/check": "^0.8.1", "@biomejs/biome": "1.8.1", "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.6", + "@changesets/cli": "^2.27.7", "@eslint/eslintrc": "^3.1.0", "@types/node": "^18.17.8", "esbuild": "^0.21.5", - "eslint": "^9.6.0", + "eslint": "^9.7.0", "eslint-plugin-no-only-tests": "^3.1.0", "eslint-plugin-regexp": "^2.6.0", "globby": "^14.0.2", "only-allow": "^1.2.1", "organize-imports-cli": "^0.10.0", - "prettier": "^3.3.2", + "prettier": "^3.3.3", "prettier-plugin-astro": "^0.14.0", "tiny-glob": "^0.2.9", "turbo": "^1.13.4", - "typescript": "~5.5.2", - "typescript-eslint": "^7.14.1" + "typescript": "~5.5.3", + "typescript-eslint": "^7.16.1" }, "pnpm": { "packageExtensions": { diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index 935f0bcf39af..b7c6c6df77b9 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,88 @@ # astro +## 4.11.6 + +### Patch Changes + +- [#11459](https://github.com/withastro/astro/pull/11459) [`bc2e74d`](https://github.com/withastro/astro/commit/bc2e74de384776caa252fd47dbeda895c0488c11) Thanks [@mingjunlu](https://github.com/mingjunlu)! - Fixes false positive audit warnings on elements with the role "tabpanel". + +- [#11472](https://github.com/withastro/astro/pull/11472) [`cb4e6d0`](https://github.com/withastro/astro/commit/cb4e6d09deb7507058115a3fd2a567019a501e4d) Thanks [@delucis](https://github.com/delucis)! - Avoids targeting all files in the `src/` directory for eager optimization by Vite. After this change, only JSX, Vue, Svelte, and Astro components get scanned for early optimization. + +- [#11387](https://github.com/withastro/astro/pull/11387) [`b498461`](https://github.com/withastro/astro/commit/b498461e277bffb0abe21b59a94b1e56a8c69d47) Thanks [@bluwy](https://github.com/bluwy)! - Fixes prerendering not removing unused dynamic imported chunks + +- [#11437](https://github.com/withastro/astro/pull/11437) [`6ccb30e`](https://github.com/withastro/astro/commit/6ccb30e610eed34c2cc2c275485a8ac45c9b6b9e) Thanks [@NuroDev](https://github.com/NuroDev)! - Fixes a case where Astro's config `experimental.env.schema` keys did not allow numbers. Numbers are still not allowed as the first character to be able to generate valid JavaScript identifiers + +- [#11439](https://github.com/withastro/astro/pull/11439) [`08baf56`](https://github.com/withastro/astro/commit/08baf56f328ce4b6814a7f90089c0b3398d8bbfe) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Expands the `isInputError()` utility from `astro:actions` to accept errors of any type. This should now allow type narrowing from a try / catch block. + + ```ts + // example.ts + import { actions, isInputError } from 'astro:actions'; + + try { + await actions.like(new FormData()); + } catch (error) { + if (isInputError(error)) { + console.log(error.fields); + } + } + ``` + +- [#11452](https://github.com/withastro/astro/pull/11452) [`0e66849`](https://github.com/withastro/astro/commit/0e6684983b9b24660a8fef83fe401ec1d567378a) Thanks [@FugiTech](https://github.com/FugiTech)! - Fixes an issue where using .nullish() in a formdata Astro action would always parse as a string + +- [#11438](https://github.com/withastro/astro/pull/11438) [`619f07d`](https://github.com/withastro/astro/commit/619f07db701ebab2d2f2598dd2dcf93ba1e5719c) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Exposes utility types from `astro:actions` for the `defineAction` handler (`ActionHandler`) and the `ActionError` code (`ActionErrorCode`). + +- [#11456](https://github.com/withastro/astro/pull/11456) [`17e048d`](https://github.com/withastro/astro/commit/17e048de0e79d76b933d128676be2388954b419e) Thanks [@RickyC0626](https://github.com/RickyC0626)! - Fixes `astro dev --open` unexpected behavior that spawns a new tab every time a config file is saved + +- [#11337](https://github.com/withastro/astro/pull/11337) [`0a4b31f`](https://github.com/withastro/astro/commit/0a4b31ffeb41ad1dfb3141384e22787763fcae3d) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Adds a new property `experimental.env.validateSecrets` to allow validating private variables on the server. + + By default, this is set to `false` and only public variables are checked on start. If enabled, secrets will also be checked on start (dev/build modes). This is useful for example in some CIs to make sure all your secrets are correctly set before deploying. + + ```js + // astro.config.mjs + import { defineConfig, envField } from 'astro/config'; + + export default defineConfig({ + experimental: { + env: { + schema: { + // ... + }, + validateSecrets: true, + }, + }, + }); + ``` + +- [#11443](https://github.com/withastro/astro/pull/11443) [`ea4bc04`](https://github.com/withastro/astro/commit/ea4bc04e9489c456e2b4b5dbd67d5e4cf3f89f97) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Expose new `ActionReturnType` utility from `astro:actions`. This infers the return type of an action by passing `typeof actions.name` as a type argument. This example defines a `like` action that returns `likes` as an object: + + ```ts + // actions/index.ts + import { defineAction } from 'astro:actions'; + + export const server = { + like: defineAction({ + handler: () => { + /* ... */ + return { likes: 42 }; + }, + }), + }; + ``` + + In your client code, you can infer this handler return value with `ActionReturnType`: + + ```ts + // client.ts + import { actions, ActionReturnType } from 'astro:actions'; + + type LikesResult = ActionReturnType; + // -> { likes: number } + ``` + +- [#11436](https://github.com/withastro/astro/pull/11436) [`7dca68f`](https://github.com/withastro/astro/commit/7dca68ff2e0f089a3fd090650ee05b1942792fed) Thanks [@bholmesdev](https://github.com/bholmesdev)! - Fixes `astro:actions` autocompletion for the `defineAction` `accept` property + +- [#11455](https://github.com/withastro/astro/pull/11455) [`645e128`](https://github.com/withastro/astro/commit/645e128537f1f20da6703afc115d06371d7da5dd) Thanks [@florian-lefebvre](https://github.com/florian-lefebvre)! - Improves `astro:env` invalid variables errors + ## 4.11.5 ### Patch Changes diff --git a/packages/astro/client.d.ts b/packages/astro/client.d.ts index 0870d3dcc566..d74e5fa488cb 100644 --- a/packages/astro/client.d.ts +++ b/packages/astro/client.d.ts @@ -54,6 +54,7 @@ declare module 'astro:assets' { ) => Promise; imageConfig: import('./dist/@types/astro.js').AstroConfig['image']; getConfiguredImageService: typeof import('./dist/assets/index.js').getConfiguredImageService; + inferRemoteSize: typeof import('./dist/assets/utils/index.js').inferRemoteSize; Image: typeof import('./components/Image.astro').default; Picture: typeof import('./components/Picture.astro').default; }; diff --git a/packages/astro/components/Code.astro b/packages/astro/components/Code.astro index 7b8f3ab422fb..0cc639d7d577 100644 --- a/packages/astro/components/Code.astro +++ b/packages/astro/components/Code.astro @@ -36,6 +36,16 @@ interface Props extends Omit, 'lang'> { * Supports all themes found above; see https://shiki.style/guide/dual-themes for more information. */ themes?: Record; + /** + * Chooses a theme from the "themes" option that you've defined as the default styling theme. + * - : one of the keys defined in the "themes" option. Will throw an error if the key is not defined. + * - false: disabled. You'll have to apply the styling theme yourself. No effect if the "themes" option is not set. + * + * See https://shiki.style/guide/dual-themes#without-default-color for more information. + * + * @default "light" + */ + defaultColor?: 'light' | 'dark' | string | false; /** * Enable word wrapping. * - true: enabled. @@ -64,6 +74,7 @@ const { lang = 'plaintext', theme = 'github-dark', themes = {}, + defaultColor = 'light', wrap = false, inline = false, transformers = [], @@ -92,6 +103,7 @@ const highlighter = await getCachedHighlighter({ ], theme, themes, + defaultColor, wrap, transformers, }); diff --git a/packages/astro/dev-only.d.ts b/packages/astro/dev-only.d.ts new file mode 100644 index 000000000000..5a5420a95ced --- /dev/null +++ b/packages/astro/dev-only.d.ts @@ -0,0 +1,5 @@ +// IMPORTANT: do not publish this file! It's only intended for development within the monorepo + +declare module 'virtual:astro:env/internal' { + export const schema: import('./src/env/schema.js').EnvSchema; +} diff --git a/packages/astro/e2e/fixtures/actions-blog/package.json b/packages/astro/e2e/fixtures/actions-blog/package.json index 8b2c3824d2fe..d536e64fb93e 100644 --- a/packages/astro/e2e/fixtures/actions-blog/package.json +++ b/packages/astro/e2e/fixtures/actions-blog/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "@astrojs/check": "^0.7.0", + "@astrojs/check": "^0.8.1", "@astrojs/db": "workspace:*", "@astrojs/node": "workspace:*", "@astrojs/react": "workspace:*", @@ -19,6 +19,6 @@ "astro": "workspace:*", "react": "^18.3.1", "react-dom": "^18.3.1", - "typescript": "^5.5.2" + "typescript": "^5.5.3" } } diff --git a/packages/astro/e2e/fixtures/actions-react-19/package.json b/packages/astro/e2e/fixtures/actions-react-19/package.json index d7294977320d..5927a6782675 100644 --- a/packages/astro/e2e/fixtures/actions-react-19/package.json +++ b/packages/astro/e2e/fixtures/actions-react-19/package.json @@ -10,7 +10,7 @@ "astro": "astro" }, "dependencies": { - "@astrojs/check": "^0.7.0", + "@astrojs/check": "^0.8.1", "@astrojs/db": "workspace:*", "@astrojs/node": "workspace:*", "@astrojs/react": "workspace:*", @@ -19,7 +19,7 @@ "astro": "workspace:*", "react": "19.0.0-rc-fb9a90fa48-20240614", "react-dom": "19.0.0-rc-fb9a90fa48-20240614", - "typescript": "^5.5.2" + "typescript": "^5.5.3" }, "overrides": { "@types/react": "npm:types-react", diff --git a/packages/astro/e2e/fixtures/error-sass/package.json b/packages/astro/e2e/fixtures/error-sass/package.json index 57d060439ed2..9658b550a1f6 100644 --- a/packages/astro/e2e/fixtures/error-sass/package.json +++ b/packages/astro/e2e/fixtures/error-sass/package.json @@ -4,6 +4,6 @@ "private": true, "dependencies": { "astro": "workspace:*", - "sass": "^1.77.6" + "sass": "^1.77.8" } } diff --git a/packages/astro/e2e/fixtures/errors/package.json b/packages/astro/e2e/fixtures/errors/package.json index cdafd19203e4..43cc930720f2 100644 --- a/packages/astro/e2e/fixtures/errors/package.json +++ b/packages/astro/e2e/fixtures/errors/package.json @@ -12,7 +12,7 @@ "preact": "^10.22.1", "react": "^18.3.1", "react-dom": "^18.3.1", - "sass": "^1.77.6", + "sass": "^1.77.8", "solid-js": "^1.8.18", "svelte": "^4.2.18", "vue": "^3.4.31" diff --git a/packages/astro/e2e/fixtures/hmr/package.json b/packages/astro/e2e/fixtures/hmr/package.json index 8f65a830d5e8..87d59ab7f6e2 100644 --- a/packages/astro/e2e/fixtures/hmr/package.json +++ b/packages/astro/e2e/fixtures/hmr/package.json @@ -4,6 +4,6 @@ "private": true, "devDependencies": { "astro": "workspace:*", - "sass": "^1.77.6" + "sass": "^1.77.8" } } diff --git a/packages/astro/e2e/fixtures/server-islands/astro.config.mjs b/packages/astro/e2e/fixtures/server-islands/astro.config.mjs new file mode 100644 index 000000000000..f03c53335d30 --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands/astro.config.mjs @@ -0,0 +1,14 @@ +import mdx from '@astrojs/mdx'; +import react from '@astrojs/react'; +import { defineConfig } from 'astro/config'; +import nodejs from '@astrojs/node'; + +// https://astro.build/config +export default defineConfig({ + output: 'hybrid', + adapter: nodejs({ mode: 'standalone' }), + integrations: [react(), mdx()], + experimental: { + serverIslands: true, + } +}); diff --git a/packages/astro/e2e/fixtures/server-islands/package.json b/packages/astro/e2e/fixtures/server-islands/package.json new file mode 100644 index 000000000000..9958ee287857 --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands/package.json @@ -0,0 +1,16 @@ +{ + "name": "@e2e/server-islands", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "astro dev" + }, + "dependencies": { + "@astrojs/react": "workspace:*", + "astro": "workspace:*", + "@astrojs/mdx": "workspace:*", + "@astrojs/node": "workspace:*", + "react": "^18.3.1", + "react-dom": "^18.3.1" + } +} diff --git a/packages/astro/e2e/fixtures/server-islands/src/components/Island.astro b/packages/astro/e2e/fixtures/server-islands/src/components/Island.astro new file mode 100644 index 000000000000..b7c376f517ad --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands/src/components/Island.astro @@ -0,0 +1,4 @@ +--- +--- +

I am an island

+ diff --git a/packages/astro/e2e/fixtures/server-islands/src/pages/index.astro b/packages/astro/e2e/fixtures/server-islands/src/pages/index.astro new file mode 100644 index 000000000000..71b7d0e266c8 --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands/src/pages/index.astro @@ -0,0 +1,14 @@ +--- +import Island from '../components/Island.astro'; +--- + + + + + + + +

children

+
+ + diff --git a/packages/astro/e2e/fixtures/server-islands/src/pages/mdx.mdx b/packages/astro/e2e/fixtures/server-islands/src/pages/mdx.mdx new file mode 100644 index 000000000000..1a0a0ac6f3f9 --- /dev/null +++ b/packages/astro/e2e/fixtures/server-islands/src/pages/mdx.mdx @@ -0,0 +1,3 @@ +import Island from '../components/Island.astro'; + + diff --git a/packages/astro/e2e/fixtures/tailwindcss/package.json b/packages/astro/e2e/fixtures/tailwindcss/package.json index 94acb613eedb..09ccca0040d5 100644 --- a/packages/astro/e2e/fixtures/tailwindcss/package.json +++ b/packages/astro/e2e/fixtures/tailwindcss/package.json @@ -7,6 +7,6 @@ "astro": "workspace:*", "autoprefixer": "^10.4.19", "postcss": "^8.4.39", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.5" } } diff --git a/packages/astro/e2e/server-islands.test.js b/packages/astro/e2e/server-islands.test.js new file mode 100644 index 000000000000..1479b807b121 --- /dev/null +++ b/packages/astro/e2e/server-islands.test.js @@ -0,0 +1,66 @@ +import { expect } from '@playwright/test'; +import { testFactory } from './test-utils.js'; + +const test = testFactory({ root: './fixtures/server-islands/' }); + +test.describe('Server islands', () => { + test.describe('Development', () => { + let devServer; + + test.beforeAll(async ({ astro }) => { + devServer = await astro.startDevServer(); + }); + + test.afterAll(async () => { + await devServer.stop(); + }); + + test('Load content from the server', async ({ page, astro }) => { + await page.goto(astro.resolveUrl('/')); + let el = page.locator('#island'); + + await expect(el, 'element rendered').toBeVisible(); + await expect(el, 'should have content').toHaveText('I am an island'); + }); + + test('Can be in an MDX file', async ({ page, astro }) => { + await page.goto(astro.resolveUrl('/mdx')); + let el = page.locator('#island'); + + await expect(el, 'element rendered').toBeVisible(); + await expect(el, 'should have content').toHaveText('I am an island'); + }); + + test('Slots are provided back to the server islands', async ({ page, astro }) => { + await page.goto(astro.resolveUrl('/')); + let el = page.locator('#children'); + + await expect(el, 'element rendered').toBeVisible(); + }); + }); + + test.describe('Production', () => { + let previewServer; + + test.beforeAll(async ({ astro }) => { + // Playwright's Node version doesn't have these functions, so stub them. + process.stdout.clearLine = () => {}; + process.stdout.cursorTo = () => {}; + await astro.build(); + previewServer = await astro.preview(); + }); + + test.afterAll(async () => { + await previewServer.stop(); + }); + + test('Only one component in prod', async ({ page, astro }) => { + await page.goto(astro.resolveUrl('/')); + + let el = page.locator('#island'); + + await expect(el, 'element rendered').toBeVisible(); + await expect(el, 'should have content').toHaveText('I am an island'); + }); + }); +}); diff --git a/packages/astro/package.json b/packages/astro/package.json index c66cb301e39e..6a52a33aae0d 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "4.11.5", + "version": "4.11.6", "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.", "type": "module", "author": "withastro", @@ -63,6 +63,7 @@ "./actions/runtime/*": "./dist/actions/runtime/*", "./assets": "./dist/assets/index.js", "./assets/utils": "./dist/assets/utils/index.js", + "./assets/utils/inferRemoteSize.js": "./dist/assets/utils/remoteProbe.js", "./assets/endpoint/*": "./dist/assets/endpoint/*.js", "./assets/services/sharp": "./dist/assets/services/sharp.js", "./assets/services/squoosh": "./dist/assets/services/squoosh.js", @@ -124,22 +125,22 @@ "test:node": "astro-scripts test \"test/**/*.test.js\"" }, "dependencies": { - "@astrojs/compiler": "^2.8.1", + "@astrojs/compiler": "^2.9.0", "@astrojs/internal-helpers": "workspace:*", "@astrojs/markdown-remark": "workspace:*", "@astrojs/telemetry": "workspace:*", - "@babel/core": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/parser": "^7.24.7", + "@babel/core": "^7.24.9", + "@babel/generator": "^7.24.10", + "@babel/parser": "^7.24.8", "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", "@types/babel__core": "^7.20.5", "@types/cookie": "^0.6.0", - "acorn": "^8.12.0", + "acorn": "^8.12.1", "aria-query": "^5.3.0", - "axobject-query": "^4.0.0", - "boxen": "^7.1.1", + "axobject-query": "^4.1.0", + "boxen": "7.1.1", "chokidar": "^3.6.0", "ci-info": "^4.0.0", "clsx": "^2.1.1", @@ -167,22 +168,22 @@ "magic-string": "^0.30.10", "mrmime": "^2.0.0", "ora": "^8.0.1", - "p-limit": "^5.0.0", + "p-limit": "^6.1.0", "p-queue": "^8.0.1", "path-to-regexp": "^6.2.2", - "preferred-pm": "^3.1.3", + "preferred-pm": "^4.0.0", "prompts": "^2.4.2", "rehype": "^13.0.1", "semver": "^7.6.2", - "shiki": "^1.10.0", + "shiki": "^1.10.3", "string-width": "^7.2.0", "strip-ansi": "^7.1.0", "tsconfck": "^3.1.1", "unist-util-visit": "^5.0.0", - "vfile": "^6.0.1", - "vite": "^5.3.2", + "vfile": "^6.0.2", + "vite": "^5.3.4", "vitefu": "^0.2.5", - "which-pm": "^2.2.0", + "which-pm": "^3.0.0", "yargs-parser": "^21.1.1", "zod": "^3.23.8", "zod-to-json-schema": "^3.23.1" @@ -191,8 +192,8 @@ "sharp": "^0.33.3" }, "devDependencies": { - "@astrojs/check": "^0.7.0", - "@playwright/test": "^1.45.0", + "@astrojs/check": "^0.8.1", + "@playwright/test": "^1.45.2", "@types/aria-query": "^5.0.4", "@types/babel__generator": "^7.6.8", "@types/babel__traverse": "^7.20.6", @@ -226,8 +227,8 @@ "rehype-slug": "^6.0.0", "rehype-toc": "^3.0.2", "remark-code-titles": "^0.1.2", - "rollup": "^4.18.0", - "sass": "^1.77.6", + "rollup": "^4.18.1", + "sass": "^1.77.8", "srcset-parse": "^1.1.0", "undici": "^6.19.2", "unified": "^11.0.5" diff --git a/packages/astro/src/@types/astro.ts b/packages/astro/src/@types/astro.ts index 9a7a774c3c53..e54c6e037c0f 100644 --- a/packages/astro/src/@types/astro.ts +++ b/packages/astro/src/@types/astro.ts @@ -17,7 +17,7 @@ import type { ActionInputSchema, } from '../actions/runtime/virtual/server.js'; import type { RemotePattern } from '../assets/utils/remotePattern.js'; -import type { AssetsPrefix, SerializedSSRManifest } from '../core/app/types.js'; +import type { AssetsPrefix, SSRManifest, SerializedSSRManifest } from '../core/app/types.js'; import type { PageBuildData } from '../core/build/types.js'; import type { AstroConfigType } from '../core/config/index.js'; import type { AstroTimer } from '../core/config/timer.js'; @@ -90,6 +90,7 @@ export interface AstroBuiltinProps { 'client:media'?: string; 'client:visible'?: ClientVisibleOptions | boolean; 'client:only'?: boolean | string; + 'server:defer'?: boolean; } export type ClientVisibleOptions = Pick; @@ -2202,6 +2203,71 @@ export interface AstroUserConfig { */ validateSecrets?: boolean; }; + + /** + * @docs + * @name experimental.serverIslands + * @type {boolean} + * @default `false` + * @version 4.12.0 + * @description + * + * Enables experimental Server Island features. + * Server Islands offer the ability to defer a component to render asynchronously after the page has already rendered. + * + * To enable, configure an [on-demand server rendering `output` mode](https://docs.astro.build/en/basics/rendering-modes/#on-demand-rendered) with an adapter, and add the `serverIslands` flag to the `experimental` object: + * + * ```js + * { + * output: 'hybrid', // or 'server' + * adapter: nodejs({ mode: 'standalone' }), + * experimental: { + * serverIslands: true, + * }, + * } + * ``` + * + * Use the `server:defer` directive on any Astro component to delay initial rendering: + * + * ```astro "server:defer" + * --- + * import Avatar from '~/components/Avatar.astro'; + * --- + * + * ``` + * + * The outer page will be rendered, either at build-time (`hybrid`) or at runtime (`server`) with the island content omitted and a ``); + }, + }; +} diff --git a/packages/astro/src/runtime/server/render/slot.ts b/packages/astro/src/runtime/server/render/slot.ts index 95f9008250aa..bf5a2bb3b801 100644 --- a/packages/astro/src/runtime/server/render/slot.ts +++ b/packages/astro/src/runtime/server/render/slot.ts @@ -1,8 +1,8 @@ import type { SSRResult } from '../../../@types/astro.js'; -import type { renderTemplate } from './astro/render-template.js'; +import { renderTemplate } from './astro/render-template.js'; import type { RenderInstruction } from './instruction.js'; -import { HTMLString, markHTMLString } from '../escape.js'; +import { HTMLString, markHTMLString, unescapeHTML } from '../escape.js'; import { renderChild } from './any.js'; import { type RenderDestination, type RenderInstance, chunkToString } from './common.js'; @@ -103,3 +103,9 @@ export async function renderSlots( } return { slotInstructions, children }; } + +export function createSlotValueFromString(content: string): ComponentSlotValue { + return function () { + return renderTemplate`${unescapeHTML(content)}`; + }; +} diff --git a/packages/astro/src/vite-plugin-astro-server/pipeline.ts b/packages/astro/src/vite-plugin-astro-server/pipeline.ts index 4ad3c48c8ba6..7ad9ead1ea06 100644 --- a/packages/astro/src/vite-plugin-astro-server/pipeline.ts +++ b/packages/astro/src/vite-plugin-astro-server/pipeline.ts @@ -12,13 +12,13 @@ import type { } from '../@types/astro.js'; import { getInfoOutput } from '../cli/info/index.js'; import { type HeadElements } from '../core/base-pipeline.js'; -import { ASTRO_VERSION, DEFAULT_404_COMPONENT } from '../core/constants.js'; +import { ASTRO_VERSION } from '../core/constants.js'; import { enhanceViteSSRError } from '../core/errors/dev/index.js'; import { AggregateError, CSSError, MarkdownError } from '../core/errors/index.js'; import type { Logger } from '../core/logger/core.js'; import type { ModuleLoader } from '../core/module-loader/index.js'; import { Pipeline, loadRenderer } from '../core/render/index.js'; -import { default404Page } from '../core/routing/astro-designed-error-pages.js'; +import { createDefaultRoutes } from '../core/routing/default.js'; import { findRouteToRewrite } from '../core/routing/rewrite.js'; import { isPage, isServerLikeOutput, viteID } from '../core/util.js'; import { resolveIdToUrl } from '../core/viteUtils.js'; @@ -45,13 +45,16 @@ export class DevPipeline extends Pipeline { readonly logger: Logger, readonly manifest: SSRManifest, readonly settings: AstroSettings, - readonly config = settings.config + readonly config = settings.config, + readonly defaultRoutes = createDefaultRoutes(manifest, config.root) ) { const mode = 'development'; const resolve = createResolve(loader, config.root); const serverLike = isServerLikeOutput(config); const streaming = true; super(logger, manifest, mode, [], resolve, serverLike, streaming); + manifest.serverIslandMap = settings.serverIslandMap; + manifest.serverIslandNameMap = settings.serverIslandNameMap; } static create( @@ -153,8 +156,12 @@ export class DevPipeline extends Pipeline { async preload(routeData: RouteData, filePath: URL) { const { loader } = this; - if (filePath.href === new URL(DEFAULT_404_COMPONENT, this.config.root).href) { - return { default: default404Page } as any as ComponentInstance; + + // First check built-in routes + for (const route of this.defaultRoutes) { + if (route.matchesComponent(filePath)) { + return route.instance; + } } // Important: This needs to happen first, in case a renderer provides polyfills. @@ -216,4 +223,16 @@ export class DevPipeline extends Pipeline { setManifestData(manifestData: ManifestData) { this.manifestData = manifestData; } + + rewriteKnownRoute(route: string, sourceRoute: RouteData): ComponentInstance { + if (isServerLikeOutput(this.config) && sourceRoute.prerender) { + for (let def of this.defaultRoutes) { + if (route === def.route) { + return def.instance; + } + } + } + + throw new Error('Unknown route'); + } } diff --git a/packages/astro/src/vite-plugin-astro-server/plugin.ts b/packages/astro/src/vite-plugin-astro-server/plugin.ts index 9df0502ea320..9904d2844d9a 100644 --- a/packages/astro/src/vite-plugin-astro-server/plugin.ts +++ b/packages/astro/src/vite-plugin-astro-server/plugin.ts @@ -9,7 +9,7 @@ import { AstroError, AstroErrorData } from '../core/errors/index.js'; import { patchOverlay } from '../core/errors/overlay.js'; import type { Logger } from '../core/logger/core.js'; import { createViteLoader } from '../core/module-loader/index.js'; -import { ensure404Route } from '../core/routing/astro-designed-error-pages.js'; +import { injectDefaultRoutes } from '../core/routing/default.js'; import { createRouteManifest } from '../core/routing/index.js'; import { toRoutingStrategy } from '../i18n/utils.js'; import { baseMiddleware } from './base.js'; @@ -35,7 +35,7 @@ export default function createVitePluginAstroServer({ configureServer(viteServer) { const loader = createViteLoader(viteServer); const manifest = createDevelopmentManifest(settings); - let manifestData: ManifestData = ensure404Route( + let manifestData: ManifestData = injectDefaultRoutes( createRouteManifest({ settings, fsMod }, logger) ); const pipeline = DevPipeline.create(manifestData, { loader, logger, manifest, settings }); @@ -46,7 +46,7 @@ export default function createVitePluginAstroServer({ function rebuildManifest(needsManifestRebuild: boolean) { pipeline.clearRouteCache(); if (needsManifestRebuild) { - manifestData = ensure404Route(createRouteManifest({ settings }, logger)); + manifestData = injectDefaultRoutes(createRouteManifest({ settings }, logger)); pipeline.setManifestData(manifestData); } } diff --git a/packages/astro/src/vite-plugin-astro-server/route.ts b/packages/astro/src/vite-plugin-astro-server/route.ts index 64caf04f0940..9f087b621c15 100644 --- a/packages/astro/src/vite-plugin-astro-server/route.ts +++ b/packages/astro/src/vite-plugin-astro-server/route.ts @@ -3,6 +3,7 @@ import type { ComponentInstance, ManifestData, RouteData } from '../@types/astro import { DEFAULT_404_COMPONENT, REROUTE_DIRECTIVE_HEADER, + REWRITE_DIRECTIVE_HEADER_KEY, clientLocalsSymbol, } from '../core/constants.js'; import { AstroErrorData, isAstroError } from '../core/errors/index.js'; @@ -11,7 +12,6 @@ import { loadMiddleware } from '../core/middleware/loadMiddleware.js'; import { RenderContext } from '../core/render-context.js'; import { type SSROptions, getProps } from '../core/render/index.js'; import { createRequest } from '../core/request.js'; -import { default404Page } from '../core/routing/astro-designed-error-pages.js'; import { matchAllRoutes } from '../core/routing/index.js'; import { getSortedPreloadedMatches } from '../prerender/routing.js'; import type { DevPipeline } from './pipeline.js'; @@ -105,19 +105,6 @@ export async function matchRoute( const custom404 = getCustom404Route(manifestData); - if (custom404 && custom404.component === DEFAULT_404_COMPONENT) { - const component: ComponentInstance = { - default: default404Page, - }; - return { - route: custom404, - filePath: new URL(`file://${custom404.component}`), - resolvedPathname: pathname, - preloadedComponent: component, - mod: component, - }; - } - if (custom404) { const filePath = new URL(`./${custom404.component}`, config.root); const preloadedComponent = await pipeline.preload(custom404, filePath); @@ -218,8 +205,12 @@ export async function handleRoute({ }); let response; + let isReroute = false; + let isRewrite = false; try { response = await renderContext.render(mod); + isReroute = response.headers.has(REROUTE_DIRECTIVE_HEADER); + isRewrite = response.headers.has(REWRITE_DIRECTIVE_HEADER_KEY); } catch (err: any) { const custom500 = getCustom500Route(manifestData); if (!custom500) { @@ -264,7 +255,10 @@ export async function handleRoute({ } // We remove the internally-used header before we send the response to the user agent. - if (response.headers.has(REROUTE_DIRECTIVE_HEADER)) { + if (isReroute) { + response.headers.delete(REROUTE_DIRECTIVE_HEADER); + } + if (isRewrite) { response.headers.delete(REROUTE_DIRECTIVE_HEADER); } @@ -272,6 +266,14 @@ export async function handleRoute({ await writeWebResponse(incomingResponse, response); return; } + + // This check is important in case of rewrites. + // A route can start with a 404 code, then the rewrite kicks in and can return a 200 status code + if (isRewrite) { + await writeSSRResult(request, response, incomingResponse); + return; + } + // We are in a recursion, and it's possible that this function is called itself with a status code // By default, the status code passed via parameters is computed by the matched route. // diff --git a/packages/astro/src/vite-plugin-astro/index.ts b/packages/astro/src/vite-plugin-astro/index.ts index 6c0f76b0ffe5..456b7677de63 100644 --- a/packages/astro/src/vite-plugin-astro/index.ts +++ b/packages/astro/src/vite-plugin-astro/index.ts @@ -9,7 +9,7 @@ import type { } from './types.js'; import { normalizePath } from 'vite'; -import { normalizeFilename } from '../vite-plugin-utils/index.js'; +import { hasSpecialQueries, normalizeFilename } from '../vite-plugin-utils/index.js'; import { type CompileAstroResult, compileAstro } from './compile.js'; import { handleHotUpdate } from './hmr.js'; import { parseAstroRequest } from './query.js'; @@ -200,6 +200,8 @@ export default function astro({ settings, logger }: AstroPluginOptions): vite.Pl } }, async transform(source, id) { + if (hasSpecialQueries(id)) return; + const parsedId = parseAstroRequest(id); // ignore astro file sub-requests, e.g. Foo.astro?astro&type=script&index=0&lang.ts if (!parsedId.filename.endsWith('.astro') || parsedId.query.astro) { @@ -212,6 +214,7 @@ export default function astro({ settings, logger }: AstroPluginOptions): vite.Pl const astroMetadata: AstroPluginMetadata['astro'] = { clientOnlyComponents: transformResult.clientOnlyComponents, hydratedComponents: transformResult.hydratedComponents, + serverComponents: transformResult.serverComponents, scripts: transformResult.scripts, containsHead: transformResult.containsHead, propagation: transformResult.propagation ? 'self' : 'none', diff --git a/packages/astro/src/vite-plugin-astro/metadata.ts b/packages/astro/src/vite-plugin-astro/metadata.ts index d0a2b3644b22..3fa0068a5a40 100644 --- a/packages/astro/src/vite-plugin-astro/metadata.ts +++ b/packages/astro/src/vite-plugin-astro/metadata.ts @@ -7,3 +7,15 @@ export function getAstroMetadata(modInfo: ModuleInfo): PluginMetadata['astro'] | } return undefined; } + +export function createDefaultAstroMetadata(): PluginMetadata['astro'] { + return { + hydratedComponents: [], + clientOnlyComponents: [], + serverComponents: [], + scripts: [], + propagation: 'none', + containsHead: false, + pageOptions: {}, + }; +} diff --git a/packages/astro/src/vite-plugin-astro/types.ts b/packages/astro/src/vite-plugin-astro/types.ts index 8e82165f5ebd..ee5003941526 100644 --- a/packages/astro/src/vite-plugin-astro/types.ts +++ b/packages/astro/src/vite-plugin-astro/types.ts @@ -10,6 +10,7 @@ export interface PluginMetadata { astro: { hydratedComponents: TransformResult['hydratedComponents']; clientOnlyComponents: TransformResult['clientOnlyComponents']; + serverComponents: TransformResult['serverComponents']; scripts: TransformResult['scripts']; containsHead: TransformResult['containsHead']; propagation: PropagationHint; diff --git a/packages/astro/src/vite-plugin-markdown/index.ts b/packages/astro/src/vite-plugin-markdown/index.ts index 98362c89d443..6859af1483a0 100644 --- a/packages/astro/src/vite-plugin-markdown/index.ts +++ b/packages/astro/src/vite-plugin-markdown/index.ts @@ -13,7 +13,7 @@ import { AstroError, AstroErrorData } from '../core/errors/index.js'; import type { Logger } from '../core/logger/core.js'; import { isMarkdownFile } from '../core/util.js'; import { shorthash } from '../runtime/server/shorthash.js'; -import type { PluginMetadata } from '../vite-plugin-astro/types.js'; +import { createDefaultAstroMetadata } from '../vite-plugin-astro/metadata.js'; import { getFileInfo } from '../vite-plugin-utils/index.js'; import { type MarkdownImagePath, getMarkdownCodeForImages } from './images.js'; @@ -159,14 +159,7 @@ export default function markdown({ settings, logger }: AstroPluginOptions): Plug return { code, meta: { - astro: { - hydratedComponents: [], - clientOnlyComponents: [], - scripts: [], - propagation: 'none', - containsHead: false, - pageOptions: {}, - } as PluginMetadata['astro'], + astro: createDefaultAstroMetadata(), vite: { lang: 'ts', }, diff --git a/packages/astro/src/vite-plugin-utils/index.ts b/packages/astro/src/vite-plugin-utils/index.ts index 74f60305d59a..74167a36a9cf 100644 --- a/packages/astro/src/vite-plugin-utils/index.ts +++ b/packages/astro/src/vite-plugin-utils/index.ts @@ -50,3 +50,12 @@ const postfixRE = /[?#].*$/s; export function cleanUrl(url: string): string { return url.replace(postfixRE, ''); } + +const specialQueriesRE = /(?:\?|&)(?:url|raw|direct)(?:&|$)/; +/** + * Detect `?url`, `?raw`, and `?direct`, in which case we usually want to skip + * transforming any code with this queries as Vite will handle it directly. + */ +export function hasSpecialQueries(id: string): boolean { + return specialQueriesRE.test(id); +} diff --git a/packages/astro/templates/env/module.mjs b/packages/astro/templates/env/module.mjs index 952dadbba1bc..0e2dd89eb524 100644 --- a/packages/astro/templates/env/module.mjs +++ b/packages/astro/templates/env/module.mjs @@ -1,7 +1,9 @@ +// @ts-check import { schema } from 'virtual:astro:env/internal'; import { - createInvalidVariableError, + createInvalidVariablesError, getEnv, + getEnvFieldType, setOnSetGetEnv, validateEnvVariable, } from 'astro/env/runtime'; @@ -19,7 +21,8 @@ const _internalGetSecret = (key) => { if (result.ok) { return result.value; } - throw createInvalidVariableError(key, result.type); + const type = getEnvFieldType(options); + throw createInvalidVariablesError(key, type, result); }; setOnSetGetEnv((reset) => { diff --git a/packages/astro/test/astro-basic.test.js b/packages/astro/test/astro-basic.test.js index cb7c06ce0efd..957be04fb6f2 100644 --- a/packages/astro/test/astro-basic.test.js +++ b/packages/astro/test/astro-basic.test.js @@ -159,6 +159,12 @@ describe('Astro basic build', () => { assert.equal($('h1').text(), 'WORKS'); }); + it('Handles importing .astro?raw correctly', async () => { + const html = await fixture.readFile('/import-queries/raw/index.html'); + const $ = cheerio.load(html); + assert.equal($('.raw-value').text(), '

Hello

\n'); + }); + describe('preview', () => { it('returns 200 for valid URLs', async () => { const result = await fixture.fetch('/'); @@ -211,4 +217,12 @@ describe('Astro basic development', () => { html.includes(''); assert.ok(isUtf8); }); + + it('Handles importing .astro?raw correctly', async () => { + const res = await fixture.fetch('/import-queries/raw/index.html'); + assert.equal(res.status, 200); + const html = await res.text(); + const $ = cheerio.load(html); + assert.equal($('.raw-value').text(), '

Hello

\n'); + }); }); diff --git a/packages/astro/test/astro-markdown-plugins.test.js b/packages/astro/test/astro-markdown-plugins.test.js index 1ea2afd8ef88..09cb76d2decc 100644 --- a/packages/astro/test/astro-markdown-plugins.test.js +++ b/packages/astro/test/astro-markdown-plugins.test.js @@ -60,7 +60,7 @@ describe('Astro Markdown plugins', () => { const smartypantsHtml = await fixture.readFile('/with-smartypants/index.html'); const $2 = cheerio.load(smartypantsHtml); - assert.equal($2('p').html(), '”Smartypants” is — awesome'); + assert.equal($2('p').html(), '“Smartypants” is — awesome'); testRemark(gfmHtml); testRehype(gfmHtml, '#github-flavored-markdown-test'); @@ -82,7 +82,7 @@ describe('Astro Markdown plugins', () => { const $ = cheerio.load(html); // test 1: smartypants applied correctly - assert.equal($('p').html(), '”Smartypants” is — awesome'); + assert.equal($('p').html(), '“Smartypants” is — awesome'); testRemark(html); testRehype(html, '#smartypants-test'); diff --git a/packages/astro/test/astro-markdown-shiki.test.js b/packages/astro/test/astro-markdown-shiki.test.js index 24ab7d2b3026..3e0fa9734a78 100644 --- a/packages/astro/test/astro-markdown-shiki.test.js +++ b/packages/astro/test/astro-markdown-shiki.test.js @@ -78,6 +78,22 @@ describe('Astro Markdown Shiki', () => { ); }); }); + + describe('Default color', async () => { + let fixture; + + before(async () => { + fixture = await loadFixture({ root: './fixtures/astro-markdown-shiki/default-color/' }); + await fixture.build(); + }); + + it('Renders default color without themes', async () => { + const html = await fixture.readFile('/index.html'); + const $ = cheerio.load(html); + + assert.doesNotMatch($('pre').attr().style, /background-color/); + }); + }); }); describe('Languages', () => { diff --git a/packages/astro/test/astro-sync.test.js b/packages/astro/test/astro-sync.test.js index 11152f77b2d8..f6faa6722551 100644 --- a/packages/astro/test/astro-sync.test.js +++ b/packages/astro/test/astro-sync.test.js @@ -1,6 +1,7 @@ import assert from 'node:assert/strict'; import * as fs from 'node:fs'; import { before, describe, it } from 'node:test'; +import { fileURLToPath } from 'node:url'; import ts from 'typescript'; import { loadFixture } from './test-utils.js'; @@ -47,10 +48,10 @@ const createFixture = () => { }, }; - const code = await astroFixture.sync({}, { fs: fsMock }); - if (code !== 0) { - throw new Error(`Process error code ${code}`); - } + await astroFixture.sync({ + inlineConfig: { root: fileURLToPath(new URL(root, import.meta.url)) }, + fs: fsMock, + }); }, /** @param {string} path */ thenFileShouldExist(path) { diff --git a/packages/astro/test/core-image-infersize.test.js b/packages/astro/test/core-image-infersize.test.js index 9abf24b1f79e..355d6a6911f2 100644 --- a/packages/astro/test/core-image-infersize.test.js +++ b/packages/astro/test/core-image-infersize.test.js @@ -70,6 +70,11 @@ describe('astro:image:infersize', () => { true ); }); + + it('direct function call work', async () => { + let $dimensions = $('#direct'); + assert.equal($dimensions.text().trim(), '64x64'); + }); }); }); }); diff --git a/packages/astro/test/env-secret.test.js b/packages/astro/test/env-secret.test.js index 4505254a6b62..7a569e35a524 100644 --- a/packages/astro/test/env-secret.test.js +++ b/packages/astro/test/env-secret.test.js @@ -84,7 +84,7 @@ describe('astro:env secret variables', () => { } catch (error) { assert.equal(error instanceof Error, true); assert.equal(error.title, 'Invalid Environment Variables'); - assert.equal(error.message.includes('Variable KNOWN_SECRET is not of type: number.'), true); + assert.equal(error.message.includes('KNOWN_SECRET is missing'), true); } }); }); diff --git a/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/_content.astro b/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/_content.astro new file mode 100644 index 000000000000..986a4a1a25bc --- /dev/null +++ b/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/_content.astro @@ -0,0 +1 @@ +

Hello

diff --git a/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/raw.astro b/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/raw.astro new file mode 100644 index 000000000000..8b88cbe10d10 --- /dev/null +++ b/packages/astro/test/fixtures/astro-basic/src/pages/import-queries/raw.astro @@ -0,0 +1,5 @@ +--- +import contentStr from './_content.astro?raw'; +--- + +
{contentStr}
diff --git a/packages/astro/test/fixtures/astro-markdown-shiki/default-color/astro.config.mjs b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/astro.config.mjs new file mode 100644 index 000000000000..815e56cf388c --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/astro.config.mjs @@ -0,0 +1,13 @@ +export default { + markdown: { + syntaxHighlight: 'shiki', + shikiConfig: { + theme: 'github-light', + themes: { + light: 'github-light', + dark: 'github-light' + }, + defaultColor: false + }, + }, +} diff --git a/packages/astro/test/fixtures/astro-markdown-shiki/default-color/package.json b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/package.json new file mode 100644 index 000000000000..12460ffa73c2 --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/package.json @@ -0,0 +1,8 @@ +{ + "name": "@test/astro-markdown-skiki-default-color", + "version": "0.0.0", + "private": true, + "dependencies": { + "astro": "workspace:*" + } +} diff --git a/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/layouts/content.astro b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/layouts/content.astro new file mode 100644 index 000000000000..925a243a9368 --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/layouts/content.astro @@ -0,0 +1,10 @@ + + + + + +
+ +
+ + diff --git a/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/pages/index.md b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/pages/index.md new file mode 100644 index 000000000000..a75170537cce --- /dev/null +++ b/packages/astro/test/fixtures/astro-markdown-shiki/default-color/src/pages/index.md @@ -0,0 +1,24 @@ +--- +layout: ../layouts/content.astro +--- + +# Hello world + +```yaml +apiVersion: v3 +kind: Pod +metadata: + name: rss-site + labels: + app: web +spec: + containers: + - name: front-end + image: nginx + ports: + - containerPort: 80 + - name: rss-reader + image: nickchase/rss-php-nginx:v1 + ports: + - containerPort: 88 +``` diff --git a/packages/astro/test/fixtures/core-image-infersize/src/pages/index.astro b/packages/astro/test/fixtures/core-image-infersize/src/pages/index.astro index 947c9a4f6bcd..ef7bf57c012d 100644 --- a/packages/astro/test/fixtures/core-image-infersize/src/pages/index.astro +++ b/packages/astro/test/fixtures/core-image-infersize/src/pages/index.astro @@ -1,6 +1,9 @@ --- // https://avatars.githubusercontent.com/u/622227?s=64 is a .jpeg -import { Image, Picture, getImage } from 'astro:assets'; +import { Image, Picture, getImage, inferRemoteSize } from 'astro:assets'; + +const { width, height } = await inferRemoteSize('https://avatars.githubusercontent.com/u/622227?s=64'); + const remoteImg = await getImage({ src: 'https://avatars.githubusercontent.com/u/622227?s=64', inferSize: true, @@ -10,3 +13,7 @@ const remoteImg = await getImage({ + +
+ {width}x{height} +
diff --git a/packages/astro/test/fixtures/postcss/package.json b/packages/astro/test/fixtures/postcss/package.json index 2afde7679b3f..783dc24380b8 100644 --- a/packages/astro/test/fixtures/postcss/package.json +++ b/packages/astro/test/fixtures/postcss/package.json @@ -14,6 +14,6 @@ "vue": "^3.4.31" }, "devDependencies": { - "postcss-preset-env": "^9.5.15" + "postcss-preset-env": "^9.6.0" } } diff --git a/packages/astro/test/fixtures/preact-component/package.json b/packages/astro/test/fixtures/preact-component/package.json index 341752468642..f0c105e1c184 100644 --- a/packages/astro/test/fixtures/preact-component/package.json +++ b/packages/astro/test/fixtures/preact-component/package.json @@ -4,7 +4,7 @@ "private": true, "dependencies": { "@astrojs/preact": "workspace:*", - "@preact/signals": "1.2.3", + "@preact/signals": "1.3.0", "astro": "workspace:*", "preact": "^10.22.1" } diff --git a/packages/astro/test/fixtures/server-islands/hybrid/astro.config.mjs b/packages/astro/test/fixtures/server-islands/hybrid/astro.config.mjs new file mode 100644 index 000000000000..70d0e6d6aadb --- /dev/null +++ b/packages/astro/test/fixtures/server-islands/hybrid/astro.config.mjs @@ -0,0 +1,13 @@ +import svelte from '@astrojs/svelte'; +import { defineConfig } from 'astro/config'; + +export default defineConfig({ + output: 'hybrid', + integrations: [ + svelte() + ], + experimental: { + serverIslands: true, + } +}); + diff --git a/packages/astro/test/fixtures/server-islands/hybrid/package.json b/packages/astro/test/fixtures/server-islands/hybrid/package.json new file mode 100644 index 000000000000..fdb447b0e071 --- /dev/null +++ b/packages/astro/test/fixtures/server-islands/hybrid/package.json @@ -0,0 +1,10 @@ +{ + "name": "@test/server-islands-hybrid", + "version": "0.0.0", + "private": true, + "dependencies": { + "@astrojs/svelte": "workspace:*", + "astro": "workspace:*", + "svelte": "^4.2.18" + } +} diff --git a/packages/astro/test/fixtures/server-islands/hybrid/src/components/Island.astro b/packages/astro/test/fixtures/server-islands/hybrid/src/components/Island.astro new file mode 100644 index 000000000000..49a5a87ae0d5 --- /dev/null +++ b/packages/astro/test/fixtures/server-islands/hybrid/src/components/Island.astro @@ -0,0 +1,4 @@ +--- + +--- +

I'm an island

diff --git a/packages/astro/test/fixtures/server-islands/hybrid/src/pages/index.astro b/packages/astro/test/fixtures/server-islands/hybrid/src/pages/index.astro new file mode 100644 index 000000000000..d42973294e6d --- /dev/null +++ b/packages/astro/test/fixtures/server-islands/hybrid/src/pages/index.astro @@ -0,0 +1,12 @@ +--- +import Island from '../components/Island.astro'; +--- + + + Testing + + +

Testing

+ + + diff --git a/packages/astro/test/fixtures/server-islands/ssr/astro.config.mjs b/packages/astro/test/fixtures/server-islands/ssr/astro.config.mjs new file mode 100644 index 000000000000..8eb474b04853 --- /dev/null +++ b/packages/astro/test/fixtures/server-islands/ssr/astro.config.mjs @@ -0,0 +1,13 @@ +import svelte from '@astrojs/svelte'; +import { defineConfig } from 'astro/config'; + +export default defineConfig({ + output: 'server', + integrations: [ + svelte() + ], + experimental: { + serverIslands: true, + } +}); + diff --git a/packages/astro/test/fixtures/server-islands/ssr/package.json b/packages/astro/test/fixtures/server-islands/ssr/package.json new file mode 100644 index 000000000000..fa6e000dda49 --- /dev/null +++ b/packages/astro/test/fixtures/server-islands/ssr/package.json @@ -0,0 +1,10 @@ +{ + "name": "@test/server-islands-ssr", + "version": "0.0.0", + "private": true, + "dependencies": { + "@astrojs/svelte": "workspace:*", + "astro": "workspace:*", + "svelte": "^4.2.18" + } +} diff --git a/packages/astro/test/fixtures/server-islands/ssr/src/components/Island.astro b/packages/astro/test/fixtures/server-islands/ssr/src/components/Island.astro new file mode 100644 index 000000000000..49a5a87ae0d5 --- /dev/null +++ b/packages/astro/test/fixtures/server-islands/ssr/src/components/Island.astro @@ -0,0 +1,4 @@ +--- + +--- +

I'm an island

diff --git a/packages/astro/test/fixtures/server-islands/ssr/src/pages/index.astro b/packages/astro/test/fixtures/server-islands/ssr/src/pages/index.astro new file mode 100644 index 000000000000..d42973294e6d --- /dev/null +++ b/packages/astro/test/fixtures/server-islands/ssr/src/pages/index.astro @@ -0,0 +1,12 @@ +--- +import Island from '../components/Island.astro'; +--- + + + Testing + + +

Testing

+ + + diff --git a/packages/astro/test/fixtures/solid-component/package.json b/packages/astro/test/fixtures/solid-component/package.json index bc58b8472526..aff7c7e7b42a 100644 --- a/packages/astro/test/fixtures/solid-component/package.json +++ b/packages/astro/test/fixtures/solid-component/package.json @@ -4,7 +4,7 @@ "private": true, "dependencies": { "@astrojs/solid-js": "workspace:*", - "@solidjs/router": "^0.13.6", + "@solidjs/router": "^0.14.1", "@test/solid-jsx-component": "file:./deps/solid-jsx-component", "astro": "workspace:*", "solid-js": "^1.8.18" diff --git a/packages/astro/test/fixtures/ssr-prerender-chunks/src/pages/index.astro b/packages/astro/test/fixtures/ssr-prerender-chunks/src/pages/index.astro index 21a503211bc0..05ac05b680cd 100644 --- a/packages/astro/test/fixtures/ssr-prerender-chunks/src/pages/index.astro +++ b/packages/astro/test/fixtures/ssr-prerender-chunks/src/pages/index.astro @@ -5,7 +5,7 @@ - Static Page + Static Page should not exist in chunks diff --git a/packages/astro/test/fixtures/tailwindcss-ts/package.json b/packages/astro/test/fixtures/tailwindcss-ts/package.json index 20970d06f1fc..772a7bf98f4c 100644 --- a/packages/astro/test/fixtures/tailwindcss-ts/package.json +++ b/packages/astro/test/fixtures/tailwindcss-ts/package.json @@ -6,6 +6,6 @@ "@astrojs/tailwind": "workspace:*", "astro": "workspace:*", "postcss": "^8.4.39", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.5" } } diff --git a/packages/astro/test/fixtures/tailwindcss/package.json b/packages/astro/test/fixtures/tailwindcss/package.json index cc9b1d82d001..2886bdf20d75 100644 --- a/packages/astro/test/fixtures/tailwindcss/package.json +++ b/packages/astro/test/fixtures/tailwindcss/package.json @@ -8,6 +8,6 @@ "astro": "workspace:*", "autoprefixer": "^10.4.19", "postcss": "^8.4.39", - "tailwindcss": "^3.4.4" + "tailwindcss": "^3.4.5" } } diff --git a/packages/astro/test/rewrite.test.js b/packages/astro/test/rewrite.test.js index d14fb069a7c7..7839e7d3350b 100644 --- a/packages/astro/test/rewrite.test.js +++ b/packages/astro/test/rewrite.test.js @@ -520,6 +520,34 @@ describe('Runtime error in SSR, custom 500', () => { }); }); +describe('Runtime error in dev, custom 500', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + let devServer; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/rewrite-i18n-manual-routing/', + }); + + devServer = await fixture.startDevServer(); + }); + + after(async () => { + await devServer.stop(); + }); + + it('should return a status 200 when rewriting from the middleware to the homepage', async () => { + const response = await fixture.fetch('/reroute'); + assert.equal(response.status, 200); + const html = await response.text(); + + const $ = cheerioLoad(html); + + assert.equal($('h1').text(), 'Expected http status of index page is 200'); + }); +}); + describe('Runtime error in SSR, custom 500', () => { /** @type {import('./test-utils').Fixture} */ let fixture; diff --git a/packages/astro/test/server-islands.test.js b/packages/astro/test/server-islands.test.js new file mode 100644 index 000000000000..2b784276de2a --- /dev/null +++ b/packages/astro/test/server-islands.test.js @@ -0,0 +1,119 @@ +import assert from 'node:assert/strict'; +import { after, before, describe, it } from 'node:test'; +import * as cheerio from 'cheerio'; +import testAdapter from './test-adapter.js'; +import { loadFixture } from './test-utils.js'; + +describe('Server islands', () => { + describe('SSR', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + before(async () => { + fixture = await loadFixture({ + root: './fixtures/server-islands/ssr', + adapter: testAdapter(), + }); + }); + + describe('dev', () => { + let devServer; + + before(async () => { + devServer = await fixture.startDevServer(); + }); + + after(async () => { + await devServer.stop(); + }); + + it('omits the islands HTML', async () => { + const res = await fixture.fetch('/'); + assert.equal(res.status, 200); + const html = await res.text(); + const $ = cheerio.load(html); + const serverIslandEl = $('h2#island'); + assert.equal(serverIslandEl.length, 0); + }); + }); + + describe('prod', () => { + before(async () => { + await fixture.build(); + }); + + it('omits the islands HTML', async () => { + const app = await fixture.loadTestAdapterApp(); + const request = new Request('http://example.com/'); + const response = await app.render(request); + const html = await response.text(); + + const $ = cheerio.load(html); + const serverIslandEl = $('h2#island'); + assert.equal(serverIslandEl.length, 0); + + const serverIslandScript = $('script[data-island-id]'); + assert.equal(serverIslandScript.length, 1, 'has the island script'); + }); + }); + }); + + describe('Hybrid mode', () => { + /** @type {import('./test-utils').Fixture} */ + let fixture; + before(async () => { + fixture = await loadFixture({ + root: './fixtures/server-islands/hybrid', + adapter: testAdapter(), + }); + }); + + describe('build', () => { + before(async () => { + await fixture.build(); + }); + + it('Omits the island HTML from the static HTML', async () => { + let html = await fixture.readFile('/client/index.html'); + + const $ = cheerio.load(html); + const serverIslandEl = $('h2#island'); + assert.equal(serverIslandEl.length, 0); + + const serverIslandScript = $('script[data-island-id]'); + assert.equal(serverIslandScript.length, 1, 'has the island script'); + }); + + describe('prod', () => { + async function fetchIsland() { + const app = await fixture.loadTestAdapterApp(); + const request = new Request('http://example.com/_server-islands/Island', { + method: 'POST', + body: JSON.stringify({ + componentExport: 'default', + props: {}, + slots: {}, + }), + }); + return app.render(request); + } + + it('Island returns its HTML', async () => { + const response = await fetchIsland(); + const html = await response.text(); + const $ = cheerio.load(html); + + const serverIslandEl = $('h2#island'); + assert.equal(serverIslandEl.length, 1); + }); + + it('Island does not include the doctype', async () => { + const response = await fetchIsland(); + const html = await response.text(); + console.log(html); + + assert.ok(!/doctype/i.test(html), 'html does not include doctype'); + }); + }); + }); + }); +}); diff --git a/packages/astro/test/ssr-prerender-chunks.test.js b/packages/astro/test/ssr-prerender-chunks.test.js index 7bd916814938..86c906288628 100644 --- a/packages/astro/test/ssr-prerender-chunks.test.js +++ b/packages/astro/test/ssr-prerender-chunks.test.js @@ -18,4 +18,15 @@ describe('Chunks', () => { const hasImportFromPrerender = !content.includes(`React } from './chunks/prerender`); assert.ok(hasImportFromPrerender); }); + + it('does not have prerender code', async () => { + const files = await fixture.readdir('/_worker.js/chunks'); + assert.ok(files.length > 0); + for (const file of files) { + // Skip astro folder + if (file === 'astro') continue; + const content = await fixture.readFile(`/_worker.js/chunks/${file}`); + assert.doesNotMatch(content, /Static Page should not exist in chunks/); + } + }); }); diff --git a/packages/astro/test/test-utils.js b/packages/astro/test/test-utils.js index d68d64e3870c..025fe63359e6 100644 --- a/packages/astro/test/test-utils.js +++ b/packages/astro/test/test-utils.js @@ -161,9 +161,7 @@ export async function loadFixture(inlineConfig) { process.env.NODE_ENV = 'production'; return build(mergeConfig(inlineConfig, extraInlineConfig), { teardownCompiler: false }); }, - sync: async (extraInlineConfig = {}, opts) => { - return sync(mergeConfig(inlineConfig, extraInlineConfig), opts); - }, + sync, check: async (opts) => { return await check(opts); }, diff --git a/packages/astro/test/units/dev/collections-mixed-content-errors.test.js b/packages/astro/test/units/dev/collections-mixed-content-errors.test.js index 0086b51e83ac..d63e42d53323 100644 --- a/packages/astro/test/units/dev/collections-mixed-content-errors.test.js +++ b/packages/astro/test/units/dev/collections-mixed-content-errors.test.js @@ -6,8 +6,19 @@ import { createFsWithFallback } from '../test-utils.js'; const root = new URL('../../fixtures/content-mixed-errors/', import.meta.url); -async function sync({ fs, config = {} }) { - return _sync({ ...config, root: fileURLToPath(root), logLevel: 'silent' }, { fs }); +async function sync({ fs }) { + try { + await _sync({ + inlineConfig: { + root: fileURLToPath(root), + logLevel: 'silent', + }, + fs, + }); + return 0; + } catch (_) { + return 1; + } } describe('Content Collections - mixed content errors', () => { @@ -114,7 +125,7 @@ title: Post const res = await sync({ fs }); assert.equal(res, 0); } catch (e) { - expect.fail(0, 1, `Did not expect sync to throw: ${e.message}`); + assert.fail(`Did not expect sync to throw: ${e.message}`); } }); }); diff --git a/packages/astro/test/units/env/env-validators.test.js b/packages/astro/test/units/env/env-validators.test.js index 468c86d8ef81..890123d2476c 100644 --- a/packages/astro/test/units/env/env-validators.test.js +++ b/packages/astro/test/units/env/env-validators.test.js @@ -29,9 +29,17 @@ const createFixture = () => { assert.equal(result.value, value); input = undefined; }, - thenResultShouldBeInvalid() { + /** + * @param {string | Array} providedErrors + */ + thenResultShouldBeInvalid(providedErrors) { const result = validateEnvVariable(input.value, input.options); assert.equal(result.ok, false); + const errors = typeof providedErrors === 'string' ? [providedErrors] : providedErrors; + assert.equal( + result.errors.every((element) => errors.includes(element)), + true + ); input = undefined; }, }; @@ -158,7 +166,7 @@ describe('astro:env validators', () => { fixture.givenInput(undefined, { type: 'string', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should not fail is the variable type is incorrect', () => { @@ -179,7 +187,7 @@ describe('astro:env validators', () => { type: 'string', max: 3, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('max'); fixture.givenInput('abc', { type: 'string', @@ -191,7 +199,7 @@ describe('astro:env validators', () => { type: 'string', min: 5, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('min'); fixture.givenInput('abc', { type: 'string', @@ -203,13 +211,13 @@ describe('astro:env validators', () => { type: 'string', length: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('length'); fixture.givenInput('abc', { type: 'string', url: true, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('url'); fixture.givenInput('https://example.com', { type: 'string', @@ -221,7 +229,7 @@ describe('astro:env validators', () => { type: 'string', includes: 'cd', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('includes'); fixture.givenInput('abc', { type: 'string', @@ -233,7 +241,7 @@ describe('astro:env validators', () => { type: 'string', startsWith: 'za', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('startsWith'); fixture.givenInput('abc', { type: 'string', @@ -245,7 +253,7 @@ describe('astro:env validators', () => { type: 'string', endsWith: 'za', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('endsWith'); fixture.givenInput('abc', { type: 'string', @@ -264,7 +272,14 @@ describe('astro:env validators', () => { type: 'string', min: 5, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); + + fixture.givenInput('ab', { + type: 'string', + startsWith: 'x', + min: 5, + }); + fixture.thenResultShouldBeInvalid(['startsWith', 'min']); }); it('Should not fail if the optional variable is missing', () => { @@ -297,14 +312,14 @@ describe('astro:env validators', () => { fixture.givenInput(undefined, { type: 'number', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should fail is the variable type is incorrect', () => { fixture.givenInput('abc', { type: 'number', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('type'); }); it('Should fail if conditions are not met', () => { @@ -312,13 +327,13 @@ describe('astro:env validators', () => { type: 'number', gt: 15, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('gt'); fixture.givenInput('10', { type: 'number', gt: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('gt'); fixture.givenInput('10', { type: 'number', @@ -330,7 +345,7 @@ describe('astro:env validators', () => { type: 'number', min: 25, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('min'); fixture.givenInput('20', { type: 'number', @@ -348,13 +363,13 @@ describe('astro:env validators', () => { type: 'number', lt: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('lt'); fixture.givenInput('10', { type: 'number', lt: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('lt'); fixture.givenInput('5', { type: 'number', @@ -366,7 +381,7 @@ describe('astro:env validators', () => { type: 'number', max: 20, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('max'); fixture.givenInput('25', { type: 'number', @@ -384,7 +399,7 @@ describe('astro:env validators', () => { type: 'number', int: true, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('int'); fixture.givenInput('25', { type: 'number', @@ -396,7 +411,7 @@ describe('astro:env validators', () => { type: 'number', int: false, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('int'); fixture.givenInput('4.5', { type: 'number', @@ -408,7 +423,7 @@ describe('astro:env validators', () => { type: 'number', gt: 10, }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should accept integers', () => { @@ -455,14 +470,14 @@ describe('astro:env validators', () => { fixture.givenInput(undefined, { type: 'boolean', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should fail is the variable type is incorrect', () => { fixture.givenInput('abc', { type: 'boolean', }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('type'); }); it('Should not fail if the optional variable is missing', () => { @@ -496,7 +511,7 @@ describe('astro:env validators', () => { type: 'enum', values: ['a', 'b'], }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('missing'); }); it('Should fail is the variable type is incorrect', () => { @@ -504,7 +519,7 @@ describe('astro:env validators', () => { type: 'enum', values: ['a', 'b'], }); - fixture.thenResultShouldBeInvalid(); + fixture.thenResultShouldBeInvalid('type'); }); it('Should not fail if the optional variable is missing', () => { diff --git a/packages/db/package.json b/packages/db/package.json index a1ec3c8f3f3a..c4508b0f72c5 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -94,7 +94,7 @@ "astro": "workspace:*", "astro-scripts": "workspace:*", "cheerio": "1.0.0-rc.12", - "typescript": "^5.5.2", - "vite": "^5.3.2" + "typescript": "^5.5.3", + "vite": "^5.3.4" } } diff --git a/packages/db/src/core/load-file.ts b/packages/db/src/core/load-file.ts index dd48df928cbd..cbdb6d2436ed 100644 --- a/packages/db/src/core/load-file.ts +++ b/packages/db/src/core/load-file.ts @@ -2,19 +2,16 @@ import { existsSync } from 'node:fs'; import { unlink, writeFile } from 'node:fs/promises'; import { createRequire } from 'node:module'; import { fileURLToPath, pathToFileURL } from 'node:url'; -import type { AstroConfig, AstroIntegration } from 'astro'; +import type { AstroConfig } from 'astro'; import { build as esbuild } from 'esbuild'; import { CONFIG_FILE_NAMES, VIRTUAL_MODULE_ID } from './consts.js'; import { INTEGRATION_TABLE_CONFLICT_ERROR } from './errors.js'; import { errorMap } from './integration/error-map.js'; import { getConfigVirtualModContents } from './integration/vite-plugin-db.js'; import { dbConfigSchema } from './schemas.js'; -import { type AstroDbIntegration } from './types.js'; +import './types.js'; import { getAstroEnv, getDbDirectoryUrl } from './utils.js'; -const isDbIntegration = (integration: AstroIntegration): integration is AstroDbIntegration => - 'astro:db:setup' in integration.hooks; - /** * Load a user’s `astro:db` configuration file and additional configuration files provided by integrations. */ @@ -31,7 +28,6 @@ export async function resolveDbConfig({ const integrationDbConfigPaths: Array<{ name: string; configEntrypoint: string | URL }> = []; const integrationSeedPaths: Array = []; for (const integration of integrations) { - if (!isDbIntegration(integration)) continue; const { name, hooks } = integration; if (hooks['astro:db:setup']) { hooks['astro:db:setup']({ diff --git a/packages/db/src/core/types.ts b/packages/db/src/core/types.ts index 79bbdf371927..5efc6507c828 100644 --- a/packages/db/src/core/types.ts +++ b/packages/db/src/core/types.ts @@ -1,4 +1,3 @@ -import type { AstroIntegration } from 'astro'; import type { z } from 'zod'; import type { MaybeArray, @@ -88,13 +87,16 @@ interface LegacyIndexConfig export type NumberColumnOpts = z.input; export type TextColumnOpts = z.input; -export type AstroDbIntegration = AstroIntegration & { - hooks: { - 'astro:db:setup'?: (options: { - extendDb: (options: { - configEntrypoint?: URL | string; - seedEntrypoint?: URL | string; - }) => void; - }) => void | Promise; - }; -}; +declare global { + // eslint-disable-next-line @typescript-eslint/no-namespace + namespace Astro { + export interface IntegrationHooks { + 'astro:db:setup'?: (options: { + extendDb: (options: { + configEntrypoint?: URL | string; + seedEntrypoint?: URL | string; + }) => void; + }) => void | Promise; + } + } +} diff --git a/packages/db/src/core/utils.ts b/packages/db/src/core/utils.ts index 4fef5fbe18b1..c1cf5657940f 100644 --- a/packages/db/src/core/utils.ts +++ b/packages/db/src/core/utils.ts @@ -1,7 +1,7 @@ import { getAstroStudioEnv } from '@astrojs/studio'; import type { AstroConfig, AstroIntegration } from 'astro'; import { loadEnv } from 'vite'; -import type { AstroDbIntegration } from './types.js'; +import './types.js'; export type VitePlugin = Required['plugins'][number]; @@ -19,7 +19,7 @@ export function getDbDirectoryUrl(root: URL | string) { return new URL('db/', root); } -export function defineDbIntegration(integration: AstroDbIntegration): AstroIntegration { +export function defineDbIntegration(integration: AstroIntegration): AstroIntegration { return integration; } diff --git a/packages/db/test/fixtures/ticketing-example/package.json b/packages/db/test/fixtures/ticketing-example/package.json index e4771893061d..3f6e5510d9a6 100644 --- a/packages/db/test/fixtures/ticketing-example/package.json +++ b/packages/db/test/fixtures/ticketing-example/package.json @@ -10,18 +10,18 @@ "astro": "astro" }, "dependencies": { - "@astrojs/check": "^0.7.0", + "@astrojs/check": "^0.8.1", "@astrojs/db": "workspace:*", "@astrojs/node": "workspace:*", "@astrojs/react": "^3.6.0", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "astro": "workspace:*", - "open-props": "^1.7.4", + "open-props": "^1.7.5", "react": "^18.3.1", "react-dom": "^18.3.1", "simple-stack-form": "^0.1.12", - "typescript": "^5.5.2", + "typescript": "^5.5.3", "zod": "^3.23.8" } } diff --git a/packages/integrations/alpinejs/package.json b/packages/integrations/alpinejs/package.json index 3d3338aace12..b7699c22d55b 100644 --- a/packages/integrations/alpinejs/package.json +++ b/packages/integrations/alpinejs/package.json @@ -38,10 +38,10 @@ "alpinejs": "^3.0.0" }, "devDependencies": { - "@playwright/test": "1.45.0", + "@playwright/test": "1.45.2", "astro": "workspace:*", "astro-scripts": "workspace:*", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "publishConfig": { "provenance": true diff --git a/packages/integrations/lit/package.json b/packages/integrations/lit/package.json index 2c5efcd9ffdf..a5c56370a48b 100644 --- a/packages/integrations/lit/package.json +++ b/packages/integrations/lit/package.json @@ -61,7 +61,7 @@ "astro-scripts": "workspace:*", "cheerio": "1.0.0-rc.12", "lit": "^3.1.4", - "sass": "^1.77.6" + "sass": "^1.77.8" }, "peerDependencies": { "@webcomponents/template-shadowroot": "^0.2.1", diff --git a/packages/integrations/markdoc/CHANGELOG.md b/packages/integrations/markdoc/CHANGELOG.md index 8548d7faa8ef..db4667b09e31 100644 --- a/packages/integrations/markdoc/CHANGELOG.md +++ b/packages/integrations/markdoc/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/markdoc +## 0.11.2 + +### Patch Changes + +- [#11450](https://github.com/withastro/astro/pull/11450) [`eb303e1`](https://github.com/withastro/astro/commit/eb303e1ad5dade7787c0d9bbb520c21292cf3950) Thanks [@schpet](https://github.com/schpet)! - Adds support for markdown-it's typographer option + ## 0.11.1 ### Patch Changes diff --git a/packages/integrations/markdoc/package.json b/packages/integrations/markdoc/package.json index 599d3cbc12d3..994f92983250 100644 --- a/packages/integrations/markdoc/package.json +++ b/packages/integrations/markdoc/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/markdoc", "description": "Add support for Markdoc in your Astro site", - "version": "0.11.1", + "version": "0.11.2", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -83,7 +83,7 @@ "astro-scripts": "workspace:*", "devalue": "^5.0.0", "linkedom": "^0.18.4", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "engines": { "node": "^18.17.1 || ^20.3.0 || >=21.0.0" diff --git a/packages/integrations/markdoc/src/options.ts b/packages/integrations/markdoc/src/options.ts index 450285bcf718..abaeb5a964e5 100644 --- a/packages/integrations/markdoc/src/options.ts +++ b/packages/integrations/markdoc/src/options.ts @@ -1,4 +1,5 @@ export interface MarkdocIntegrationOptions { allowHTML?: boolean; ignoreIndentation?: boolean; + typographer?: boolean; } diff --git a/packages/integrations/markdoc/src/tokenizer.ts b/packages/integrations/markdoc/src/tokenizer.ts index 79d0d7358beb..1f5b1de28165 100644 --- a/packages/integrations/markdoc/src/tokenizer.ts +++ b/packages/integrations/markdoc/src/tokenizer.ts @@ -24,6 +24,10 @@ export function getMarkdocTokenizer(options: MarkdocIntegrationOptions | undefin // allow indentation so nested Markdoc tags can be formatted for better readability tokenizerOptions.allowIndentation = true; } + if (options?.typographer) { + // enable typographer to convert straight quotes to curly quotes, etc. + tokenizerOptions.typographer = options.typographer; + } _cachedMarkdocTokenizers[key] = new Markdoc.Tokenizer(tokenizerOptions); } diff --git a/packages/integrations/markdoc/test/fixtures/render-typographer/astro.config.mjs b/packages/integrations/markdoc/test/fixtures/render-typographer/astro.config.mjs new file mode 100644 index 000000000000..408e036c7aca --- /dev/null +++ b/packages/integrations/markdoc/test/fixtures/render-typographer/astro.config.mjs @@ -0,0 +1,7 @@ +import markdoc from '@astrojs/markdoc'; +import { defineConfig } from 'astro/config'; + +// https://astro.build/config +export default defineConfig({ + integrations: [markdoc({ typographer: true })], +}); diff --git a/packages/integrations/markdoc/test/fixtures/render-typographer/package.json b/packages/integrations/markdoc/test/fixtures/render-typographer/package.json new file mode 100644 index 000000000000..02fd6788f310 --- /dev/null +++ b/packages/integrations/markdoc/test/fixtures/render-typographer/package.json @@ -0,0 +1,9 @@ +{ + "name": "@test/markdoc-render-typographer", + "version": "0.0.0", + "private": true, + "dependencies": { + "@astrojs/markdoc": "workspace:*", + "astro": "workspace:*" + } +} diff --git a/packages/integrations/markdoc/test/fixtures/render-typographer/src/content/blog/typographer.mdoc b/packages/integrations/markdoc/test/fixtures/render-typographer/src/content/blog/typographer.mdoc new file mode 100644 index 000000000000..2180e7a47b1f --- /dev/null +++ b/packages/integrations/markdoc/test/fixtures/render-typographer/src/content/blog/typographer.mdoc @@ -0,0 +1,7 @@ +--- +title: Typographer +--- + +## Typographer's post + +This is a post to test the "typographer" option. diff --git a/packages/integrations/markdoc/test/fixtures/render-typographer/src/pages/index.astro b/packages/integrations/markdoc/test/fixtures/render-typographer/src/pages/index.astro new file mode 100644 index 000000000000..88fc531fa2e1 --- /dev/null +++ b/packages/integrations/markdoc/test/fixtures/render-typographer/src/pages/index.astro @@ -0,0 +1,19 @@ +--- +import { getEntryBySlug } from "astro:content"; + +const post = await getEntryBySlug('blog', 'typographer'); +const { Content } = await post.render(); +--- + + + + + + + + Content + + + + + diff --git a/packages/integrations/markdoc/test/render.test.js b/packages/integrations/markdoc/test/render.test.js index d439adcd2b8e..364604405d56 100644 --- a/packages/integrations/markdoc/test/render.test.js +++ b/packages/integrations/markdoc/test/render.test.js @@ -117,6 +117,15 @@ describe('Markdoc - render', () => { renderWithRootFolderContainingSpace(html); }); + + it('renders content - with typographer option', async () => { + const fixture = await getFixture('render-typographer'); + await fixture.build(); + + const html = await fixture.readFile('/index.html'); + + renderTypographerChecks(html); + }); }); }); @@ -173,3 +182,16 @@ function renderWithRootFolderContainingSpace(html) { const p = document.querySelector('p'); assert.equal(p.textContent, 'This is a simple Markdoc post with root folder containing a space.'); } + +/** + * @param {string} html + */ +function renderTypographerChecks(html) { + const { document } = parseHTML(html); + + const h2 = document.querySelector('h2'); + assert.equal(h2.textContent, 'Typographer’s post'); + + const p = document.querySelector('p'); + assert.equal(p.textContent, 'This is a post to test the “typographer” option.'); +} diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index 43d735f13edd..0ef90280c389 100644 --- a/packages/integrations/mdx/package.json +++ b/packages/integrations/mdx/package.json @@ -35,7 +35,7 @@ "dependencies": { "@astrojs/markdown-remark": "workspace:*", "@mdx-js/mdx": "^3.0.1", - "acorn": "^8.12.0", + "acorn": "^8.12.1", "es-module-lexer": "^1.5.4", "estree-util-visit": "^2.0.0", "github-slugger": "^2.0.0", @@ -44,10 +44,10 @@ "kleur": "^4.1.5", "rehype-raw": "^7.0.0", "remark-gfm": "^4.0.0", - "remark-smartypants": "^3.0.1", + "remark-smartypants": "^3.0.2", "source-map": "^0.7.4", "unist-util-visit": "^5.0.0", - "vfile": "^6.0.1" + "vfile": "^6.0.2" }, "peerDependencies": { "astro": "^4.8.0" @@ -72,7 +72,7 @@ "remark-shiki-twoslash": "^3.1.3", "remark-toc": "^9.0.0", "unified": "^11.0.5", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "engines": { "node": "^18.17.1 || ^20.3.0 || >=21.0.0" diff --git a/packages/integrations/mdx/test/mdx-plugins.test.js b/packages/integrations/mdx/test/mdx-plugins.test.js index 6bc8e096c268..124ec52c14ec 100644 --- a/packages/integrations/mdx/test/mdx-plugins.test.js +++ b/packages/integrations/mdx/test/mdx-plugins.test.js @@ -47,7 +47,7 @@ describe('MDX plugins', () => { const quote = selectSmartypantsQuote(document); assert.notEqual(quote, null); - assert.equal(quote.textContent.includes('”Smartypants” is — awesome'), true); + assert.equal(quote.textContent.includes('“Smartypants” is — awesome'), true); }); it('supports custom rehype plugins', async () => { @@ -198,7 +198,7 @@ describe('MDX plugins', () => { ); } else { assert.equal( - quote.textContent.includes('”Smartypants” is — awesome'), + quote.textContent.includes('“Smartypants” is — awesome'), true, 'Respects `markdown.smartypants` unexpectedly.' ); diff --git a/packages/integrations/preact/CHANGELOG.md b/packages/integrations/preact/CHANGELOG.md index 9f02be58da74..e714d2471b00 100644 --- a/packages/integrations/preact/CHANGELOG.md +++ b/packages/integrations/preact/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/preact +## 3.5.1 + +### Patch Changes + +- [#11464](https://github.com/withastro/astro/pull/11464) [`2cdb685`](https://github.com/withastro/astro/commit/2cdb685ce757fc9932b67b8a52b465296dbaedcd) Thanks [@rschristian](https://github.com/rschristian)! - Swap out `preact-ssr-prepass` for `renderToStringAsync` from `preact-render-to-string` + ## 3.5.0 ### Minor Changes diff --git a/packages/integrations/preact/package.json b/packages/integrations/preact/package.json index 2b5249aa454b..9ab0a4649ee4 100644 --- a/packages/integrations/preact/package.json +++ b/packages/integrations/preact/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/preact", "description": "Use Preact components within Astro", - "version": "3.5.0", + "version": "3.5.1", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", @@ -38,10 +38,9 @@ "@babel/plugin-transform-react-jsx": "^7.24.7", "@babel/plugin-transform-react-jsx-development": "^7.24.7", "@preact/preset-vite": "2.8.2", - "@preact/signals": "^1.2.3", + "@preact/signals": "^1.3.0", "babel-plugin-transform-hook-names": "^1.0.2", - "preact-render-to-string": "~6.3.1", - "preact-ssr-prepass": "^1.2.1" + "preact-render-to-string": "^6.5.5" }, "devDependencies": { "astro": "workspace:*", diff --git a/packages/integrations/preact/src/server.ts b/packages/integrations/preact/src/server.ts index c10c01c0e8fc..88e012d02047 100644 --- a/packages/integrations/preact/src/server.ts +++ b/packages/integrations/preact/src/server.ts @@ -1,7 +1,6 @@ import type { AstroComponentMetadata, NamedSSRLoadedRendererValue } from 'astro'; import { Component as BaseComponent, type VNode, h } from 'preact'; -import { render } from 'preact-render-to-string'; -import prepass from 'preact-ssr-prepass'; +import { renderToStringAsync } from 'preact-render-to-string'; import { getContext } from './context.js'; import { restoreSignalsOnProps, serializeSignals } from './signals.js'; import StaticHtml from './static-html.js'; @@ -89,8 +88,7 @@ async function renderToStaticMarkup( : children ); - await prepass(vNode); - const html = render(vNode); + const html = await renderToStringAsync(vNode); return { attrs, html }; } diff --git a/packages/integrations/react/package.json b/packages/integrations/react/package.json index 5dd00c110ae8..16ae0b279f77 100644 --- a/packages/integrations/react/package.json +++ b/packages/integrations/react/package.json @@ -66,7 +66,7 @@ "cheerio": "1.0.0-rc.12", "react": "^18.3.1", "react-dom": "^18.3.1", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "peerDependencies": { "@types/react": "^17.0.50 || ^18.0.21", diff --git a/packages/integrations/solid/package.json b/packages/integrations/solid/package.json index 7905de118fb8..3ed5438bd727 100644 --- a/packages/integrations/solid/package.json +++ b/packages/integrations/solid/package.json @@ -41,7 +41,7 @@ "astro": "workspace:*", "astro-scripts": "workspace:*", "solid-js": "^1.8.18", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "peerDependencies": { "solid-devtools": "^0.30.1", diff --git a/packages/integrations/svelte/package.json b/packages/integrations/svelte/package.json index b3495a725115..7d544328aca7 100644 --- a/packages/integrations/svelte/package.json +++ b/packages/integrations/svelte/package.json @@ -57,7 +57,7 @@ "astro": "workspace:*", "astro-scripts": "workspace:*", "svelte": "^4.2.18", - "vite": "^5.3.2" + "vite": "^5.3.4" }, "peerDependencies": { "astro": "^4.0.0", diff --git a/packages/integrations/tailwind/package.json b/packages/integrations/tailwind/package.json index f7c91ed39d6d..533608cac582 100644 --- a/packages/integrations/tailwind/package.json +++ b/packages/integrations/tailwind/package.json @@ -40,8 +40,8 @@ "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", - "tailwindcss": "^3.4.4", - "vite": "^5.3.2" + "tailwindcss": "^3.4.5", + "vite": "^5.3.4" }, "peerDependencies": { "astro": "^3.0.0 || ^4.0.0", diff --git a/packages/integrations/vercel/package.json b/packages/integrations/vercel/package.json index b252d05a89f4..9294e69f1137 100644 --- a/packages/integrations/vercel/package.json +++ b/packages/integrations/vercel/package.json @@ -54,7 +54,7 @@ "@astrojs/internal-helpers": "workspace:*", "@vercel/analytics": "^1.3.1", "@vercel/edge": "^1.1.1", - "@vercel/nft": "^0.27.2", + "@vercel/nft": "^0.27.3", "esbuild": "^0.21.5", "fast-glob": "^3.3.2", "set-cookie-parser": "^2.6.0", @@ -64,7 +64,7 @@ "astro": "^4.2.0" }, "devDependencies": { - "@types/set-cookie-parser": "^2.4.9", + "@types/set-cookie-parser": "^2.4.10", "astro": "workspace:*", "astro-scripts": "workspace:*", "cheerio": "1.0.0-rc.12" diff --git a/packages/integrations/vue/package.json b/packages/integrations/vue/package.json index 5f8d0a4654bd..a8789251443e 100644 --- a/packages/integrations/vue/package.json +++ b/packages/integrations/vue/package.json @@ -47,14 +47,14 @@ "@vitejs/plugin-vue": "^5.0.5", "@vitejs/plugin-vue-jsx": "^4.0.0", "@vue/compiler-sfc": "^3.4.31", - "vite-plugin-vue-devtools": "^7.3.5" + "vite-plugin-vue-devtools": "^7.3.6" }, "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", "cheerio": "1.0.0-rc.12", "linkedom": "^0.18.4", - "vite": "^5.3.2", + "vite": "^5.3.4", "vue": "^3.4.31" }, "peerDependencies": { diff --git a/packages/markdown/remark/package.json b/packages/markdown/remark/package.json index 8b6eb5266682..fe68eaca44e7 100644 --- a/packages/markdown/remark/package.json +++ b/packages/markdown/remark/package.json @@ -45,13 +45,13 @@ "remark-gfm": "^4.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.0", - "remark-smartypants": "^3.0.1", - "shiki": "^1.10.0", + "remark-smartypants": "^3.0.2", + "shiki": "^1.10.3", "unified": "^11.0.5", "unist-util-remove-position": "^5.0.0", "unist-util-visit": "^5.0.0", "unist-util-visit-parents": "^6.0.1", - "vfile": "^6.0.1" + "vfile": "^6.0.2" }, "devDependencies": { "@types/estree": "^1.0.5", diff --git a/packages/markdown/remark/src/shiki.ts b/packages/markdown/remark/src/shiki.ts index 66f85b85bd09..fa29c9c06a1f 100644 --- a/packages/markdown/remark/src/shiki.ts +++ b/packages/markdown/remark/src/shiki.ts @@ -42,6 +42,7 @@ export async function createShikiHighlighter({ langs = [], theme = 'github-dark', themes = {}, + defaultColor, wrap = false, transformers = [], }: ShikiConfig = {}): Promise { @@ -73,6 +74,7 @@ export async function createShikiHighlighter({ return highlighter.codeToHtml(code, { ...themeOptions, + defaultColor, lang, // NOTE: while we can spread `options.attributes` here so that Shiki can auto-serialize this as rendered // attributes on the top-level tag, it's not clear whether it is fine to pass all attributes as meta, as diff --git a/packages/markdown/remark/src/types.ts b/packages/markdown/remark/src/types.ts index 5861f9e6f9c6..e3496ec5dd95 100644 --- a/packages/markdown/remark/src/types.ts +++ b/packages/markdown/remark/src/types.ts @@ -9,7 +9,7 @@ import type { ThemeRegistrationRaw, } from 'shiki'; import type * as unified from 'unified'; -import type { VFile } from 'vfile'; +import type { DataMap, VFile } from 'vfile'; export type { Node } from 'unist'; @@ -39,6 +39,7 @@ export interface ShikiConfig { langs?: LanguageRegistration[]; theme?: ThemePresets | ThemeRegistration | ThemeRegistrationRaw; themes?: Record; + defaultColor?: 'light' | 'dark' | string | false; wrap?: boolean | null; transformers?: ShikiTransformer[]; } @@ -82,9 +83,11 @@ export interface MarkdownHeading { text: string; } +// TODO: Remove `MarkdownVFile` and move all additional properties to `DataMap` instead export interface MarkdownVFile extends VFile { - data: { - __astroHeadings?: MarkdownHeading[]; - imagePaths?: Set; - }; + data: Record & + Partial & { + __astroHeadings?: MarkdownHeading[]; + imagePaths?: Set; + }; } diff --git a/packages/markdown/remark/test/shiki.test.js b/packages/markdown/remark/test/shiki.test.js index d856b54b7f25..149fa38bb5d5 100644 --- a/packages/markdown/remark/test/shiki.test.js +++ b/packages/markdown/remark/test/shiki.test.js @@ -85,4 +85,20 @@ describe('shiki syntax highlighting', () => { assert.match(html, /data-test="\{1,3-4\}"/); }); + + it('supports the defaultColor setting', async () => { + const processor = await createMarkdownProcessor({ + shikiConfig: { + themes: { + light: 'github-light', + dark: 'github-dark', + }, + defaultColor: false, + }, + }); + const { code } = await processor.render('```\ntest\n```'); + + // Doesn't have `color` or `background-color` properties. + assert.doesNotMatch(code, /color:/); + }); }); diff --git a/packages/studio/package.json b/packages/studio/package.json index c59e9ffbef3b..fc3ec911d74c 100644 --- a/packages/studio/package.json +++ b/packages/studio/package.json @@ -41,7 +41,7 @@ "devDependencies": { "astro": "workspace:*", "astro-scripts": "workspace:*", - "typescript": "^5.5.2", - "vite": "^5.3.2" + "typescript": "^5.5.3", + "vite": "^5.3.4" } } diff --git a/packages/upgrade/package.json b/packages/upgrade/package.json index 7fe27e1b5541..69cd744ba975 100644 --- a/packages/upgrade/package.json +++ b/packages/upgrade/package.json @@ -31,7 +31,7 @@ "dependencies": { "@astrojs/cli-kit": "^0.4.1", "semver": "^7.6.2", - "preferred-pm": "^3.1.3", + "preferred-pm": "^4.0.0", "terminal-link": "^3.0.0" }, "devDependencies": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e938da838ff7..897ab681df38 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,8 +20,8 @@ importers: version: link:benchmark devDependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@biomejs/biome': specifier: 1.8.1 version: 1.8.1 @@ -29,8 +29,8 @@ importers: specifier: ^0.5.0 version: 0.5.0 '@changesets/cli': - specifier: ^2.27.6 - version: 2.27.6 + specifier: ^2.27.7 + version: 2.27.7 '@eslint/eslintrc': specifier: ^3.1.0 version: 3.1.0 @@ -41,14 +41,14 @@ importers: specifier: ^0.21.5 version: 0.21.5 eslint: - specifier: ^9.6.0 - version: 9.6.0 + specifier: ^9.7.0 + version: 9.7.0 eslint-plugin-no-only-tests: specifier: ^3.1.0 version: 3.1.0 eslint-plugin-regexp: specifier: ^2.6.0 - version: 2.6.0(eslint@9.6.0) + version: 2.6.0(eslint@9.7.0) globby: specifier: ^14.0.2 version: 14.0.2 @@ -59,8 +59,8 @@ importers: specifier: ^0.10.0 version: 0.10.0 prettier: - specifier: ^3.3.2 - version: 3.3.2 + specifier: ^3.3.3 + version: 3.3.3 prettier-plugin-astro: specifier: ^0.14.0 version: 0.14.0 @@ -71,11 +71,11 @@ importers: specifier: ^1.13.4 version: 1.13.4 typescript: - specifier: ~5.5.2 - version: 5.5.2 + specifier: ~5.5.3 + version: 5.5.3 typescript-eslint: - specifier: ^7.14.1 - version: 7.14.1(eslint@9.6.0)(typescript@5.5.2) + specifier: ^7.16.1 + version: 7.16.1(eslint@9.7.0)(typescript@5.5.3) benchmark: dependencies: @@ -129,7 +129,7 @@ importers: examples/basics: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/blog: @@ -144,13 +144,13 @@ importers: specifier: ^3.1.6 version: link:../../packages/integrations/sitemap astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/component: devDependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/container-with-vitest: @@ -159,7 +159,7 @@ importers: specifier: ^3.6.0 version: link:../../packages/integrations/react astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -168,8 +168,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.6) + specifier: ^2.0.3 + version: 2.0.3(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.8) devDependencies: '@types/react': specifier: ^18.3.3 @@ -190,7 +190,7 @@ importers: specifier: ^3.14.1 version: 3.14.1 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/framework-lit: @@ -202,7 +202,7 @@ importers: specifier: ^0.2.1 version: 0.2.1 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro lit: specifier: ^3.1.4 @@ -211,7 +211,7 @@ importers: examples/framework-multiple: dependencies: '@astrojs/preact': - specifier: ^3.5.0 + specifier: ^3.5.1 version: link:../../packages/integrations/preact '@astrojs/react': specifier: ^3.6.0 @@ -232,7 +232,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro preact: specifier: ^10.22.1 @@ -251,18 +251,18 @@ importers: version: link:../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) examples/framework-preact: dependencies: '@astrojs/preact': - specifier: ^3.5.0 + specifier: ^3.5.1 version: link:../../packages/integrations/preact '@preact/signals': - specifier: ^1.2.3 - version: 1.2.3(preact@10.22.1) + specifier: ^1.3.0 + version: 1.3.0(preact@10.22.1) astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro preact: specifier: ^10.22.1 @@ -280,7 +280,7 @@ importers: specifier: ^18.3.0 version: 18.3.0 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro react: specifier: ^18.3.1 @@ -295,7 +295,7 @@ importers: specifier: ^4.4.0 version: link:../../packages/integrations/solid astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro solid-js: specifier: ^1.8.18 @@ -307,7 +307,7 @@ importers: specifier: ^5.6.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro svelte: specifier: link:../../../svelte/packages/svelte @@ -319,11 +319,11 @@ importers: specifier: ^4.5.0 version: link:../../packages/integrations/vue astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) examples/hackernews: dependencies: @@ -331,13 +331,13 @@ importers: specifier: ^8.3.2 version: link:../../packages/integrations/node astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/integration: devDependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/middleware: @@ -346,7 +346,7 @@ importers: specifier: ^8.3.2 version: link:../../packages/integrations/node astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro html-minifier: specifier: ^4.0.0 @@ -359,20 +359,59 @@ importers: examples/minimal: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/non-html-pages: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/portfolio: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 + version: link:../../packages/astro + + examples/server-islands: + devDependencies: + '@astrojs/node': + specifier: ^8.2.6 + version: link:../../packages/integrations/node + '@astrojs/react': + specifier: ^3.6.0 + version: link:../../packages/integrations/react + '@astrojs/tailwind': + specifier: ^5.1.0 + version: link:../../packages/integrations/tailwind + '@fortawesome/fontawesome-free': + specifier: ^6.5.2 + version: 6.5.2 + '@tailwindcss/forms': + specifier: ^0.5.7 + version: 0.5.7(tailwindcss@3.4.5) + '@types/react': + specifier: ^18.3.3 + version: 18.3.3 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.0 + astro: + specifier: workspace:* version: link:../../packages/astro + postcss: + specifier: ^8.4.38 + version: 8.4.39 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + tailwindcss: + specifier: ^3.4.3 + version: 3.4.5 examples/ssr: dependencies: @@ -383,7 +422,7 @@ importers: specifier: ^5.6.0 version: link:../../packages/integrations/svelte astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro svelte: specifier: link:../../../svelte/packages/svelte @@ -392,11 +431,11 @@ importers: examples/starlog: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 sharp: specifier: ^0.33.3 version: 0.33.3 @@ -404,7 +443,7 @@ importers: examples/toolbar-app: devDependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/view-transitions: @@ -416,16 +455,16 @@ importers: specifier: ^5.1.0 version: link:../../packages/integrations/tailwind astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/with-markdoc: dependencies: '@astrojs/markdoc': - specifier: ^0.11.1 + specifier: ^0.11.2 version: link:../../packages/integrations/markdoc astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/with-markdown-plugins: @@ -434,7 +473,7 @@ importers: specifier: ^5.1.1 version: link:../../packages/markdown/remark astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro hast-util-select: specifier: ^6.0.2 @@ -455,7 +494,7 @@ importers: examples/with-markdown-shiki: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro examples/with-mdx: @@ -464,10 +503,10 @@ importers: specifier: ^3.1.2 version: link:../../packages/integrations/mdx '@astrojs/preact': - specifier: ^3.5.0 + specifier: ^3.5.1 version: link:../../packages/integrations/preact astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro preact: specifier: ^10.22.1 @@ -476,13 +515,13 @@ importers: examples/with-nanostores: dependencies: '@astrojs/preact': - specifier: ^3.5.0 + specifier: ^3.5.1 version: link:../../packages/integrations/preact '@nanostores/preact': specifier: ^0.5.1 version: 0.5.1(nanostores@0.10.3)(preact@10.22.1) astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro nanostores: specifier: ^0.10.3 @@ -503,7 +542,7 @@ importers: specifier: ^1.6.4 version: 1.6.4 astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro autoprefixer: specifier: ^10.4.19 @@ -515,23 +554,23 @@ importers: specifier: ^8.4.39 version: 8.4.39 tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.5 examples/with-vitest: dependencies: astro: - specifier: ^4.11.5 + specifier: ^4.11.6 version: link:../../packages/astro vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.6) + specifier: ^2.0.3 + version: 2.0.3(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.8) packages/astro: dependencies: '@astrojs/compiler': - specifier: ^2.8.1 - version: 2.8.1 + specifier: ^2.9.0 + version: 2.9.1 '@astrojs/internal-helpers': specifier: workspace:* version: link:../internal-helpers @@ -542,23 +581,23 @@ importers: specifier: workspace:* version: link:../telemetry '@babel/core': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.9 + version: 7.24.9 '@babel/generator': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.10 + version: 7.24.10 '@babel/parser': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.8 + version: 7.24.8 '@babel/plugin-transform-react-jsx': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + version: 7.24.7(@babel/core@7.24.9) '@babel/traverse': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.8 + version: 7.24.8 '@babel/types': - specifier: ^7.24.7 - version: 7.24.7 + specifier: ^7.24.9 + version: 7.24.9 '@types/babel__core': specifier: ^7.20.5 version: 7.20.5 @@ -566,16 +605,16 @@ importers: specifier: ^0.6.0 version: 0.6.0 acorn: - specifier: ^8.12.0 - version: 8.12.0 + specifier: ^8.12.1 + version: 8.12.1 aria-query: specifier: ^5.3.0 version: 5.3.0 axobject-query: - specifier: ^4.0.0 - version: 4.0.0 + specifier: ^4.1.0 + version: 4.1.0 boxen: - specifier: ^7.1.1 + specifier: 7.1.1 version: 7.1.1 chokidar: specifier: ^3.6.0 @@ -659,8 +698,8 @@ importers: specifier: ^8.0.1 version: 8.0.1 p-limit: - specifier: ^5.0.0 - version: 5.0.0 + specifier: ^6.1.0 + version: 6.1.0 p-queue: specifier: ^8.0.1 version: 8.0.1 @@ -668,8 +707,8 @@ importers: specifier: ^6.2.2 version: 6.2.2 preferred-pm: - specifier: ^3.1.3 - version: 3.1.3 + specifier: ^4.0.0 + version: 4.0.0 prompts: specifier: ^2.4.2 version: 2.4.2 @@ -680,8 +719,8 @@ importers: specifier: ^7.6.2 version: 7.6.2 shiki: - specifier: ^1.10.0 - version: 1.10.0 + specifier: ^1.10.3 + version: 1.10.3 string-width: specifier: ^7.2.0 version: 7.2.0 @@ -690,22 +729,22 @@ importers: version: 7.1.0 tsconfck: specifier: ^3.1.1 - version: 3.1.1(typescript@5.5.2) + version: 3.1.1(typescript@5.5.3) unist-util-visit: specifier: ^5.0.0 version: 5.0.0 vfile: - specifier: ^6.0.1 - version: 6.0.1 + specifier: ^6.0.2 + version: 6.0.2 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) vitefu: specifier: ^0.2.5 - version: 0.2.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 0.2.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) which-pm: - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^3.0.0 + version: 3.0.0 yargs-parser: specifier: ^21.1.1 version: 21.1.1 @@ -721,11 +760,11 @@ importers: version: 0.33.3 devDependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@playwright/test': - specifier: ^1.45.0 - version: 1.45.0 + specifier: ^1.45.2 + version: 1.45.2 '@types/aria-query': specifier: ^5.0.4 version: 5.0.4 @@ -826,11 +865,11 @@ importers: specifier: ^0.1.2 version: 0.1.2 rollup: - specifier: ^4.18.0 - version: 4.18.0 + specifier: ^4.18.1 + version: 4.18.1 sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 srcset-parse: specifier: ^1.1.0 version: 1.1.0 @@ -885,8 +924,8 @@ importers: packages/astro/e2e/fixtures/actions-blog: dependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@astrojs/db': specifier: workspace:* version: link:../../../../db @@ -912,14 +951,14 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 packages/astro/e2e/fixtures/actions-react-19: dependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@astrojs/db': specifier: workspace:* version: link:../../../../db @@ -945,8 +984,8 @@ importers: specifier: 19.0.0-rc-fb9a90fa48-20240614 version: 19.0.0-rc-fb9a90fa48-20240614(react@19.0.0-rc-fb9a90fa48-20240614) typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 packages/astro/e2e/fixtures/astro-component: dependencies: @@ -973,7 +1012,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/e2e/fixtures/client-only: dependencies: @@ -994,7 +1033,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1075,8 +1114,8 @@ importers: specifier: workspace:* version: link:../../.. sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 packages/astro/e2e/fixtures/errors: dependencies: @@ -1108,8 +1147,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 solid-js: specifier: ^1.8.18 version: 1.8.18 @@ -1118,7 +1157,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/e2e/fixtures/hmr: devDependencies: @@ -1126,8 +1165,8 @@ importers: specifier: workspace:* version: link:../../.. sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 packages/astro/e2e/fixtures/hydration-race: dependencies: @@ -1187,7 +1226,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/lit': specifier: workspace:* @@ -1246,7 +1285,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1286,7 +1325,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1326,7 +1365,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1366,7 +1405,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1406,7 +1445,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1446,7 +1485,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/preact': specifier: workspace:* @@ -1555,6 +1594,27 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) + packages/astro/e2e/fixtures/server-islands: + dependencies: + '@astrojs/mdx': + specifier: workspace:* + version: link:../../../../integrations/mdx + '@astrojs/node': + specifier: workspace:* + version: link:../../../../integrations/node + '@astrojs/react': + specifier: workspace:* + version: link:../../../../integrations/react + astro: + specifier: workspace:* + version: link:../../.. + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + packages/astro/e2e/fixtures/solid-circular: dependencies: '@astrojs/solid-js': @@ -1626,8 +1686,8 @@ importers: specifier: ^8.4.39 version: 8.4.39 tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.5 packages/astro/e2e/fixtures/ts-resolution: dependencies: @@ -1672,7 +1732,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/e2e/fixtures/vue-component: dependencies: @@ -1687,7 +1747,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/performance: devDependencies: @@ -1816,7 +1876,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/actions: dependencies: @@ -1989,7 +2049,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/astro-class-list: dependencies: @@ -2147,7 +2207,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/astro-expr: dependencies: @@ -2251,6 +2311,12 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/astro-markdown-shiki/default-color: + dependencies: + astro: + specifier: workspace:* + version: link:../../../.. + packages/astro/test/fixtures/astro-markdown-shiki/langs: dependencies: astro: @@ -2432,7 +2498,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/before-hydration: dependencies: @@ -2571,7 +2637,7 @@ importers: version: 18.3.1(react@18.3.1) vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/content: dependencies: @@ -3020,7 +3086,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/fontsource-package: dependencies: @@ -3218,7 +3284,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: '@astrojs/mdx': specifier: workspace:* @@ -3406,11 +3472,11 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) devDependencies: postcss-preset-env: - specifier: ^9.5.15 - version: 9.5.15(postcss@8.4.39) + specifier: ^9.6.0 + version: 9.6.0(postcss@8.4.39) packages/astro/test/fixtures/preact-compat-component: dependencies: @@ -3439,8 +3505,8 @@ importers: specifier: workspace:* version: link:../../../../integrations/preact '@preact/signals': - specifier: 1.2.3 - version: 1.2.3(preact@10.22.1) + specifier: 1.3.0 + version: 1.3.0(preact@10.22.1) astro: specifier: workspace:* version: link:../../.. @@ -3587,6 +3653,30 @@ importers: specifier: workspace:* version: link:../../.. + packages/astro/test/fixtures/server-islands/hybrid: + dependencies: + '@astrojs/svelte': + specifier: workspace:* + version: link:../../../../../integrations/svelte + astro: + specifier: workspace:* + version: link:../../../.. + svelte: + specifier: link:../../../../../../../svelte/packages/svelte + version: link:../../../../../../../svelte/packages/svelte + + packages/astro/test/fixtures/server-islands/ssr: + dependencies: + '@astrojs/svelte': + specifier: workspace:* + version: link:../../../../../integrations/svelte + astro: + specifier: workspace:* + version: link:../../../.. + svelte: + specifier: link:../../../../../../../svelte/packages/svelte + version: link:../../../../../../../svelte/packages/svelte + packages/astro/test/fixtures/set-html: dependencies: astro: @@ -3669,7 +3759,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/solid-component: dependencies: @@ -3677,8 +3767,8 @@ importers: specifier: workspace:* version: link:../../../../integrations/solid '@solidjs/router': - specifier: ^0.13.6 - version: 0.13.6(solid-js@1.8.18) + specifier: ^0.14.1 + version: 0.14.1(solid-js@1.8.18) '@test/solid-jsx-component': specifier: file:./deps/solid-jsx-component version: link:deps/solid-jsx-component @@ -3999,8 +4089,8 @@ importers: specifier: ^8.4.39 version: 8.4.39 tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.5 packages/astro/test/fixtures/tailwindcss-ts: dependencies: @@ -4014,8 +4104,8 @@ importers: specifier: ^8.4.39 version: 8.4.39 tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.5 packages/astro/test/fixtures/third-party-astro: dependencies: @@ -4075,7 +4165,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/vue-jsx: dependencies: @@ -4087,7 +4177,7 @@ importers: version: link:../../.. vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/vue-with-multi-renderer: dependencies: @@ -4105,7 +4195,7 @@ importers: version: link:../../../../../../svelte/packages/svelte vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/astro/test/fixtures/with-endpoint-routes: dependencies: @@ -4168,7 +4258,7 @@ importers: version: 1.0.2 drizzle-orm: specifier: ^0.31.2 - version: 0.31.2(@libsql/client@0.7.0)(@types/react@18.3.3)(react@18.3.1) + version: 0.31.4(@libsql/client@0.7.0)(@types/react@18.3.3)(react@18.3.1) github-slugger: specifier: ^2.0.0 version: 2.0.0 @@ -4222,11 +4312,11 @@ importers: specifier: 1.0.0-rc.12 version: 1.0.0-rc.12 typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/db/test/fixtures/basics: dependencies: @@ -4321,8 +4411,8 @@ importers: packages/db/test/fixtures/ticketing-example: dependencies: '@astrojs/check': - specifier: ^0.7.0 - version: 0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + specifier: ^0.8.1 + version: 0.8.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) '@astrojs/db': specifier: workspace:* version: link:../../.. @@ -4342,8 +4432,8 @@ importers: specifier: workspace:* version: link:../../../../astro open-props: - specifier: ^1.7.4 - version: 1.7.4 + specifier: ^1.7.5 + version: 1.7.5 react: specifier: ^18.3.1 version: 18.3.1 @@ -4354,8 +4444,8 @@ importers: specifier: ^0.1.12 version: 0.1.12(astro@packages+astro)(zod@3.23.8) typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 zod: specifier: ^3.23.8 version: 3.23.8 @@ -4363,8 +4453,8 @@ importers: packages/integrations/alpinejs: devDependencies: '@playwright/test': - specifier: 1.45.0 - version: 1.45.0 + specifier: 1.45.2 + version: 1.45.2 astro: specifier: workspace:* version: link:../../astro @@ -4372,8 +4462,8 @@ importers: specifier: workspace:* version: link:../../../scripts vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/alpinejs/test/fixtures/basics: dependencies: @@ -4450,8 +4540,8 @@ importers: specifier: ^3.1.4 version: 3.1.4 sass: - specifier: ^1.77.6 - version: 1.77.6 + specifier: ^1.77.8 + version: 1.77.8 packages/integrations/markdoc: dependencies: @@ -4505,8 +4595,8 @@ importers: specifier: ^0.18.4 version: 0.18.4 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/markdoc/test/fixtures/content-collections: dependencies: @@ -4598,6 +4688,15 @@ importers: specifier: workspace:* version: link:../../../../../astro + packages/integrations/markdoc/test/fixtures/render-typographer: + dependencies: + '@astrojs/markdoc': + specifier: workspace:* + version: link:../../.. + astro: + specifier: workspace:* + version: link:../../../../../astro + packages/integrations/markdoc/test/fixtures/render-with-components: dependencies: '@astrojs/markdoc': @@ -4649,8 +4748,8 @@ importers: specifier: ^3.0.1 version: 3.0.1 acorn: - specifier: ^8.12.0 - version: 8.12.0 + specifier: ^8.12.1 + version: 8.12.1 es-module-lexer: specifier: ^1.5.4 version: 1.5.4 @@ -4676,8 +4775,8 @@ importers: specifier: ^4.0.0 version: 4.0.0 remark-smartypants: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 source-map: specifier: ^0.7.4 version: 0.7.4 @@ -4685,8 +4784,8 @@ importers: specifier: ^5.0.0 version: 5.0.0 vfile: - specifier: ^6.0.1 - version: 6.0.1 + specifier: ^6.0.2 + version: 6.0.2 devDependencies: '@types/estree': specifier: ^1.0.5 @@ -4729,7 +4828,7 @@ importers: version: 6.0.0 rehype-pretty-code: specifier: ^0.13.2 - version: 0.13.2(shiki@1.10.0) + version: 0.13.2(shiki@1.10.3) remark-math: specifier: ^6.0.0 version: 6.0.0 @@ -4738,7 +4837,7 @@ importers: version: 11.1.0 remark-shiki-twoslash: specifier: ^3.1.3 - version: 3.1.3(typescript@5.5.2) + version: 3.1.3(typescript@5.5.3) remark-toc: specifier: ^9.0.0 version: 9.0.0 @@ -4746,8 +4845,8 @@ importers: specifier: ^11.0.5 version: 11.0.5 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/mdx/test/fixtures/css-head-mdx: dependencies: @@ -5087,25 +5186,22 @@ importers: dependencies: '@babel/plugin-transform-react-jsx': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + version: 7.24.7(@babel/core@7.24.9) '@babel/plugin-transform-react-jsx-development': specifier: ^7.24.7 - version: 7.24.7(@babel/core@7.24.7) + version: 7.24.7(@babel/core@7.24.9) '@preact/preset-vite': specifier: 2.8.2 - version: 2.8.2(@babel/core@7.24.7)(preact@10.22.1)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 2.8.2(@babel/core@7.24.9)(preact@10.22.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) '@preact/signals': - specifier: ^1.2.3 - version: 1.2.3(preact@10.22.1) + specifier: ^1.3.0 + version: 1.3.0(preact@10.22.1) babel-plugin-transform-hook-names: specifier: ^1.0.2 - version: 1.0.2(@babel/core@7.24.7) + version: 1.0.2(@babel/core@7.24.9) preact-render-to-string: - specifier: ~6.3.1 - version: 6.3.1(preact@10.22.1) - preact-ssr-prepass: - specifier: ^1.2.1 - version: 1.2.1(preact@10.22.1) + specifier: ^6.5.5 + version: 6.5.5(preact@10.22.1) devDependencies: astro: specifier: workspace:* @@ -5121,7 +5217,7 @@ importers: dependencies: '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 4.3.1(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) ultrahtml: specifier: ^1.5.3 version: 1.5.3 @@ -5148,8 +5244,8 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/react/test/fixtures/react-component: dependencies: @@ -5170,7 +5266,7 @@ importers: version: 18.3.1(react@18.3.1) vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/integrations/sitemap: dependencies: @@ -5237,7 +5333,7 @@ importers: dependencies: vite-plugin-solid: specifier: ^2.10.2 - version: 2.10.2(solid-js@1.8.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 2.10.2(solid-js@1.8.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) devDependencies: astro: specifier: workspace:* @@ -5249,17 +5345,17 @@ importers: specifier: ^1.8.18 version: 1.8.18 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/svelte: dependencies: '@sveltejs/vite-plugin-svelte': specifier: ^3.1.1 - version: 3.1.1(svelte@svelte+packages+svelte)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + version: 3.1.1(svelte@svelte+packages+svelte)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) svelte2tsx: specifier: ^0.7.13 - version: 0.7.13(svelte@svelte+packages+svelte)(typescript@5.5.2) + version: 0.7.13(svelte@svelte+packages+svelte)(typescript@5.5.3) devDependencies: astro: specifier: workspace:* @@ -5271,8 +5367,8 @@ importers: specifier: link:../../../../svelte/packages/svelte version: link:../../../../svelte/packages/svelte vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/tailwind: dependencies: @@ -5293,11 +5389,11 @@ importers: specifier: workspace:* version: link:../../../scripts tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.5 + version: 3.4.5 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/integrations/tailwind/test/fixtures/basic: dependencies: @@ -5320,8 +5416,8 @@ importers: specifier: ^1.1.1 version: 1.1.1 '@vercel/nft': - specifier: ^0.27.2 - version: 0.27.2 + specifier: ^0.27.3 + version: 0.27.3 esbuild: specifier: ^0.21.5 version: 0.21.5 @@ -5336,8 +5432,8 @@ importers: version: 3.5.2 devDependencies: '@types/set-cookie-parser': - specifier: ^2.4.9 - version: 2.4.9 + specifier: ^2.4.10 + version: 2.4.10 astro: specifier: workspace:* version: link:../../astro @@ -5532,16 +5628,16 @@ importers: dependencies: '@vitejs/plugin-vue': specifier: ^5.0.5 - version: 5.0.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)) + version: 5.0.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)) '@vitejs/plugin-vue-jsx': specifier: ^4.0.0 - version: 4.0.0(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)) + version: 4.0.0(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)) '@vue/compiler-sfc': specifier: ^3.4.31 version: 3.4.31 vite-plugin-vue-devtools: - specifier: ^7.3.5 - version: 7.3.5(rollup@4.18.0)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)) + specifier: ^7.3.6 + version: 7.3.6(rollup@4.18.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)) devDependencies: astro: specifier: workspace:* @@ -5556,11 +5652,11 @@ importers: specifier: ^0.18.4 version: 0.18.4 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) vue: specifier: ^3.4.31 - version: 3.4.31(typescript@5.5.2) + version: 3.4.31(typescript@5.5.3) packages/integrations/vue/test/fixtures/app-entrypoint: dependencies: @@ -5572,7 +5668,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.31(typescript@5.5.2)) + version: 5.1.0(vue@3.4.31(typescript@5.5.3)) packages/integrations/vue/test/fixtures/app-entrypoint-async: dependencies: @@ -5584,7 +5680,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.31(typescript@5.5.2)) + version: 5.1.0(vue@3.4.31(typescript@5.5.3)) packages/integrations/vue/test/fixtures/app-entrypoint-css: dependencies: @@ -5605,7 +5701,7 @@ importers: version: link:../../../../../astro vite-svg-loader: specifier: 5.1.0 - version: 5.1.0(vue@3.4.31(typescript@5.5.2)) + version: 5.1.0(vue@3.4.31(typescript@5.5.3)) packages/integrations/vue/test/fixtures/app-entrypoint-relative: dependencies: @@ -5710,11 +5806,11 @@ importers: specifier: ^11.1.0 version: 11.1.0 remark-smartypants: - specifier: ^3.0.1 - version: 3.0.1 + specifier: ^3.0.2 + version: 3.0.2 shiki: - specifier: ^1.10.0 - version: 1.10.0 + specifier: ^1.10.3 + version: 1.10.3 unified: specifier: ^11.0.5 version: 11.0.5 @@ -5728,8 +5824,8 @@ importers: specifier: ^6.0.1 version: 6.0.1 vfile: - specifier: ^6.0.1 - version: 6.0.1 + specifier: ^6.0.2 + version: 6.0.2 devDependencies: '@types/estree': specifier: ^1.0.5 @@ -5772,11 +5868,11 @@ importers: specifier: workspace:* version: link:../../scripts typescript: - specifier: ^5.5.2 - version: 5.5.2 + specifier: ^5.5.3 + version: 5.5.3 vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + specifier: ^5.3.4 + version: 5.3.4(@types/node@20.12.7)(sass@1.77.8) packages/telemetry: dependencies: @@ -5833,8 +5929,8 @@ importers: specifier: ^0.4.1 version: 0.4.1 preferred-pm: - specifier: ^3.1.3 - version: 3.1.3 + specifier: ^4.0.0 + version: 4.0.0 semver: specifier: ^7.6.2 version: 7.6.2 @@ -5870,8 +5966,8 @@ importers: specifier: ^4.1.5 version: 4.1.5 p-limit: - specifier: ^5.0.0 - version: 5.0.0 + specifier: ^6.1.0 + version: 6.1.0 svelte: specifier: link:../../svelte/packages/svelte version: link:../../svelte/packages/svelte @@ -5944,8 +6040,8 @@ packages: peerDependencies: astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta - '@astrojs/check@0.7.0': - resolution: {integrity: sha512-UTqwOeKNu9IYZmJXEeWnQuTdSd/pX58Hl4TUARsMlT97SVDL//kLBE4T/ctxRz6J573N87oE5ddtW/uOOnQTug==} + '@astrojs/check@0.8.1': + resolution: {integrity: sha512-QTzCuiBWll3SLSe7OsWtWyZRbwChXwxM4Y0Jb84jdPOdYobzHad9ubU7V23qmK3Y0BNwgzCbEP5C5FPVitb31Q==} hasBin: true peerDependencies: typescript: ^5.0.0 @@ -5957,11 +6053,11 @@ packages: '@astrojs/compiler@1.8.2': resolution: {integrity: sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==} - '@astrojs/compiler@2.8.1': - resolution: {integrity: sha512-NGfPAgU/9rvDEwsXu82RI1AxiivaxtEYBK9saW1f+2fTHUUqCJQ27HYtb2akG2QxCmFikgZ9zk26BEWgiHho1Q==} + '@astrojs/compiler@2.9.1': + resolution: {integrity: sha512-s8Ge2lWHx/s3kl4UoerjL/iPtwdtogNM/BLOaGCwQA6crMOVYpphy5wUkYlKyuh8GAeGYH/5haLAFBsgNy9AQQ==} - '@astrojs/language-server@2.10.0': - resolution: {integrity: sha512-crHXpqYfA5qWioiuZnZFpTsNItgBlF1f0S9MzDYS7/pfCALkHNJ7K3w9U/j0uMKymsT4hC7BfMaX0DYlfdSzHg==} + '@astrojs/language-server@2.11.1': + resolution: {integrity: sha512-WSIBBUK9lSeVD4KhPiZk2u3wsXdj7WEYvYPPs8ZsgbSVIOzUJWAKVcITHiXmcXlzZB5ubK44YUN/Hq+f2GeMyQ==} hasBin: true peerDependencies: prettier: ^3.0.0 @@ -5976,24 +6072,24 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.24.7': - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} + '@babel/compat-data@7.24.9': + resolution: {integrity: sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==} engines: {node: '>=6.9.0'} - '@babel/core@7.24.7': - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} + '@babel/core@7.24.9': + resolution: {integrity: sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + '@babel/generator@7.24.10': + resolution: {integrity: sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==} engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.24.7': resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.7': - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + '@babel/helper-compilation-targets@7.24.8': + resolution: {integrity: sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==} engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.24.7': @@ -6030,8 +6126,8 @@ packages: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.7': - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + '@babel/helper-module-transforms@7.24.9': + resolution: {integrity: sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -6062,28 +6158,28 @@ packages: resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + '@babel/helper-string-parser@7.24.8': + resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.24.7': resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + '@babel/helper-validator-option@7.24.8': + resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.7': - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + '@babel/helpers@7.24.8': + resolution: {integrity: sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==} engines: {node: '>=6.9.0'} '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + '@babel/parser@7.24.8': + resolution: {integrity: sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==} engines: {node: '>=6.0.0'} hasBin: true @@ -6160,12 +6256,12 @@ packages: resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.7': - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} + '@babel/traverse@7.24.8': + resolution: {integrity: sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} + '@babel/types@7.24.9': + resolution: {integrity: sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==} engines: {node: '>=6.9.0'} '@biomejs/biome@1.8.1': @@ -6226,11 +6322,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true - '@changesets/apply-release-plan@7.0.3': - resolution: {integrity: sha512-klL6LCdmfbEe9oyfLxnidIf/stFXmrbFO/3gT5LU5pcyoZytzJe4gWpTBx3BPmyNPl16dZ1xrkcW7b98e3tYkA==} + '@changesets/apply-release-plan@7.0.4': + resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} - '@changesets/assemble-release-plan@6.0.2': - resolution: {integrity: sha512-n9/Tdq+ze+iUtjmq0mZO3pEhJTKkku9hUxtUadW30jlN7kONqJG3O6ALeXrmc6gsi/nvoCuKjqEJ68Hk8RbMTQ==} + '@changesets/assemble-release-plan@6.0.3': + resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==} '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} @@ -6238,24 +6334,24 @@ packages: '@changesets/changelog-github@0.5.0': resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} - '@changesets/cli@2.27.6': - resolution: {integrity: sha512-PB7KS5JkCQ4WSXlnfThn8CXAHVwYxFdZvYTimhi12fls/tzj9iimUhKsYwkrKSbw1AiVlGCZtihj5Wkt6siIjA==} + '@changesets/cli@2.27.7': + resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==} hasBin: true - '@changesets/config@3.0.1': - resolution: {integrity: sha512-nCr8pOemUjvGJ8aUu8TYVjqnUL+++bFOQHBVmtNbLvKzIDkN/uiP/Z4RKmr7NNaiujIURHySDEGFPftR4GbTUA==} + '@changesets/config@3.0.2': + resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@2.1.0': - resolution: {integrity: sha512-QOt6pQq9RVXKGHPVvyKimJDYJumx7p4DO5MO9AhRJYgAPgv0emhNqAqqysSVKHBm4sxKlGN4S1zXOIb5yCFuhQ==} + '@changesets/get-dependents-graph@2.1.1': + resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==} '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.2': - resolution: {integrity: sha512-rOalz7nMuMV2vyeP7KBeAhqEB7FM2GFPO5RQSoOoUKKH9L6wW3QyPA2K+/rG9kBrWl2HckPVES73/AuwPvbH3w==} + '@changesets/get-release-plan@4.0.3': + resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} @@ -6299,47 +6395,47 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@csstools/cascade-layer-name-parser@1.0.12': - resolution: {integrity: sha512-iNCCOnaoycAfcIot3v/orjkTol+j8+Z5xgpqxUpZSdqeaxCADQZtldHhlvzDipmi7OoWdcJUO6DRZcnkMSBEIg==} + '@csstools/cascade-layer-name-parser@1.0.13': + resolution: {integrity: sha512-MX0yLTwtZzr82sQ0zOjqimpZbzjMaK/h2pmlrLK7DCzlmiZLYFpoO94WmN1akRVo6ll/TdpHb53vihHLUMyvng==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.0 - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 '@csstools/color-helpers@4.2.1': resolution: {integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==} engines: {node: ^14 || ^16 || >=18} - '@csstools/css-calc@1.2.3': - resolution: {integrity: sha512-rlOh81K3CvtY969Od5b1h29YT6MpCHejMCURKrRrXFeCpz67HGaBNvBmWT5S7S+CKn+V7KJ+qxSmK8jNd/aZWA==} + '@csstools/css-calc@1.2.4': + resolution: {integrity: sha512-tfOuvUQeo7Hz+FcuOd3LfXVp+342pnWUJ7D2y8NUpu1Ww6xnTbHLpz018/y6rtbHifJ3iIEf9ttxXd8KG7nL0Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.0 - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-color-parser@2.0.3': - resolution: {integrity: sha512-Qqhb5I/gEh1wI4brf6Kmy0Xn4J1IqO8OTDKWGRsBYtL4bGkHcV9i0XI2Mmo/UYFtSRoXW/RmKTcMh6sCI433Cw==} + '@csstools/css-color-parser@2.0.5': + resolution: {integrity: sha512-lRZSmtl+DSjok3u9hTWpmkxFZnz7stkbZxzKc08aDUsdrWwhSgWo8yq9rq9DaFUtbAyAq2xnH92fj01S+pwIww==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.0 - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-parser-algorithms@2.7.0': - resolution: {integrity: sha512-qvBMcOU/uWFCH/VO0MYe0AMs0BGMWAt6FTryMbFIKYtZtVnqTZtT8ktv5o718llkaGZWomJezJZjq3vJDHeJNQ==} + '@csstools/css-parser-algorithms@2.7.1': + resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-tokenizer': ^2.4.1 - '@csstools/css-tokenizer@2.3.2': - resolution: {integrity: sha512-0xYOf4pQpAaE6Sm2Q0x3p25oRukzWQ/O8hWVvhIt9Iv98/uu053u2CGm/g3kJ+P0vOYTAYzoU8Evq2pg9ZPXtw==} + '@csstools/css-tokenizer@2.4.1': + resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} engines: {node: ^14 || ^16 || >=18} - '@csstools/media-query-list-parser@2.1.12': - resolution: {integrity: sha512-t1/CdyVJzOQUiGUcIBXRzTAkWTFPxiPnoKwowKW2z9Uj78c2bBWI/X94BeVfUwVq1xtCjD7dnO8kS6WONgp8Jw==} + '@csstools/media-query-list-parser@2.1.13': + resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.7.0 - '@csstools/css-tokenizer': ^2.3.2 + '@csstools/css-parser-algorithms': ^2.7.1 + '@csstools/css-tokenizer': ^2.4.1 '@csstools/postcss-cascade-layers@4.0.6': resolution: {integrity: sha512-Xt00qGAQyqAODFiFEJNkTpSUz5VfYqnDLECdlA/Vv17nl/OIV5QfTRHGAXrBGG5YcJyHpJ+GF9gF/RZvOQz4oA==} @@ -6347,20 +6443,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@3.0.17': - resolution: {integrity: sha512-hi6g5KHMvxpxf01LCVu5xnNxX5h2Vkn9aKRmspn2esWjWtshuTXVOavTjwvogA+Eycm9Rn21QTYNU+qbKw6IeQ==} + '@csstools/postcss-color-function@3.0.19': + resolution: {integrity: sha512-d1OHEXyYGe21G3q88LezWWx31ImEDdmINNDy0LyLNN9ChgN2bPxoubUPiHf9KmwypBMaHmNcMuA/WZOKdZk/Lg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-color-mix-function@2.0.19': + resolution: {integrity: sha512-mLvQlMX+keRYr16AuvuV8WYKUwF+D0DiCqlBdvhQ0KYEtcQl9/is9Ssg7RcIys8x0jIn2h1zstS4izckdZj9wg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@2.0.17': - resolution: {integrity: sha512-Y65GHGCY1R+9+/5KrJjN7gAF1NZydng4AGknMggeUJIyo2ckLb4vBrlDmpIcHDdjQtV5631j1hxvalVTbpoiFw==} + '@csstools/postcss-content-alt-text@1.0.0': + resolution: {integrity: sha512-SkHdj7EMM/57GVvSxSELpUg7zb5eAndBeuvGwFzYtU06/QXJ/h9fuK7wO5suteJzGhm3GDF/EWPCdWV2h1IGHQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@1.0.8': - resolution: {integrity: sha512-/4WHpu4MrCCsUWRaDreyBcdF+5xnudk1JJLg6aWREeMaSpr3vsD0eywmOXct3xUm28TCqKS//S86IlcDJJdzoQ==} + '@csstools/postcss-exponential-functions@1.0.9': + resolution: {integrity: sha512-x1Avr15mMeuX7Z5RJUl7DmjhUtg+Amn5DZRD0fQ2TlTFTcJS8U1oxXQ9e5mA62S2RJgUU6db20CRoJyDvae2EQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6371,26 +6473,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@1.0.10': - resolution: {integrity: sha512-iPz4/cO8YiNjAYdtAiKGBdKZdFlAvDtUr2AgvAMxCa83e9MwTIKmsJZC3Frw7VYmkfknmdElEZr1FJU+PmB2PA==} + '@csstools/postcss-gamut-mapping@1.0.11': + resolution: {integrity: sha512-KrHGsUPXRYxboXmJ9wiU/RzDM7y/5uIefLWKFSc36Pok7fxiPyvkSHO51kh+RLZS1W5hbqw9qaa6+tKpTSxa5g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@4.0.18': - resolution: {integrity: sha512-rZH7RnNYY911I/n8+DRrcri89GffptdyuFDGGj/UbxDISFirdR1uI/wcur9KYR/uFHXqrnJjrfi1cisfB7bL+g==} + '@csstools/postcss-gradients-interpolation-method@4.0.20': + resolution: {integrity: sha512-ZFl2JBHano6R20KB5ZrB8KdPM2pVK0u+/3cGQ2T8VubJq982I2LSOvQ4/VtxkAXjkPkk1rXt4AD1ni7UjTZ1Og==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@3.0.16': - resolution: {integrity: sha512-nlC4D5xB7pomgR4kDZ1lqbVqrs6gxPqsM2OE5CkCn0EqCMxtqqtadtbK2dcFwzyujv3DL4wYNo+fgF4rJgLPZA==} + '@csstools/postcss-hwb-function@3.0.18': + resolution: {integrity: sha512-3ifnLltR5C7zrJ+g18caxkvSRnu9jBBXCYgnBznRjxm6gQJGnnCO9H6toHfywNdNr/qkiVf2dymERPQLDnjLRQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-ic-unit@3.0.6': - resolution: {integrity: sha512-fHaU9C/sZPauXMrzPitZ/xbACbvxbkPpHoUgB9Kw5evtsBWdVkVrajOyiT9qX7/c+G1yjApoQjP1fQatldsy9w==} + '@csstools/postcss-ic-unit@3.0.7': + resolution: {integrity: sha512-YoaNHH2wNZD+c+rHV02l4xQuDpfR8MaL7hD45iJyr+USwvr0LOheeytJ6rq8FN6hXBmEeoJBeXXgGmM8fkhH4g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6407,8 +6509,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@1.0.6': - resolution: {integrity: sha512-bu+cxKpcTrMDMkVCv7QURwKNPZEuXA3J0Udvz3HfmQHt4+OIvvfvDpTgejFXdOliCU4zK9/QdqebPcYneygZtg==} + '@csstools/postcss-light-dark-function@1.0.8': + resolution: {integrity: sha512-x0UtpCyVnERsplUeoaY6nEtp1HxTf4lJjoK/ULEm40DraqFfUdUSt76yoOyX5rGY6eeOUOkurHyYlFHVKv/pew==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6437,20 +6539,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-viewport-units@2.0.10': - resolution: {integrity: sha512-nGP0KanI/jXrUMpaIBz6mdy/vNs3d/cjbNYuoEc7lCdNkntmxZvwxC2zIKI8QzGWaYsh9jahozMVceZ0jNyjgg==} + '@csstools/postcss-logical-viewport-units@2.0.11': + resolution: {integrity: sha512-ElITMOGcjQtvouxjd90WmJRIw1J7KMP+M+O87HaVtlgOOlDt1uEPeTeii8qKGe2AiedEp0XOGIo9lidbiU2Ogg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@1.1.7': - resolution: {integrity: sha512-AjLG+vJvhrN2geUjYNvzncW1TJ+vC4QrVPGrLPxOSJ2QXC94krQErSW4aXMj0b13zhvVWeqf2NHIOVQknqV9cg==} + '@csstools/postcss-media-minmax@1.1.8': + resolution: {integrity: sha512-KYQCal2i7XPNtHAUxCECdrC7tuxIWQCW+s8eMYs5r5PaAiVTeKwlrkRS096PFgojdNCmHeG0Cb7njtuNswNf+w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.10': - resolution: {integrity: sha512-DXae3i7OYJTejxcoUuf/AOIpy+6FWfGGKo/I3WefZI538l3k+ErU6V2xQOx/UmUXT2FDIdE1Ucl9JkZib2rEsA==} + '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11': + resolution: {integrity: sha512-YD6jrib20GRGQcnOu49VJjoAnQ/4249liuz7vTpy/JfgqQ1Dlc5eD4HPUMNLOw9CWey9E6Etxwf/xc/ZF8fECA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6467,20 +6569,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@3.0.17': - resolution: {integrity: sha512-kIng3Xmw6NKUvD/eEoHGwbyDFXDsuzsVGtNo3ndgZYYqy+DLiD+3drxwRKiViE5LUieLB1ERczXpLVmpSw61eg==} + '@csstools/postcss-oklab-function@3.0.19': + resolution: {integrity: sha512-e3JxXmxjU3jpU7TzZrsNqSX4OHByRC3XjItV3Ieo/JEQmLg5rdOL4lkv/1vp27gXemzfNt44F42k/pn0FpE21Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-progressive-custom-properties@3.2.0': - resolution: {integrity: sha512-BZlirVxCRgKlE7yVme+Xvif72eTn1MYXj8oZ4Knb+jwaH4u3AN1DjbhM7j86RP5vvuAOexJ4JwfifYYKWMN/QQ==} + '@csstools/postcss-progressive-custom-properties@3.3.0': + resolution: {integrity: sha512-W2oV01phnILaRGYPmGFlL2MT/OgYjQDrL9sFlbdikMFi6oQkFki9B86XqEWR7HCsTZFVq7dbzr/o71B75TKkGg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@2.0.17': - resolution: {integrity: sha512-EVckAtG8bocItZflXLJ50Su+gwg/4Jhkz1BztyNsT0/svwS6QMAeLjyUA75OsgtejNWQHvBMWna4xc9LCqdjrQ==} + '@csstools/postcss-relative-color-syntax@2.0.19': + resolution: {integrity: sha512-MxUMSNvio1WwuS6WRLlQuv6nNPXwIWUFzBBAvL/tBdWfiKjiJnAa6eSSN5gtaacSqUkQ/Ce5Z1OzLRfeaWhADA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6491,8 +6593,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@3.0.9': - resolution: {integrity: sha512-uAw1J8hiZ0mM1DLaziI7CP5oagSwDnS5kufuROGIJFzESYfTqNVS3b7FgDZto9AxXdkwI+Sn48+cvG8PwzGMog==} + '@csstools/postcss-stepped-value-functions@3.0.10': + resolution: {integrity: sha512-MZwo0D0TYrQhT5FQzMqfy/nGZ28D1iFtpN7Su1ck5BPHS95+/Y5O9S4kEvo76f2YOsqwYcT8ZGehSI1TnzuX2g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6503,8 +6605,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@3.0.9': - resolution: {integrity: sha512-rCAtKX3EsH91ZIHoxFzAAcMQeQCS+PsjzHl6fvsGXz/SV3lqzSmO7MWgFXyPktC2zjZXgOObAJ/2QkhMqVpgNg==} + '@csstools/postcss-trigonometric-functions@3.0.10': + resolution: {integrity: sha512-G9G8moTc2wiad61nY5HfvxLiM/myX0aYK4s1x8MQlPH29WDPxHQM7ghGgvv2qf2xH+rrXhztOmjGHJj4jsEqXw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -6701,8 +6803,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + '@eslint-community/regexpp@4.11.0': + resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.17.0': @@ -6713,8 +6815,8 @@ packages: resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.6.0': - resolution: {integrity: sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==} + '@eslint/js@9.7.0': + resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.4': @@ -6727,6 +6829,10 @@ packages: '@fontsource/montserrat@5.0.18': resolution: {integrity: sha512-85JBs2rCdFK/VBdSb401e2lXk5gynVo2zi3Rh2Guem4WNtT2q52+V90o3KzjmajY3TPJvCZA/kI7R05ev7148g==} + '@fortawesome/fontawesome-free@6.5.2': + resolution: {integrity: sha512-hRILoInAx8GNT5IMkrtIt9blOdrqHOnPBH+k70aWUAqPZPgopb9G5EQJFpaBx/S8zp2fC+mPW349Bziuk1o28Q==} + engines: {node: '>=6'} + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} @@ -6856,13 +6962,6 @@ packages: resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': - resolution: {integrity: sha512-etqLfpSJ5zaw76KUNF603be6d6QsiQPmaHr9FKEp4zhLZJzWCCMH6Icak7MtLUFLZLMpL761mZNImi/joBo1ZA==} - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -7070,8 +7169,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@playwright/test@1.45.0': - resolution: {integrity: sha512-TVYsfMlGAaxeUllNkywbwek67Ncf8FRGn8ZlRdO291OL3NjG9oMbfVhyP82HQF0CZLMrYsvesqoUekxdWuF9Qw==} + '@playwright/test@1.45.2': + resolution: {integrity: sha512-JxG9eq92ET75EbVi3s+4sYbcG7q72ECeZNbdBlaMkGcNbiDQ4cAi8U2QP5oKkOx+1gpaiL1LDStmzCaEM1Z6fQ==} engines: {node: '>=18'} hasBin: true @@ -7084,11 +7183,11 @@ packages: '@babel/core': 7.x vite: 2.x || 3.x || 4.x || 5.x - '@preact/signals-core@1.6.0': - resolution: {integrity: sha512-O/XGxwP85h1F7+ouqTMOIZ3+V1whfaV9ToIVcuyGriD4JkSD00cQo54BKdqjvBJxbenvp7ynfqRHEwI6e+NIhw==} + '@preact/signals-core@1.7.0': + resolution: {integrity: sha512-bEZLgmJGSBVP5PUPDowhPW3bVdMmp9Tr5OEl+SQK+8Tv9T7UsIfyN905cfkmmeqw8z4xp8T6zrl4M1uj9+HAfg==} - '@preact/signals@1.2.3': - resolution: {integrity: sha512-M2DXse3Wi8HwjI1d2vQWOLJ3lHogvqTsJYvl4ofXRXgMFQzJ7kmlZvlt5i8x5S5VwgZu0ghru4HkLqOoFfU2JQ==} + '@preact/signals@1.3.0': + resolution: {integrity: sha512-EOMeg42SlLS72dhoq6Vjq08havnLseWmPQ8A0YsgIAqMgWgx7V1a39+Pxo6i7SY5NwJtH4849JogFq3M67AzWg==} peerDependencies: preact: 10.x @@ -7122,98 +7221,95 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + '@rollup/rollup-android-arm-eabi@4.18.1': + resolution: {integrity: sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + '@rollup/rollup-android-arm64@4.18.1': + resolution: {integrity: sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + '@rollup/rollup-darwin-arm64@4.18.1': + resolution: {integrity: sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + '@rollup/rollup-darwin-x64@4.18.1': + resolution: {integrity: sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': + resolution: {integrity: sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + '@rollup/rollup-linux-arm-musleabihf@4.18.1': + resolution: {integrity: sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + '@rollup/rollup-linux-arm64-gnu@4.18.1': + resolution: {integrity: sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + '@rollup/rollup-linux-arm64-musl@4.18.1': + resolution: {integrity: sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': + resolution: {integrity: sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + '@rollup/rollup-linux-riscv64-gnu@4.18.1': + resolution: {integrity: sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + '@rollup/rollup-linux-s390x-gnu@4.18.1': + resolution: {integrity: sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + '@rollup/rollup-linux-x64-gnu@4.18.1': + resolution: {integrity: sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + '@rollup/rollup-linux-x64-musl@4.18.1': + resolution: {integrity: sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + '@rollup/rollup-win32-arm64-msvc@4.18.1': + resolution: {integrity: sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + '@rollup/rollup-win32-ia32-msvc@4.18.1': + resolution: {integrity: sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + '@rollup/rollup-win32-x64-msvc@4.18.1': + resolution: {integrity: sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw==} cpu: [x64] os: [win32] - '@shikijs/core@1.10.0': - resolution: {integrity: sha512-BZcr6FCmPfP6TXaekvujZcnkFmJHZ/Yglu97r/9VjzVndQA56/F4WjUKtJRQUnK59Wi7p/UTAOekMfCJv7jnYg==} - - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@shikijs/core@1.10.3': + resolution: {integrity: sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg==} '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@solidjs/router@0.13.6': - resolution: {integrity: sha512-CdpFsBYoiJ/FQ4wZIamj3KEFRkmrYu5sVXM6PouNkmSENta1YJamsm9wa/VjaPmkw2RsnDnO0UvZ705v6EgOXQ==} + '@solidjs/router@0.14.1': + resolution: {integrity: sha512-GumQ4jbt5xDngLypAndC4EjapY/3DP0G8Az4YWEVQHdCtjHwB8IOm32eEBxE9lKpOffbtXV0r/0X0mofHJ1m5w==} peerDependencies: solid-js: ^1.8.6 @@ -7232,6 +7328,11 @@ packages: svelte: link:/Users/bjorn/Work/oss/svelte/packages/svelte vite: ^5.0.0 + '@tailwindcss/forms@0.5.7': + resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==} + peerDependencies: + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' + '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -7428,8 +7529,8 @@ packages: '@types/server-destroy@1.0.3': resolution: {integrity: sha512-Qq0fn70C7TLDG1W9FCblKufNWW1OckQ41dVKV2Dku5KdZF7bexezG4e2WBaBKhdwL3HZ+cYCEIKwg2BRgzrWmA==} - '@types/set-cookie-parser@2.4.9': - resolution: {integrity: sha512-bCorlULvl0xTdjj4BPUHX4cqs9I+go2TfW/7Do1nnFYWS0CPP429Qr1AY42kiFhCwLpvAkWFr1XIBHd8j6/MCQ==} + '@types/set-cookie-parser@2.4.10': + resolution: {integrity: sha512-GGmQVGpQWUe5qglJozEjZV/5dyxbOOZ0LHe/lqyWssB88Y4svNfst0uqBVscdDeIKl5Jy5+aPSvy7mI9tYRguw==} '@types/strip-bom@3.0.0': resolution: {integrity: sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==} @@ -7464,8 +7565,8 @@ packages: '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} - '@typescript-eslint/eslint-plugin@7.14.1': - resolution: {integrity: sha512-aAJd6bIf2vvQRjUG3ZkNXkmBpN+J7Wd0mfQiiVCJMu9Z5GcZZdcc0j8XwN/BM97Fl7e3SkTXODSk4VehUv7CGw==} + '@typescript-eslint/eslint-plugin@7.16.1': + resolution: {integrity: sha512-SxdPak/5bO0EnGktV05+Hq8oatjAYVY3Zh2bye9pGZy6+jwyR3LG3YKkV4YatlsgqXP28BTeVm9pqwJM96vf2A==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -7475,8 +7576,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.14.1': - resolution: {integrity: sha512-8lKUOebNLcR0D7RvlcloOacTOWzOqemWEWkKSVpMZVF/XVcwjPR+3MD08QzbW9TCGJ+DwIc6zUSGZ9vd8cO1IA==} + '@typescript-eslint/parser@7.16.1': + resolution: {integrity: sha512-u+1Qx86jfGQ5i4JjK33/FnawZRpsLxRnKzGE6EABZ40KxVT/vWsiZFEBBHjFOljmmV3MBYOHEKi0Jm9hbAOClA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -7485,12 +7586,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.14.1': - resolution: {integrity: sha512-gPrFSsoYcsffYXTOZ+hT7fyJr95rdVe4kGVX1ps/dJ+DfmlnjFN/GcMxXcVkeHDKqsq6uAcVaQaIi3cFffmAbA==} + '@typescript-eslint/scope-manager@7.16.1': + resolution: {integrity: sha512-nYpyv6ALte18gbMz323RM+vpFpTjfNdyakbf3nsLvF43uF9KeNC289SUEW3QLZ1xPtyINJ1dIsZOuWuSRIWygw==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.14.1': - resolution: {integrity: sha512-/MzmgNd3nnbDbOi3LfasXWWe292+iuo+umJ0bCCMCPc1jLO/z2BQmWUUUXvXLbrQey/JgzdF/OV+I5bzEGwJkQ==} + '@typescript-eslint/type-utils@7.16.1': + resolution: {integrity: sha512-rbu/H2MWXN4SkjIIyWcmYBjlp55VT+1G3duFOIukTNFxr9PI35pLc2ydwAfejCEitCv4uztA07q0QWanOHC7dA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -7499,12 +7600,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.14.1': - resolution: {integrity: sha512-mL7zNEOQybo5R3AavY+Am7KLv8BorIv7HCYS5rKoNZKQD9tsfGUpO4KdAn3sSUvTiS4PQkr2+K0KJbxj8H9NDg==} + '@typescript-eslint/types@7.16.1': + resolution: {integrity: sha512-AQn9XqCzUXd4bAVEsAXM/Izk11Wx2u4H3BAfQVhSfzfDOm/wAON9nP7J5rpkCxts7E5TELmN845xTUCQrD1xIQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@7.14.1': - resolution: {integrity: sha512-k5d0VuxViE2ulIO6FbxxSZaxqDVUyMbXcidC8rHvii0I56XZPv8cq+EhMns+d/EVIL41sMXqRbK3D10Oza1bbA==} + '@typescript-eslint/typescript-estree@7.16.1': + resolution: {integrity: sha512-0vFPk8tMjj6apaAZ1HlwM8w7jbghC8jc1aRNJG5vN8Ym5miyhTQGMqU++kuBFDNKe9NcPeZ6x0zfSzV8xC1UlQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -7512,14 +7613,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.14.1': - resolution: {integrity: sha512-CMmVVELns3nak3cpJhZosDkm63n+DwBlDX8g0k4QUa9BMnF+lH2lr3d130M1Zt1xxmB3LLk3NV7KQCq86ZBBhQ==} + '@typescript-eslint/utils@7.16.1': + resolution: {integrity: sha512-WrFM8nzCowV0he0RlkotGDujx78xudsxnGMBHI88l5J8wEhED6yBwaSLP99ygfrzAjsQvcYQ94quDwI0d7E1fA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.14.1': - resolution: {integrity: sha512-Crb+F75U1JAEtBeQGxSKwI60hZmmzaqA3z9sYsVm8X7W5cwLEm5bRe0/uXS6+MR/y8CVpKSR/ontIAIEPFcEkA==} + '@typescript-eslint/visitor-keys@7.16.1': + resolution: {integrity: sha512-Qlzzx4sE4u3FsHTPQAAQFJFNOuqtuY0LFrZHwQ8IHK705XxBiWOFkfKRWu6niB7hwfgnwIpO4jTC75ozW1PHWg==} engines: {node: ^18.18.0 || >=20.0.0} '@typescript/twoslash@3.1.0': @@ -7548,8 +7649,8 @@ packages: '@vercel/edge@1.1.1': resolution: {integrity: sha512-NtKiIbn9Cq6HWGy+qRudz28mz5nxfOJWls5Pnckjw1yCfSX8rhXdvY/il3Sy3Zd5n/sKCM2h7VSCCpJF/oaDrQ==} - '@vercel/nft@0.27.2': - resolution: {integrity: sha512-7LeioS1yE5hwPpQfD3DdH04tuugKjo5KrJk3yK5kAI3Lh76iSsK/ezoFQfzuT08X3ZASQOd1y9ePjLNI9+TxTQ==} + '@vercel/nft@0.27.3': + resolution: {integrity: sha512-oySTdDSzUAFDXpsSLk9Q943o+/Yu/+TCFxnehpFQEf/3khi2stMpTHPVNwFdvZq/Z4Ky93lE+MGHpXCRpMkSCA==} engines: {node: '>=16'} hasBin: true @@ -7573,49 +7674,49 @@ packages: vite: ^5.0.0 vue: ^3.2.25 - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + '@vitest/expect@2.0.3': + resolution: {integrity: sha512-X6AepoOYePM0lDNUPsGXTxgXZAl3EXd0GYe/MZyVE4HzkUqyUVC6S3PrY5mClDJ6/7/7vALLMV3+xD/Ko60Hqg==} - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + '@vitest/pretty-format@2.0.3': + resolution: {integrity: sha512-URM4GLsB2xD37nnTyvf6kfObFafxmycCL8un3OC9gaCs5cti2u+5rJdIflZ2fUJUen4NbvF6jCufwViAFLvz1g==} - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + '@vitest/runner@2.0.3': + resolution: {integrity: sha512-EmSP4mcjYhAcuBWwqgpjR3FYVeiA4ROzRunqKltWjBfLNs1tnMLtF+qtgd5ClTwkDP6/DGlKJTNa6WxNK0bNYQ==} - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + '@vitest/snapshot@2.0.3': + resolution: {integrity: sha512-6OyA6v65Oe3tTzoSuRPcU6kh9m+mPL1vQ2jDlPdn9IQoUxl8rXhBnfICNOC+vwxWY684Vt5UPgtcA2aPFBb6wg==} - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@vitest/spy@2.0.3': + resolution: {integrity: sha512-sfqyAw/ypOXlaj4S+w8689qKM1OyPOqnonqOc9T91DsoHbfN5mU7FdifWWv3MtQFf0lEUstEwR9L/q/M390C+A==} - '@volar/kit@2.2.5': - resolution: {integrity: sha512-Bmn0UCaT43xUGGRwcmFG9lKhiCCLjRT4ScSLLPn5C9ltUcSGnIFFDlbZZa1PreHYHq25/4zkXt9Ap32klAh17w==} + '@vitest/utils@2.0.3': + resolution: {integrity: sha512-c/UdELMuHitQbbc/EVctlBaxoYAwQPQdSNwv7z/vHyBKy2edYZaFgptE27BRueZB7eW8po+cllotMNTDpL3HWg==} + + '@volar/kit@2.4.0-alpha.16': + resolution: {integrity: sha512-jRPfMrxl8N53UkFINMoY777FBqG49RUqWkJt4yOlNEW8CmUS8fmUw4cz/jMv08KnQUyD3IeZWFtt3XZcQqe4Zw==} peerDependencies: typescript: '*' - '@volar/language-core@2.2.5': - resolution: {integrity: sha512-2htyAuxRrAgETmFeUhT4XLELk3LiEcqoW/B8YUXMF6BrGWLMwIR09MFaZYvrA2UhbdAeSyeQ726HaWSWkexUcQ==} - - '@volar/language-server@2.2.5': - resolution: {integrity: sha512-PV/jkUkI+m72HTXwnY7hsGqLY3VNi96ZRoWFRzVC9QG/853bixxjveXPJIiydMJ9I739lO3kcj3hnGrF5Sm+HA==} + '@volar/language-core@2.4.0-alpha.16': + resolution: {integrity: sha512-oOTnIZlx0P/idFwVw+W0NbzKDtZAQMzXSdIFfTePCKcXlb4Ys12GaGkx8NF9dsvPYV3nbv3ZsSxnkZWBmNKd7A==} - '@volar/language-service@2.2.5': - resolution: {integrity: sha512-a97e/0uCe+uSu23F4zvgvldqJtZe6jugQeEHWjTfhgOEO8+Be0t5CZNNVItQqmPyAsD8eElg0S/cP6uxvCmCSQ==} + '@volar/language-server@2.4.0-alpha.16': + resolution: {integrity: sha512-DswMBlmmXPo9fb1Dmb2qrCtxRDgQPej5jUjAoUm+1wO5k02Tk+jIvbbd/R3EzyHFTARmiRH5/bSOfRefHyuMsg==} - '@volar/snapshot-document@2.2.5': - resolution: {integrity: sha512-MTOvWVKxM7ugKO3Amffkv2pND03fe2JtfygYaputqjVFML7YxtTXj8SPnI2pODLeSwOKzDYL6Q8r5j6Y5AgUzQ==} + '@volar/language-service@2.4.0-alpha.16': + resolution: {integrity: sha512-iIRUY0EL9jp8Od7Py/GlYpCu469GFDYl7ai716pQgwipjpjEjRQiuGAD2+cSFjOVXDsMPFpJ+Dpei7aSvE/8pQ==} - '@volar/source-map@2.2.5': - resolution: {integrity: sha512-wrOEIiZNf4E+PWB0AxyM4tfhkfldPsb3bxg8N6FHrxJH2ohar7aGu48e98bp3pR9HUA7P/pR9VrLmkTrgCCnWQ==} + '@volar/snapshot-document@2.4.0-alpha.16': + resolution: {integrity: sha512-X9xZeLvkmhjkrz27J6nq9JhYWV8AUT1KS9fi4s+Mo1FOh5HHUIx/QzhrwsUN/pY1z3kO+vtrl2DE6NVJRYwwbw==} - '@volar/typescript@2.2.5': - resolution: {integrity: sha512-eSV/n75+ppfEVugMC/salZsI44nXDPAyL6+iTYCNLtiLHGJsnMv9GwiDMujrvAUj/aLQyqRJgYtXRoxop2clCw==} + '@volar/source-map@2.4.0-alpha.16': + resolution: {integrity: sha512-sL9vNG7iR2hiKZor7UkD5Sufu3QCia4cbp2gX/nGRNSdaPbhOpdAoavwlBm0PrVkpiA19NZuavZoobD8krviFg==} - '@vscode/emmet-helper@2.9.2': - resolution: {integrity: sha512-MaGuyW+fa13q3aYsluKqclmh62Hgp0BpKIqS66fCxfOaBcVQ1OnMQxRRgQUYnCkxFISAQlkJ0qWWPyXjro1Qrg==} + '@volar/typescript@2.4.0-alpha.16': + resolution: {integrity: sha512-WCx7z5O81McCQp2cC0c8081y+MgTiAR2WAiJjVL4tr4Qh4GgqK0lgn3CqAjcKizaK1R5y3wfrUqgIYr+QeFYcw==} - '@vscode/l10n@0.0.16': - resolution: {integrity: sha512-JT5CvrIYYCrmB+dCana8sUqJEcGB1ZDXNLMQ2+42bW995WmNoenijWMUdZfwmuQUTQcEVVIa2OecZzTYWUW9Cg==} + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} '@vscode/l10n@0.0.18': resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} @@ -7648,16 +7749,16 @@ packages: '@vue/compiler-ssr@3.4.31': resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==} - '@vue/devtools-core@7.3.5': - resolution: {integrity: sha512-uSC3IkIp6MtyJYSh5xzY99sgqlAXLq+peE2KKXTi6JeRHOtMngFWFWENXi70IJ1EVGYztiFQoHhI9WZcgKBz8g==} + '@vue/devtools-core@7.3.6': + resolution: {integrity: sha512-XqFYVkyS3eySHF4bgLt+KF6yL6nYzVY/JTJHnK6KIJXIE4GIAxmn5Gxfsb4cUG9sl0FGiMqRCnM37Q+P08wr8A==} peerDependencies: vue: ^3.0.0 - '@vue/devtools-kit@7.3.5': - resolution: {integrity: sha512-wwfi10gJ1HMtjzcd8aIOnzBHlIRqsYDgcDyrKvkeyc0Gbcoe7UrkXRVHZUOtcxxoplHA0PwpT6wFg0uUCmi8Ww==} + '@vue/devtools-kit@7.3.6': + resolution: {integrity: sha512-5Ym9V3fkJenEoptqKoo+cgY5RTVwrSssFdzRsuyIgaeiskCT+rRJeQdwoo81tyrQ1mfS7Er1rYZlSzr3Y3L/ew==} - '@vue/devtools-shared@7.3.5': - resolution: {integrity: sha512-Rqii3VazmWTi67a86rYopi61n5Ved05EybJCwyrfoO9Ok3MaS/4yRFl706ouoISMlyrASJFEzM0/AiDA6w4f9A==} + '@vue/devtools-shared@7.3.6': + resolution: {integrity: sha512-R/FOmdJV+hhuwcNoxp6e87RRkEeDMVhWH+nOsnHUrwjjsyeXJ2W1475Ozmw+cbZhejWQzftkHVKO28Fuo1yqCw==} '@vue/reactivity@3.1.5': resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} @@ -7702,12 +7803,8 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} engines: {node: '>=0.4.0'} hasBin: true @@ -7756,10 +7853,6 @@ packages: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -7801,8 +7894,9 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} @@ -7844,8 +7938,9 @@ packages: peerDependencies: postcss: ^8.1.0 - axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} babel-plugin-jsx-dom-expressions@0.37.19: resolution: {integrity: sha512-nef2eLpWBgFggwrYwN6O3dNKn3RnlX6n4DIamNEAeHwp03kVQUaKUiLaEPnHPJHwxie1KwPelyIY9QikU03vUA==} @@ -7970,9 +8065,9 @@ packages: ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -8004,8 +8099,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} @@ -8213,8 +8309,8 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - cssdb@8.0.0: - resolution: {integrity: sha512-hfpm8VXc7/dhcEWpLvKDLwImOSk1sa2DxL36OEiY/4h2MGfKjPYIMZo4hnEEl+TCJr2GwcX46jF5TafRASDe9w==} + cssdb@8.1.0: + resolution: {integrity: sha512-BQN57lfS4dYt2iL0LgyrlDbefZKEtUyrO8rbzrbGrqBk6OoyNTQLF+porY9DrpDBjLo4NEvj2IJttC7vf3x+Ew==} cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -8275,8 +8371,8 @@ packages: deep-diff@1.0.2: resolution: {integrity: sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==} - deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} deep-is@0.1.4: @@ -8357,10 +8453,6 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -8393,8 +8485,8 @@ packages: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} - drizzle-orm@0.31.2: - resolution: {integrity: sha512-QnenevbnnAzmbNzQwbhklvIYrDE8YER8K7kSrAWQSV1YvFCdSQPzj+jzqRdTSsV2cDqSpQ0NXGyL1G9I43LDLg==} + drizzle-orm@0.31.4: + resolution: {integrity: sha512-VGD9SH9aStF2z4QOTnVlVX/WghV/EnuEzTmsH3fSVp2E4fFgc8jl3viQrS/XUJx1ekW4rVVLJMH42SfGQdjX3Q==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=3' @@ -8404,6 +8496,7 @@ packages: '@op-engineering/op-sqlite': '>=2' '@opentelemetry/api': ^1.4.1 '@planetscale/database': '>=1' + '@prisma/client': '*' '@tidbcloud/serverless': '*' '@types/better-sqlite3': '*' '@types/pg': '*' @@ -8419,6 +8512,7 @@ packages: mysql2: '>=2' pg: '>=8' postgres: '>=3' + prisma: '*' react: '>=18' sql.js: '>=1' sqlite3: '>=5' @@ -8439,6 +8533,8 @@ packages: optional: true '@planetscale/database': optional: true + '@prisma/client': + optional: true '@tidbcloud/serverless': optional: true '@types/better-sqlite3': @@ -8469,6 +8565,8 @@ packages: optional: true postgres: optional: true + prisma: + optional: true react: optional: true sql.js: @@ -8577,8 +8675,8 @@ packages: peerDependencies: eslint: '>=8.44.0' - eslint-scope@8.0.1: - resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + eslint-scope@8.0.2: + resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: @@ -8589,8 +8687,8 @@ packages: resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.6.0: - resolution: {integrity: sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==} + eslint@9.7.0: + resolution: {integrity: sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true @@ -8720,6 +8818,10 @@ packages: resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} engines: {node: '>= 0.8'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -9227,9 +9329,6 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -9348,10 +9447,6 @@ packages: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -9390,8 +9485,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} lower-case@1.1.4: resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} @@ -9680,6 +9775,10 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mini-svg-data-uri@1.4.4: + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + hasBin: true + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -9735,9 +9834,6 @@ packages: engines: {node: '>=10'} hasBin: true - mlly@1.6.1: - resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} - mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -9894,8 +9990,8 @@ packages: resolution: {integrity: sha512-M7CJbmv7UCopc0neRKdzfoGWaVZC+xC1925GitKH9EAqYFzX9//25Q7oX4+jw0tiCCj+t5l6VZh8UPH23NZkMA==} hasBin: true - open-props@1.7.4: - resolution: {integrity: sha512-LfzWOJq4I79GxtpT1/CucxujndqWjAdcC2H6gSJo1TmFGzyGv1VJWJQ1BQnui0/YgTNI+AaG1pEcq5/DCGL8RQ==} + open-props@1.7.5: + resolution: {integrity: sha512-DajjLQDJgIa0i+QdB2q5M8lNLo2ICk+DbDh4TsqNsT1tAO8Zm8F7dndSkLMQkobT98lbvDMMpJWO8NT0ibjrjA==} open@10.1.0: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} @@ -9932,8 +10028,8 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + p-limit@6.1.0: + resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} engines: {node: '>=18'} p-locate@4.1.0: @@ -10042,8 +10138,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} @@ -10074,16 +10171,13 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - - playwright-core@1.45.0: - resolution: {integrity: sha512-lZmHlFQ0VYSpAs43dRq1/nJ9G/6SiTI7VPqidld9TDefL9tX87bTKExWZZUF5PeRyqtXqd8fQi2qmfIedkwsNQ==} + playwright-core@1.45.2: + resolution: {integrity: sha512-ha175tAWb0dTK0X4orvBIqi3jGEt701SMxMhyujxNrgd8K0Uy5wMSwwcQHtyB4om7INUkfndx02XnQ2p6dvLDw==} engines: {node: '>=18'} hasBin: true - playwright@1.45.0: - resolution: {integrity: sha512-4z3ac3plDfYzGB6r0Q3LF8POPR20Z8D0aXcxbJvmfMgSSq1hkcgvFRXJk9rUq5H/MJ0Ktal869hhOdI/zUTeLA==} + playwright@1.45.2: + resolution: {integrity: sha512-ReywF2t/0teRvNBpfIgh5e4wnrI/8Su8ssdo5XsQKpjxJj+jspm00jSoz9BTg91TT0c9HRjXO7LBNVrgYj9X0g==} engines: {node: '>=18'} hasBin: true @@ -10102,8 +10196,8 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@6.0.12: - resolution: {integrity: sha512-LGLWl6EDofJwDHMElYvt4YU9AeH+oijzOfeKhE0ebuu0aBSDeEg7CfFXMi0iiXWV1VKxn3MLGOtcBNnOiQS9Yg==} + postcss-color-functional-notation@6.0.14: + resolution: {integrity: sha512-dNUX+UH4dAozZ8uMHZ3CtCNYw8fyFAmqqdcyxMr7PEdM9jLXV19YscoYO0F25KqZYhmtWKQ+4tKrIZQrwzwg7A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10120,20 +10214,20 @@ packages: peerDependencies: postcss: ^8.4 - postcss-custom-media@10.0.7: - resolution: {integrity: sha512-o2k5nnvRZhF36pr1fGFM7a1EMTcNdKNO70Tp1g2lfpYgiwIctR7ic4acBCDHBMYRcQ8mFlaBB1QsEywqrSIaFQ==} + postcss-custom-media@10.0.8: + resolution: {integrity: sha512-V1KgPcmvlGdxTel4/CyQtBJEFhMVpEmRGFrnVtgfGIHj5PJX9vO36eFBxKBeJn+aCDTed70cc+98Mz3J/uVdGQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-custom-properties@13.3.11: - resolution: {integrity: sha512-CAIgz03I/GMhVbAKIi3u3P8j5JY2KHl0TlePcfUX3OUy8t0ynnWvyJaS1D92pEAw1LjmeKWi7+aIU0s53iYdOQ==} + postcss-custom-properties@13.3.12: + resolution: {integrity: sha512-oPn/OVqONB2ZLNqN185LDyaVByELAA/u3l2CS2TS16x2j2XsmV4kd8U49+TMxmUsEU9d8fB/I10E6U7kB0L1BA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 - postcss-custom-selectors@7.1.11: - resolution: {integrity: sha512-IoGprXOueDJL5t3ZuWR+QzPpmrQCFNhvoICsg0vDSehGwWNG0YV/Z4A+zouGRonC7NJThoV+A8A74IEMqMQUQw==} + postcss-custom-selectors@7.1.12: + resolution: {integrity: sha512-ctIoprBMJwByYMGjXG0F7IT2iMF2hnamQ+aWZETyBM0aAlyaYdVZTeUkk8RB+9h9wP+NdN3f01lfvKl2ZSqC0g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10144,8 +10238,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-double-position-gradients@5.0.6: - resolution: {integrity: sha512-QJ+089FKMaqDxOhhIHsJrh4IP7h4PIHNC5jZP5PMmnfUScNu8Hji2lskqpFWCvu+5sj+2EJFyzKd13sLEWOZmQ==} + postcss-double-position-gradients@5.0.7: + resolution: {integrity: sha512-1xEhjV9u1s4l3iP5lRt1zvMjI/ya8492o9l/ivcxHhkO3nOz16moC4JpMxDUGrOs4R3hX+KWT7gKoV842cwRgg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10191,8 +10285,8 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@6.0.17: - resolution: {integrity: sha512-QzjC6/3J6XKZzHGuUKhWNvlDMfWo+08dQOfQj4vWQdpZFdOxCh9QCR4w4XbV68EkdzywJie1mcm81jwFyV0+kg==} + postcss-lab-function@6.0.19: + resolution: {integrity: sha512-vwln/mgvFrotJuGV8GFhpAOu9iGf3pvTBr6dLPDmUcqVD5OsQpEFyQMAFTxSxWXGEzBj6ld4pZ/9GDfEpXvo0g==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10250,8 +10344,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@9.5.15: - resolution: {integrity: sha512-z/2akOVQChOGAdzaUR4pQrDOM3xGZc5/k4THHWyREbWAfngaJATA2SkEQMkiyV5Y/EoSwE0nt0IiaIs6CMmxfQ==} + postcss-preset-env@9.6.0: + resolution: {integrity: sha512-Lxfk4RYjUdwPCYkc321QMdgtdCP34AeI94z+/8kVmqnTIlD4bMRQeGcMZgwz8BxHrzQiFXYIR5d7k/9JMs2MEA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 @@ -10284,23 +10378,22 @@ packages: resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} engines: {node: ^10 || ^12 || >=14} - preact-render-to-string@6.3.1: - resolution: {integrity: sha512-NQ28WrjLtWY6lKDlTxnFpKHZdpjfF+oE6V4tZ0rTrunHrtZp6Dm0oFrcJalt/5PNeqJz4j1DuZDS0Y6rCBoqDA==} + preact-render-to-string@6.5.5: + resolution: {integrity: sha512-KiMFTKNTmT/ccE79BURR/r6XRc2I2TCTZ0MpeWqHW2XnllbeghXvwGsdAfF/MzMilUcTfODtSmMxgoRFL9TM5g==} peerDependencies: preact: '>=10' - preact-ssr-prepass@1.2.1: - resolution: {integrity: sha512-bLgbUfy8nL+PZghAPpyk9MF+cmXjdwEnxYPaJBmwbzFQqzIz8dQVBqjwB60RqZ9So/vIf6BRfHCiwFGuMCyfbQ==} - peerDependencies: - preact: '>=10 || ^10.0.0-beta.0 || ^10.0.0-alpha.0' - preact@10.22.1: resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} - preferred-pm@3.1.3: - resolution: {integrity: sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==} + preferred-pm@3.1.4: + resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} engines: {node: '>=10'} + preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -10314,8 +10407,8 @@ packages: engines: {node: '>=10.13.0'} hasBin: true - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} engines: {node: '>=14'} hasBin: true @@ -10327,13 +10420,6 @@ packages: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - pretty-format@3.8.0: - resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} - prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -10394,9 +10480,6 @@ packages: peerDependencies: react: 19.0.0-rc-fb9a90fa48-20240614 - react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -10505,8 +10588,8 @@ packages: peerDependencies: typescript: '>3' - remark-smartypants@3.0.1: - resolution: {integrity: sha512-qyshfCl2eLO0i0558e79ZJsfojC5wjnYLByjt0FmjJQN6aYwcRxpoj784LZJSoWCdnA2ubh5rLNGb8Uur/wDng==} + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} engines: {node: '>=16.0.0'} remark-stringify@11.0.0: @@ -10577,8 +10660,8 @@ packages: engines: {node: '>=14'} hasBin: true - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + rollup@4.18.1: + resolution: {integrity: sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -10604,8 +10687,8 @@ packages: sass-formatter@0.7.9: resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - sass@1.77.6: - resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} + sass@1.77.8: + resolution: {integrity: sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -10708,8 +10791,8 @@ packages: shiki@0.10.1: resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} - shiki@1.10.0: - resolution: {integrity: sha512-YD2sXQ+TMD/F9BimV9Jn0wj35pqOvywvOG/3PB6hGHyGKlM7TJ9tyJ02jOb2kF8F0HfJwKNYrh3sW7jEcuRlXA==} + shiki@1.10.3: + resolution: {integrity: sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ==} side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} @@ -10885,9 +10968,6 @@ packages: resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} @@ -10951,8 +11031,8 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tailwindcss@3.4.4: - resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} + tailwindcss@3.4.5: + resolution: {integrity: sha512-DlTxttYcogpDfx3tf/8jfnma1nfAYi2cBUYV2YNoPPecwmO3YGiFlOX9D8tGAu+EDF38ryBzvrDKU/BLMsUwbw==} engines: {node: '>=14.0.0'} hasBin: true @@ -10999,15 +11079,19 @@ packages: tiny-glob@0.2.9: resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - tinybench@2.7.0: - resolution: {integrity: sha512-Qgayeb106x2o4hNzNjsZEfFziw8IbKqtbXBjVh7VIZfBxfD5M4gWtpyx5+YTae2gJ6Y6Dz/KLepiv16RFeQWNA==} + tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} engines: {node: '>=14.0.0'} tmp@0.0.33: @@ -11125,10 +11209,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} @@ -11154,11 +11234,11 @@ packages: typesafe-path@0.2.2: resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - typescript-auto-import-cache@0.3.2: - resolution: {integrity: sha512-+laqe5SFL1vN62FPOOJSUDTZxtgsoOXjneYOXIpx5rQ4UMiN89NAtJLpqLqyebv9fgQ/IMeeTX+mQyRnwvJzvg==} + typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} - typescript-eslint@7.14.1: - resolution: {integrity: sha512-Eo1X+Y0JgGPspcANKjeR6nIqXl4VL5ldXLc15k4m9upq+eY5fhU2IueiEZL6jmHrKH8aCfbIvM/v3IrX5Hg99w==} + typescript-eslint@7.16.1: + resolution: {integrity: sha512-889oE5qELj65q/tGeOSvlreNKhimitFwZqQ0o7PcWC7/lgRkAMknznsCsV8J8mZGTP/Z+cIbX8accf2DE33hrA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -11167,8 +11247,8 @@ packages: typescript: optional: true - typescript@5.5.2: - resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + typescript@5.5.3: + resolution: {integrity: sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==} engines: {node: '>=14.17'} hasBin: true @@ -11312,16 +11392,16 @@ packages: vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} + vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} vite-hot-client@0.2.3: resolution: {integrity: sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==} peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + vite-node@2.0.3: + resolution: {integrity: sha512-14jzwMx7XTcMB+9BhGQyoEAmSl0eOr3nrnn+Z12WNERtOvLN+d2scbRUvyni05rT3997Bg+rZb47NyP4IQPKXg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true @@ -11345,8 +11425,8 @@ packages: '@testing-library/jest-dom': optional: true - vite-plugin-vue-devtools@7.3.5: - resolution: {integrity: sha512-6omLXTfYu0bmSmncPSbj4mdMPB3t5dAZkUyriJikahGEnvv5gynHlydDsJShHT6l/5dCkvmSesSji/2a6FfutQ==} + vite-plugin-vue-devtools@7.3.6: + resolution: {integrity: sha512-j4Cssv6DVBtMZfyVBEm/4MZy7BiL6RedEn+f9jT3zFyGZKG1vNuEpTO86XvPPbHbYdITFyrkWb7VQuWyhfSgqA==} engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 @@ -11364,8 +11444,8 @@ packages: vue: optional: true - vite@5.3.2: - resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + vite@5.3.4: + resolution: {integrity: sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -11400,15 +11480,15 @@ packages: vite: optional: true - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + vitest@2.0.3: + resolution: {integrity: sha512-o3HRvU93q6qZK4rI2JrhKyZMMuxg/JRt30E6qeQs6ueaiz5hr1cPj+Sk2kATgQzMMqsa2DiNI0TIK++1ULx8Jw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 + '@vitest/browser': 2.0.3 + '@vitest/ui': 2.0.3 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -11425,34 +11505,34 @@ packages: jsdom: optional: true - volar-service-css@0.0.45: - resolution: {integrity: sha512-f+AlUI1+kESbcZSVaNJVAnK0c/9Da5StoxzPqA5/8VqUHJWNdubWNnwG5xpFVTfgh6pgTcey3UBhBfHytFaIOg==} + volar-service-css@0.0.59: + resolution: {integrity: sha512-gLNjJnECbalPvQB7qeJjhkDN8sR5M3ItbVYjnyio61aHaWptIiXm/HfDahcQ2ApwmvWidkMWWegjGq5L0BENDA==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-emmet@0.0.45: - resolution: {integrity: sha512-9nLXSDkR1vA/3fQkFEsSXAu3XovQxOpTkVG2jilQgfek/K1ZLkaA/WMhN/TtmPmQg4NxE9Ni6mA5udBQ5gVXIA==} + volar-service-emmet@0.0.59: + resolution: {integrity: sha512-6EynHcuMwMBETpK29TbZvIMmvzdVG+Tkokk9VWfZeI+SwDptk2tgdhEqiXXvIkqYNgbuu73Itp66lpH76cAU+Q==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-html@0.0.45: - resolution: {integrity: sha512-tLTJqfy1v5C4nmeAsfekFIKPl4r4qDMyL0L9MWywr/EApZzPCsbeUGxCqdzxSMC2q7PMCfX2i167txDo+J0LVA==} + volar-service-html@0.0.59: + resolution: {integrity: sha512-hEXOsYpILDlITZxnqRLV9OepVWD63GZBsyjMxszwdzlxvGZjzbGcBBinJGGJRwFIV8djdJwnt91bkdg1V5tj6Q==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-prettier@0.0.45: - resolution: {integrity: sha512-+mBS2EsDgp/kunKEBnHvhBwIQm5v2ahw4NKpKdg4sTpXy3UxqHt+Fq/wRYQ7Z8LlNVNRVfp75ThjM+w2zaZBAw==} + volar-service-prettier@0.0.59: + resolution: {integrity: sha512-FmBR4lsgFRGR3V0LnxZZal0WqdOJjuLL6mQSj4p57M15APtQwuocG/FiF+ONGFnwRXMOIBDBTCARdth+TKgL3A==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 prettier: ^2.2 || ^3.0 peerDependenciesMeta: '@volar/language-service': @@ -11460,27 +11540,27 @@ packages: prettier: optional: true - volar-service-typescript-twoslash-queries@0.0.45: - resolution: {integrity: sha512-KrPUUvKggZgV9mrDpstCzmf20irgv0ooMv+FGDzIIQUkya+d2+nSS8Mx2h9FvsYgLccUVw5jU3Rhwhd3pv/7qg==} + volar-service-typescript-twoslash-queries@0.0.59: + resolution: {integrity: sha512-skm8e6yhCIkqLwJB6S9MqT5lO9LNFuMD3dYxKpmOZs1CKbXmCZZTmLfEaD5VkJae1xdleEDZFFTHl2O5HLjOGQ==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - volar-service-typescript@0.0.45: - resolution: {integrity: sha512-i/mMIIAMastJ2kgPo3qvX0Rrl7NyxhIYZ0ug/B4ambZcLPI1vzBgS2fmvyWX3jhBYHh8NmbAotFj+0Y9JtN47A==} + volar-service-typescript@0.0.59: + resolution: {integrity: sha512-VCOpfiu+lUo5lapWLB5L5vmQGtwzmNWn5MueV915eku7blpphmE+Z7hCNcL1NApn7AetXWhiblv8ZhmUx/dGIA==} peerDependencies: - '@volar/language-service': ~2.2.3 + '@volar/language-service': ~2.4.0-alpha.12 peerDependenciesMeta: '@volar/language-service': optional: true - vscode-css-languageservice@6.2.13: - resolution: {integrity: sha512-2rKWXfH++Kxd9Z4QuEgd1IF7WmblWWU7DScuyf1YumoGLkY9DW6wF/OTlhOyO2rN63sWHX2dehIpKBbho4ZwvA==} + vscode-css-languageservice@6.3.0: + resolution: {integrity: sha512-nU92imtkgzpCL0xikrIb8WvedV553F2BENzgz23wFuok/HLN5BeQmroMy26pUwFxV2eV8oNRmYCUv8iO7kSMhw==} - vscode-html-languageservice@5.2.0: - resolution: {integrity: sha512-cdNMhyw57/SQzgUUGSIMQ66jikqEN6nBNyhx5YuOyj9310+eY9zw8Q0cXpiKzDX8aHYFewQEXRnigl06j/TVwQ==} + vscode-html-languageservice@5.3.0: + resolution: {integrity: sha512-C4Z3KsP5Ih+fjHpiBc5jxmvCl+4iEwvXegIrzu2F5pktbWvQaBT3YkVPk8N+QlSSMk8oCG6PKtZ/Sq2YHb5e8g==} vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} @@ -11565,14 +11645,14 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} - which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} - which-pm@2.2.0: resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} engines: {node: '>=8.15'} + which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} + which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -11673,8 +11753,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} engines: {node: '>=12.20'} zod-to-json-schema@3.23.1: @@ -11743,13 +11823,13 @@ snapshots: astro: link:packages/astro lite-youtube-embed: 0.3.2 - '@astrojs/check@0.7.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2)': + '@astrojs/check@0.8.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3)': dependencies: - '@astrojs/language-server': 2.10.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2) + '@astrojs/language-server': 2.11.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3) chokidar: 3.6.0 fast-glob: 3.3.2 kleur: 4.1.5 - typescript: 5.5.2 + typescript: 5.5.3 yargs: 17.7.2 transitivePeerDependencies: - prettier @@ -11763,28 +11843,29 @@ snapshots: '@astrojs/compiler@1.8.2': {} - '@astrojs/compiler@2.8.1': {} + '@astrojs/compiler@2.9.1': {} - '@astrojs/language-server@2.10.0(prettier-plugin-astro@0.14.0)(prettier@3.3.2)(typescript@5.5.2)': + '@astrojs/language-server@2.11.1(prettier-plugin-astro@0.14.0)(prettier@3.3.3)(typescript@5.5.3)': dependencies: - '@astrojs/compiler': 2.8.1 + '@astrojs/compiler': 2.9.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@volar/kit': 2.2.5(typescript@5.5.2) - '@volar/language-core': 2.2.5 - '@volar/language-server': 2.2.5 - '@volar/language-service': 2.2.5 - '@volar/typescript': 2.2.5 + '@volar/kit': 2.4.0-alpha.16(typescript@5.5.3) + '@volar/language-core': 2.4.0-alpha.16 + '@volar/language-server': 2.4.0-alpha.16 + '@volar/language-service': 2.4.0-alpha.16 + '@volar/typescript': 2.4.0-alpha.16 fast-glob: 3.3.2 - volar-service-css: 0.0.45(@volar/language-service@2.2.5) - volar-service-emmet: 0.0.45(@volar/language-service@2.2.5) - volar-service-html: 0.0.45(@volar/language-service@2.2.5) - volar-service-prettier: 0.0.45(@volar/language-service@2.2.5)(prettier@3.3.2) - volar-service-typescript: 0.0.45(@volar/language-service@2.2.5) - volar-service-typescript-twoslash-queries: 0.0.45(@volar/language-service@2.2.5) - vscode-html-languageservice: 5.2.0 + muggle-string: 0.4.1 + volar-service-css: 0.0.59(@volar/language-service@2.4.0-alpha.16) + volar-service-emmet: 0.0.59(@volar/language-service@2.4.0-alpha.16) + volar-service-html: 0.0.59(@volar/language-service@2.4.0-alpha.16) + volar-service-prettier: 0.0.59(@volar/language-service@2.4.0-alpha.16)(prettier@3.3.3) + volar-service-typescript: 0.0.59(@volar/language-service@2.4.0-alpha.16) + volar-service-typescript-twoslash-queries: 0.0.59(@volar/language-service@2.4.0-alpha.16) + vscode-html-languageservice: 5.3.0 vscode-uri: 3.0.8 optionalDependencies: - prettier: 3.3.2 + prettier: 3.3.3 prettier-plugin-astro: 0.14.0 transitivePeerDependencies: - typescript @@ -11794,20 +11875,20 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.0.1 - '@babel/compat-data@7.24.7': {} + '@babel/compat-data@7.24.9': {} - '@babel/core@7.24.7': + '@babel/core@7.24.9': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/generator': 7.24.10 + '@babel/helper-compilation-targets': 7.24.8 + '@babel/helper-module-transforms': 7.24.9(@babel/core@7.24.9) + '@babel/helpers': 7.24.8 + '@babel/parser': 7.24.8 '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 convert-source-map: 2.0.0 debug: 4.3.5 gensync: 1.0.0-beta.2 @@ -11816,34 +11897,34 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/generator@7.24.7': + '@babel/generator@7.24.10': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 '@babel/helper-annotate-as-pure@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 - '@babel/helper-compilation-targets@7.24.7': + '@babel/helper-compilation-targets@7.24.8': dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 + '@babel/compat-data': 7.24.9 + '@babel/helper-validator-option': 7.24.8 browserslist: 4.23.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.7)': + '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.7) + '@babel/helper-replace-supers': 7.24.7(@babel/core@7.24.9) '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 semver: 6.3.1 @@ -11852,42 +11933,42 @@ snapshots: '@babel/helper-environment-visitor@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-function-name@7.24.7': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-hoist-variables@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-member-expression-to-functions@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.18.6': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-module-imports@7.22.15': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + '@babel/helper-module-transforms@7.24.9(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 @@ -11898,13 +11979,13 @@ snapshots: '@babel/helper-optimise-call-expression@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/helper-plugin-utils@7.24.7': {} - '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.7)': + '@babel/helper-replace-supers@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-member-expression-to-functions': 7.24.7 '@babel/helper-optimise-call-expression': 7.24.7 @@ -11913,32 +11994,32 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color '@babel/helper-split-export-declaration@7.24.7': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 - '@babel/helper-string-parser@7.24.7': {} + '@babel/helper-string-parser@7.24.8': {} '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-option@7.24.7': {} + '@babel/helper-validator-option@7.24.8': {} - '@babel/helpers@7.24.7': + '@babel/helpers@7.24.8': dependencies: '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@babel/highlight@7.24.7': dependencies: @@ -11947,79 +12028,79 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.0.1 - '@babel/parser@7.24.7': + '@babel/parser@7.24.8': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 - '@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-proposal-decorators@7.24.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.7) + '@babel/plugin-syntax-decorators': 7.24.1(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-syntax-decorators@7.24.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.9) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/types': 7.24.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-typescript@7.24.7(@babel/core@7.24.9)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.7) + '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.24.9) '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.9) transitivePeerDependencies: - supports-color @@ -12030,27 +12111,27 @@ snapshots: '@babel/template@7.24.7': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 - '@babel/traverse@7.24.7': + '@babel/traverse@7.24.8': dependencies: '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 + '@babel/generator': 7.24.10 '@babel/helper-environment-visitor': 7.24.7 '@babel/helper-function-name': 7.24.7 '@babel/helper-hoist-variables': 7.24.7 '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 debug: 4.3.5 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.7': + '@babel/types@7.24.9': dependencies: - '@babel/helper-string-parser': 7.24.7 + '@babel/helper-string-parser': 7.24.8 '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 @@ -12091,10 +12172,10 @@ snapshots: '@builder.io/partytown@0.10.2': {} - '@changesets/apply-release-plan@7.0.3': + '@changesets/apply-release-plan@7.0.4': dependencies: '@babel/runtime': 7.24.4 - '@changesets/config': 3.0.1 + '@changesets/config': 3.0.2 '@changesets/get-version-range-type': 0.4.0 '@changesets/git': 3.0.0 '@changesets/should-skip-package': 0.1.0 @@ -12108,11 +12189,11 @@ snapshots: resolve-from: 5.0.0 semver: 7.6.2 - '@changesets/assemble-release-plan@6.0.2': + '@changesets/assemble-release-plan@6.0.3': dependencies: '@babel/runtime': 7.24.4 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.0 + '@changesets/get-dependents-graph': 2.1.1 '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -12130,16 +12211,16 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.27.6': + '@changesets/cli@2.27.7': dependencies: '@babel/runtime': 7.24.4 - '@changesets/apply-release-plan': 7.0.3 - '@changesets/assemble-release-plan': 6.0.2 + '@changesets/apply-release-plan': 7.0.4 + '@changesets/assemble-release-plan': 6.0.3 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.1 + '@changesets/config': 3.0.2 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.0 - '@changesets/get-release-plan': 4.0.2 + '@changesets/get-dependents-graph': 2.1.1 + '@changesets/get-release-plan': 4.0.3 '@changesets/git': 3.0.0 '@changesets/logger': 0.1.0 '@changesets/pre': 2.0.0 @@ -12159,16 +12240,16 @@ snapshots: mri: 1.2.0 outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.3 + preferred-pm: 3.1.4 resolve-from: 5.0.0 semver: 7.6.2 spawndamnit: 2.0.0 term-size: 2.2.1 - '@changesets/config@3.0.1': + '@changesets/config@3.0.2': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.0 + '@changesets/get-dependents-graph': 2.1.1 '@changesets/logger': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -12179,7 +12260,7 @@ snapshots: dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@2.1.0': + '@changesets/get-dependents-graph@2.1.1': dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -12194,11 +12275,11 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.2': + '@changesets/get-release-plan@4.0.3': dependencies: '@babel/runtime': 7.24.4 - '@changesets/assemble-release-plan': 6.0.2 - '@changesets/config': 3.0.1 + '@changesets/assemble-release-plan': 6.0.3 + '@changesets/config': 3.0.2 '@changesets/pre': 2.0.0 '@changesets/read': 0.6.0 '@changesets/types': 6.0.0 @@ -12276,35 +12357,35 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@csstools/cascade-layer-name-parser@1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)': + '@csstools/cascade-layer-name-parser@1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 '@csstools/color-helpers@4.2.1': {} - '@csstools/css-calc@1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)': + '@csstools/css-calc@1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-color-parser@2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)': + '@csstools/css-color-parser@2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: '@csstools/color-helpers': 4.2.1 - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2)': + '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-tokenizer': 2.4.1 - '@csstools/css-tokenizer@2.3.2': {} + '@csstools/css-tokenizer@2.4.1': {} - '@csstools/media-query-list-parser@2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)': + '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 '@csstools/postcss-cascade-layers@4.0.6(postcss@8.4.39)': dependencies: @@ -12312,29 +12393,37 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.0 - '@csstools/postcss-color-function@3.0.17(postcss@8.4.39)': + '@csstools/postcss-color-function@3.0.19(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-color-mix-function@2.0.17(postcss@8.4.39)': + '@csstools/postcss-color-mix-function@2.0.19(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-exponential-functions@1.0.8(postcss@8.4.39)': + '@csstools/postcss-content-alt-text@1.0.0(postcss@8.4.39)': dependencies: - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) + '@csstools/utilities': 1.0.0(postcss@8.4.39) + postcss: 8.4.39 + + '@csstools/postcss-exponential-functions@1.0.9(postcss@8.4.39)': + dependencies: + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 '@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.39)': @@ -12343,34 +12432,34 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@1.0.10(postcss@8.4.39)': + '@csstools/postcss-gamut-mapping@1.0.11(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 - '@csstools/postcss-gradients-interpolation-method@4.0.18(postcss@8.4.39)': + '@csstools/postcss-gradients-interpolation-method@4.0.20(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-hwb-function@3.0.16(postcss@8.4.39)': + '@csstools/postcss-hwb-function@3.0.18(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-ic-unit@3.0.6(postcss@8.4.39)': + '@csstools/postcss-ic-unit@3.0.7(postcss@8.4.39)': dependencies: - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 postcss-value-parser: 4.2.0 @@ -12385,11 +12474,11 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.0 - '@csstools/postcss-light-dark-function@1.0.6(postcss@8.4.39)': + '@csstools/postcss-light-dark-function@1.0.8(postcss@8.4.39)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 @@ -12410,25 +12499,25 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@2.0.10(postcss@8.4.39)': + '@csstools/postcss-logical-viewport-units@2.0.11(postcss@8.4.39)': dependencies: - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-tokenizer': 2.4.1 '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-media-minmax@1.1.7(postcss@8.4.39)': + '@csstools/postcss-media-minmax@1.1.8(postcss@8.4.39)': dependencies: - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.39 - '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.10(postcss@8.4.39)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.11(postcss@8.4.39)': dependencies: - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.39 '@csstools/postcss-nested-calc@3.0.2(postcss@8.4.39)': @@ -12442,26 +12531,26 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@3.0.17(postcss@8.4.39)': + '@csstools/postcss-oklab-function@3.0.19(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 - '@csstools/postcss-progressive-custom-properties@3.2.0(postcss@8.4.39)': + '@csstools/postcss-progressive-custom-properties@3.3.0(postcss@8.4.39)': dependencies: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-relative-color-syntax@2.0.17(postcss@8.4.39)': + '@csstools/postcss-relative-color-syntax@2.0.19(postcss@8.4.39)': dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 @@ -12470,11 +12559,11 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.0 - '@csstools/postcss-stepped-value-functions@3.0.9(postcss@8.4.39)': + '@csstools/postcss-stepped-value-functions@3.0.10(postcss@8.4.39)': dependencies: - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 '@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.4.39)': @@ -12483,11 +12572,11 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@3.0.9(postcss@8.4.39)': + '@csstools/postcss-trigonometric-functions@3.0.10(postcss@8.4.39)': dependencies: - '@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/css-calc': 1.2.4(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 '@csstools/postcss-unset-value@3.0.1(postcss@8.4.39)': @@ -12603,12 +12692,12 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.6.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.7.0)': dependencies: - eslint: 9.6.0 + eslint: 9.7.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/regexpp@4.11.0': {} '@eslint/config-array@0.17.0': dependencies: @@ -12632,7 +12721,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.6.0': {} + '@eslint/js@9.7.0': {} '@eslint/object-schema@2.1.4': {} @@ -12640,6 +12729,8 @@ snapshots: '@fontsource/montserrat@5.0.18': {} + '@fortawesome/fontawesome-free@6.5.2': {} + '@humanwhocodes/module-importer@1.0.1': {} '@humanwhocodes/retry@0.3.0': {} @@ -12732,17 +12823,6 @@ snapshots: dependencies: minipass: 7.1.2 - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': - dependencies: - '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.11 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.0.8 - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -12921,7 +13001,7 @@ snapshots: unist-util-position-from-estree: 2.0.0 unist-util-stringify-position: 4.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 transitivePeerDependencies: - supports-color @@ -13015,20 +13095,20 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@playwright/test@1.45.0': + '@playwright/test@1.45.2': dependencies: - playwright: 1.45.0 + playwright: 1.45.2 '@polka/url@1.0.0-next.25': {} - '@preact/preset-vite@2.8.2(@babel/core@7.24.7)(preact@10.22.1)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@preact/preset-vite@2.8.2(@babel/core@7.24.9)(preact@10.22.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.7) - '@prefresh/vite': 2.4.5(preact@10.22.1)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.9) + '@prefresh/vite': 2.4.5(preact@10.22.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) '@rollup/pluginutils': 4.2.1 - babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.24.7) + babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.24.9) debug: 4.3.5 kolorist: 1.8.0 magic-string: 0.30.5 @@ -13036,16 +13116,16 @@ snapshots: resolve: 1.22.8 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - preact - supports-color - '@preact/signals-core@1.6.0': {} + '@preact/signals-core@1.7.0': {} - '@preact/signals@1.2.3(preact@10.22.1)': + '@preact/signals@1.3.0(preact@10.22.1)': dependencies: - '@preact/signals-core': 1.6.0 + '@preact/signals-core': 1.7.0 preact: 10.22.1 '@prefresh/babel-plugin@0.5.1': {} @@ -13056,15 +13136,15 @@ snapshots: '@prefresh/utils@1.2.0': {} - '@prefresh/vite@2.4.5(preact@10.22.1)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@prefresh/vite@2.4.5(preact@10.22.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@prefresh/babel-plugin': 0.5.1 '@prefresh/core': 1.5.2(preact@10.22.1) '@prefresh/utils': 1.2.0 '@rollup/pluginutils': 4.2.1 preact: 10.22.1 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - supports-color @@ -13073,95 +13153,100 @@ snapshots: estree-walker: 2.0.2 picomatch: 2.3.1 - '@rollup/pluginutils@5.1.0(rollup@4.18.0)': + '@rollup/pluginutils@5.1.0(rollup@4.18.1)': dependencies: '@types/estree': 1.0.5 estree-walker: 2.0.2 picomatch: 2.3.1 optionalDependencies: - rollup: 4.18.0 + rollup: 4.18.1 - '@rollup/rollup-android-arm-eabi@4.18.0': + '@rollup/rollup-android-arm-eabi@4.18.1': optional: true - '@rollup/rollup-android-arm64@4.18.0': + '@rollup/rollup-android-arm64@4.18.1': optional: true - '@rollup/rollup-darwin-arm64@4.18.0': + '@rollup/rollup-darwin-arm64@4.18.1': optional: true - '@rollup/rollup-darwin-x64@4.18.0': + '@rollup/rollup-darwin-x64@4.18.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + '@rollup/rollup-linux-arm-gnueabihf@4.18.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': + '@rollup/rollup-linux-arm-musleabihf@4.18.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': + '@rollup/rollup-linux-arm64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': + '@rollup/rollup-linux-arm64-musl@4.18.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.18.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': + '@rollup/rollup-linux-riscv64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': + '@rollup/rollup-linux-s390x-gnu@4.18.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': + '@rollup/rollup-linux-x64-gnu@4.18.1': optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': + '@rollup/rollup-linux-x64-musl@4.18.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': + '@rollup/rollup-win32-arm64-msvc@4.18.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': + '@rollup/rollup-win32-ia32-msvc@4.18.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': + '@rollup/rollup-win32-x64-msvc@4.18.1': optional: true - '@shikijs/core@1.10.0': {} - - '@sinclair/typebox@0.27.8': {} + '@shikijs/core@1.10.3': + dependencies: + '@types/hast': 3.0.4 '@sindresorhus/merge-streams@2.3.0': {} - '@solidjs/router@0.13.6(solid-js@1.8.18)': + '@solidjs/router@0.14.1(solid-js@1.8.18)': dependencies: solid-js: 1.8.18 - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@svelte+packages+svelte)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)))(svelte@svelte+packages+svelte)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@svelte+packages+svelte)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)))(svelte@svelte+packages+svelte)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@svelte+packages+svelte)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + '@sveltejs/vite-plugin-svelte': 3.1.1(svelte@svelte+packages+svelte)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) debug: 4.3.5 svelte: link:../svelte/packages/svelte - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.1(svelte@svelte+packages+svelte)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@sveltejs/vite-plugin-svelte@3.1.1(svelte@svelte+packages+svelte)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@svelte+packages+svelte)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)))(svelte@svelte+packages+svelte)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.1(svelte@svelte+packages+svelte)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)))(svelte@svelte+packages+svelte)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) debug: 4.3.5 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.10 svelte: link:../svelte/packages/svelte svelte-hmr: 0.16.0(svelte@svelte+packages+svelte) - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vitefu: 0.2.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vitefu: 0.2.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) transitivePeerDependencies: - supports-color + '@tailwindcss/forms@0.5.7(tailwindcss@3.4.5)': + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 3.4.5 + '@trysound/sax@0.2.0': {} '@ts-morph/common@0.20.0': @@ -13181,24 +13266,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 '@types/babel__generator@7.6.8': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/parser': 7.24.8 + '@babel/types': 7.24.9 '@types/babel__traverse@7.20.6': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 '@types/body-parser@1.19.5': dependencies: @@ -13379,7 +13464,7 @@ snapshots: dependencies: '@types/node': 18.19.31 - '@types/set-cookie-parser@2.4.9': + '@types/set-cookie-parser@2.4.10': dependencies: '@types/node': 18.19.31 @@ -13411,85 +13496,85 @@ snapshots: '@types/yargs-parser@21.0.3': {} - '@typescript-eslint/eslint-plugin@7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.2))(eslint@9.6.0)(typescript@5.5.2)': + '@typescript-eslint/eslint-plugin@7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/type-utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.14.1 - eslint: 9.6.0 + '@eslint-community/regexpp': 4.11.0 + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/type-utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.16.1 + eslint: 9.7.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.2) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.2)': + '@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + '@typescript-eslint/visitor-keys': 7.16.1 debug: 4.3.5 - eslint: 9.6.0 + eslint: 9.7.0 optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.14.1': + '@typescript-eslint/scope-manager@7.16.1': dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 - '@typescript-eslint/type-utils@7.14.1(eslint@9.6.0)(typescript@5.5.2)': + '@typescript-eslint/type-utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) debug: 4.3.5 - eslint: 9.6.0 - ts-api-utils: 1.3.0(typescript@5.5.2) + eslint: 9.7.0 + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.14.1': {} + '@typescript-eslint/types@7.16.1': {} - '@typescript-eslint/typescript-estree@7.14.1(typescript@5.5.2)': + '@typescript-eslint/typescript-estree@7.16.1(typescript@5.5.3)': dependencies: - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/visitor-keys': 7.14.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/visitor-keys': 7.16.1 debug: 4.3.5 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.2) + ts-api-utils: 1.3.0(typescript@5.5.3) optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.14.1(eslint@9.6.0)(typescript@5.5.2)': + '@typescript-eslint/utils@7.16.1(eslint@9.7.0)(typescript@5.5.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@typescript-eslint/scope-manager': 7.14.1 - '@typescript-eslint/types': 7.14.1 - '@typescript-eslint/typescript-estree': 7.14.1(typescript@5.5.2) - eslint: 9.6.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@typescript-eslint/scope-manager': 7.16.1 + '@typescript-eslint/types': 7.16.1 + '@typescript-eslint/typescript-estree': 7.16.1(typescript@5.5.3) + eslint: 9.7.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.14.1': + '@typescript-eslint/visitor-keys@7.16.1': dependencies: - '@typescript-eslint/types': 7.14.1 + '@typescript-eslint/types': 7.16.1 eslint-visitor-keys: 3.4.3 '@typescript/twoslash@3.1.0': @@ -13522,12 +13607,12 @@ snapshots: '@vercel/edge@1.1.1': {} - '@vercel/nft@0.27.2': + '@vercel/nft@0.27.3': dependencies: '@mapbox/node-pre-gyp': 1.0.11 '@rollup/pluginutils': 4.2.1 - acorn: 8.12.0 - acorn-import-attributes: 1.9.5(acorn@8.12.0) + acorn: 8.12.1 + acorn-import-attributes: 1.9.5(acorn@8.12.1) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -13540,81 +13625,84 @@ snapshots: - encoding - supports-color - '@vitejs/plugin-react@4.3.1(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))': + '@vitejs/plugin-react@4.3.1(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.9) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2))': + '@vitejs/plugin-vue-jsx@4.0.0(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3))': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) - '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vue: 3.4.31(typescript@5.5.2) + '@babel/core': 7.24.9 + '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.9) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.9) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vue: 3.4.31(typescript@5.5.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2))': + '@vitejs/plugin-vue@5.0.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3))': + dependencies: + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vue: 3.4.31(typescript@5.5.3) + + '@vitest/expect@2.0.3': dependencies: - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vue: 3.4.31(typescript@5.5.2) + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 + chai: 5.1.1 + tinyrainbow: 1.2.0 - '@vitest/expect@1.6.0': + '@vitest/pretty-format@2.0.3': dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.4.1 + tinyrainbow: 1.2.0 - '@vitest/runner@1.6.0': + '@vitest/runner@2.0.3': dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 + '@vitest/utils': 2.0.3 pathe: 1.1.2 - '@vitest/snapshot@1.6.0': + '@vitest/snapshot@2.0.3': dependencies: + '@vitest/pretty-format': 2.0.3 magic-string: 0.30.10 pathe: 1.1.2 - pretty-format: 29.7.0 - '@vitest/spy@1.6.0': + '@vitest/spy@2.0.3': dependencies: - tinyspy: 2.2.1 + tinyspy: 3.0.0 - '@vitest/utils@1.6.0': + '@vitest/utils@2.0.3': dependencies: - diff-sequences: 29.6.3 + '@vitest/pretty-format': 2.0.3 estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + loupe: 3.1.1 + tinyrainbow: 1.2.0 - '@volar/kit@2.2.5(typescript@5.5.2)': + '@volar/kit@2.4.0-alpha.16(typescript@5.5.3)': dependencies: - '@volar/language-service': 2.2.5 - '@volar/typescript': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 + '@volar/typescript': 2.4.0-alpha.16 typesafe-path: 0.2.2 - typescript: 5.5.2 + typescript: 5.5.3 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-core@2.2.5': + '@volar/language-core@2.4.0-alpha.16': dependencies: - '@volar/source-map': 2.2.5 + '@volar/source-map': 2.4.0-alpha.16 - '@volar/language-server@2.2.5': + '@volar/language-server@2.4.0-alpha.16': dependencies: - '@volar/language-core': 2.2.5 - '@volar/language-service': 2.2.5 - '@volar/snapshot-document': 2.2.5 - '@volar/typescript': 2.2.5 - '@vscode/l10n': 0.0.16 + '@volar/language-core': 2.4.0-alpha.16 + '@volar/language-service': 2.4.0-alpha.16 + '@volar/snapshot-document': 2.4.0-alpha.16 + '@volar/typescript': 2.4.0-alpha.16 path-browserify: 1.0.1 request-light: 0.7.0 vscode-languageserver: 9.0.1 @@ -13622,28 +13710,27 @@ snapshots: vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/language-service@2.2.5': + '@volar/language-service@2.4.0-alpha.16': dependencies: - '@volar/language-core': 2.2.5 + '@volar/language-core': 2.4.0-alpha.16 vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 - '@volar/snapshot-document@2.2.5': + '@volar/snapshot-document@2.4.0-alpha.16': dependencies: vscode-languageserver-protocol: 3.17.5 vscode-languageserver-textdocument: 1.0.11 - '@volar/source-map@2.2.5': - dependencies: - muggle-string: 0.4.1 + '@volar/source-map@2.4.0-alpha.16': {} - '@volar/typescript@2.2.5': + '@volar/typescript@2.4.0-alpha.16': dependencies: - '@volar/language-core': 2.2.5 + '@volar/language-core': 2.4.0-alpha.16 path-browserify: 1.0.1 + vscode-uri: 3.0.8 - '@vscode/emmet-helper@2.9.2': + '@vscode/emmet-helper@2.9.3': dependencies: emmet: 2.4.7 jsonc-parser: 2.3.1 @@ -13651,42 +13738,40 @@ snapshots: vscode-languageserver-types: 3.17.5 vscode-uri: 2.1.2 - '@vscode/l10n@0.0.16': {} - '@vscode/l10n@0.0.18': {} '@vue/babel-helper-vue-transform-on@1.2.2': {} - '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.7)': + '@vue/babel-plugin-jsx@1.2.2(@babel/core@7.24.9)': dependencies: '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.24.8 + '@babel/types': 7.24.9 '@vue/babel-helper-vue-transform-on': 1.2.2 - '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.7) + '@vue/babel-plugin-resolve-type': 1.2.2(@babel/core@7.24.9) camelcase: 6.3.0 html-tags: 3.3.1 svg-tags: 1.0.0 optionalDependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.7)': + '@vue/babel-plugin-resolve-type@1.2.2(@babel/core@7.24.9)': dependencies: '@babel/code-frame': 7.24.7 - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.24.7 - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@vue/compiler-sfc': 3.4.31 '@vue/compiler-core@3.4.31': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@vue/shared': 3.4.31 entities: 4.5.0 estree-walker: 2.0.2 @@ -13699,7 +13784,7 @@ snapshots: '@vue/compiler-sfc@3.4.31': dependencies: - '@babel/parser': 7.24.7 + '@babel/parser': 7.24.8 '@vue/compiler-core': 3.4.31 '@vue/compiler-dom': 3.4.31 '@vue/compiler-ssr': 3.4.31 @@ -13714,21 +13799,21 @@ snapshots: '@vue/compiler-dom': 3.4.31 '@vue/shared': 3.4.31 - '@vue/devtools-core@7.3.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2))': + '@vue/devtools-core@7.3.6(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3))': dependencies: - '@vue/devtools-kit': 7.3.5 - '@vue/devtools-shared': 7.3.5 + '@vue/devtools-kit': 7.3.6 + '@vue/devtools-shared': 7.3.6 mitt: 3.0.1 nanoid: 3.3.7 pathe: 1.1.2 - vite-hot-client: 0.2.3(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) - vue: 3.4.31(typescript@5.5.2) + vite-hot-client: 0.2.3(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) + vue: 3.4.31(typescript@5.5.3) transitivePeerDependencies: - vite - '@vue/devtools-kit@7.3.5': + '@vue/devtools-kit@7.3.6': dependencies: - '@vue/devtools-shared': 7.3.5 + '@vue/devtools-shared': 7.3.6 birpc: 0.2.17 hookable: 5.5.3 mitt: 3.0.1 @@ -13736,7 +13821,7 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.1 - '@vue/devtools-shared@7.3.5': + '@vue/devtools-shared@7.3.6': dependencies: rfdc: 1.4.1 @@ -13760,11 +13845,11 @@ snapshots: '@vue/shared': 3.4.31 csstype: 3.1.3 - '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.2))': + '@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.3))': dependencies: '@vue/compiler-ssr': 3.4.31 '@vue/shared': 3.4.31 - vue: 3.4.31(typescript@5.5.2) + vue: 3.4.31(typescript@5.5.3) '@vue/shared@3.1.5': {} @@ -13779,17 +13864,15 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.12.0): + acorn-import-attributes@1.9.5(acorn@8.12.1): dependencies: - acorn: 8.12.0 + acorn: 8.12.1 - acorn-jsx@5.3.2(acorn@8.12.0): + acorn-jsx@5.3.2(acorn@8.12.1): dependencies: - acorn: 8.12.0 + acorn: 8.12.1 - acorn-walk@8.3.2: {} - - acorn@8.12.0: {} + acorn@8.12.1: {} agent-base@6.0.2: dependencies: @@ -13841,8 +13924,6 @@ snapshots: dependencies: color-convert: 2.0.1 - ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} any-promise@1.3.0: {} @@ -13877,14 +13958,14 @@ snapshots: array-union@2.1.0: {} - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} astring@1.8.6: {} astro-auto-import@0.4.2(astro@packages+astro): dependencies: '@types/node': 18.19.31 - acorn: 8.12.0 + acorn: 8.12.1 astro: link:packages/astro astro-embed@0.7.2(astro@packages+astro): @@ -13946,27 +14027,25 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - axobject-query@4.0.0: - dependencies: - dequal: 2.0.3 + axobject-query@4.1.0: {} - babel-plugin-jsx-dom-expressions@0.37.19(@babel/core@7.24.7): + babel-plugin-jsx-dom-expressions@0.37.19(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.9) + '@babel/types': 7.24.9 html-entities: 2.3.3 validate-html-nesting: 1.2.2 - babel-plugin-transform-hook-names@1.0.2(@babel/core@7.24.7): + babel-plugin-transform-hook-names@1.0.2(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 - babel-preset-solid@1.8.16(@babel/core@7.24.7): + babel-preset-solid@1.8.16(@babel/core@7.24.9): dependencies: - '@babel/core': 7.24.7 - babel-plugin-jsx-dom-expressions: 0.37.19(@babel/core@7.24.7) + '@babel/core': 7.24.9 + babel-plugin-jsx-dom-expressions: 0.37.19(@babel/core@7.24.9) bail@2.0.2: {} @@ -14086,15 +14165,13 @@ snapshots: ccount@2.0.1: {} - chai@4.4.1: + chai@5.1.1: dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.1 + pathval: 2.0.0 chalk@2.4.2: dependencies: @@ -14121,9 +14198,7 @@ snapshots: chardet@0.7.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + check-error@2.1.1: {} cheerio-select@2.1.0: dependencies: @@ -14322,7 +14397,7 @@ snapshots: css-what@6.1.0: {} - cssdb@8.0.0: {} + cssdb@8.1.0: {} cssesc@3.0.0: {} @@ -14365,9 +14440,7 @@ snapshots: deep-diff@1.0.2: {} - deep-eql@4.1.3: - dependencies: - type-detect: 4.0.8 + deep-eql@5.0.2: {} deep-is@0.1.4: {} @@ -14431,8 +14504,6 @@ snapshots: didyoumean@1.2.2: {} - diff-sequences@29.6.3: {} - diff@5.2.0: {} dir-glob@3.0.1: @@ -14463,7 +14534,7 @@ snapshots: dotenv@8.6.0: {} - drizzle-orm@0.31.2(@libsql/client@0.7.0)(@types/react@18.3.3)(react@18.3.1): + drizzle-orm@0.31.4(@libsql/client@0.7.0)(@types/react@18.3.3)(react@18.3.1): optionalDependencies: '@libsql/client': 0.7.0 '@types/react': 18.3.3 @@ -14567,18 +14638,18 @@ snapshots: eslint-plugin-no-only-tests@3.1.0: {} - eslint-plugin-regexp@2.6.0(eslint@9.6.0): + eslint-plugin-regexp@2.6.0(eslint@9.7.0): dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/regexpp': 4.11.0 comment-parser: 1.4.1 - eslint: 9.6.0 + eslint: 9.7.0 jsdoc-type-pratt-parser: 4.0.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-scope@8.0.1: + eslint-scope@8.0.2: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -14587,13 +14658,13 @@ snapshots: eslint-visitor-keys@4.0.0: {} - eslint@9.6.0: + eslint@9.7.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.6.0) - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.7.0) + '@eslint-community/regexpp': 4.11.0 '@eslint/config-array': 0.17.0 '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.6.0 + '@eslint/js': 9.7.0 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.3.0 '@nodelib/fs.walk': 1.2.8 @@ -14602,7 +14673,7 @@ snapshots: cross-spawn: 7.0.3 debug: 4.3.5 escape-string-regexp: 4.0.0 - eslint-scope: 8.0.1 + eslint-scope: 8.0.2 eslint-visitor-keys: 4.0.0 espree: 10.1.0 esquery: 1.5.0 @@ -14630,8 +14701,8 @@ snapshots: espree@10.1.0: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) eslint-visitor-keys: 4.0.0 esprima@4.0.1: {} @@ -14797,6 +14868,8 @@ snapshots: transitivePeerDependencies: - supports-color + find-up-simple@1.0.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -15029,7 +15102,7 @@ snapshots: devlop: 1.1.0 hast-util-from-parse5: 8.0.1 parse5: 7.1.2 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message: 4.0.2 hast-util-from-parse5@8.0.1: @@ -15039,7 +15112,7 @@ snapshots: devlop: 1.1.0 hastscript: 8.0.0 property-information: 6.5.0 - vfile: 6.0.1 + vfile: 6.0.2 vfile-location: 5.0.2 web-namespaces: 2.0.1 @@ -15071,7 +15144,7 @@ snapshots: parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 @@ -15403,8 +15476,6 @@ snapshots: js-tokens@4.0.0: {} - js-tokens@9.0.0: {} - js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -15551,11 +15622,6 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - local-pkg@0.5.0: - dependencies: - mlly: 1.6.1 - pkg-types: 1.0.3 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 @@ -15593,7 +15659,7 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@2.3.7: + loupe@3.1.1: dependencies: get-func-name: 2.0.2 @@ -15816,7 +15882,7 @@ snapshots: trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 - vfile: 6.0.1 + vfile: 6.0.2 mdast-util-to-markdown@2.1.0: dependencies: @@ -16001,8 +16067,8 @@ snapshots: micromark-extension-mdxjs@3.0.0: dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) micromark-extension-mdx-expression: 3.0.0 micromark-extension-mdx-jsx: 3.0.0 micromark-extension-mdx-md: 2.0.0 @@ -16163,6 +16229,8 @@ snapshots: mimic-fn@4.0.0: {} + mini-svg-data-uri@1.4.4: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -16205,13 +16273,6 @@ snapshots: mkdirp@3.0.1: {} - mlly@1.6.1: - dependencies: - acorn: 8.12.0 - pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.5.3 - mri@1.2.0: {} mrmime@2.0.0: {} @@ -16354,7 +16415,7 @@ snapshots: dependencies: which-pm-runs: 1.1.0 - open-props@1.7.4: {} + open-props@1.7.5: {} open@10.1.0: dependencies: @@ -16407,9 +16468,9 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@5.0.0: + p-limit@6.1.0: dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.1.1 p-locate@4.1.0: dependencies: @@ -16462,7 +16523,7 @@ snapshots: nlcst-to-string: 4.0.0 unist-util-modify-children: 4.0.0 unist-util-visit-children: 3.0.0 - vfile: 6.0.1 + vfile: 6.0.2 parse-numeric-range@1.3.0: {} @@ -16511,7 +16572,7 @@ snapshots: pathe@1.1.2: {} - pathval@1.1.1: {} + pathval@2.0.0: {} perfect-debounce@1.0.0: {} @@ -16535,17 +16596,11 @@ snapshots: dependencies: find-up: 4.1.0 - pkg-types@1.0.3: - dependencies: - jsonc-parser: 3.2.1 - mlly: 1.6.1 - pathe: 1.1.2 - - playwright-core@1.45.0: {} + playwright-core@1.45.2: {} - playwright@1.45.0: + playwright@1.45.2: dependencies: - playwright-core: 1.45.0 + playwright-core: 1.45.2 optionalDependencies: fsevents: 2.3.2 @@ -16561,12 +16616,12 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@6.0.12(postcss@8.4.39): + postcss-color-functional-notation@6.0.14(postcss@8.4.39): dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 @@ -16582,28 +16637,28 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - postcss-custom-media@10.0.7(postcss@8.4.39): + postcss-custom-media@10.0.8(postcss@8.4.39): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/media-query-list-parser': 2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) postcss: 8.4.39 - postcss-custom-properties@13.3.11(postcss@8.4.39): + postcss-custom-properties@13.3.12(postcss@8.4.39): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 postcss-value-parser: 4.2.0 - postcss-custom-selectors@7.1.11(postcss@8.4.39): + postcss-custom-selectors@7.1.12(postcss@8.4.39): dependencies: - '@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 + '@csstools/cascade-layer-name-parser': 1.0.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 postcss: 8.4.39 postcss-selector-parser: 6.1.0 @@ -16612,9 +16667,9 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.0 - postcss-double-position-gradients@5.0.6(postcss@8.4.39): + postcss-double-position-gradients@5.0.7(postcss@8.4.39): dependencies: - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 postcss-value-parser: 4.2.0 @@ -16655,12 +16710,12 @@ snapshots: camelcase-css: 2.0.1 postcss: 8.4.39 - postcss-lab-function@6.0.17(postcss@8.4.39): + postcss-lab-function@6.0.19(postcss@8.4.39): dependencies: - '@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2) - '@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2) - '@csstools/css-tokenizer': 2.3.2 - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) + '@csstools/css-color-parser': 2.0.5(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1) + '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) + '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) '@csstools/utilities': 1.0.0(postcss@8.4.39) postcss: 8.4.39 @@ -16706,60 +16761,61 @@ snapshots: postcss: 8.4.39 postcss-value-parser: 4.2.0 - postcss-preset-env@9.5.15(postcss@8.4.39): + postcss-preset-env@9.6.0(postcss@8.4.39): dependencies: '@csstools/postcss-cascade-layers': 4.0.6(postcss@8.4.39) - '@csstools/postcss-color-function': 3.0.17(postcss@8.4.39) - '@csstools/postcss-color-mix-function': 2.0.17(postcss@8.4.39) - '@csstools/postcss-exponential-functions': 1.0.8(postcss@8.4.39) + '@csstools/postcss-color-function': 3.0.19(postcss@8.4.39) + '@csstools/postcss-color-mix-function': 2.0.19(postcss@8.4.39) + '@csstools/postcss-content-alt-text': 1.0.0(postcss@8.4.39) + '@csstools/postcss-exponential-functions': 1.0.9(postcss@8.4.39) '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.39) - '@csstools/postcss-gamut-mapping': 1.0.10(postcss@8.4.39) - '@csstools/postcss-gradients-interpolation-method': 4.0.18(postcss@8.4.39) - '@csstools/postcss-hwb-function': 3.0.16(postcss@8.4.39) - '@csstools/postcss-ic-unit': 3.0.6(postcss@8.4.39) + '@csstools/postcss-gamut-mapping': 1.0.11(postcss@8.4.39) + '@csstools/postcss-gradients-interpolation-method': 4.0.20(postcss@8.4.39) + '@csstools/postcss-hwb-function': 3.0.18(postcss@8.4.39) + '@csstools/postcss-ic-unit': 3.0.7(postcss@8.4.39) '@csstools/postcss-initial': 1.0.1(postcss@8.4.39) '@csstools/postcss-is-pseudo-class': 4.0.8(postcss@8.4.39) - '@csstools/postcss-light-dark-function': 1.0.6(postcss@8.4.39) + '@csstools/postcss-light-dark-function': 1.0.8(postcss@8.4.39) '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.39) '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.39) '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.39) '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.39) - '@csstools/postcss-logical-viewport-units': 2.0.10(postcss@8.4.39) - '@csstools/postcss-media-minmax': 1.1.7(postcss@8.4.39) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.10(postcss@8.4.39) + '@csstools/postcss-logical-viewport-units': 2.0.11(postcss@8.4.39) + '@csstools/postcss-media-minmax': 1.1.8(postcss@8.4.39) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.11(postcss@8.4.39) '@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.39) '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.39) - '@csstools/postcss-oklab-function': 3.0.17(postcss@8.4.39) - '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39) - '@csstools/postcss-relative-color-syntax': 2.0.17(postcss@8.4.39) + '@csstools/postcss-oklab-function': 3.0.19(postcss@8.4.39) + '@csstools/postcss-progressive-custom-properties': 3.3.0(postcss@8.4.39) + '@csstools/postcss-relative-color-syntax': 2.0.19(postcss@8.4.39) '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.39) - '@csstools/postcss-stepped-value-functions': 3.0.9(postcss@8.4.39) + '@csstools/postcss-stepped-value-functions': 3.0.10(postcss@8.4.39) '@csstools/postcss-text-decoration-shorthand': 3.0.7(postcss@8.4.39) - '@csstools/postcss-trigonometric-functions': 3.0.9(postcss@8.4.39) + '@csstools/postcss-trigonometric-functions': 3.0.10(postcss@8.4.39) '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.39) autoprefixer: 10.4.19(postcss@8.4.39) browserslist: 4.23.1 css-blank-pseudo: 6.0.2(postcss@8.4.39) css-has-pseudo: 6.0.5(postcss@8.4.39) css-prefers-color-scheme: 9.0.1(postcss@8.4.39) - cssdb: 8.0.0 + cssdb: 8.1.0 postcss: 8.4.39 postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.39) postcss-clamp: 4.1.0(postcss@8.4.39) - postcss-color-functional-notation: 6.0.12(postcss@8.4.39) + postcss-color-functional-notation: 6.0.14(postcss@8.4.39) postcss-color-hex-alpha: 9.0.4(postcss@8.4.39) postcss-color-rebeccapurple: 9.0.3(postcss@8.4.39) - postcss-custom-media: 10.0.7(postcss@8.4.39) - postcss-custom-properties: 13.3.11(postcss@8.4.39) - postcss-custom-selectors: 7.1.11(postcss@8.4.39) + postcss-custom-media: 10.0.8(postcss@8.4.39) + postcss-custom-properties: 13.3.12(postcss@8.4.39) + postcss-custom-selectors: 7.1.12(postcss@8.4.39) postcss-dir-pseudo-class: 8.0.1(postcss@8.4.39) - postcss-double-position-gradients: 5.0.6(postcss@8.4.39) + postcss-double-position-gradients: 5.0.7(postcss@8.4.39) postcss-focus-visible: 9.0.1(postcss@8.4.39) postcss-focus-within: 8.0.1(postcss@8.4.39) postcss-font-variant: 5.0.0(postcss@8.4.39) postcss-gap-properties: 5.0.1(postcss@8.4.39) postcss-image-set-function: 6.0.3(postcss@8.4.39) - postcss-lab-function: 6.0.17(postcss@8.4.39) + postcss-lab-function: 6.0.19(postcss@8.4.39) postcss-logical: 7.0.1(postcss@8.4.39) postcss-nesting: 12.1.5(postcss@8.4.39) postcss-opacity-percentage: 2.0.0(postcss@8.4.39) @@ -16797,48 +16853,41 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 - preact-render-to-string@6.3.1(preact@10.22.1): - dependencies: - preact: 10.22.1 - pretty-format: 3.8.0 - - preact-ssr-prepass@1.2.1(preact@10.22.1): + preact-render-to-string@6.5.5(preact@10.22.1): dependencies: preact: 10.22.1 preact@10.22.1: {} - preferred-pm@3.1.3: + preferred-pm@3.1.4: dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 - which-pm: 2.0.0 + which-pm: 2.2.0 + + preferred-pm@4.0.0: + dependencies: + find-up-simple: 1.0.0 + find-yarn-workspace-root2: 1.2.16 + which-pm: 3.0.0 prelude-ls@1.2.1: {} prettier-plugin-astro@0.14.0: dependencies: '@astrojs/compiler': 1.8.2 - prettier: 3.3.2 + prettier: 3.3.3 sass-formatter: 0.7.9 prettier@2.8.8: {} - prettier@3.3.2: {} + prettier@3.3.3: {} pretty-bytes@5.6.0: {} pretty-bytes@6.1.1: {} - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - - pretty-format@3.8.0: {} - prismjs@1.29.0: {} progress@2.0.3: {} @@ -16891,8 +16940,6 @@ snapshots: react: 19.0.0-rc-fb9a90fa48-20240614 scheduler: 0.25.0-rc-fb9a90fa48-20240614 - react-is@18.2.0: {} - react-refresh@0.14.2: {} react@18.3.1: @@ -16926,7 +16973,7 @@ snapshots: refa@0.12.1: dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 regenerator-runtime@0.13.11: {} @@ -16934,7 +16981,7 @@ snapshots: regexp-ast-analysis@0.7.1: dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 refa: 0.12.1 rehype-autolink-headings@7.1.0: @@ -16968,7 +17015,7 @@ snapshots: hast-util-from-html: 2.0.1 unified: 11.0.5 - rehype-pretty-code@0.13.2(shiki@1.10.0): + rehype-pretty-code@0.13.2(shiki@1.10.3): dependencies: '@types/hast': 3.0.4 hast-util-to-string: 3.0.0 @@ -16977,13 +17024,13 @@ snapshots: unified: 11.0.5 unist-util-visit: 5.0.0 optionalDependencies: - shiki: 1.10.0 + shiki: 1.10.3 rehype-raw@7.0.0: dependencies: '@types/hast': 3.0.4 hast-util-raw: 9.0.2 - vfile: 6.0.1 + vfile: 6.0.2 rehype-slug@6.0.0: dependencies: @@ -17060,9 +17107,9 @@ snapshots: '@types/mdast': 4.0.4 mdast-util-to-hast: 13.1.0 unified: 11.0.5 - vfile: 6.0.1 + vfile: 6.0.2 - remark-shiki-twoslash@3.1.3(typescript@5.5.2): + remark-shiki-twoslash@3.1.3(typescript@5.5.3): dependencies: '@types/unist': 2.0.10 '@typescript/twoslash': 3.1.0 @@ -17070,14 +17117,14 @@ snapshots: fenceparser: 1.1.1 regenerator-runtime: 0.13.11 shiki: 0.10.1 - shiki-twoslash: 3.1.2(typescript@5.5.2) + shiki-twoslash: 3.1.2(typescript@5.5.3) tslib: 2.1.0 - typescript: 5.5.2 + typescript: 5.5.3 unist-util-visit: 2.0.3 transitivePeerDependencies: - supports-color - remark-smartypants@3.0.1: + remark-smartypants@3.0.2: dependencies: retext: 9.0.0 retext-smartypants: 6.1.0 @@ -17157,26 +17204,26 @@ snapshots: dependencies: glob: 10.3.12 - rollup@4.18.0: + rollup@4.18.1: dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 + '@rollup/rollup-android-arm-eabi': 4.18.1 + '@rollup/rollup-android-arm64': 4.18.1 + '@rollup/rollup-darwin-arm64': 4.18.1 + '@rollup/rollup-darwin-x64': 4.18.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.18.1 + '@rollup/rollup-linux-arm-musleabihf': 4.18.1 + '@rollup/rollup-linux-arm64-gnu': 4.18.1 + '@rollup/rollup-linux-arm64-musl': 4.18.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.18.1 + '@rollup/rollup-linux-riscv64-gnu': 4.18.1 + '@rollup/rollup-linux-s390x-gnu': 4.18.1 + '@rollup/rollup-linux-x64-gnu': 4.18.1 + '@rollup/rollup-linux-x64-musl': 4.18.1 + '@rollup/rollup-win32-arm64-msvc': 4.18.1 + '@rollup/rollup-win32-ia32-msvc': 4.18.1 + '@rollup/rollup-win32-x64-msvc': 4.18.1 fsevents: 2.3.3 rrweb-cssom@0.6.0: {} @@ -17197,7 +17244,7 @@ snapshots: dependencies: suf-log: 2.5.3 - sass@1.77.6: + sass@1.77.8: dependencies: chokidar: 3.6.0 immutable: 4.3.5 @@ -17217,7 +17264,7 @@ snapshots: scslre@0.3.0: dependencies: - '@eslint-community/regexpp': 4.10.0 + '@eslint-community/regexpp': 4.11.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 @@ -17322,13 +17369,13 @@ snapshots: shebang-regex@3.0.0: {} - shiki-twoslash@3.1.2(typescript@5.5.2): + shiki-twoslash@3.1.2(typescript@5.5.3): dependencies: '@typescript/twoslash': 3.1.0 '@typescript/vfs': 1.3.4 fenceparser: 1.1.1 shiki: 0.10.1 - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color @@ -17338,9 +17385,10 @@ snapshots: vscode-oniguruma: 1.7.0 vscode-textmate: 5.2.0 - shiki@1.10.0: + shiki@1.10.3: dependencies: - '@shikijs/core': 1.10.0 + '@shikijs/core': 1.10.3 + '@types/hast': 3.0.4 side-channel@1.0.6: dependencies: @@ -17406,9 +17454,9 @@ snapshots: solid-refresh@0.6.3(solid-js@1.8.18): dependencies: - '@babel/generator': 7.24.7 + '@babel/generator': 7.24.10 '@babel/helper-module-imports': 7.24.7 - '@babel/types': 7.24.7 + '@babel/types': 7.24.9 solid-js: 1.8.18 transitivePeerDependencies: - supports-color @@ -17499,10 +17547,6 @@ snapshots: strip-json-comments@5.0.1: {} - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 - strnum@1.0.5: {} style-to-object@0.4.4: @@ -17554,12 +17598,12 @@ snapshots: dependencies: svelte: link:../svelte/packages/svelte - svelte2tsx@0.7.13(svelte@svelte+packages+svelte)(typescript@5.5.2): + svelte2tsx@0.7.13(svelte@svelte+packages+svelte)(typescript@5.5.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 svelte: link:../svelte/packages/svelte - typescript: 5.5.2 + typescript: 5.5.3 svg-tags@1.0.0: {} @@ -17575,7 +17619,7 @@ snapshots: symbol-tree@3.2.4: {} - tailwindcss@3.4.4: + tailwindcss@3.4.5: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -17650,11 +17694,13 @@ snapshots: globalyzer: 0.1.0 globrex: 0.1.2 - tinybench@2.7.0: {} + tinybench@2.8.0: {} + + tinypool@1.0.0: {} - tinypool@0.8.4: {} + tinyrainbow@1.2.0: {} - tinyspy@2.2.1: {} + tinyspy@3.0.0: {} tmp@0.0.33: dependencies: @@ -17691,9 +17737,9 @@ snapshots: trough@2.2.0: {} - ts-api-utils@1.3.0(typescript@5.5.2): + ts-api-utils@1.3.0(typescript@5.5.3): dependencies: - typescript: 5.5.2 + typescript: 5.5.3 ts-interface-checker@0.1.13: {} @@ -17702,9 +17748,9 @@ snapshots: '@ts-morph/common': 0.20.0 code-block-writer: 12.0.0 - tsconfck@3.1.1(typescript@5.5.2): + tsconfck@3.1.1(typescript@5.5.3): optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 tsconfig-resolver@3.0.1: dependencies: @@ -17757,8 +17803,6 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@1.4.0: {} type-fest@2.19.0: {} @@ -17780,22 +17824,22 @@ snapshots: typesafe-path@0.2.2: {} - typescript-auto-import-cache@0.3.2: + typescript-auto-import-cache@0.3.3: dependencies: semver: 7.6.2 - typescript-eslint@7.14.1(eslint@9.6.0)(typescript@5.5.2): + typescript-eslint@7.16.1(eslint@9.7.0)(typescript@5.5.3): dependencies: - '@typescript-eslint/eslint-plugin': 7.14.1(@typescript-eslint/parser@7.14.1(eslint@9.6.0)(typescript@5.5.2))(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/parser': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - '@typescript-eslint/utils': 7.14.1(eslint@9.6.0)(typescript@5.5.2) - eslint: 9.6.0 + '@typescript-eslint/eslint-plugin': 7.16.1(@typescript-eslint/parser@7.16.1(eslint@9.7.0)(typescript@5.5.3))(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/parser': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + '@typescript-eslint/utils': 7.16.1(eslint@9.7.0)(typescript@5.5.3) + eslint: 9.7.0 optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 transitivePeerDependencies: - supports-color - typescript@5.5.2: {} + typescript@5.5.3: {} ufo@1.5.3: {} @@ -17819,7 +17863,7 @@ snapshots: extend: 3.0.2 is-plain-obj: 4.1.0 trough: 2.2.0 - vfile: 6.0.1 + vfile: 6.0.2 unist-util-find-after@5.0.0: dependencies: @@ -17939,30 +17983,30 @@ snapshots: vfile-location@5.0.2: dependencies: '@types/unist': 3.0.2 - vfile: 6.0.1 + vfile: 6.0.2 vfile-message@4.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 - vfile@6.0.1: + vfile@6.0.2: dependencies: '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 - vite-hot-client@0.2.3(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vite-hot-client@0.2.3(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): dependencies: - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) - vite-node@1.6.0(@types/node@20.12.7)(sass@1.77.6): + vite-node@2.0.3(@types/node@20.12.7)(sass@1.77.8): dependencies: cac: 6.7.14 debug: 4.3.5 pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + tinyrainbow: 1.2.0 + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - '@types/node' - less @@ -17973,10 +18017,10 @@ snapshots: - supports-color - terser - vite-plugin-inspect@0.8.4(rollup@4.18.0)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vite-plugin-inspect@0.8.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): dependencies: '@antfu/utils': 0.7.8 - '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + '@rollup/pluginutils': 5.1.0(rollup@4.18.1) debug: 4.3.5 error-stack-parser-es: 0.1.1 fs-extra: 11.2.0 @@ -17984,96 +18028,95 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.0.1 sirv: 2.0.4 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - rollup - supports-color - vite-plugin-solid@2.10.2(solid-js@1.8.18)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vite-plugin-solid@2.10.2(solid-js@1.8.18)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.24.9 '@types/babel__core': 7.20.5 - babel-preset-solid: 1.8.16(@babel/core@7.24.7) + babel-preset-solid: 1.8.16(@babel/core@7.24.9) merge-anything: 5.1.7 solid-js: 1.8.18 solid-refresh: 0.6.3(solid-js@1.8.18) - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vitefu: 0.2.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vitefu: 0.2.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.3.5(rollup@4.18.0)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)): + vite-plugin-vue-devtools@7.3.6(rollup@4.18.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)): dependencies: - '@vue/devtools-core': 7.3.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6))(vue@3.4.31(typescript@5.5.2)) - '@vue/devtools-kit': 7.3.5 - '@vue/devtools-shared': 7.3.5 + '@vue/devtools-core': 7.3.6(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8))(vue@3.4.31(typescript@5.5.3)) + '@vue/devtools-kit': 7.3.6 + '@vue/devtools-shared': 7.3.6 execa: 8.0.1 sirv: 2.0.4 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vite-plugin-inspect: 0.8.4(rollup@4.18.0)(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) - vite-plugin-vue-inspector: 5.1.2(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vite-plugin-inspect: 0.8.4(rollup@4.18.1)(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) + vite-plugin-vue-inspector: 5.1.2(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.1.2(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vite-plugin-vue-inspector@5.1.2(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.7) - '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7) - '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.7) - '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.7) + '@babel/core': 7.24.9 + '@babel/plugin-proposal-decorators': 7.24.1(@babel/core@7.24.9) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.9) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.9) + '@babel/plugin-transform-typescript': 7.24.7(@babel/core@7.24.9) + '@vue/babel-plugin-jsx': 1.2.2(@babel/core@7.24.9) '@vue/compiler-dom': 3.4.31 kolorist: 1.8.0 magic-string: 0.30.10 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) transitivePeerDependencies: - supports-color - vite-svg-loader@5.1.0(vue@3.4.31(typescript@5.5.2)): + vite-svg-loader@5.1.0(vue@3.4.31(typescript@5.5.3)): dependencies: svgo: 3.2.0 optionalDependencies: - vue: 3.4.31(typescript@5.5.2) + vue: 3.4.31(typescript@5.5.3) - vite@5.3.2(@types/node@20.12.7)(sass@1.77.6): + vite@5.3.4(@types/node@20.12.7)(sass@1.77.8): dependencies: esbuild: 0.21.5 postcss: 8.4.39 - rollup: 4.18.0 + rollup: 4.18.1 optionalDependencies: '@types/node': 20.12.7 fsevents: 2.3.3 - sass: 1.77.6 + sass: 1.77.8 - vitefu@0.2.5(vite@5.3.2(@types/node@20.12.7)(sass@1.77.6)): + vitefu@0.2.5(vite@5.3.4(@types/node@20.12.7)(sass@1.77.8)): optionalDependencies: - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) - vitest@1.6.0(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.6): + vitest@2.0.3(@types/node@20.12.7)(jsdom@23.2.0)(sass@1.77.8): dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.4.1 + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.3 + '@vitest/pretty-format': 2.0.3 + '@vitest/runner': 2.0.3 + '@vitest/snapshot': 2.0.3 + '@vitest/spy': 2.0.3 + '@vitest/utils': 2.0.3 + chai: 5.1.1 debug: 4.3.5 execa: 8.0.1 - local-pkg: 0.5.0 magic-string: 0.30.10 pathe: 1.1.2 - picocolors: 1.0.1 std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.7.0 - tinypool: 0.8.4 - vite: 5.3.2(@types/node@20.12.7)(sass@1.77.6) - vite-node: 1.6.0(@types/node@20.12.7)(sass@1.77.6) + tinybench: 2.8.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.3.4(@types/node@20.12.7)(sass@1.77.8) + vite-node: 2.0.3(@types/node@20.12.7)(sass@1.77.8) why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.12.7 @@ -18087,59 +18130,63 @@ snapshots: - supports-color - terser - volar-service-css@0.0.45(@volar/language-service@2.2.5): + volar-service-css@0.0.59(@volar/language-service@2.4.0-alpha.16): dependencies: - vscode-css-languageservice: 6.2.13 + vscode-css-languageservice: 6.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - volar-service-emmet@0.0.45(@volar/language-service@2.2.5): + volar-service-emmet@0.0.59(@volar/language-service@2.4.0-alpha.16): dependencies: '@emmetio/css-parser': 0.4.0 '@emmetio/html-matcher': 1.3.0 - '@vscode/emmet-helper': 2.9.2 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - volar-service-html@0.0.45(@volar/language-service@2.2.5): + volar-service-html@0.0.59(@volar/language-service@2.4.0-alpha.16): dependencies: - vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' + vscode-html-languageservice: 5.3.0 vscode-languageserver-textdocument: 1.0.11 vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - volar-service-prettier@0.0.45(@volar/language-service@2.2.5)(prettier@3.3.2): + volar-service-prettier@0.0.59(@volar/language-service@2.4.0-alpha.16)(prettier@3.3.3): dependencies: vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 - prettier: 3.3.2 + '@volar/language-service': 2.4.0-alpha.16 + prettier: 3.3.3 - volar-service-typescript-twoslash-queries@0.0.45(@volar/language-service@2.2.5): + volar-service-typescript-twoslash-queries@0.0.59(@volar/language-service@2.4.0-alpha.16): + dependencies: + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - volar-service-typescript@0.0.45(@volar/language-service@2.2.5): + volar-service-typescript@0.0.59(@volar/language-service@2.4.0-alpha.16): dependencies: path-browserify: 1.0.1 semver: 7.6.2 - typescript-auto-import-cache: 0.3.2 + typescript-auto-import-cache: 0.3.3 vscode-languageserver-textdocument: 1.0.11 vscode-nls: 5.2.0 + vscode-uri: 3.0.8 optionalDependencies: - '@volar/language-service': 2.2.5 + '@volar/language-service': 2.4.0-alpha.16 - vscode-css-languageservice@6.2.13: + vscode-css-languageservice@6.3.0: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 vscode-languageserver-types: 3.17.5 vscode-uri: 3.0.8 - vscode-html-languageservice@5.2.0: + vscode-html-languageservice@5.3.0: dependencies: '@vscode/l10n': 0.0.18 vscode-languageserver-textdocument: 1.0.11 @@ -18171,15 +18218,15 @@ snapshots: vscode-uri@3.0.8: {} - vue@3.4.31(typescript@5.5.2): + vue@3.4.31(typescript@5.5.3): dependencies: '@vue/compiler-dom': 3.4.31 '@vue/compiler-sfc': 3.4.31 '@vue/runtime-dom': 3.4.31 - '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.2)) + '@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.3)) '@vue/shared': 3.4.31 optionalDependencies: - typescript: 5.5.2 + typescript: 5.5.3 w3c-xmlserializer@5.0.0: dependencies: @@ -18215,15 +18262,14 @@ snapshots: which-pm-runs@1.1.0: {} - which-pm@2.0.0: + which-pm@2.2.0: dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 - which-pm@2.2.0: + which-pm@3.0.0: dependencies: load-yaml-file: 0.2.0 - path-exists: 4.0.0 which@1.3.1: dependencies: @@ -18303,7 +18349,7 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.0.0: {} + yocto-queue@1.1.1: {} zod-to-json-schema@3.23.1(zod@3.23.8): dependencies: diff --git a/scripts/package.json b/scripts/package.json index 61b480b0a44b..dd6807936b13 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -12,7 +12,7 @@ "esbuild": "^0.21.5", "globby": "^14.0.2", "kleur": "^4.1.5", - "p-limit": "^5.0.0", + "p-limit": "^6.1.0", "svelte": "^4.2.18", "tar": "^7.4.0" }, diff --git a/scripts/smoke/check.js b/scripts/smoke/check.js index 128b1b45464f..9a501de3eef0 100644 --- a/scripts/smoke/check.js +++ b/scripts/smoke/check.js @@ -6,7 +6,7 @@ import * as path from 'node:path'; import pLimit from 'p-limit'; import { tsconfigResolverSync } from 'tsconfig-resolver'; -const skippedExamples = ['toolbar-app', 'component'] +const skippedExamples = ['toolbar-app', 'component', 'server-islands']; function checkExamples() { let examples = readdirSync('./examples', { withFileTypes: true });