diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml
index 32c7c4dd..45333328 100644
--- a/.github/workflows/cd.yml
+++ b/.github/workflows/cd.yml
@@ -66,6 +66,10 @@ jobs:
if: ${{ steps.release.outputs.releases_created == 'true' }}
run: pnpm build:packages
+ - name: Build CDN bundles
+ if: ${{ steps.release.outputs.releases_created == 'true' }}
+ run: pnpm build:cdn
+
- name: Publish
if: ${{ steps.release.outputs.releases_created == 'true' }}
run: pnpm -r publish --filter "./packages/*" --access public --provenance --no-git-checks
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b81ac7cf..4a657ef4 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -150,3 +150,6 @@ jobs:
- name: Build
run: pnpm build:packages
+
+ - name: Build CDN bundles
+ run: pnpm build:cdn
diff --git a/build/plugins/inline-css-plugin.mjs b/build/plugins/inline-css-plugin.mjs
index c5e6fbb4..143cb3be 100644
--- a/build/plugins/inline-css-plugin.mjs
+++ b/build/plugins/inline-css-plugin.mjs
@@ -1,5 +1,6 @@
import { readFileSync } from 'node:fs';
import { dirname, relative, resolve } from 'node:path';
+import { transform } from 'lightningcss';
import { resolveImports } from './resolve-css-imports.mjs';
const INLINE_PREFIX = 'inline-css:';
@@ -11,10 +12,10 @@ const INLINE_SUFFIX = '?inline';
* modules exporting the resolved CSS string. Mirrors the Vite `?inline`
* convention so the same source works in both Vite dev and tsdown builds.
*
- * @param {{ skinsDir: string; rootDir?: string }} options
+ * @param {{ skinsDir: string; rootDir?: string; minify?: boolean }} options
*/
export function inlineCssPlugin(options) {
- const { skinsDir, rootDir = process.cwd() } = options;
+ const { skinsDir, rootDir = process.cwd(), minify = true } = options;
return {
name: 'inline-css',
@@ -37,7 +38,17 @@ export function inlineCssPlugin(options) {
const rel = id.slice(INLINE_PREFIX.length).replace(/\.js$/, '.css');
const file = resolve(rootDir, rel);
const raw = readFileSync(file, 'utf-8');
- const resolved = resolveImports(raw, dirname(file), skinsDir);
+ let resolved = resolveImports(raw, dirname(file), skinsDir);
+
+ if (minify) {
+ const { code } = transform({
+ filename: file,
+ code: Buffer.from(resolved),
+ minify: true,
+ });
+
+ resolved = code.toString();
+ }
return { code: `export default ${JSON.stringify(resolved)};`, moduleSideEffects: false };
},
diff --git a/build/plugins/inline-template-plugin.mjs b/build/plugins/inline-template-plugin.mjs
new file mode 100644
index 00000000..ae3d8ad2
--- /dev/null
+++ b/build/plugins/inline-template-plugin.mjs
@@ -0,0 +1,341 @@
+import { transform } from 'lightningcss';
+
+const HTML_MARKER = '/*html*/';
+const CSS_MARKER = '/* css */';
+
+/**
+ * Rolldown/tsdown transform plugin that minifies tagged template literals
+ * marked with {@link HTML_MARKER} or {@link CSS_MARKER}.
+ *
+ * - `/*html*/` templates: collapse inter-tag whitespace, strip HTML comments.
+ * - `/* css */` templates: full CSS minification via lightningcss.
+ *
+ * Only the static parts (quasis) are processed — `${...}` expression
+ * interpolations are preserved as-is.
+ *
+ * @param {{ minify?: boolean }} options
+ */
+export function inlineTemplatePlugin(options = {}) {
+ const { minify = true } = options;
+
+ return {
+ name: 'inline-template',
+
+ transform(code) {
+ if (!minify) return null;
+ if (!code.includes(HTML_MARKER) && !code.includes(CSS_MARKER)) return null;
+
+ const result = processTemplates(code);
+
+ return result === code ? null : { code: result };
+ },
+ };
+}
+
+// ---------------------------------------------------------------------------
+// Template-literal parser
+// ---------------------------------------------------------------------------
+
+/**
+ * Walk `code` looking for known markers followed by a backtick template
+ * literal. For each match, minify the static parts and reassemble.
+ */
+function processTemplates(code) {
+ let out = '';
+ let pos = 0;
+
+ while (pos < code.length) {
+ // Find whichever marker comes first.
+ const htmlIdx = code.indexOf(HTML_MARKER, pos);
+ const cssIdx = code.indexOf(CSS_MARKER, pos);
+
+ let idx;
+ let marker;
+
+ if (htmlIdx === -1 && cssIdx === -1) {
+ out += code.slice(pos);
+ break;
+ } else if (cssIdx === -1 || (htmlIdx !== -1 && htmlIdx < cssIdx)) {
+ idx = htmlIdx;
+ marker = HTML_MARKER;
+ } else {
+ idx = cssIdx;
+ marker = CSS_MARKER;
+ }
+
+ // Copy everything before the marker.
+ out += code.slice(pos, idx);
+
+ // Skip marker + optional whitespace to find the opening backtick.
+ let i = idx + marker.length;
+ while (i < code.length && isWhitespace(code[i])) i++;
+
+ if (i >= code.length || code[i] !== '`') {
+ // Not a tagged template literal — copy the marker verbatim.
+ out += code.slice(idx, i);
+ pos = i;
+ continue;
+ }
+
+ const { quasis, expressions, end } = parseTemplateLiteral(code, i);
+
+ const minified =
+ marker === HTML_MARKER
+ ? minifyHtmlQuasis(quasis)
+ : minifyCssQuasis(quasis);
+
+ // Reassemble — keep the marker for IDE syntax-highlighting.
+ out += marker + ' `';
+ for (let q = 0; q < minified.length; q++) {
+ out += minified[q];
+ if (q < expressions.length) {
+ out += '${' + expressions[q] + '}';
+ }
+ }
+ out += '`';
+ pos = end;
+ }
+
+ return out;
+}
+
+// ---------------------------------------------------------------------------
+// HTML minification
+// ---------------------------------------------------------------------------
+
+/** Minify the static parts of an HTML template literal. */
+function minifyHtmlQuasis(quasis) {
+ return quasis.map((q, qIdx) => {
+ let s = q;
+
+ // 1. Strip HTML comments.
+ s = s.replace(//g, '');
+
+ // 2. Collapse runs of whitespace to a single space.
+ s = s.replace(/\s{2,}/g, ' ');
+
+ // 3. Remove the single remaining space between tags.
+ s = s.replace(/> <');
+
+ // 4. Trim edges of the whole template (first / last quasi only).
+ if (qIdx === 0) s = s.replace(/^\s+/, '');
+ if (qIdx === quasis.length - 1) s = s.replace(/\s+$/, '');
+
+ return s;
+ });
+}
+
+// ---------------------------------------------------------------------------
+// CSS minification
+// ---------------------------------------------------------------------------
+
+/** Placeholder that won't appear in real CSS. */
+const EXPR_PLACEHOLDER = '___EXPR_';
+
+/**
+ * Minify the static parts of a CSS template literal via lightningcss.
+ *
+ * Expressions are replaced with safe placeholder tokens before minification,
+ * then restored afterward.
+ */
+function minifyCssQuasis(quasis) {
+ // Fast path: single quasi (no expressions) — minify directly.
+ if (quasis.length === 1) {
+ return [minifyCss(quasis[0]).trim()];
+ }
+
+ // Join quasis with numbered placeholders so lightningcss sees valid-ish CSS.
+ const joined = quasis.map((q, i) => (i < quasis.length - 1 ? q + EXPR_PLACEHOLDER + i + '___' : q)).join('');
+
+ const minified = minifyCss(joined);
+
+ // Split back on placeholders to recover individual quasis.
+ const result = [];
+ let remaining = minified;
+
+ for (let i = 0; i < quasis.length - 1; i++) {
+ const token = EXPR_PLACEHOLDER + i + '___';
+ const tokenIdx = remaining.indexOf(token);
+
+ if (tokenIdx === -1) {
+ // Placeholder was removed by minifier (e.g. dead code elimination).
+ // Fall back to unminified for safety.
+ return quasis;
+ }
+
+ result.push(i === 0 ? remaining.slice(0, tokenIdx).trimStart() : remaining.slice(0, tokenIdx));
+ remaining = remaining.slice(tokenIdx + token.length);
+ }
+
+ result.push(remaining.trimEnd());
+
+ return result;
+}
+
+function minifyCss(css) {
+ const { code } = transform({
+ filename: 'template.css',
+ code: Buffer.from(css),
+ minify: true,
+ });
+
+ return code.toString();
+}
+
+// ---------------------------------------------------------------------------
+// Template-literal parser (shared)
+// ---------------------------------------------------------------------------
+
+/**
+ * Parse a backtick template literal starting at `start` (the opening `` ` ``).
+ * Returns the static quasis, the raw expression source strings, and the index
+ * immediately after the closing backtick.
+ */
+function parseTemplateLiteral(code, start) {
+ /** @type {string[]} */
+ const quasis = [];
+ /** @type {string[]} */
+ const expressions = [];
+
+ let i = start + 1; // skip opening backtick
+ let quasi = '';
+
+ while (i < code.length) {
+ const ch = code[i];
+
+ // Escape sequence — preserve verbatim.
+ if (ch === '\\' && i + 1 < code.length) {
+ quasi += ch + code[i + 1];
+ i += 2;
+ continue;
+ }
+
+ // End of template literal.
+ if (ch === '`') {
+ quasis.push(quasi);
+ i++;
+ break;
+ }
+
+ // Start of ${…} expression.
+ if (ch === '$' && i + 1 < code.length && code[i + 1] === '{') {
+ quasis.push(quasi);
+ quasi = '';
+ i += 2; // skip ${
+ expressions.push(collectExpression(code, i));
+ i = expressions[expressions.length - 1]._end;
+ continue;
+ }
+
+ quasi += ch;
+ i++;
+ }
+
+ return { quasis, expressions: expressions.map((e) => e.src), end: i };
+}
+
+// ---------------------------------------------------------------------------
+// Expression collector — tracks brace depth, skips strings & nested templates.
+// ---------------------------------------------------------------------------
+
+/**
+ * Starting right after the `${`, collect everything up to the matching `}`.
+ * Returns `{ src, _end }` where `_end` is the index after the closing `}`.
+ */
+function collectExpression(code, start) {
+ let i = start;
+ let depth = 1;
+ let src = '';
+
+ while (i < code.length && depth > 0) {
+ const ch = code[i];
+
+ if (ch === '{') {
+ depth++;
+ src += ch;
+ i++;
+ } else if (ch === '}') {
+ depth--;
+ if (depth === 0) {
+ i++; // skip closing }
+ break;
+ }
+ src += ch;
+ i++;
+ } else if (ch === "'" || ch === '"') {
+ const consumed = skipString(code, i);
+ src += consumed.text;
+ i = consumed.end;
+ } else if (ch === '`') {
+ const consumed = skipNestedTemplate(code, i);
+ src += consumed.text;
+ i = consumed.end;
+ } else {
+ src += ch;
+ i++;
+ }
+ }
+
+ return { src, _end: i };
+}
+
+/** Skip a single- or double-quoted string starting at `start`. */
+function skipString(code, start) {
+ const quote = code[start];
+ let text = quote;
+ let i = start + 1;
+
+ while (i < code.length && code[i] !== quote) {
+ if (code[i] === '\\' && i + 1 < code.length) {
+ text += code[i] + code[i + 1];
+ i += 2;
+ } else {
+ text += code[i];
+ i++;
+ }
+ }
+
+ if (i < code.length) {
+ text += code[i]; // closing quote
+ i++;
+ }
+
+ return { text, end: i };
+}
+
+/** Skip a nested backtick template literal (with its own `${…}` blocks). */
+function skipNestedTemplate(code, start) {
+ let text = '`';
+ let i = start + 1;
+ let exprDepth = 0;
+
+ while (i < code.length) {
+ const ch = code[i];
+
+ if (ch === '\\' && i + 1 < code.length) {
+ text += ch + code[i + 1];
+ i += 2;
+ } else if (ch === '`' && exprDepth === 0) {
+ text += ch;
+ i++;
+ break;
+ } else if (ch === '$' && i + 1 < code.length && code[i + 1] === '{') {
+ text += '${';
+ i += 2;
+ exprDepth++;
+ } else if (ch === '}' && exprDepth > 0) {
+ text += ch;
+ i++;
+ exprDepth--;
+ } else {
+ text += ch;
+ i++;
+ }
+ }
+
+ return { text, end: i };
+}
+
+function isWhitespace(ch) {
+ return ch === ' ' || ch === '\n' || ch === '\t' || ch === '\r';
+}
diff --git a/package.json b/package.json
index af20625e..e97f77e8 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"prepare": "simple-git-hooks",
"postinstall": "node build/scripts/link-aliases.mjs",
"build:packages": "turbo run build --filter='./packages/*'",
+ "build:cdn": "turbo run build:cdn --filter=@videojs/html",
"build:site": "turbo run build --filter=site",
"build": "turbo run build",
"clean": "turbo run clean",
@@ -44,6 +45,7 @@
"@commitlint/format": "^20.0.0",
"@types/node": "^22.18.6",
"esbuild": "^0.27.3",
+ "lightningcss": "^1.32.0",
"lint-staged": "^16.2.3",
"prettier": "^3.8.1",
"prettier-plugin-astro": "^0.14.1",
diff --git a/packages/html/.gitignore b/packages/html/.gitignore
new file mode 100644
index 00000000..249d4615
--- /dev/null
+++ b/packages/html/.gitignore
@@ -0,0 +1 @@
+/cdn/
diff --git a/packages/html/package.json b/packages/html/package.json
index 3a8853c7..d2821385 100644
--- a/packages/html/package.json
+++ b/packages/html/package.json
@@ -16,7 +16,8 @@
"./dist/*/define/**/*.js"
],
"files": [
- "dist"
+ "dist",
+ "cdn"
],
"exports": {
".": {
@@ -81,10 +82,11 @@
},
"scripts": {
"build": "tsdown",
+ "build:cdn": "tsdown --config tsdown.cdn.config.ts && node scripts/cdn-copy-css.js",
"build:watch": "tsdown --watch ./src --no-clean",
"dev": "pnpm run build:watch",
"test": "vitest run",
- "clean": "rm -rf dist types"
+ "clean": "rm -rf dist cdn types"
},
"dependencies": {
"@videojs/spf": "workspace:*",
diff --git a/packages/html/scripts/cdn-copy-css.js b/packages/html/scripts/cdn-copy-css.js
new file mode 100644
index 00000000..e09fe035
--- /dev/null
+++ b/packages/html/scripts/cdn-copy-css.js
@@ -0,0 +1,29 @@
+import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
+import { dirname, resolve } from 'node:path';
+import { fileURLToPath } from 'node:url';
+import { transform } from 'lightningcss';
+
+const root = resolve(dirname(fileURLToPath(import.meta.url)), '..');
+const htmlDist = resolve(root, 'dist/default/define');
+const outDir = resolve(root, 'cdn');
+
+const cssFiles = [
+ { src: 'video/skin.css', dest: 'video.css' },
+ { src: 'video/minimal-skin.css', dest: 'video-minimal.css' },
+ { src: 'audio/skin.css', dest: 'audio.css' },
+ { src: 'audio/minimal-skin.css', dest: 'audio-minimal.css' },
+ { src: 'background/skin.css', dest: 'background.css' },
+];
+
+for (const { src, dest } of cssFiles) {
+ const srcPath = resolve(htmlDist, src);
+ const destPath = resolve(outDir, dest);
+ const raw = readFileSync(srcPath);
+
+ const { code } = transform({ filename: srcPath, code: raw, minify: true });
+
+ mkdirSync(dirname(destPath), { recursive: true });
+ writeFileSync(destPath, code);
+
+ console.log(` ${dest} (${raw.length} → ${code.length})`);
+}
diff --git a/packages/html/src/cdn/audio-minimal.ts b/packages/html/src/cdn/audio-minimal.ts
new file mode 100644
index 00000000..5fece6d6
--- /dev/null
+++ b/packages/html/src/cdn/audio-minimal.ts
@@ -0,0 +1,2 @@
+import '../define/audio/player';
+import '../define/audio/minimal-skin';
diff --git a/packages/html/src/cdn/audio.ts b/packages/html/src/cdn/audio.ts
new file mode 100644
index 00000000..27849430
--- /dev/null
+++ b/packages/html/src/cdn/audio.ts
@@ -0,0 +1,2 @@
+import '../define/audio/player';
+import '../define/audio/skin';
diff --git a/packages/html/src/cdn/background.ts b/packages/html/src/cdn/background.ts
new file mode 100644
index 00000000..ac1ccf74
--- /dev/null
+++ b/packages/html/src/cdn/background.ts
@@ -0,0 +1,2 @@
+import '../define/background/player';
+import '../define/background/skin';
diff --git a/packages/html/src/cdn/media/hls-video.ts b/packages/html/src/cdn/media/hls-video.ts
new file mode 100644
index 00000000..8d292303
--- /dev/null
+++ b/packages/html/src/cdn/media/hls-video.ts
@@ -0,0 +1 @@
+import '../../define/media/hls-video';
diff --git a/packages/html/src/cdn/media/simple-hls-video.ts b/packages/html/src/cdn/media/simple-hls-video.ts
new file mode 100644
index 00000000..0ece7990
--- /dev/null
+++ b/packages/html/src/cdn/media/simple-hls-video.ts
@@ -0,0 +1 @@
+import '../../define/media/simple-hls-video';
diff --git a/packages/html/src/cdn/video-minimal.ts b/packages/html/src/cdn/video-minimal.ts
new file mode 100644
index 00000000..917f2732
--- /dev/null
+++ b/packages/html/src/cdn/video-minimal.ts
@@ -0,0 +1,2 @@
+import '../define/video/player';
+import '../define/video/minimal-skin';
diff --git a/packages/html/src/cdn/video.ts b/packages/html/src/cdn/video.ts
new file mode 100644
index 00000000..a5f4f119
--- /dev/null
+++ b/packages/html/src/cdn/video.ts
@@ -0,0 +1,2 @@
+import '../define/video/player';
+import '../define/video/skin';
diff --git a/packages/html/tsdown.cdn.config.ts b/packages/html/tsdown.cdn.config.ts
new file mode 100644
index 00000000..d682a1e6
--- /dev/null
+++ b/packages/html/tsdown.cdn.config.ts
@@ -0,0 +1,69 @@
+import { dirname, resolve } from 'node:path';
+import { fileURLToPath } from 'node:url';
+import type { UserConfig } from 'tsdown';
+import { defineConfig } from 'tsdown';
+import { inlineCssPlugin } from '../../build/plugins/inline-css-plugin.mjs';
+import { inlineTemplatePlugin } from '../../build/plugins/inline-template-plugin.mjs';
+
+type BuildMode = 'dev' | 'prod';
+
+const skinsDir = resolve(dirname(fileURLToPath(import.meta.url)), '../skins/src');
+
+const buildModes: BuildMode[] = ['dev', 'prod'];
+
+const presets = ['video', 'video-minimal', 'audio', 'audio-minimal', 'background'];
+const media = ['hls-video', 'simple-hls-video'];
+
+const entries = [
+ ...presets.map((name) => ({ src: `src/cdn/${name}.ts`, name })),
+ ...media.map((name) => ({ src: `src/cdn/media/${name}.ts`, name: `media/${name}` })),
+];
+
+/**
+ * One config per entry per mode → each output is fully self-contained.
+ * Multiple entries in a single config causes rolldown to code-split shared
+ * modules into chunks, which breaks the single-file CDN bundle requirement.
+ */
+const configs: UserConfig[] = [];
+
+for (const mode of buildModes) {
+ for (const { src, name } of entries) {
+ const outName = mode === 'dev' ? `${name}.dev` : name;
+
+ const isProd = mode === 'prod';
+
+ configs.push({
+ entry: { [outName]: src },
+ platform: 'browser',
+ format: 'es',
+ target: 'es2022',
+ sourcemap: true,
+ clean: false,
+ dts: false,
+ minify: isProd,
+ noExternal: [/.*/],
+ inlineOnly: false,
+ treeshake: {
+ moduleSideEffects: [{ test: /\/define\//, sideEffects: true }],
+ },
+ outDir: 'cdn',
+ alias: {
+ '@': new URL('./src', import.meta.url).pathname,
+ },
+ define: {
+ __DEV__: isProd ? 'false' : 'true',
+ },
+ plugins: [inlineCssPlugin({ skinsDir, minify: isProd }), inlineTemplatePlugin({ minify: isProd })],
+ inputOptions:
+ mode === 'dev'
+ ? {
+ resolve: {
+ conditionNames: ['development', 'import', 'browser', 'default'],
+ },
+ }
+ : undefined,
+ });
+ }
+}
+
+export default defineConfig(configs);
diff --git a/packages/html/tsdown.config.ts b/packages/html/tsdown.config.ts
index 67d13c4a..a642b321 100644
--- a/packages/html/tsdown.config.ts
+++ b/packages/html/tsdown.config.ts
@@ -5,6 +5,7 @@ import type { UserConfig } from 'tsdown';
import { defineConfig } from 'tsdown';
import { copyCssPlugin } from '../../build/plugins/copy-css-plugin.mjs';
import { inlineCssPlugin } from '../../build/plugins/inline-css-plugin.mjs';
+import { inlineTemplatePlugin } from '../../build/plugins/inline-template-plugin.mjs';
type BuildMode = 'dev' | 'default';
@@ -55,7 +56,11 @@ const createConfig = (mode: BuildMode): UserConfig => ({
__DEV__: mode === 'dev' ? 'true' : 'false',
},
dts: mode === 'dev',
- plugins: [copyCssPlugin({ skinsDir, outDir: `dist/${mode}` }), inlineCssPlugin({ skinsDir })],
+ plugins: [
+ copyCssPlugin({ skinsDir, outDir: `dist/${mode}` }),
+ inlineCssPlugin({ skinsDir, minify: mode !== 'dev' }),
+ inlineTemplatePlugin({ minify: mode !== 'dev' }),
+ ],
});
export default defineConfig(buildModes.map((mode) => createConfig(mode)));
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 3bb12314..49d0c6f2 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -32,6 +32,9 @@ importers:
esbuild:
specifier: ^0.27.3
version: 0.27.3
+ lightningcss:
+ specifier: ^1.32.0
+ version: 1.32.0
lint-staged:
specifier: ^16.2.3
version: 16.3.2
@@ -92,7 +95,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
packages/element:
dependencies:
@@ -111,7 +114,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
packages/html:
dependencies:
@@ -151,7 +154,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
packages/icons:
dependencies:
@@ -228,7 +231,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
packages/sandbox:
dependencies:
@@ -262,7 +265,7 @@ importers:
devDependencies:
'@tailwindcss/vite':
specifier: ^4.2.0
- version: 4.2.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.2.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
'@types/fs-extra':
specifier: ^11.0.4
version: 11.0.4
@@ -277,7 +280,7 @@ importers:
version: 19.2.3(@types/react@19.2.14)
'@vitejs/plugin-react':
specifier: ^5.1.4
- version: 5.1.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 5.1.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
chalk:
specifier: ^5.6.2
version: 5.6.2
@@ -310,7 +313,7 @@ importers:
version: 5.9.3
vite:
specifier: ^6.0.0
- version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
packages/skins:
dependencies:
@@ -333,7 +336,7 @@ importers:
devDependencies:
'@vitest/browser':
specifier: ^3.2.4
- version: 3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
+ version: 3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
'@vitest/coverage-v8':
specifier: ^3.2.4
version: 3.2.4(@vitest/browser@3.2.4)(vitest@3.2.4)
@@ -351,7 +354,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
packages/store:
dependencies:
@@ -385,7 +388,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
packages/utils:
devDependencies:
@@ -397,19 +400,19 @@ importers:
version: 5.9.3
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
site:
dependencies:
'@astrojs/mdx':
specifier: ^4.3.7
- version: 4.3.13(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
+ version: 4.3.13(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))
'@astrojs/netlify':
specifier: ^6.6.4
- version: 6.6.4(@types/node@22.19.15)(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(yaml@2.8.2)
+ version: 6.6.4(@types/node@22.19.15)(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(yaml@2.8.2)
'@astrojs/react':
specifier: ^4.4.0
- version: 4.4.2(@types/node@22.19.15)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
+ version: 4.4.2(@types/node@22.19.15)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)
'@astrojs/rss':
specifier: ^4.0.12
version: 4.0.15
@@ -433,10 +436,10 @@ importers:
version: 1.4.0
'@sentry/astro':
specifier: ^10.32.1
- version: 10.42.0(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(rollup@4.59.0)
+ version: 10.42.0(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(rollup@4.59.0)
'@tailwindcss/vite':
specifier: ^4.2.1
- version: 4.2.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.2.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
'@videojs/html':
specifier: workspace:*
version: link:../packages/html
@@ -445,7 +448,7 @@ importers:
version: link:../packages/react
astro:
specifier: ^5.14.4
- version: 5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ version: 5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -536,7 +539,7 @@ importers:
version: 5.0.6
'@vitejs/plugin-react':
specifier: ^5.1.4
- version: 5.1.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 5.1.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
'@vitest/coverage-v8':
specifier: ^3.2.4
version: 3.2.4(@vitest/browser@3.2.4)(vitest@3.2.4)
@@ -572,10 +575,10 @@ importers:
version: 1.0.0-beta.1(typescript@5.9.3)
vite-plugin-svgr:
specifier: ^4.5.0
- version: 4.5.0(rollup@4.59.0)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ version: 4.5.0(rollup@4.59.0)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
vitest:
specifier: ^3.2.4
- version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
packages:
@@ -5292,30 +5295,60 @@ packages:
cpu: [arm64]
os: [android]
+ lightningcss-android-arm64@1.32.0:
+ resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [android]
+
lightningcss-darwin-arm64@1.31.1:
resolution: {integrity: sha512-02uTEqf3vIfNMq3h/z2cJfcOXnQ0GRwQrkmPafhueLb2h7mqEidiCzkE4gBMEH65abHRiQvhdcQ+aP0D0g67sg==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
+ lightningcss-darwin-arm64@1.32.0:
+ resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
lightningcss-darwin-x64@1.31.1:
resolution: {integrity: sha512-1ObhyoCY+tGxtsz1lSx5NXCj3nirk0Y0kB/g8B8DT+sSx4G9djitg9ejFnjb3gJNWo7qXH4DIy2SUHvpoFwfTA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
+ lightningcss-darwin-x64@1.32.0:
+ resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
lightningcss-freebsd-x64@1.31.1:
resolution: {integrity: sha512-1RINmQKAItO6ISxYgPwszQE1BrsVU5aB45ho6O42mu96UiZBxEXsuQ7cJW4zs4CEodPUioj/QrXW1r9pLUM74A==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
+ lightningcss-freebsd-x64@1.32.0:
+ resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
lightningcss-linux-arm-gnueabihf@1.31.1:
resolution: {integrity: sha512-OOCm2//MZJ87CdDK62rZIu+aw9gBv4azMJuA8/KB74wmfS3lnC4yoPHm0uXZ/dvNNHmnZnB8XLAZzObeG0nS1g==}
engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
lightningcss-linux-arm64-gnu@1.31.1:
resolution: {integrity: sha512-WKyLWztD71rTnou4xAD5kQT+982wvca7E6QoLpoawZ1gP9JM0GJj4Tp5jMUh9B3AitHbRZ2/H3W5xQmdEOUlLg==}
engines: {node: '>= 12.0.0'}
@@ -5323,6 +5356,13 @@ packages:
os: [linux]
libc: [glibc]
+ lightningcss-linux-arm64-gnu@1.32.0:
+ resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [glibc]
+
lightningcss-linux-arm64-musl@1.31.1:
resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==}
engines: {node: '>= 12.0.0'}
@@ -5330,6 +5370,13 @@ packages:
os: [linux]
libc: [musl]
+ lightningcss-linux-arm64-musl@1.32.0:
+ resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
lightningcss-linux-x64-gnu@1.31.1:
resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==}
engines: {node: '>= 12.0.0'}
@@ -5337,6 +5384,13 @@ packages:
os: [linux]
libc: [glibc]
+ lightningcss-linux-x64-gnu@1.32.0:
+ resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [glibc]
+
lightningcss-linux-x64-musl@1.31.1:
resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==}
engines: {node: '>= 12.0.0'}
@@ -5344,22 +5398,45 @@ packages:
os: [linux]
libc: [musl]
+ lightningcss-linux-x64-musl@1.32.0:
+ resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ libc: [musl]
+
lightningcss-win32-arm64-msvc@1.31.1:
resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [win32]
+ lightningcss-win32-arm64-msvc@1.32.0:
+ resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
lightningcss-win32-x64-msvc@1.31.1:
resolution: {integrity: sha512-I9aiFrbd7oYHwlnQDqr1Roz+fTz61oDDJX7n9tYF9FJymH1cIN1DtKw3iYt6b8WZgEjoNwVSncwF4wx/ZedMhw==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
+ lightningcss-win32-x64-msvc@1.32.0:
+ resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
lightningcss@1.31.1:
resolution: {integrity: sha512-l51N2r93WmGUye3WuFoN5k10zyvrVs0qfKBhyC5ogUQ6Ew6JUSswh78mbSO+IU3nTWsyOArqPCcShdQSadghBQ==}
engines: {node: '>= 12.0.0'}
+ lightningcss@1.32.0:
+ resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==}
+ engines: {node: '>= 12.0.0'}
+
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@@ -7875,12 +7952,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@astrojs/mdx@4.3.13(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))':
+ '@astrojs/mdx@4.3.13(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))':
dependencies:
'@astrojs/markdown-remark': 6.3.10
'@mdx-js/mdx': 3.1.1
acorn: 8.16.0
- astro: 5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ astro: 5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
es-module-lexer: 1.7.0
estree-util-visit: 2.0.0
hast-util-to-html: 9.0.5
@@ -7894,18 +7971,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@astrojs/netlify@6.6.4(@types/node@22.19.15)(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(yaml@2.8.2)':
+ '@astrojs/netlify@6.6.4(@types/node@22.19.15)(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(yaml@2.8.2)':
dependencies:
'@astrojs/internal-helpers': 0.7.5
'@astrojs/underscore-redirects': 1.0.0
'@netlify/blobs': 10.7.0
'@netlify/functions': 5.1.2
- '@netlify/vite-plugin': 2.10.8(rollup@4.59.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@netlify/vite-plugin': 2.10.8(rollup@4.59.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
'@vercel/nft': 0.30.4(rollup@4.59.0)
- astro: 5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ astro: 5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
esbuild: 0.25.12
tinyglobby: 0.2.15
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
@@ -7948,15 +8025,15 @@ snapshots:
dependencies:
prismjs: 1.30.0
- '@astrojs/react@4.4.2(@types/node@22.19.15)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.31.1)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)':
+ '@astrojs/react@4.4.2(@types/node@22.19.15)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(jiti@2.6.1)(lightningcss@1.32.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(tsx@4.21.0)(yaml@2.8.2)':
dependencies:
'@types/react': 19.2.14
'@types/react-dom': 19.2.3(@types/react@19.2.14)
- '@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
react: 19.2.4
react-dom: 19.2.4(react@19.2.4)
ultrahtml: 1.6.0
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -9188,12 +9265,12 @@ snapshots:
'@netlify/types@2.3.0': {}
- '@netlify/vite-plugin@2.10.8(rollup@4.59.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@netlify/vite-plugin@2.10.8(rollup@4.59.0)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@netlify/dev': 4.14.1(rollup@4.59.0)
'@netlify/dev-utils': 4.3.3
dedent: 1.7.2
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
@@ -9984,13 +10061,13 @@ snapshots:
'@sentry-internal/browser-utils': 10.42.0
'@sentry/core': 10.42.0
- '@sentry/astro@10.42.0(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(rollup@4.59.0)':
+ '@sentry/astro@10.42.0(astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(rollup@4.59.0)':
dependencies:
'@sentry/browser': 10.42.0
'@sentry/core': 10.42.0
'@sentry/node': 10.42.0
'@sentry/vite-plugin': 5.1.1(rollup@4.59.0)
- astro: 5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
+ astro: 5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
transitivePeerDependencies:
- encoding
- rollup
@@ -10330,12 +10407,12 @@ snapshots:
'@tailwindcss/oxide-win32-arm64-msvc': 4.2.1
'@tailwindcss/oxide-win32-x64-msvc': 4.2.1
- '@tailwindcss/vite@4.2.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@tailwindcss/vite@4.2.1(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@tailwindcss/node': 4.2.1
'@tailwindcss/oxide': 4.2.1
tailwindcss: 4.2.1
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
'@testing-library/dom@10.4.1':
dependencies:
@@ -10595,7 +10672,7 @@ snapshots:
- rollup
- supports-color
- '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
@@ -10603,11 +10680,11 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-beta.27
'@types/babel__core': 7.20.5
react-refresh: 0.17.0
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
- '@vitejs/plugin-react@5.1.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitejs/plugin-react@5.1.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0)
@@ -10615,20 +10692,20 @@ snapshots:
'@rolldown/pluginutils': 1.0.0-rc.3
'@types/babel__core': 7.20.5
react-refresh: 0.18.0
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- supports-color
- '@vitest/browser@3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)':
+ '@vitest/browser@3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)':
dependencies:
'@testing-library/dom': 10.4.1
'@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1)
- '@vitest/mocker': 3.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitest/mocker': 3.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
'@vitest/utils': 3.2.4
magic-string: 0.30.21
sirv: 3.0.2
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
ws: 8.19.0
optionalDependencies:
playwright: 1.58.2
@@ -10653,9 +10730,9 @@ snapshots:
std-env: 3.10.0
test-exclude: 7.0.2
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
optionalDependencies:
- '@vitest/browser': 3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
+ '@vitest/browser': 3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
transitivePeerDependencies:
- supports-color
@@ -10667,13 +10744,13 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/mocker@3.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))':
+ '@vitest/mocker@3.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@vitest/spy': 3.2.4
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
'@vitest/pretty-format@3.2.4':
dependencies:
@@ -10704,7 +10781,7 @@ snapshots:
sirv: 3.0.2
tinyglobby: 0.2.15
tinyrainbow: 2.0.0
- vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
'@vitest/utils@3.2.4':
dependencies:
@@ -10976,7 +11053,7 @@ snapshots:
astring@1.9.0: {}
- astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2):
+ astro@5.18.0(@netlify/blobs@10.7.0)(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(rollup@4.59.0)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2):
dependencies:
'@astrojs/compiler': 2.13.1
'@astrojs/internal-helpers': 0.7.5
@@ -11033,8 +11110,8 @@ snapshots:
unist-util-visit: 5.1.0
unstorage: 1.17.4(@netlify/blobs@10.7.0)
vfile: 6.0.3
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
+ vitefu: 1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
xxhash-wasm: 1.1.0
yargs-parser: 21.1.1
yocto-spinner: 0.2.3
@@ -12956,36 +13033,69 @@ snapshots:
lightningcss-android-arm64@1.31.1:
optional: true
+ lightningcss-android-arm64@1.32.0:
+ optional: true
+
lightningcss-darwin-arm64@1.31.1:
optional: true
+ lightningcss-darwin-arm64@1.32.0:
+ optional: true
+
lightningcss-darwin-x64@1.31.1:
optional: true
+ lightningcss-darwin-x64@1.32.0:
+ optional: true
+
lightningcss-freebsd-x64@1.31.1:
optional: true
+ lightningcss-freebsd-x64@1.32.0:
+ optional: true
+
lightningcss-linux-arm-gnueabihf@1.31.1:
optional: true
+ lightningcss-linux-arm-gnueabihf@1.32.0:
+ optional: true
+
lightningcss-linux-arm64-gnu@1.31.1:
optional: true
+ lightningcss-linux-arm64-gnu@1.32.0:
+ optional: true
+
lightningcss-linux-arm64-musl@1.31.1:
optional: true
+ lightningcss-linux-arm64-musl@1.32.0:
+ optional: true
+
lightningcss-linux-x64-gnu@1.31.1:
optional: true
+ lightningcss-linux-x64-gnu@1.32.0:
+ optional: true
+
lightningcss-linux-x64-musl@1.31.1:
optional: true
+ lightningcss-linux-x64-musl@1.32.0:
+ optional: true
+
lightningcss-win32-arm64-msvc@1.31.1:
optional: true
+ lightningcss-win32-arm64-msvc@1.32.0:
+ optional: true
+
lightningcss-win32-x64-msvc@1.31.1:
optional: true
+ lightningcss-win32-x64-msvc@1.32.0:
+ optional: true
+
lightningcss@1.31.1:
dependencies:
detect-libc: 2.1.2
@@ -13002,6 +13112,22 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.31.1
lightningcss-win32-x64-msvc: 1.31.1
+ lightningcss@1.32.0:
+ dependencies:
+ detect-libc: 2.1.2
+ optionalDependencies:
+ lightningcss-android-arm64: 1.32.0
+ lightningcss-darwin-arm64: 1.32.0
+ lightningcss-darwin-x64: 1.32.0
+ lightningcss-freebsd-x64: 1.32.0
+ lightningcss-linux-arm-gnueabihf: 1.32.0
+ lightningcss-linux-arm64-gnu: 1.32.0
+ lightningcss-linux-arm64-musl: 1.32.0
+ lightningcss-linux-x64-gnu: 1.32.0
+ lightningcss-linux-x64-musl: 1.32.0
+ lightningcss-win32-arm64-msvc: 1.32.0
+ lightningcss-win32-x64-msvc: 1.32.0
+
lines-and-columns@1.2.4: {}
lint-staged@16.3.2:
@@ -15358,13 +15484,13 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.3
- vite-node@3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2):
+ vite-node@3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
cac: 6.7.14
debug: 4.4.3
es-module-lexer: 1.7.0
pathe: 2.0.3
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- '@types/node'
- jiti
@@ -15379,18 +15505,18 @@ snapshots:
- tsx
- yaml
- vite-plugin-svgr@4.5.0(rollup@4.59.0)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vite-plugin-svgr@4.5.0(rollup@4.59.0)(typescript@5.9.3)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.59.0)
'@svgr/core': 8.1.0(typescript@5.9.3)
'@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.9.3))
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
transitivePeerDependencies:
- rollup
- supports-color
- typescript
- vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2):
+ vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
esbuild: 0.25.12
fdir: 6.5.0(picomatch@4.0.3)
@@ -15402,19 +15528,19 @@ snapshots:
'@types/node': 22.19.15
fsevents: 2.3.3
jiti: 2.6.1
- lightningcss: 1.31.1
+ lightningcss: 1.32.0
tsx: 4.21.0
yaml: 2.8.2
- vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)):
+ vitefu@1.1.2(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)):
optionalDependencies:
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
- vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2):
+ vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@26.1.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitest/mocker': 3.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -15432,13 +15558,13 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
'@types/node': 22.19.15
- '@vitest/browser': 3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
+ '@vitest/browser': 3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
'@vitest/ui': 3.2.4(vitest@3.2.4)
happy-dom: 18.0.1
jsdom: 26.1.0
@@ -15456,11 +15582,11 @@ snapshots:
- tsx
- yaml
- vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2):
+ vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.15)(@vitest/browser@3.2.4)(@vitest/ui@3.2.4)(happy-dom@18.0.1)(jiti@2.6.1)(jsdom@27.4.0)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
'@types/chai': 5.2.3
'@vitest/expect': 3.2.4
- '@vitest/mocker': 3.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))
+ '@vitest/mocker': 3.2.4(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))
'@vitest/pretty-format': 3.2.4
'@vitest/runner': 3.2.4
'@vitest/snapshot': 3.2.4
@@ -15478,13 +15604,13 @@ snapshots:
tinyglobby: 0.2.15
tinypool: 1.1.1
tinyrainbow: 2.0.0
- vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
- vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)
+ vite: 6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
+ vite-node: 3.2.4(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/debug': 4.1.12
'@types/node': 22.19.15
- '@vitest/browser': 3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
+ '@vitest/browser': 3.2.4(playwright@1.58.2)(vite@6.4.1(@types/node@22.19.15)(jiti@2.6.1)(lightningcss@1.32.0)(tsx@4.21.0)(yaml@2.8.2))(vitest@3.2.4)
'@vitest/ui': 3.2.4(vitest@3.2.4)
happy-dom: 18.0.1
jsdom: 27.4.0
diff --git a/site/src/components/home/Demo/Base.tsx b/site/src/components/home/Demo/Base.tsx
index 7101ab07..842dbe9b 100644
--- a/site/src/components/home/Demo/Base.tsx
+++ b/site/src/components/home/Demo/Base.tsx
@@ -5,15 +5,14 @@ import type { Skin } from '@/stores/homePageDemos';
import { framework, skin } from '@/stores/homePageDemos';
import ClientCode from '../../Code/ClientCode';
+const CDN_BASE = 'https://cdn.jsdelivr.net/npm/@videojs/html/cdn';
+
function generateHTMLCode(skin: Skin): string {
const skinTag = skin === 'default' ? 'video-skin' : 'video-minimal-skin';
- const skinFile = skin === 'default' ? 'skin' : 'minimal-skin';
+ const cdnFile = skin === 'default' ? 'video' : 'video-minimal';
- return `
-
+ return `
+
<${skinTag}>
diff --git a/site/src/components/installation/HTMLCdnCodeBlock.tsx b/site/src/components/installation/HTMLCdnCodeBlock.tsx
index ae772d66..33f39f1f 100644
--- a/site/src/components/installation/HTMLCdnCodeBlock.tsx
+++ b/site/src/components/installation/HTMLCdnCodeBlock.tsx
@@ -3,31 +3,20 @@ import ClientCode from '@/components/Code/ClientCode';
import type { Skin, UseCase } from '@/stores/installation';
import { skin, useCase } from '@/stores/installation';
-function getSkinImportParts(skin: Skin): { group: string; skinFile: string } {
- if (skin === 'minimal-video') return { group: 'video', skinFile: 'minimal-skin' };
- if (skin === 'minimal-audio') return { group: 'audio', skinFile: 'minimal-skin' };
- return { group: skin, skinFile: 'skin' };
+const CDN_BASE = 'https://cdn.jsdelivr.net/npm/@videojs/html/cdn';
+
+function getCdnFileName(useCase: UseCase, skin: Skin): string {
+ if (useCase === 'background-video') return 'background';
+ if (skin === 'minimal-video') return 'video-minimal';
+ if (skin === 'minimal-audio') return 'audio-minimal';
+ return skin;
}
-// jsdelivr doesn't resolve Node package exports, so we use the full file path
-const CDN_BASE = 'https://cdn.jsdelivr.net/npm/@videojs/html/dist/default/define';
-
function generateCdnCode(useCase: UseCase, skin: Skin): string {
- if (useCase === 'background-video') {
- return `
-`;
- }
+ const name = getCdnFileName(useCase, skin);
- const { group, skinFile } = getSkinImportParts(skin);
-
- return `
-`;
+ return `
+`;
}
export default function HTMLCdnCodeBlock() {
diff --git a/turbo.json b/turbo.json
index 9c58a9e6..b36f7d6c 100644
--- a/turbo.json
+++ b/turbo.json
@@ -7,6 +7,10 @@
"dependsOn": ["^build"],
"outputs": ["dist/**", ".netlify/**"]
},
+ "build:cdn": {
+ "dependsOn": ["build"],
+ "outputs": ["cdn/**"]
+ },
"dev": {
"dependsOn": ["^build"],
"cache": false,