diff --git a/packages/kit/src/types.ts b/packages/kit/src/types.ts index 88b89ef..2e2be80 100644 --- a/packages/kit/src/types.ts +++ b/packages/kit/src/types.ts @@ -13,6 +13,7 @@ export interface ServerFunctions { getComponents: () => Promise; getRoutes: () => any; getQwikPackages: () => Promise<[string, string][]>; + getAllDependencies: () => Promise; installPackage: ( packageName: string, isDev?: boolean, diff --git a/packages/plugin/src/index.ts b/packages/plugin/src/index.ts index c38204a..480b3c3 100644 --- a/packages/plugin/src/index.ts +++ b/packages/plugin/src/index.ts @@ -4,11 +4,13 @@ import { createServerRpc, setViteServerContext, VIRTUAL_QWIK_DEVTOOLS_KEY, INNER import VueInspector from 'vite-plugin-inspect' import useCollectHooksSource from './utils/useCollectHooks' import { parseQwikCode } from './parse/parse'; +import { startPreloading } from './npm/index'; export function qwikDevtools(): Plugin[] { let _config: ResolvedConfig; const qwikData = new Map(); + let preloadStarted = false; const qwikDevtoolsPlugin: Plugin = { name: 'vite-plugin-qwik-devtools', apply: 'serve', @@ -39,6 +41,14 @@ export function qwikDevtools(): Plugin[] { }, configResolved(viteConfig) { _config = viteConfig; + + // Start preloading as early as possible, right after config is resolved + if (!preloadStarted) { + preloadStarted = true; + startPreloading({ config: _config }).catch((err) => { + console.error('[Qwik DevTools] Failed to start preloading:', err); + }); + } }, transform: { order: 'pre', @@ -88,6 +98,8 @@ export function qwikDevtools(): Plugin[] { const rpcFunctions = getServerFunctions({ server, config: _config, qwikData }); createServerRpc(rpcFunctions); + + // Preloading should have already started in configResolved }, } return [ diff --git a/packages/plugin/src/npm/index.ts b/packages/plugin/src/npm/index.ts index 5720317..543250e 100644 --- a/packages/plugin/src/npm/index.ts +++ b/packages/plugin/src/npm/index.ts @@ -4,6 +4,36 @@ import { NpmInfo } from '@devtools/kit'; import { execSync } from 'child_process'; import path from 'path'; +// In-memory cache for npm package information +interface CacheEntry { + data: any; + timestamp: number; +} + +const packageCache = new Map(); +const CACHE_TTL = 1000 * 60 * 30; // 30 minutes cache TTL + +// Preloaded dependencies cache - loaded at server startup +let preloadedDependencies: any[] | null = null; +let isPreloading = false; +let preloadPromise: Promise | null = null; + +function getCachedPackage(name: string): any | null { + const cached = packageCache.get(name); + if (cached && Date.now() - cached.timestamp < CACHE_TTL) { + return cached.data; + } + packageCache.delete(name); + return null; +} + +function setCachedPackage(name: string, data: any): void { + packageCache.set(name, { + data, + timestamp: Date.now(), + }); +} + export async function detectPackageManager( projectRoot: string, ): Promise<'npm' | 'pnpm' | 'yarn'> { @@ -38,6 +68,194 @@ export async function detectPackageManager( } } +// Preload dependencies function - moved to module scope +const preloadDependencies = async (config: any): Promise => { + if (preloadedDependencies) { + console.log('[Qwik DevTools] Dependencies already preloaded'); + return preloadedDependencies; + } + + if (isPreloading && preloadPromise) { + console.log('[Qwik DevTools] Preloading already in progress...'); + return preloadPromise; + } + + isPreloading = true; + console.log('[Qwik DevTools] Starting to preload dependencies...'); + + preloadPromise = (async () => { + const pathToPackageJson = config.configFileDependencies.find( + (file: string) => file.endsWith('package.json'), + ); + + if (!pathToPackageJson) { + preloadedDependencies = []; + isPreloading = false; + console.log('[Qwik DevTools] No package.json found'); + return []; + } + + try { + const pkgJson = await fsp.readFile(pathToPackageJson, 'utf-8'); + const pkg = JSON.parse(pkgJson); + + const allDeps = { + ...pkg.dependencies || {}, + ...pkg.devDependencies || {}, + ...pkg.peerDependencies || {}, + }; + + const dependencies = Object.entries(allDeps); + + // Check cache first + const cachedPackages: any[] = []; + const uncachedDependencies: [string, string][] = []; + + for (const [name, version] of dependencies) { + const cached = getCachedPackage(name); + if (cached) { + cachedPackages.push({ ...cached, version }); + } else { + uncachedDependencies.push([name, version]); + } + } + + if (uncachedDependencies.length === 0) { + preloadedDependencies = cachedPackages; + isPreloading = false; + return cachedPackages; + } + + // Load all dependencies - use larger batch for initial preload + const batchSize = 100; + const batches = []; + for (let i = 0; i < uncachedDependencies.length; i += batchSize) { + batches.push(uncachedDependencies.slice(i, i + batchSize)); + } + + const fetchedPackages: any[] = []; + + console.log(`[Qwik DevTools] Fetching ${uncachedDependencies.length} packages in parallel...`); + + const allBatchPromises = batches.map(async (batch) => { + const batchPromises = batch.map(async ([name, version]) => { + try { + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), 5000); // Longer timeout for initial load + + const response = await fetch(`https://registry.npmjs.org/${name}`, { + headers: { + 'Accept': 'application/json', + }, + signal: controller.signal, + }); + + clearTimeout(timeoutId); + + if (!response.ok) { + throw new Error(`HTTP ${response.status}`); + } + + const packageData = await response.json(); + + const latestVersion = packageData['dist-tags']?.latest || version; + const versionData = packageData.versions?.[latestVersion] || packageData.versions?.[version]; + + let repositoryUrl = versionData?.repository?.url || packageData.repository?.url; + if (repositoryUrl) { + repositoryUrl = repositoryUrl + .replace(/^git\+/, '') + .replace(/^ssh:\/\/git@/, 'https://') + .replace(/\.git$/, ''); + } + + let iconUrl = null; + + if (packageData.logo) { + iconUrl = packageData.logo; + } else if (name.startsWith('@')) { + const scope = name.split('/')[0].substring(1); + iconUrl = `https://avatars.githubusercontent.com/${scope}?size=64`; + } else if (repositoryUrl?.includes('github.com')) { + const repoMatch = repositoryUrl.match(/github\.com\/([^\/]+)/); + if (repoMatch) { + iconUrl = `https://avatars.githubusercontent.com/${repoMatch[1]}?size=64`; + } + } + + const packageInfo = { + name, + version, + description: versionData?.description || packageData.description || 'No description available', + author: versionData?.author || packageData.author, + homepage: versionData?.homepage || packageData.homepage, + repository: repositoryUrl, + npmUrl: `https://www.npmjs.com/package/${name}`, + iconUrl, + }; + + setCachedPackage(name, packageInfo); + return packageInfo; + } catch (error) { + const basicInfo = { + name, + version, + description: 'No description available', + npmUrl: `https://www.npmjs.com/package/${name}`, + iconUrl: null, + }; + + setCachedPackage(name, basicInfo); + return basicInfo; + } + }); + + const batchResults = await Promise.allSettled(batchPromises); + return batchResults + .filter((result): result is PromiseFulfilledResult => result.status === 'fulfilled') + .map(result => result.value); + }); + + const allBatchResults = await Promise.all(allBatchPromises); + for (const batchResult of allBatchResults) { + fetchedPackages.push(...batchResult); + } + + const allPackages = [...cachedPackages, ...fetchedPackages]; + preloadedDependencies = allPackages; + isPreloading = false; + + console.log(`[Qwik DevTools] ✓ Successfully preloaded ${allPackages.length} dependencies`); + + return allPackages; + } catch (error) { + console.error('[Qwik DevTools] ✗ Failed to preload dependencies:', error); + preloadedDependencies = []; + isPreloading = false; + return []; + } + })(); + + return preloadPromise; +}; + +// Export function to start preloading from plugin initialization +export async function startPreloading({ config }: { config: any }) { + const startTime = Date.now(); + console.log('[Qwik DevTools] 🚀 Initiating dependency preload (background)...'); + + // Start preloading in background, don't wait for it + preloadDependencies(config).then(() => { + const duration = ((Date.now() - startTime) / 1000).toFixed(2); + console.log(`[Qwik DevTools] ⚡ Preload completed in ${duration}s`); + }).catch((err) => { + console.error('[Qwik DevTools] ✗ Preload failed:', err); + }); + + // Return immediately, don't block + return Promise.resolve(); +} + export function getNpmFunctions({ config }: ServerContext) { return { async getQwikPackages(): Promise { @@ -57,6 +275,24 @@ export function getNpmFunctions({ config }: ServerContext) { } }, + async getAllDependencies(): Promise { + // Return preloaded data immediately if available + if (preloadedDependencies) { + console.log('[Qwik DevTools] Returning preloaded dependencies'); + return preloadedDependencies; + } + + // If preloading is in progress, wait for it + if (isPreloading && preloadPromise) { + console.log('[Qwik DevTools] Waiting for preload to complete...'); + return preloadPromise; + } + + // If preloading hasn't started (shouldn't happen), start it now + console.log('[Qwik DevTools] Warning: Preload not started, starting now...'); + return preloadDependencies(config); + }, + async installPackage( packageName: string, isDev = true, diff --git a/packages/ui/package.json b/packages/ui/package.json index d80fe86..2e60937 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -39,6 +39,8 @@ "devDependencies": { "@devtools/kit": "workspace:*", "@qwikest/icons": "^0.0.13", + "@tailwindcss/postcss": "^4.0.0", + "@tailwindcss/vite": "^4.0.0", "@types/eslint": "8.56.10", "@types/node": "20.14.11", "@types/react": "^18.2.28", @@ -61,7 +63,7 @@ "react-dom": "18.2.0", "shiki": "^3.8.1", "superjson": "^2.2.2", - "tailwindcss": "^3.4.6", + "tailwindcss": "^4.0.0", "typescript": "5.4.5", "vite": "7.1.3", "vite-hot-client": "2.0.4", diff --git a/packages/ui/postcss.config.cjs b/packages/ui/postcss.config.cjs index 12a703d..d079197 100644 --- a/packages/ui/postcss.config.cjs +++ b/packages/ui/postcss.config.cjs @@ -1,6 +1,5 @@ module.exports = { plugins: { - tailwindcss: {}, - autoprefixer: {}, + '@tailwindcss/postcss': { preflight: false }, }, }; diff --git a/packages/ui/src/components/Tab/Tab.tsx b/packages/ui/src/components/Tab/Tab.tsx index 0dc6a07..2319134 100644 --- a/packages/ui/src/components/Tab/Tab.tsx +++ b/packages/ui/src/components/Tab/Tab.tsx @@ -15,7 +15,7 @@ export const Tab = component$(({ state, id, title }) => { class={{ 'flex h-10 w-10 items-center justify-center rounded-lg p-2.5 transition-all duration-200': true, - 'bg-foreground/5 hover:bg-foreground/10 text-muted-foreground hover:bg-primary-hover hover:text-foreground': + 'bg-transparent hover:bg-foreground/5 text-muted-foreground hover:text-foreground': state.activeTab !== id, 'shadow-accent/35 bg-accent text-white shadow-lg': state.activeTab === id, diff --git a/packages/ui/src/components/TabContent/TabContent.tsx b/packages/ui/src/components/TabContent/TabContent.tsx index 32fe82d..1f873cc 100644 --- a/packages/ui/src/components/TabContent/TabContent.tsx +++ b/packages/ui/src/components/TabContent/TabContent.tsx @@ -7,7 +7,9 @@ export const TabContent = component$(() => { - +
+ +
); }); diff --git a/packages/ui/src/components/Tree/Tree.tsx b/packages/ui/src/components/Tree/Tree.tsx index d16970c..f74c525 100644 --- a/packages/ui/src/components/Tree/Tree.tsx +++ b/packages/ui/src/components/Tree/Tree.tsx @@ -75,14 +75,12 @@ const TreeNodeComponent = component$( style={{ paddingLeft: `${props.level * props.gap}px` }} class={`flex w-full cursor-pointer items-center p-1 ${ isActive - ? 'bg-emerald-100 text-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-300 border border-emerald-300 dark:border-emerald-700/40 font-semibold' + ? 'border border-emerald-300 bg-emerald-100 font-semibold text-emerald-700 dark:border-emerald-700/40 dark:bg-emerald-900/30 dark:text-emerald-300' : '' }`} onClick$={handleNodeClick} > -
+
{hasChildren ? ( { assets: [], components: [], routes: undefined, + allDependencies: [], + isLoadingDependencies: false, }); useVisibleTask$(async ({ track }) => { @@ -66,39 +67,54 @@ export const QwikDevtools = component$(() => { setViteClientContext(hot); createClientRpc(getClientRpcFunctions()); - track(() => { - if (state.isOpen.value) { - const rpc = getViteClientRpc(); - rpc.getAssetsFromPublicDir().then((data) => { - state.assets = data; - }); - rpc.getComponents().then((data) => { - state.components = data; - }); - rpc.getRoutes().then((data: RoutesInfo) => { - const children: RoutesInfo[] = data?.children || []; - const directories: RoutesInfo[] = children.filter( - (child) => child.type === 'directory', - ); + // Start loading data immediately in background + // Dependencies are already being preloaded on the server side + const rpc = getViteClientRpc(); + state.isLoadingDependencies = true; + + // Preload all data in parallel immediately + Promise.all([ + rpc.getAssetsFromPublicDir(), + rpc.getComponents(), + rpc.getRoutes(), + rpc.getQwikPackages(), + rpc.getAllDependencies(), // This returns server-preloaded data instantly + ]) + .then(([assets, components, routes, qwikPackages, allDeps]) => { + state.assets = assets; + state.components = components; - const values: RoutesInfo[] = [ - { - relativePath: '', - name: 'index', - type: RouteType.DIRECTORY, - path: '', - isSymbolicLink: false, - children: undefined, - }, - ...directories, - ]; + const children: RoutesInfo[] = routes?.children || []; + const directories: RoutesInfo[] = children.filter( + (child) => child.type === 'directory', + ); - state.routes = noSerialize(values); - }); + const values: RoutesInfo[] = [ + { + relativePath: '', + name: 'index', + type: RouteType.DIRECTORY, + path: '', + isSymbolicLink: false, + children: undefined, + }, + ...directories, + ]; - rpc.getQwikPackages().then((data: NpmInfo) => { - state.npmPackages = data; - }); + state.routes = noSerialize(values); + state.npmPackages = qwikPackages; + state.allDependencies = allDeps; + state.isLoadingDependencies = false; + }) + .catch((error) => { + console.error('Failed to load devtools data:', error); + state.isLoadingDependencies = false; + }); + + // Track devtools open state for other purposes if needed + track(() => { + if (state.isOpen.value) { + // Devtools is now open, data should already be loaded or loading } }); }); @@ -174,8 +190,8 @@ export const QwikDevtools = component$(() => { )} {state.activeTab === 'packages' && ( - - + + )} {state.activeTab === 'routes' && ( diff --git a/packages/ui/src/features/Overview/Overview.tsx b/packages/ui/src/features/Overview/Overview.tsx index 95a6309..4107e86 100644 --- a/packages/ui/src/features/Overview/Overview.tsx +++ b/packages/ui/src/features/Overview/Overview.tsx @@ -19,7 +19,7 @@ export const Overview = component$(({ state }: OverviewProps) => {
pageJump('routes')), stopPropagation]} - class="flex cursor-pointer items-center gap-5 rounded-xl border border-border bg-card-item-bg p-5 transition-all duration-200 hover:-translate-y-0.5 hover:bg-card-item-hover-bg" + class="flex cursor-pointer items-center gap-5 rounded-xl border border-border bg-card-item-bg p-5 transition-all duration-200 hover:-translate-y-0.5 hover:bg-card-item-hover-bg" >
@@ -59,7 +59,7 @@ export const Overview = component$(({ state }: OverviewProps) => {
pageJump('packages')), stopPropagation]} - class="cursor-pointer space-y-4 rounded-xl border border-border bg-card-item-bg p-5 hover:-translate-y-0.5 hover:bg-card-item-hover-bg" + class="cursor-pointer space-y-4 rounded-xl border border-border bg-card-item-bg p-5 hover:-translate-y-0.5 hover:bg-card-item-hover-bg mt-6 md:mt-6" >

Installed Packages

@@ -77,7 +77,7 @@ export const Overview = component$(({ state }: OverviewProps) => {
-
+

Performance

diff --git a/packages/ui/src/features/Packages/Packages.tsx b/packages/ui/src/features/Packages/Packages.tsx index 67be5b2..5723868 100644 --- a/packages/ui/src/features/Packages/Packages.tsx +++ b/packages/ui/src/features/Packages/Packages.tsx @@ -1,100 +1,51 @@ -import { - $, - component$, - Resource, - useResource$, - useSignal, -} from '@qwik.dev/core'; -import { useDebouncer } from '../../hooks/useDebouncer'; +import { component$ } from '@qwik.dev/core'; import { Package } from './types'; -import { InstallButton } from './components/InstallButton/InstallButton'; +import { DependencyCard } from './components/DependencyCard'; +import { State } from '../../types/state'; -export const Packages = component$(() => { - const debouncedQuery = useSignal(''); - const installingPackage = useSignal(null); +interface PackagesProps { + state: State; +} - const debounceSearch = useDebouncer( - $((value: string) => { - debouncedQuery.value = value; - }), - 300, - ); - - const searchResults = useResource$(async ({ track }) => { - const query = track(() => debouncedQuery.value); +export const Packages = component$(({ state }: PackagesProps) => { + const packages = state.allDependencies as Package[]; + const isLoading = state.isLoadingDependencies; - if (!query || query.length < 2) { - return [] as Package[]; - } - - const response = await fetch( - `https://registry.npmjs.org/-/v1/search?text=${query}`, + if (isLoading) { + return ( +
+
+
+
+ + Loading dependencies... + +
+
+ Dependencies are being preloaded in the background... +
+ This should only take a moment +
+
+
); - const data = await response.json(); - const packages: Package[] = data.objects.map((obj: any) => ({ - name: obj.package.name, - version: obj.package.version, - description: obj.package.description || 'No description available', - })); - return packages; - }); + } - return ( -
-
- { - debounceSearch(target.value); - }} - placeholder="Search npm packages..." - class="w-full rounded-lg border border-border bg-input px-4 py-2 text-sm text-foreground placeholder-muted-foreground outline-none focus:border-ring" - /> + if (!packages || packages.length === 0) { + return ( +
+
+ No dependencies found in package.json +
+ ); + } - ( -
-
-
- )} - onRejected={(error) => ( -
- {error.message || 'Failed to fetch packages'} -
- )} - onResolved={(packages) => { - return ( -
- {packages.map((pkg) => { - return ( -
-
-
{pkg.name}
-
-
- {pkg.version} -
- -
-
-
- {pkg.description} -
-
- ); - })} -
- ); - }} - /> + return ( +
+ {packages.map((pkg) => ( + + ))}
); }); diff --git a/packages/ui/src/features/Packages/components/DependencyCard/DependencyCard.tsx b/packages/ui/src/features/Packages/components/DependencyCard/DependencyCard.tsx new file mode 100644 index 0000000..35e6f08 --- /dev/null +++ b/packages/ui/src/features/Packages/components/DependencyCard/DependencyCard.tsx @@ -0,0 +1,163 @@ +import { component$, $ } from '@qwik.dev/core'; +import { Package } from '../../types'; +import { PackageIcon } from '../PackageIcon'; + +export const DependencyCard = component$(({ pkg }: { pkg: Package }) => { + const handleAuthorClick = $(() => { + if (pkg.author?.url) { + window.open(pkg.author.url, '_blank'); + } else if (pkg.author?.email) { + window.open(`mailto:${pkg.author.email}`, '_blank'); + } + }); + + const handlePackageClick = $(() => { + if (pkg.npmUrl) { + window.open(pkg.npmUrl, '_blank'); + } + }); + + const handleHomepageClick = $(() => { + if (pkg.homepage) { + window.open(pkg.homepage, '_blank'); + } + }); + + const handleRepositoryClick = $(() => { + if (pkg.repository) { + window.open(pkg.repository, '_blank'); + } + }); + + return ( +
+ {/* Subtle gradient background on hover */} +
+ +
+ {/* Header with package name and version */} +
+ {/* Package Avatar */} +
+ +
+ +
+

+ {pkg.name} +

+ + + + + v{pkg.version} + +
+
+ + {/* Description */} +

+ {pkg.description || 'No description available'} +

+ + {/* Divider */} +
+ + {/* Footer with author and links */} +
+ {/* Author Information */} + {pkg.author ? ( +
+
+ + {pkg.author.name + .split(' ') + .map((n) => n.charAt(0)) + .join('') + .substring(0, 2) + .toUpperCase()} + +
+ + + {pkg.author.name} + + +
+ ) : ( +
+ )} + + {/* Action Links */} +
+ {pkg.homepage && ( + + )} + {pkg.repository && ( + + )} + {pkg.npmUrl && ( + + )} +
+
+
+
+ ); +}); diff --git a/packages/ui/src/features/Packages/components/DependencyCard/index.ts b/packages/ui/src/features/Packages/components/DependencyCard/index.ts new file mode 100644 index 0000000..9b4a597 --- /dev/null +++ b/packages/ui/src/features/Packages/components/DependencyCard/index.ts @@ -0,0 +1 @@ +export { DependencyCard } from './DependencyCard'; diff --git a/packages/ui/src/features/Packages/components/PackageIcon/PackageIcon.tsx b/packages/ui/src/features/Packages/components/PackageIcon/PackageIcon.tsx new file mode 100644 index 0000000..c70fcae --- /dev/null +++ b/packages/ui/src/features/Packages/components/PackageIcon/PackageIcon.tsx @@ -0,0 +1,39 @@ +import { component$, useSignal, $ } from '@qwik.dev/core'; + +interface PackageIconProps { + packageName: string; + iconUrl?: string | null; +} + +export const PackageIcon = component$( + ({ packageName, iconUrl }: PackageIconProps) => { + const iconError = useSignal(false); + + const handleIconError = $(() => { + iconError.value = true; + }); + + const fallbackInitial = + packageName.split('/').pop()?.charAt(0).toUpperCase() || + packageName.charAt(0).toUpperCase(); + + // Show fallback if no icon URL or icon failed to load + if (!iconUrl || iconError.value) { + return ( + {fallbackInitial} + ); + } + + return ( + {`${packageName} + ); + }, +); diff --git a/packages/ui/src/features/Packages/components/PackageIcon/index.ts b/packages/ui/src/features/Packages/components/PackageIcon/index.ts new file mode 100644 index 0000000..e8bf44f --- /dev/null +++ b/packages/ui/src/features/Packages/components/PackageIcon/index.ts @@ -0,0 +1 @@ +export { PackageIcon } from './PackageIcon'; diff --git a/packages/ui/src/features/Packages/types.ts b/packages/ui/src/features/Packages/types.ts index cb277af..9332c14 100644 --- a/packages/ui/src/features/Packages/types.ts +++ b/packages/ui/src/features/Packages/types.ts @@ -2,4 +2,15 @@ export interface Package { name: string; version: string; description: string; + author?: { + name: string; + email?: string; + url?: string; + }; + authorAvatar?: string; + packageAvatar?: string; + homepage?: string; + repository?: string; + npmUrl?: string; + iconUrl?: string | null; } diff --git a/packages/ui/src/features/RenderTree/RenderTree.tsx b/packages/ui/src/features/RenderTree/RenderTree.tsx index 6260f9d..aace17b 100644 --- a/packages/ui/src/features/RenderTree/RenderTree.tsx +++ b/packages/ui/src/features/RenderTree/RenderTree.tsx @@ -88,7 +88,7 @@ export const RenderTree = component$(() => { return; } const highlighter = await createHighlighter({ - themes: ['nord'], // v1+ 需要数组 + themes: ['nord'], // v1+ requires array langs: ['tsx', 'js', 'ts', 'jsx'], }); highlightedCodes.value = codes.value.map((item) => { @@ -171,7 +171,7 @@ export const RenderTree = component$(() => { ? { borderBottom: '2px solid var(--color-primary-active)' } : {} } - class="border-b-2 border-b-transparent px-4 py-3 text-sm font-medium transition-all duration-300 ease-in-out text-muted-foreground hover:text-foreground" + class="border-b-2 border-b-transparent px-4 py-3 text-sm font-medium text-muted-foreground transition-all duration-300 ease-in-out hover:text-foreground" > State @@ -182,7 +182,7 @@ export const RenderTree = component$(() => { ? { borderBottom: '2px solid var(--color-primary-active)' } : {} } - class="border-b-2 border-b-transparent px-4 py-3 text-sm font-medium transition-all duration-300 ease-in-out text-muted-foreground hover:text-foreground" + class="border-b-2 border-b-transparent px-4 py-3 text-sm font-medium text-muted-foreground transition-all duration-300 ease-in-out hover:text-foreground" > Code @@ -193,84 +193,87 @@ export const RenderTree = component$(() => {
- Hooks -
- - - -
-
-
- {hookFilters.value.map((item, idx) => ( -
+
+
+ {hookFilters.value.map((item, idx) => ( + + ))} +
-
+
{ const label = node.label || node.name || ''; const parts = label.split(':'); if (node.children && parts.length === 1) { - return {label}; + return ( + {label} + ); } if (parts.length > 1) { const key = parts[0]; @@ -307,7 +312,7 @@ export const RenderTree = component$(() => { {codes.value.map((item, idx) => { return ( <> -
+
{item.pathId}
diff --git a/packages/ui/src/features/RenderTree/data.ts b/packages/ui/src/features/RenderTree/data.ts index d5ec757..64a685f 100644 --- a/packages/ui/src/features/RenderTree/data.ts +++ b/packages/ui/src/features/RenderTree/data.ts @@ -6,6 +6,13 @@ import { QRL_KEY, } from '@devtools/kit'; +// Extend Window interface to include QWIK_DEVTOOLS_GLOBAL_STATE +declare global { + interface Window { + QWIK_DEVTOOLS_GLOBAL_STATE?: Record; + } +} + // Q:SEQ has all data that includs hook and state, so we can use it to ingore inner hook and custom hook export const findInnerHook = (allSeq: Record[]) => { return allSeq.filter(isInnerHook); @@ -18,16 +25,14 @@ const isInnerHook = (seq: Record) => { }; export const getQwikState = (qrl: string) => { - //@ts-ignore - const stateKeyPath = Object.keys(window.QWIK_DEVTOOLS_GLOBAL_STATE)?.find( + const stateKeyPath = Object.keys(window.QWIK_DEVTOOLS_GLOBAL_STATE || {})?.find( (key) => key.endsWith(qrl!), ); return ( - ( - //@ts-ignore - window.QWIK_DEVTOOLS_GLOBAL_STATE?.[stateKeyPath] as ParsedStructure[] - )?.filter((item) => !!item.data) || [] + stateKeyPath + ? (window.QWIK_DEVTOOLS_GLOBAL_STATE?.[stateKeyPath] as ParsedStructure[])?.filter((item) => !!item.data) || [] + : [] ); }; diff --git a/packages/ui/src/features/RenderTree/formatTreeData.ts b/packages/ui/src/features/RenderTree/formatTreeData.ts index 8295c94..cc91c64 100644 --- a/packages/ui/src/features/RenderTree/formatTreeData.ts +++ b/packages/ui/src/features/RenderTree/formatTreeData.ts @@ -278,9 +278,9 @@ export function findAllQrl() { export function getQrlPath(qrl: QRL) { // CHUNK_KEY is not available when dev property isn't null or undefined - if(qrl?.dev){ + if (qrl?.dev) { // @ts-ignore - return qrl?.dev.filename + return qrl?.dev.filename; } return (qrl as any)?.[CHUNK_KEY]; } diff --git a/packages/ui/src/global.css b/packages/ui/src/global.css index 84bf4f2..9bb8d5b 100644 --- a/packages/ui/src/global.css +++ b/packages/ui/src/global.css @@ -1,10 +1,29 @@ /** - * Tailwind CSS imports + * Tailwind CSS imports (v4) * View the full documentation at https://tailwindcss.com */ -@tailwind base; -@tailwind components; -@tailwind utilities; +@import "tailwindcss"; + +@custom-variant dark (&:where(:root[data-theme="dark"] &)); + +@theme { + /* default (light) tokens; can be overridden by :root rules below */ + --color-background: #ffffff; + --color-foreground: #000000; + --color-primary: #10b981; + --color-primary-hover: #f2f2f2; + --color-primary-active: #047857; + --color-secondary: #6b7280; + --color-muted: #9ca3af; + --color-muted-foreground: #6b7280; + --color-accent: #10b981; + --color-border: #e5e7eb; + --color-input: #e5e7eb; + --color-ring: #10b981; + --color-card: #f2f2f2; + --color-card-item-bg: rgba(0, 0, 0, 0.02); + --color-card-item-hover-bg: rgba(0, 0, 0, 0.03); +} :root { --theme-name: 'light'; @@ -15,7 +34,7 @@ --color-primary-active: #047857; /* green-700 */ --color-secondary: #6b7280; /* Tailwind's secondary.light */ --color-border: #e5e7eb; - --color-card: #f3f4f6; + --color-card: #f2f2f2; /* Specific variables based on existing CSS (light theme equivalents) */ @@ -33,6 +52,7 @@ /* Tailwind semantic variables */ --color-muted: #9ca3af; /* Similar to existing --color-text-subtle */ + --color-muted-foreground: #6b7280; --color-accent: #10b981; /* Green accent */ --color-input: var(--color-border); /* Alias to border */ --color-ring: var(--color-primary); /* Alias to primary */ diff --git a/packages/ui/src/types/state.ts b/packages/ui/src/types/state.ts index b54eaac..0e32eb1 100644 --- a/packages/ui/src/types/state.ts +++ b/packages/ui/src/types/state.ts @@ -18,4 +18,6 @@ export interface State { assets: AssetInfo[]; components: Component[]; routes: NoSerialize; + allDependencies: any[]; + isLoadingDependencies: boolean; } diff --git a/packages/ui/tailwind.config.js b/packages/ui/tailwind.config.js deleted file mode 100644 index b4542bf..0000000 --- a/packages/ui/tailwind.config.js +++ /dev/null @@ -1,35 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -export default { - darkMode: ['class', 'html[data-theme="dark"]'], - content: ['./src/**/*.{js,ts,jsx,tsx,mdx}'], - theme: { - extend: { - colors: { - background: 'var(--color-background)', - foreground: 'var(--color-foreground)', - primary: 'var(--color-primary)', - 'primary-hover': 'var(--color-primary-hover)', - 'primary-active': 'var(--color-primary-active)', // e.g., text on primary buttons - secondary: 'var(--color-secondary)', // e.g., muted button background or text 2 - muted: 'var(--color-muted)', // e.g., placeholder text or very subtle borders 2 - 'muted-foreground': 'var(--color-muted-foreground)', - accent: 'var(--color-accent)', // e.g., for highlights, icons, or active states - border: 'var(--color-border)', // default border color - input: 'var(--color-input)', // specific for input borders if different from general border 2 - ring: 'var(--color-ring)', // for focus rings 2 - 'card-item-bg': 'var(--color-card-item-bg)', // 1 - 'card-item-hover-bg': 'var(--color-card-item-hover-bg)', // 1 - }, - }, - keyframes: { - fadeIn: { - '0%': { opacity: '0', transform: 'translateY(10px)' }, - '100%': { opacity: '1', transform: 'translateY(0)' }, - }, - }, - animation: { - fadeIn: 'fadeIn 0.5s ease-out forwards', - }, - }, - plugins: [], -}; diff --git a/packages/ui/vite.config.mts b/packages/ui/vite.config.mts index 91ed727..9928045 100644 --- a/packages/ui/vite.config.mts +++ b/packages/ui/vite.config.mts @@ -4,6 +4,7 @@ import tsconfigPaths from 'vite-tsconfig-paths'; import pkg from './package.json'; import { qwikDevtools } from '@devtools/plugin'; import { createRequire } from 'module'; +import tailwindcss from '@tailwindcss/vite'; const { dependencies = {}, peerDependencies = {} } = pkg as any; const makeRegex = (dep) => new RegExp(`^${dep}(/.*)?$`); const excludeAll = (obj) => Object.keys(obj).map(makeRegex); @@ -45,6 +46,6 @@ export default defineConfig(() => { ], }, }, - plugins: [qwikVite(), tsconfigPaths(), qwikDevtools()], + plugins: [qwikVite(), tsconfigPaths(), qwikDevtools(), tailwindcss()], }; }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af2257e..b7ae80d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,19 +28,19 @@ importers: version: 4.19.2 vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.10.5)(@vitest/ui@3.2.4)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.10.5)(@vitest/ui@3.2.4)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) packages/devtools: dependencies: '@qwik.dev/core': specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4) + version: 2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4) '@qwik.dev/router': specifier: 2.0.0-beta.9 version: 2.0.0-beta.9(acorn@8.14.0)(rollup@4.45.0)(typescript@5.4.5) '@qwikest/icons': specifier: ^0.0.13 - version: 0.0.13(@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))) + version: 0.0.13(@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))) birpc: specifier: ^0.2.19 version: 0.2.19 @@ -55,13 +55,13 @@ importers: version: 2.2.2 vite: specifier: 7.1.3 - version: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + version: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) vite-hot-client: specifier: ^0.2.4 - version: 0.2.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + version: 0.2.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) vite-plugin-inspect: specifier: ^11.0.0 - version: 11.0.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + version: 11.0.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) devDependencies: '@changesets/cli': specifier: ^2.27.11 @@ -92,7 +92,7 @@ importers: version: 2.2.2 vite: specifier: ^6.2.6 - version: 6.2.6(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + version: 6.2.6(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) devDependencies: '@types/eslint': specifier: 8.56.10 @@ -126,7 +126,7 @@ importers: version: 5.4.5 vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@6.2.6(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.2(typescript@5.4.5)(vite@6.2.6(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) packages/playgrounds: devDependencies: @@ -138,7 +138,7 @@ importers: version: link:../ui '@qwik.dev/core': specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4) + version: 2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4) '@qwik.dev/router': specifier: 2.0.0-beta.9 version: 2.0.0-beta.9(acorn@8.14.0)(rollup@4.45.0)(typescript@5.4.5) @@ -168,10 +168,10 @@ importers: version: 5.4.5 vite: specifier: 7.1.3 - version: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + version: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.2(typescript@5.4.5)(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) packages/plugin: dependencies: @@ -187,7 +187,7 @@ importers: version: link:../kit '@qwik.dev/core': specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4) + version: 2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4) '@types/eslint': specifier: 8.56.10 version: 8.56.10 @@ -229,10 +229,10 @@ importers: version: 5.4.5 vite: specifier: 7.1.3 - version: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + version: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-inspect: specifier: ^11.0.0 - version: 11.0.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + version: 11.0.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) packages/ui: dependencies: @@ -241,14 +241,20 @@ importers: version: link:../plugin '@qwik.dev/core': specifier: 2.0.0-beta.9 - version: 2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4) + version: 2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4) devDependencies: '@devtools/kit': specifier: workspace:* version: link:../kit '@qwikest/icons': specifier: ^0.0.13 - version: 0.0.13(@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))) + version: 0.0.13(@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))) + '@tailwindcss/postcss': + specifier: ^4.0.0 + version: 4.1.14 + '@tailwindcss/vite': + specifier: ^4.0.0 + version: 4.1.14(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) '@types/eslint': specifier: 8.56.10 version: 8.56.10 @@ -316,20 +322,20 @@ importers: specifier: ^2.2.2 version: 2.2.2 tailwindcss: - specifier: ^3.4.6 - version: 3.4.17 + specifier: ^4.0.0 + version: 4.1.14 typescript: specifier: 5.4.5 version: 5.4.5 vite: specifier: 7.1.3 - version: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + version: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) vite-hot-client: specifier: 2.0.4 - version: 2.0.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + version: 2.0.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) vite-tsconfig-paths: specifier: ^4.2.1 - version: 4.3.2(typescript@5.4.5)(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + version: 4.3.2(typescript@5.4.5)(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) packages: @@ -900,14 +906,17 @@ packages: resolution: {integrity: sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==} engines: {node: '>=18'} - '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -919,6 +928,9 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -1227,10 +1239,6 @@ packages: cpu: [x64] os: [win32] - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - '@pnpm/config.env-replace@1.1.0': resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} engines: {node: '>=12.22.0'} @@ -1587,6 +1595,99 @@ packages: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} + '@tailwindcss/node@4.1.14': + resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==} + + '@tailwindcss/oxide-android-arm64@4.1.14': + resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.14': + resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.14': + resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.14': + resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': + resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': + resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': + resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': + resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.14': + resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.14': + resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': + resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': + resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.14': + resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.1.14': + resolution: {integrity: sha512-BdMjIxy7HUNThK87C7BC8I1rE8BVUsfNQSI5siQ4JK3iIa3w0XyVvVL9SXLWO//CtYTcp1v7zci0fYwJOjB+Zg==} + + '@tailwindcss/vite@4.1.14': + resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==} + peerDependencies: + vite: ^5.2.0 || ^6 || ^7 + '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -1931,16 +2032,10 @@ packages: zenObservable: optional: true - any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -2100,10 +2195,6 @@ packages: resolution: {integrity: sha512-kfzR4zzQtAE9PC7CzZsjl3aBNbXWuXiSeOCdLcPpBfGW8YuCqQHcRPFDbr/BPVmd3EEPVpuFzLyuT/cUhPr4OQ==} engines: {node: '>=12.20'} - camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - camelcase@7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} @@ -2161,6 +2252,10 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -2244,10 +2339,6 @@ packages: commander-version@1.1.0: resolution: {integrity: sha512-9aNW4N6q6EPDUszLRH6k9IwO6OoGYh3HRgUF/fA7Zs+Mz1v1x5akSqT7QGB8JsGY7AG7qMA7oRRB/4yyn33FYA==} - commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - commander@6.2.1: resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} engines: {node: '>= 6'} @@ -2319,11 +2410,6 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -2442,9 +2528,6 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff@7.0.0: resolution: {integrity: sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==} engines: {node: '>=0.3.1'} @@ -2453,9 +2536,6 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -2512,6 +2592,10 @@ packages: end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} @@ -2784,10 +2868,6 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.3.0: - resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} - engines: {node: '>=14'} - form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} engines: {node: '>= 14.17'} @@ -2858,10 +2938,6 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} - hasBin: true - glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -3350,17 +3426,14 @@ packages: resolution: {integrity: sha512-7731a/t2llyrk8Hdwl1x3LkhIFGzxHQGpJA7Ur9cIRViakQF2y25Lwhx8Ziy1B068+kBYUmYPBzw5uo3DdWrdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - - jiti@1.21.7: - resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} - hasBin: true - jiti@2.4.2: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + hasBin: true + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -3409,9 +3482,69 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@3.1.3: - resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} - engines: {node: '>=14'} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} + engines: {node: '>= 12.0.0'} lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -3500,9 +3633,6 @@ packages: resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -3518,6 +3648,9 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + markdown-extensions@2.0.0: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} @@ -3700,6 +3833,10 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minizlib@3.1.0: + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -3721,9 +3858,6 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -3809,10 +3943,6 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - object-inspect@1.13.3: resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} @@ -3974,9 +4104,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-json@8.1.1: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} @@ -4024,13 +4151,6 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - - path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4060,18 +4180,10 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} - pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -4084,40 +4196,6 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-import@15.1.0: - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - - postcss-js@4.0.1: - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - - postcss-nested@6.2.0: - resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -4254,9 +4332,6 @@ packages: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} - read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - read-file-safe@1.0.10: resolution: {integrity: sha512-qW25fd2uMX3dV6Ui/R0jYK1MhTpjx8FO/VHaHTXzwWsGnkNwLRcqYfCXd9qDM+NZ273DPUvP2RaimYuLSu1K/g==} @@ -4365,11 +4440,6 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} - hasBin: true - responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} @@ -4674,11 +4744,6 @@ packages: style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} - sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - superjson@2.2.2: resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} engines: {node: '>=16'} @@ -4699,10 +4764,6 @@ packages: resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} engines: {node: '>=8'} - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - svgo@3.3.2: resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} engines: {node: '>=14.0.0'} @@ -4716,10 +4777,16 @@ packages: resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} engines: {node: '>=0.10'} - tailwindcss@3.4.17: - resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} - engines: {node: '>=14.0.0'} - hasBin: true + tailwindcss@4.1.14: + resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + tar@7.5.1: + resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} + engines: {node: '>=18'} term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} @@ -4732,13 +4799,6 @@ packages: text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - - thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -4812,9 +4872,6 @@ packages: peerDependencies: typescript: '>=4.8.4' - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tsconfck@3.1.4: resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} engines: {node: ^18 || >=20} @@ -5232,6 +5289,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@2.7.0: resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} @@ -5292,15 +5353,15 @@ snapshots: read-json-safe: 1.0.5 types-pkg-json: 1.2.1 - '@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))': + '@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))': dependencies: csstype: 3.1.3 - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) - '@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))': + '@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))': dependencies: csstype: 3.1.3 - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) '@changesets/apply-release-plan@7.0.7': dependencies: @@ -5758,14 +5819,9 @@ snapshots: '@inquirer/figures@1.0.8': {} - '@isaacs/cliui@8.0.2': + '@isaacs/fs-minipass@4.0.1': dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 + minipass: 7.1.2 '@jridgewell/gen-mapping@0.3.8': dependencies: @@ -5773,12 +5829,19 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -6012,9 +6075,6 @@ snapshots: '@oxc-transform/binding-win32-x64-msvc@0.66.0': optional: true - '@pkgjs/parseargs@0.11.0': - optional: true - '@pnpm/config.env-replace@1.1.0': {} '@pnpm/network.ca-file@1.0.2': @@ -6033,23 +6093,23 @@ snapshots: dependencies: quansync: 0.2.10 - '@qwik.dev/core@2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4)': + '@qwik.dev/core@2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4)': dependencies: csstype: 3.1.3 rollup: 4.45.0 - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) optionalDependencies: prettier: 3.3.3 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.14.11)(@vitest/ui@3.2.4)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.14.11)(@vitest/ui@3.2.4)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) - '@qwik.dev/core@2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4)': + '@qwik.dev/core@2.0.0-beta.9(prettier@3.3.3)(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))(vitest@3.2.4)': dependencies: csstype: 3.1.3 rollup: 4.45.0 - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) optionalDependencies: prettier: 3.3.3 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.10.5)(@vitest/ui@3.2.4)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.10.5)(@vitest/ui@3.2.4)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) '@qwik.dev/router@2.0.0-beta.9(acorn@8.14.0)(rollup@4.45.0)(typescript@5.4.5)': dependencies: @@ -6068,13 +6128,13 @@ snapshots: - supports-color - typescript - '@qwikest/icons@0.0.13(@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)))': + '@qwikest/icons@0.0.13(@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)))': dependencies: - '@builder.io/qwik': 1.11.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + '@builder.io/qwik': 1.11.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) - '@qwikest/icons@0.0.13(@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)))': + '@qwikest/icons@0.0.13(@builder.io/qwik@1.11.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)))': dependencies: - '@builder.io/qwik': 1.11.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + '@builder.io/qwik': 1.11.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) '@rolldown/binding-darwin-arm64@1.0.0-beta.8-commit.2686eb1': optional: true @@ -6292,6 +6352,85 @@ snapshots: dependencies: defer-to-connect: 2.0.1 + '@tailwindcss/node@4.1.14': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.3 + jiti: 2.6.1 + lightningcss: 1.30.1 + magic-string: 0.30.19 + source-map-js: 1.2.1 + tailwindcss: 4.1.14 + + '@tailwindcss/oxide-android-arm64@4.1.14': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.14': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.14': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.14': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.14': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.14': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.14': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.14': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.14': + optional: true + + '@tailwindcss/oxide@4.1.14': + dependencies: + detect-libc: 2.0.4 + tar: 7.5.1 + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.14 + '@tailwindcss/oxide-darwin-arm64': 4.1.14 + '@tailwindcss/oxide-darwin-x64': 4.1.14 + '@tailwindcss/oxide-freebsd-x64': 4.1.14 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.14 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.14 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.14 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.14 + '@tailwindcss/oxide-linux-x64-musl': 4.1.14 + '@tailwindcss/oxide-wasm32-wasi': 4.1.14 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.14 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.14 + + '@tailwindcss/postcss@4.1.14': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.1.14 + '@tailwindcss/oxide': 4.1.14 + postcss: 8.5.6 + tailwindcss: 4.1.14 + + '@tailwindcss/vite@4.1.14(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))': + dependencies: + '@tailwindcss/node': 4.1.14 + '@tailwindcss/oxide': 4.1.14 + tailwindcss: 4.1.14 + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) + '@trysound/sax@0.2.0': {} '@tybys/wasm-util@0.10.0': @@ -6573,22 +6712,22 @@ snapshots: chai: 5.3.1 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))': + '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) optional: true - '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0))': + '@vitest/mocker@3.2.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) '@vitest/pretty-format@3.2.4': dependencies: @@ -6619,7 +6758,7 @@ snapshots: sirv: 3.0.1 tinyglobby: 0.2.14 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.10.5)(@vitest/ui@3.2.4)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.10.5)(@vitest/ui@3.2.4)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) optional: true '@vitest/utils@3.2.4': @@ -6698,15 +6837,11 @@ snapshots: optionalDependencies: rxjs: 6.6.7 - any-promise@1.3.0: {} - anymatch@3.1.3: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - arg@5.0.2: {} - argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -6889,8 +7024,6 @@ snapshots: callsites@4.2.0: {} - camelcase-css@2.0.1: {} - camelcase@7.0.1: {} caniuse-lite@1.0.30001692: {} @@ -6954,6 +7087,8 @@ snapshots: dependencies: readdirp: 4.1.1 + chownr@3.0.0: {} + ci-info@3.9.0: {} clean-stack@4.2.0: @@ -7028,8 +7163,6 @@ snapshots: '@bconnorwhite/module': 2.0.2 commander: 6.2.1 - commander@4.1.1: {} - commander@6.2.1: {} commander@7.2.0: {} @@ -7116,8 +7249,6 @@ snapshots: css-what@6.1.0: {} - cssesc@3.0.0: {} - csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -7232,16 +7363,12 @@ snapshots: dependencies: dequal: 2.0.3 - didyoumean@1.2.2: {} - diff@7.0.0: {} dir-glob@3.0.1: dependencies: path-type: 4.0.0 - dlv@1.1.3: {} - doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -7302,6 +7429,11 @@ snapshots: dependencies: once: 1.4.0 + enhanced-resolve@5.18.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.3.0 + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 @@ -7718,11 +7850,6 @@ snapshots: dependencies: is-callable: 1.2.7 - foreground-child@3.3.0: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - form-data-encoder@2.1.4: {} fraction.js@4.3.7: {} @@ -7801,15 +7928,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.5: - dependencies: - foreground-child: 3.3.0 - jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 - package-json-from-dist: 1.0.1 - path-scurry: 1.11.1 - glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -8330,16 +8448,10 @@ snapshots: issue-regex@4.3.0: {} - jackspeak@3.4.3: - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jiti@1.21.7: {} - jiti@2.4.2: {} + jiti@2.6.1: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -8387,7 +8499,50 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@3.1.3: {} + lightningcss-darwin-arm64@1.30.1: + optional: true + + lightningcss-darwin-x64@1.30.1: + optional: true + + lightningcss-freebsd-x64@1.30.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.1: + optional: true + + lightningcss-linux-arm64-gnu@1.30.1: + optional: true + + lightningcss-linux-arm64-musl@1.30.1: + optional: true + + lightningcss-linux-x64-gnu@1.30.1: + optional: true + + lightningcss-linux-x64-musl@1.30.1: + optional: true + + lightningcss-win32-arm64-msvc@1.30.1: + optional: true + + lightningcss-win32-x64-msvc@1.30.1: + optional: true + + lightningcss@1.30.1: + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 lines-and-columns@1.2.4: {} @@ -8488,8 +8643,6 @@ snapshots: lowercase-keys@3.0.0: {} - lru-cache@10.4.3: {} - lru-cache@6.0.0: dependencies: yallist: 4.0.0 @@ -8504,6 +8657,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + magic-string@0.30.19: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + markdown-extensions@2.0.0: {} math-intrinsics@1.0.0: {} @@ -8858,6 +9015,10 @@ snapshots: minipass@7.1.2: {} + minizlib@3.1.0: + dependencies: + minipass: 7.1.2 + mri@1.2.0: {} mrmime@2.0.1: {} @@ -8870,12 +9031,6 @@ snapshots: mute-stream@1.0.0: {} - mz@2.7.0: - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - nanoid@3.3.11: {} nanoid@3.3.8: {} @@ -8994,8 +9149,6 @@ snapshots: object-assign@4.1.1: {} - object-hash@3.0.0: {} - object-inspect@1.13.3: {} object-keys@1.1.1: {} @@ -9215,8 +9368,6 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} - package-json@8.1.1: dependencies: got: 12.6.1 @@ -9267,13 +9418,6 @@ snapshots: path-key@4.0.0: {} - path-parse@1.0.7: {} - - path-scurry@1.11.1: - dependencies: - lru-cache: 10.4.3 - minipass: 7.1.2 - path-type@4.0.0: {} pathe@2.0.3: {} @@ -9290,12 +9434,8 @@ snapshots: picomatch@4.0.3: {} - pify@2.3.0: {} - pify@4.0.1: {} - pirates@4.0.6: {} - pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -9306,35 +9446,6 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.10 - - postcss-js@4.0.1(postcss@8.4.49): - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.49 - - postcss-load-config@4.0.2(postcss@8.4.49): - dependencies: - lilconfig: 3.1.3 - yaml: 2.7.0 - optionalDependencies: - postcss: 8.4.49 - - postcss-nested@6.2.0(postcss@8.4.49): - dependencies: - postcss: 8.4.49 - postcss-selector-parser: 6.1.2 - - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-value-parser@4.2.0: {} postcss@8.4.49: @@ -9413,10 +9524,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - read-cache@1.0.0: - dependencies: - pify: 2.3.0 - read-file-safe@1.0.10: {} read-json-safe@1.0.5: @@ -9574,12 +9681,6 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.10: - dependencies: - is-core-module: 2.16.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - responselike@2.0.1: dependencies: lowercase-keys: 2.0.0 @@ -9989,16 +10090,6 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - sucrase@3.35.0: - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - commander: 4.1.1 - glob: 10.4.5 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - superjson@2.2.2: dependencies: copy-anything: 3.0.5 @@ -10018,8 +10109,6 @@ snapshots: has-flag: 4.0.0 supports-color: 7.2.0 - supports-preserve-symlinks-flag@1.0.0: {} - svgo@3.3.2: dependencies: '@trysound/sax': 0.2.0 @@ -10034,32 +10123,17 @@ snapshots: symbol-observable@4.0.0: {} - tailwindcss@3.4.17: + tailwindcss@4.1.14: {} + + tapable@2.3.0: {} + + tar@7.5.1: dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.2 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.7 - lilconfig: 3.1.3 - micromatch: 4.0.8 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.1.1 - postcss: 8.4.49 - postcss-import: 15.1.0(postcss@8.4.49) - postcss-js: 4.0.1(postcss@8.4.49) - postcss-load-config: 4.0.2(postcss@8.4.49) - postcss-nested: 6.2.0(postcss@8.4.49) - postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.1.0 + yallist: 5.0.0 term-size@2.2.1: {} @@ -10070,14 +10144,6 @@ snapshots: text-table@0.2.0: {} - thenify-all@1.6.0: - dependencies: - thenify: 3.3.1 - - thenify@3.3.1: - dependencies: - any-promise: 1.3.0 - through@2.3.8: {} tinybench@2.9.0: {} @@ -10130,8 +10196,6 @@ snapshots: dependencies: typescript: 5.4.5 - ts-interface-checker@0.1.13: {} - tsconfck@3.1.4(typescript@5.4.5): optionalDependencies: typescript: 5.4.5 @@ -10363,29 +10427,29 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-dev-rpc@1.0.7(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-dev-rpc@1.0.7(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: birpc: 2.3.0 - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) - vite-hot-client: 2.0.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) + vite-hot-client: 2.0.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) - vite-dev-rpc@1.0.7(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-dev-rpc@1.0.7(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: birpc: 2.3.0 - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) - vite-hot-client: 2.0.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) + vite-hot-client: 2.0.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) - vite-hot-client@0.2.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-hot-client@0.2.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) - vite-hot-client@2.0.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-hot-client@2.0.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) - vite-hot-client@2.0.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-hot-client@2.0.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) vite-imagetools@7.1.0(rollup@4.45.0): dependencies: @@ -10395,13 +10459,13 @@ snapshots: transitivePeerDependencies: - rollup - vite-node@3.2.4(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0): + vite-node@3.2.4(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -10417,13 +10481,13 @@ snapshots: - yaml optional: true - vite-node@3.2.4(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0): + vite-node@3.2.4(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -10438,7 +10502,7 @@ snapshots: - tsx - yaml - vite-plugin-inspect@11.0.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-plugin-inspect@11.0.0(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: ansis: 3.17.0 debug: 4.4.0(supports-color@5.5.0) @@ -10448,12 +10512,12 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.4 - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) - vite-dev-rpc: 1.0.7(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) + vite-dev-rpc: 1.0.7(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) transitivePeerDependencies: - supports-color - vite-plugin-inspect@11.0.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-plugin-inspect@11.0.0(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: ansis: 3.17.0 debug: 4.4.0(supports-color@5.5.0) @@ -10463,34 +10527,34 @@ snapshots: perfect-debounce: 1.0.0 sirv: 3.0.1 unplugin-utils: 0.2.4 - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) - vite-dev-rpc: 1.0.7(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) + vite-dev-rpc: 1.0.7(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) transitivePeerDependencies: - supports-color - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@6.2.6(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@6.2.6(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: debug: 4.4.0(supports-color@5.5.0) globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.4.5) optionalDependencies: - vite: 6.2.6(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.2.6(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)): dependencies: debug: 4.4.0(supports-color@5.5.0) globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.4.5) optionalDependencies: - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@6.2.6(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0): + vite@6.2.6(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.25.2 postcss: 8.5.3 @@ -10498,11 +10562,12 @@ snapshots: optionalDependencies: '@types/node': 20.14.11 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.6.1 + lightningcss: 1.30.1 tsx: 4.19.2 yaml: 2.7.0 - vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0): + vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.25.2 fdir: 6.5.0(picomatch@4.0.3) @@ -10513,11 +10578,12 @@ snapshots: optionalDependencies: '@types/node': 20.14.11 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.6.1 + lightningcss: 1.30.1 tsx: 4.19.2 yaml: 2.7.0 - vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0): + vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.25.2 fdir: 6.5.0(picomatch@4.0.3) @@ -10528,15 +10594,16 @@ snapshots: optionalDependencies: '@types/node': 22.10.5 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.6.1 + lightningcss: 1.30.1 tsx: 4.19.2 yaml: 2.7.0 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.14.11)(@vitest/ui@3.2.4)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.14.11)(@vitest/ui@3.2.4)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -10554,8 +10621,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.3(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) - vite-node: 3.2.4(@types/node@20.14.11)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) + vite-node: 3.2.4(@types/node@20.14.11)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -10576,11 +10643,11 @@ snapshots: - yaml optional: true - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.10.5)(@vitest/ui@3.2.4)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.10.5)(@vitest/ui@3.2.4)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0)) + '@vitest/mocker': 3.2.4(vite@7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -10598,8 +10665,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.3(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) - vite-node: 3.2.4(@types/node@22.10.5)(jiti@2.4.2)(tsx@4.19.2)(yaml@2.7.0) + vite: 7.1.3(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) + vite-node: 3.2.4(@types/node@22.10.5)(jiti@2.6.1)(lightningcss@1.30.1)(tsx@4.19.2)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 @@ -10723,7 +10790,10 @@ snapshots: yallist@4.0.0: {} - yaml@2.7.0: {} + yallist@5.0.0: {} + + yaml@2.7.0: + optional: true yargs-parser@21.1.1: {}