diff --git a/CHANGELOG.md b/CHANGELOG.md
index 85901f90c..787f17fe2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+### Added
+
+- Add `@tailwindcss/browser` package to run Tailwind CSS in the browser ([#15558](https://github.com/tailwindlabs/tailwindcss/pull/15558))
+
### Fixed
- Use the correct property value for `place-content-between`, `place-content-around`, and `place-content-evenly` utilities ([#15440](https://github.com/tailwindlabs/tailwindcss/pull/15440))
diff --git a/package.json b/package.json
index 0c2b90762..035e9ab39 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,7 @@
"dev": "turbo dev --filter=!./playgrounds/*",
"test": "cargo test && vitest run --hideSkippedTests",
"test:integrations": "vitest --root=./integrations",
- "test:ui": "pnpm run --filter=tailwindcss test:ui",
+ "test:ui": "pnpm run --filter=tailwindcss test:ui && pnpm run --filter=@tailwindcss/browser test:ui",
"tdd": "vitest --hideSkippedTests",
"bench": "vitest bench",
"version-packages": "node ./scripts/version-packages.mjs",
diff --git a/packages/@tailwindcss-browser/README.md b/packages/@tailwindcss-browser/README.md
new file mode 100644
index 000000000..95ec9d87d
--- /dev/null
+++ b/packages/@tailwindcss-browser/README.md
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+ A utility-first CSS framework for rapidly building custom user interfaces.
+
+
+
+
+
+
+
+
+
+---
+
+## Documentation
+
+For full documentation, visit [tailwindcss.com](https://tailwindcss.com).
+
+## Community
+
+For help, discussion about best practices, or any other conversation that would benefit from being searchable:
+
+[Discuss Tailwind CSS on GitHub](https://github.com/tailwindcss/tailwindcss/discussions)
+
+For chatting with others using the framework:
+
+[Join the Tailwind CSS Discord Server](https://discord.gg/7NF8GNe)
+
+## Contributing
+
+If you're interested in contributing to Tailwind CSS, please read our [contributing docs](https://github.com/tailwindcss/tailwindcss/blob/next/.github/CONTRIBUTING.md) **before submitting a pull request**.
diff --git a/packages/@tailwindcss-browser/package.json b/packages/@tailwindcss-browser/package.json
new file mode 100644
index 000000000..f1953af3a
--- /dev/null
+++ b/packages/@tailwindcss-browser/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "@tailwindcss/browser",
+ "version": "4.0.0-beta.8",
+ "description": "A utility-first CSS framework for rapidly building custom user interfaces.",
+ "license": "MIT",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/tailwindlabs/tailwindcss.git",
+ "directory": "packages/@tailwindcss-browser"
+ },
+ "bugs": "https://github.com/tailwindlabs/tailwindcss/issues",
+ "homepage": "https://tailwindcss.com",
+ "scripts": {
+ "lint": "tsc --noEmit",
+ "build": "tsup-node",
+ "dev": "pnpm run build -- --watch",
+ "test:ui": "playwright test"
+ },
+ "exports": {
+ ".": "./dist/index.mjs",
+ "./package.json": "./package.json"
+ },
+ "files": [
+ "dist"
+ ],
+ "publishConfig": {
+ "provenance": true,
+ "access": "public"
+ },
+ "devDependencies": {
+ "h3": "^1.13.0",
+ "listhen": "^1.9.0",
+ "tailwindcss": "workspace:*"
+ }
+}
diff --git a/packages/@tailwindcss-browser/playwright.config.ts b/packages/@tailwindcss-browser/playwright.config.ts
new file mode 100644
index 000000000..c3ad05b91
--- /dev/null
+++ b/packages/@tailwindcss-browser/playwright.config.ts
@@ -0,0 +1,66 @@
+import { defineConfig, devices } from '@playwright/test'
+
+/**
+ * See https://playwright.dev/docs/test-configuration.
+ */
+export default defineConfig({
+ testDir: './tests',
+ /* Run tests in files in parallel */
+ fullyParallel: true,
+ /* Fail the build on CI if you accidentally left test.only in the source code. */
+ forbidOnly: !!process.env.CI,
+ /* Retry on CI only */
+ retries: process.env.CI ? 2 : 0,
+ /* Opt out of parallel tests on CI. */
+ workers: process.env.CI ? 1 : undefined,
+ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
+ reporter: 'html',
+ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
+ use: {
+ /* Base URL to use in actions like `await page.goto('/')`. */
+ // baseURL: 'http://127.0.0.1:3000',
+
+ /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
+ trace: 'on-first-retry',
+ },
+
+ /* Configure projects for major browsers */
+ projects: [
+ {
+ name: 'chromium',
+ use: { ...devices['Desktop Chrome'] },
+ },
+ {
+ name: 'webkit',
+ use: { ...devices['Desktop Safari'] },
+ },
+ {
+ name: 'firefox',
+ use: {
+ ...devices['Desktop Firefox'],
+ // https://playwright.dev/docs/test-use-options#more-browser-and-context-options
+ launchOptions: {
+ // https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-firefox-user-prefs
+ firefoxUserPrefs: {
+ // By default, headless Firefox runs as though no pointers
+ // capabilities are available.
+ // https://github.com/microsoft/playwright/issues/7769#issuecomment-966098074
+ //
+ // This impacts our `hover` variant implementation which uses an
+ // '(hover: hover)' media query to determine if hover is available.
+ //
+ // Available values for pointer capabilities:
+ // NO_POINTER = 0x00;
+ // COARSE_POINTER = 0x01;
+ // FINE_POINTER = 0x02;
+ // HOVER_CAPABLE_POINTER = 0x04;
+ //
+ // Setting to 0x02 | 0x04 says the system supports a mouse
+ 'ui.primaryPointerCapabilities': 0x02 | 0x04,
+ 'ui.allPointerCapabilities': 0x02 | 0x04,
+ },
+ },
+ },
+ },
+ ],
+})
diff --git a/packages/@tailwindcss-browser/src/assets.ts b/packages/@tailwindcss-browser/src/assets.ts
new file mode 100644
index 000000000..e72d47658
--- /dev/null
+++ b/packages/@tailwindcss-browser/src/assets.ts
@@ -0,0 +1,11 @@
+import index from 'tailwindcss/index.css'
+import preflight from 'tailwindcss/preflight.css'
+import theme from 'tailwindcss/theme.css'
+import utilities from 'tailwindcss/utilities.css'
+
+export const css = {
+ index,
+ preflight,
+ theme,
+ utilities,
+}
diff --git a/packages/@tailwindcss-browser/src/index.ts b/packages/@tailwindcss-browser/src/index.ts
new file mode 100644
index 000000000..e7688a121
--- /dev/null
+++ b/packages/@tailwindcss-browser/src/index.ts
@@ -0,0 +1,296 @@
+import * as tailwindcss from 'tailwindcss'
+import * as assets from './assets'
+import { Instrumentation } from './instrumentation'
+
+// Warn users about using the browser build in production as early as possible.
+// It can take time for the script to do its work so this must be at the top.
+console.warn(
+ 'The browser build of Tailwind CSS should not be used in production. To use Tailwind CSS in production, use the Tailwind CLI, Vite plugin, or PostCSS plugin: https://tailwindcss.com/docs/installation',
+)
+
+/**
+ * The type used by `
+ `,
+ body: html``,
+ })
+
+ await expect(page.locator('[data-test]')).toHaveCSS('background-color', 'rgb(255, 0, 0)')
+
+ await page.evaluate(() => {
+ document.querySelector('[data-css]')!.textContent = `
+ .foo {
+ @apply bg-blue;
+ }
+ `
+ })
+
+ await expect(page.locator('[data-test]')).toHaveCSS('background-color', 'rgb(0, 0, 255)')
+})
+
+test('changes to `@theme`', async ({ page }) => {
+ await server.render({
+ page,
+ head: html`
+
+ `,
+ body: html``,
+ })
+
+ await expect(page.locator('[data-test]')).toHaveCSS('background-color', 'rgb(255, 0, 0)')
+
+ await page.evaluate(() => {
+ document.querySelector('[data-css]')!.textContent = `
+ @theme {
+ --color-primary: #0000ff;
+ }
+ `
+ })
+
+ await expect(page.locator('[data-test]')).toHaveCSS('background-color', 'rgb(0, 0, 255)')
+})
+
+test('no classes', async ({ page }) => {
+ await server.render({
+ page,
+ body: html`test
`,
+ })
+
+ await expect(page.locator('body')).toHaveCSS('margin', '0px')
+})
+
+test('html classes', async ({ page }) => {
+ await server.render({
+ page,
+ htmlClasses: 'h-4',
+ })
+
+ await expect(page.locator('html')).toHaveCSS('height', '16px')
+})
+
+async function createServer() {
+ const { createApp, createRouter, defineEventHandler, toNodeListener } = await import('h3')
+ const { listen } = await import('listhen')
+
+ interface PageOptions {
+ page: Page
+ head?: string
+ body?: string
+ htmlClasses?: string
+ }
+
+ async function render({ page, htmlClasses, head, body }: PageOptions) {
+ let content = html`
+
+
+
+
+
+
+ Document
+
+
+ ${head ?? ''}
+
+
+ ${body ?? ''}
+
+
+ `
+
+ router.get(
+ '/',
+ defineEventHandler(() => content),
+ )
+
+ await page.goto(server.url)
+ }
+
+ const app = createApp()
+ const router = createRouter()
+
+ router.get(
+ '/tailwindcss.js',
+ defineEventHandler(() => readFile(require.resolve('@tailwindcss/browser'))),
+ )
+
+ app.use(router)
+
+ let workerIndex = Number(process.env.TEST_WORKER_INDEX ?? 0)
+
+ let listener = await listen(toNodeListener(app), {
+ port: 3000 + workerIndex,
+ showURL: false,
+ open: false,
+ })
+
+ return {
+ app,
+ url: listener.url,
+ render,
+ }
+}
diff --git a/packages/@tailwindcss-browser/tsconfig.json b/packages/@tailwindcss-browser/tsconfig.json
new file mode 100644
index 000000000..8ea040daf
--- /dev/null
+++ b/packages/@tailwindcss-browser/tsconfig.json
@@ -0,0 +1,6 @@
+{
+ "extends": "../tsconfig.base.json",
+ "compilerOptions": {
+ "lib": ["es2022", "esnext.disposable", "dom", "dom.iterable"],
+ },
+}
diff --git a/packages/@tailwindcss-browser/tsup.config.ts b/packages/@tailwindcss-browser/tsup.config.ts
new file mode 100644
index 000000000..57fa6d7dc
--- /dev/null
+++ b/packages/@tailwindcss-browser/tsup.config.ts
@@ -0,0 +1,15 @@
+import { defineConfig } from 'tsup'
+
+export default defineConfig({
+ format: ['esm'],
+ clean: true,
+ minify: true,
+ entry: ['src/index.ts'],
+ noExternal: [/.*/],
+ loader: {
+ '.css': 'text',
+ },
+ define: {
+ 'process.env.NODE_ENV': '"production"',
+ },
+})
diff --git a/packages/@tailwindcss-browser/vitest.config.ts b/packages/@tailwindcss-browser/vitest.config.ts
new file mode 100644
index 000000000..f6f91227d
--- /dev/null
+++ b/packages/@tailwindcss-browser/vitest.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+ test: {
+ exclude: ['**/*.spec.?(c|m)[jt]s?(x)', '**/node_modules/**'],
+ },
+})
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 93295ee4a..d579ea14f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -135,6 +135,18 @@ importers:
specifier: ^3.3.2
version: 3.3.2
+ packages/@tailwindcss-browser:
+ devDependencies:
+ h3:
+ specifier: ^1.13.0
+ version: 1.13.0
+ listhen:
+ specifier: ^1.9.0
+ version: 1.9.0
+ tailwindcss:
+ specifier: workspace:*
+ version: link:../tailwindcss
+
packages/@tailwindcss-cli:
dependencies:
'@parcel/watcher':
@@ -1517,13 +1529,11 @@ packages:
'@parcel/watcher-darwin-arm64@2.5.0':
resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==}
engines: {node: '>= 10.0.0'}
- cpu: [arm64]
os: [darwin]
'@parcel/watcher-darwin-x64@2.5.0':
resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==}
engines: {node: '>= 10.0.0'}
- cpu: [x64]
os: [darwin]
'@parcel/watcher-freebsd-x64@2.5.0':
@@ -1547,27 +1557,29 @@ packages:
'@parcel/watcher-linux-arm64-glibc@2.5.0':
resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==}
engines: {node: '>= 10.0.0'}
- cpu: [arm64]
os: [linux]
'@parcel/watcher-linux-arm64-musl@2.5.0':
resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==}
engines: {node: '>= 10.0.0'}
- cpu: [arm64]
os: [linux]
'@parcel/watcher-linux-x64-glibc@2.5.0':
resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==}
engines: {node: '>= 10.0.0'}
- cpu: [x64]
os: [linux]
'@parcel/watcher-linux-x64-musl@2.5.0':
resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==}
engines: {node: '>= 10.0.0'}
- cpu: [x64]
os: [linux]
+ '@parcel/watcher-wasm@2.5.0':
+ resolution: {integrity: sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==}
+ engines: {node: '>= 10.0.0'}
+ bundledDependencies:
+ - napi-wasm
+
'@parcel/watcher-win32-arm64@2.5.0':
resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==}
engines: {node: '>= 10.0.0'}
@@ -1583,7 +1595,6 @@ packages:
'@parcel/watcher-win32-x64@2.5.0':
resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==}
engines: {node: '>= 10.0.0'}
- cpu: [x64]
os: [win32]
'@parcel/watcher@2.5.0':
@@ -2070,13 +2081,11 @@ packages:
bun@1.1.29:
resolution: {integrity: sha512-SKhpyKNZtgxrVel9ec9xon3LDv8mgpiuFhARgcJo1YIbggY2PBrKHRNiwQ6Qlb+x3ivmRurfuwWgwGexjpgBRg==}
- cpu: [arm64, x64]
os: [darwin, linux, win32]
hasBin: true
bun@1.1.42:
resolution: {integrity: sha512-PckeNolMEBaBEzixTMvp0jJD9r/9lly8AfctILi1ve14zwwChFjsxI4TJLQO2yezzOjVeG0u7xf8WQFbS7GjAA==}
- cpu: [arm64, x64, aarch64]
os: [darwin, linux, win32]
hasBin: true
@@ -2125,9 +2134,16 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
+ citty@0.1.6:
+ resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==}
+
client-only@0.0.1:
resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
+ clipboardy@4.0.0:
+ resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==}
+ engines: {node: '>=18'}
+
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -2152,6 +2168,9 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ confbox@0.1.8:
+ resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
consola@3.2.3:
resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
engines: {node: ^14.18.0 || >=16.10.0}
@@ -2159,6 +2178,9 @@ packages:
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+ cookie-es@1.2.2:
+ resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==}
+
cross-spawn@7.0.3:
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
engines: {node: '>= 8'}
@@ -2167,6 +2189,9 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
+ crossws@0.3.1:
+ resolution: {integrity: sha512-HsZgeVYaG+b5zA+9PbIPGq4+J/CJynJuearykPsXx4V/eMhyQ5EDVg3Ak2FBZtVXCiOLu/U7IiwDHTr9MA+IKw==}
+
cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
@@ -2239,6 +2264,12 @@ packages:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
+ defu@6.1.4:
+ resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
+
+ destr@2.0.3:
+ resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
+
detect-libc@1.0.3:
resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
engines: {node: '>=0.10'}
@@ -2548,6 +2579,9 @@ packages:
resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
engines: {node: '>= 0.4'}
+ get-port-please@3.1.2:
+ resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==}
+
get-stream@6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
@@ -2604,6 +2638,9 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+ h3@1.13.0:
+ resolution: {integrity: sha512-vFEAu/yf8UMUcB4s43OaDaigcqpQd14yanmOsn+NcRX3/guSKncyE2rOYhq8RIchgJrPSs/QiIddnTTR1ddiAg==}
+
has-bigints@1.0.2:
resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
@@ -2630,6 +2667,10 @@ packages:
resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
engines: {node: '>= 0.4'}
+ http-shutdown@1.2.2:
+ resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==}
+ engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
+
human-signals@2.1.0:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'}
@@ -2658,6 +2699,9 @@ packages:
resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
engines: {node: '>= 0.4'}
+ iron-webcrypto@1.2.1:
+ resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
+
is-array-buffer@3.0.4:
resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
engines: {node: '>= 0.4'}
@@ -2703,6 +2747,11 @@ packages:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
engines: {node: '>= 0.4'}
+ is-docker@3.0.0:
+ resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ hasBin: true
+
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -2722,6 +2771,11 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
+ is-inside-container@1.0.0:
+ resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+ engines: {node: '>=14.16'}
+ hasBin: true
+
is-map@2.0.3:
resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
engines: {node: '>= 0.4'}
@@ -2781,6 +2835,14 @@ packages:
resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==}
engines: {node: '>= 0.4'}
+ is-wsl@3.1.0:
+ resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
+ engines: {node: '>=16'}
+
+ is64bit@2.0.0:
+ resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==}
+ engines: {node: '>=18'}
+
isarray@2.0.5:
resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
@@ -2857,13 +2919,11 @@ packages:
lightningcss-darwin-arm64@1.26.0:
resolution: {integrity: sha512-n4TIvHO1NY1ondKFYpL2ZX0bcC2y6yjXMD6JfyizgR8BCFNEeArINDzEaeqlfX9bXz73Bpz/Ow0nu+1qiDrBKg==}
engines: {node: '>= 12.0.0'}
- cpu: [arm64]
os: [darwin]
lightningcss-darwin-x64@1.26.0:
resolution: {integrity: sha512-Rf9HuHIDi1R6/zgBkJh25SiJHF+dm9axUZW/0UoYCW1/8HV0gMI0blARhH4z+REmWiU1yYT/KyNF3h7tHyRXUg==}
engines: {node: '>= 12.0.0'}
- cpu: [x64]
os: [darwin]
lightningcss-freebsd-x64@1.26.0:
@@ -2881,25 +2941,21 @@ packages:
lightningcss-linux-arm64-gnu@1.26.0:
resolution: {integrity: sha512-iJmZM7fUyVjH+POtdiCtExG+67TtPUTer7K/5A8DIfmPfrmeGvzfRyBltGhQz13Wi15K1lf2cPYoRaRh6vcwNA==}
engines: {node: '>= 12.0.0'}
- cpu: [arm64]
os: [linux]
lightningcss-linux-arm64-musl@1.26.0:
resolution: {integrity: sha512-XxoEL++tTkyuvu+wq/QS8bwyTXZv2y5XYCMcWL45b8XwkiS8eEEEej9BkMGSRwxa5J4K+LDeIhLrS23CpQyfig==}
engines: {node: '>= 12.0.0'}
- cpu: [arm64]
os: [linux]
lightningcss-linux-x64-gnu@1.26.0:
resolution: {integrity: sha512-1dkTfZQAYLj8MUSkd6L/+TWTG8V6Kfrzfa0T1fSlXCXQHrt1HC1/UepXHtKHDt/9yFwyoeayivxXAsApVxn6zA==}
engines: {node: '>= 12.0.0'}
- cpu: [x64]
os: [linux]
lightningcss-linux-x64-musl@1.26.0:
resolution: {integrity: sha512-yX3Rk9m00JGCUzuUhFEojY+jf/6zHs3XU8S8Vk+FRbnr4St7cjyMXdNjuA2LjiT8e7j8xHRCH8hyZ4H/btRE4A==}
engines: {node: '>= 12.0.0'}
- cpu: [x64]
os: [linux]
lightningcss-win32-arm64-msvc@1.26.0:
@@ -2911,7 +2967,6 @@ packages:
lightningcss-win32-x64-msvc@1.26.0:
resolution: {integrity: sha512-pYS3EyGP3JRhfqEFYmfFDiZ9/pVNfy8jVIYtrx9TVNusVyDK3gpW1w/rbvroQ4bDJi7grdUtyrYU6V2xkY/bBw==}
engines: {node: '>= 12.0.0'}
- cpu: [x64]
os: [win32]
lightningcss@1.26.0:
@@ -2929,6 +2984,10 @@ packages:
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ listhen@1.9.0:
+ resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==}
+ hasBin: true
+
load-tsconfig@0.2.5:
resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -2979,6 +3038,11 @@ packages:
resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==}
engines: {node: '>=8.6'}
+ mime@3.0.0:
+ resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+
mimic-fn@2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
@@ -3005,6 +3069,9 @@ packages:
resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
engines: {node: '>=16 || 14 >=14.17'}
+ mlly@1.7.3:
+ resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==}
+
mri@1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
@@ -3054,6 +3121,13 @@ packages:
resolution: {integrity: sha512-9emqXAKhVoNrQ792nLI/wpzPpJ/bj/YXxW0CvAau1+RdGBcCRF1Dmz7719zgVsQNrzHl9Tzn3ImZ4qWFarWL0A==}
engines: {node: ^18 || ^20 || >= 21}
+ node-fetch-native@1.6.4:
+ resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+
+ node-forge@1.3.1:
+ resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==}
+ engines: {node: '>= 6.13.0'}
+
node-gyp-build@4.8.2:
resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==}
hasBin: true
@@ -3113,6 +3187,9 @@ packages:
resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==}
engines: {node: '>= 0.4'}
+ ohash@1.1.4:
+ resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==}
+
onetime@5.1.2:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: '>=6'}
@@ -3193,6 +3270,9 @@ packages:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
+ pkg-types@1.3.0:
+ resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==}
+
playwright-core@1.49.1:
resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==}
engines: {node: '>=18'}
@@ -3327,6 +3407,9 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ radix3@1.1.2:
+ resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
+
react-dom@18.3.1:
resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
peerDependencies:
@@ -3568,6 +3651,10 @@ packages:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
+ system-architecture@0.1.0:
+ resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==}
+ engines: {node: '>=18'}
+
tailwindcss@3.4.14:
resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==}
engines: {node: '>=14.0.0'}
@@ -3744,22 +3831,38 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ ufo@1.5.4:
+ resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
+
unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ uncrypto@0.1.3:
+ resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
+
undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ unenv@1.10.0:
+ resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==}
+
unicorn-magic@0.1.0:
resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
engines: {node: '>=18'}
+ untun@0.1.3:
+ resolution: {integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==}
+ hasBin: true
+
update-browserslist-db@1.1.1:
resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
+ uqr@0.1.2:
+ resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==}
+
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@@ -4617,6 +4720,11 @@ snapshots:
'@parcel/watcher-linux-x64-musl@2.5.0': {}
+ '@parcel/watcher-wasm@2.5.0':
+ dependencies:
+ is-glob: 4.0.3
+ micromatch: 4.0.7
+
'@parcel/watcher-win32-arm64@2.5.0':
optional: true
@@ -5274,8 +5382,18 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ citty@0.1.6:
+ dependencies:
+ consola: 3.2.3
+
client-only@0.0.1: {}
+ clipboardy@4.0.0:
+ dependencies:
+ execa: 8.0.1
+ is-wsl: 3.1.0
+ is64bit: 2.0.0
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
@@ -5301,10 +5419,14 @@ snapshots:
concat-map@0.0.1: {}
+ confbox@0.1.8: {}
+
consola@3.2.3: {}
convert-source-map@2.0.0: {}
+ cookie-es@1.2.2: {}
+
cross-spawn@7.0.3:
dependencies:
path-key: 3.1.1
@@ -5317,6 +5439,10 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
+ crossws@0.3.1:
+ dependencies:
+ uncrypto: 0.1.3
+
cssesc@3.0.0: {}
csstype@3.1.3: {}
@@ -5371,6 +5497,10 @@ snapshots:
has-property-descriptors: 1.0.2
object-keys: 1.1.1
+ defu@6.1.4: {}
+
+ destr@2.0.3: {}
+
detect-libc@1.0.3: {}
detect-libc@2.0.3:
@@ -6001,6 +6131,8 @@ snapshots:
has-symbols: 1.0.3
hasown: 2.0.2
+ get-port-please@3.1.2: {}
+
get-stream@6.0.1: {}
get-stream@8.0.1: {}
@@ -6067,6 +6199,19 @@ snapshots:
graphemer@1.4.0: {}
+ h3@1.13.0:
+ dependencies:
+ cookie-es: 1.2.2
+ crossws: 0.3.1
+ defu: 6.1.4
+ destr: 2.0.3
+ iron-webcrypto: 1.2.1
+ ohash: 1.1.4
+ radix3: 1.1.2
+ ufo: 1.5.4
+ uncrypto: 0.1.3
+ unenv: 1.10.0
+
has-bigints@1.0.2: {}
has-flag@4.0.0: {}
@@ -6087,6 +6232,8 @@ snapshots:
dependencies:
function-bind: 1.1.2
+ http-shutdown@1.2.2: {}
+
human-signals@2.1.0: {}
human-signals@5.0.0: {}
@@ -6108,6 +6255,8 @@ snapshots:
hasown: 2.0.2
side-channel: 1.0.6
+ iron-webcrypto@1.2.1: {}
+
is-array-buffer@3.0.4:
dependencies:
call-bind: 1.0.7
@@ -6155,6 +6304,8 @@ snapshots:
dependencies:
has-tostringtag: 1.0.2
+ is-docker@3.0.0: {}
+
is-extglob@2.1.1: {}
is-finalizationregistry@1.0.2:
@@ -6171,6 +6322,10 @@ snapshots:
dependencies:
is-extglob: 2.1.1
+ is-inside-container@1.0.0:
+ dependencies:
+ is-docker: 3.0.0
+
is-map@2.0.3: {}
is-negative-zero@2.0.3: {}
@@ -6219,6 +6374,14 @@ snapshots:
call-bind: 1.0.7
get-intrinsic: 1.2.4
+ is-wsl@3.1.0:
+ dependencies:
+ is-inside-container: 1.0.0
+
+ is64bit@2.0.0:
+ dependencies:
+ system-architecture: 0.1.0
+
isarray@2.0.5: {}
isexe@2.0.0: {}
@@ -6329,6 +6492,27 @@ snapshots:
lines-and-columns@1.2.4: {}
+ listhen@1.9.0:
+ dependencies:
+ '@parcel/watcher': 2.5.0(patch_hash=pyfayeoxwesjxsefsxp3jpev4q)
+ '@parcel/watcher-wasm': 2.5.0
+ citty: 0.1.6
+ clipboardy: 4.0.0
+ consola: 3.2.3
+ crossws: 0.3.1
+ defu: 6.1.4
+ get-port-please: 3.1.2
+ h3: 1.13.0
+ http-shutdown: 1.2.2
+ jiti: 2.4.2
+ mlly: 1.7.3
+ node-forge: 1.3.1
+ pathe: 1.1.2
+ std-env: 3.7.0
+ ufo: 1.5.4
+ untun: 0.1.3
+ uqr: 0.1.2
+
load-tsconfig@0.2.5: {}
locate-path@6.0.0:
@@ -6372,6 +6556,8 @@ snapshots:
braces: 3.0.3
picomatch: 2.3.1
+ mime@3.0.0: {}
+
mimic-fn@2.1.0: {}
mimic-fn@4.0.0: {}
@@ -6390,6 +6576,13 @@ snapshots:
minipass@7.1.2: {}
+ mlly@1.7.3:
+ dependencies:
+ acorn: 8.14.0
+ pathe: 1.1.2
+ pkg-types: 1.3.0
+ ufo: 1.5.4
+
mri@1.2.0: {}
ms@2.1.2: {}
@@ -6436,6 +6629,10 @@ snapshots:
node-addon-api@8.2.2: {}
+ node-fetch-native@1.6.4: {}
+
+ node-forge@1.3.1: {}
+
node-gyp-build@4.8.2: {}
node-releases@2.0.18: {}
@@ -6492,6 +6689,8 @@ snapshots:
define-properties: 1.2.1
es-object-atoms: 1.0.0
+ ohash@1.1.4: {}
+
onetime@5.1.2:
dependencies:
mimic-fn: 2.1.0
@@ -6556,6 +6755,12 @@ snapshots:
pirates@4.0.6: {}
+ pkg-types@1.3.0:
+ dependencies:
+ confbox: 0.1.8
+ mlly: 1.7.3
+ pathe: 1.1.2
+
playwright-core@1.49.1: {}
playwright@1.49.1:
@@ -6684,6 +6889,8 @@ snapshots:
queue-microtask@1.2.3: {}
+ radix3@1.1.2: {}
+
react-dom@18.3.1(react@18.3.1):
dependencies:
loose-envify: 1.4.0
@@ -7002,6 +7209,8 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
+ system-architecture@0.1.0: {}
+
tailwindcss@3.4.14:
dependencies:
'@alloc/quick-lru': 5.2.0
@@ -7210,6 +7419,8 @@ snapshots:
typescript@5.6.3: {}
+ ufo@1.5.4: {}
+
unbox-primitive@1.0.2:
dependencies:
call-bind: 1.0.7
@@ -7217,16 +7428,34 @@ snapshots:
has-symbols: 1.0.3
which-boxed-primitive: 1.0.2
+ uncrypto@0.1.3: {}
+
undici-types@5.26.5: {}
+ unenv@1.10.0:
+ dependencies:
+ consola: 3.2.3
+ defu: 6.1.4
+ mime: 3.0.0
+ node-fetch-native: 1.6.4
+ pathe: 1.1.2
+
unicorn-magic@0.1.0: {}
+ untun@0.1.3:
+ dependencies:
+ citty: 0.1.6
+ consola: 3.2.3
+ pathe: 1.1.2
+
update-browserslist-db@1.1.1(browserslist@4.24.2):
dependencies:
browserslist: 4.24.2
escalade: 3.2.0
picocolors: 1.1.1
+ uqr@0.1.2: {}
+
uri-js@4.4.1:
dependencies:
punycode: 2.3.1