diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 000000000..9ecbe4ce5
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,48 @@
+name: CI
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ - codex/**
+
+jobs:
+ quality:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Setup pnpm
+ uses: pnpm/action-setup@v4
+ with:
+ version: 10
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version-file: ".nvmrc"
+ cache: "pnpm"
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Astro check
+ run: pnpm check
+
+ - name: Lint
+ run: pnpm lint
+
+ - name: Vitest
+ run: pnpm test
+
+ - name: Build
+ run: pnpm build
+
+ - name: Build registry
+ run: pnpm registry:build
+
+ - name: Verify registry drift
+ run: pnpm registry:drift
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9d238b9c2..845e84cfb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
# Changelog
+## 0.8.0 - 2026-03-03
+
+- Stabilized and aligned core primitives with shadcn-style APIs and `data-slot` usage.
+- Added quality infrastructure: CI workflow, linting, Vitest, and registry drift checks.
+- Added card and multiple API-consistency improvements across UI components and docs.
+- Fixed release blockers in docs and registry packaging integrity.
+
## [Click here to the releases](https://github.com/fulldotdev/ui/releases)
diff --git a/ROADMAP.md b/ROADMAP.md
index 10dedf2bc..fb41d07d9 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -1,31 +1,66 @@
# Roadmap
-## Overall Focus
+## Overall focus
-- **Developer experience**: Enable developers to build content-driven websites faster and more reliably, with clean APIs that AI agents can fully understand and assist with.
-- **Content editor experience**: Provide an architecture where content editors can manage pages and blocks independently, without needing developer involvement.
+- **Developer experience**: Help developers build content-driven Astro websites faster with clean, predictable APIs that are easy for AI agents to understand.
+- **Content editor experience**: Keep architecture modular so content editors can manage pages and blocks independently.
-## Upcoming phases
+## v0.8 release strategy (single release)
-### Phase 1: Foundation (Q1 2026)
+This version is focused on reliability, stability, minimalism, and simplicity.
-- Maintain stability (fix bugs, review PRs promptly)
-- Hire a developer (preferably with design skills)
+### Non-negotiable rules
-### Phase 2: v0.8 Release (Q1 2026)
+- ShadCN API coherence comes first (props, variants, naming, styling semantics).
+- Interactive components must use `data-slot`.
+- New components in this version must be supported by `data-slot`.
+- Keep code surface small: prefer replacing/removing custom interaction code over adding wrappers.
+- No net-new primitives are required for v0.8 release hardening.
-- Add missing components: Breadcrumb, Toast, Tooltip, etc.
-- Add e-commerce components: Quantity Input, Gallery, etc.
-- Add e-commerce blocks: Product Details Page, Product Listing Page, etc.
+### Reference inputs
-### Phase 3: Brand & Visibility (Q2 2026)
+- `data-slot`: https://github.com/bejamas/data-slot
+- `bejamas/ui`: https://github.com/bejamas/ui
+- `shadcn/ui`: https://github.com/shadcn-ui/ui
+- `bearnie`: https://github.com/michael-andreuzza/bearnie
-- Hire branding agency for Fulldev overall identity
-- Improve all components and blocks with specialized designer
-- Optimize for SEO and become the #1 ranking Astro UI library
+### Quality infrastructure requirements
-### Phase 4: Theming System (under consideration)
+- Add CI workflow with:
+ - `pnpm check`
+ - `pnpm lint`
+ - `pnpm test` (Vitest only)
+ - `pnpm build`
+ - `pnpm registry:build`
+ - registry drift check
+- Add linting with bug-risk-focused rules (avoid style-only friction).
+- Add Vitest coverage for:
+ - core utility logic
+ - baseline accessibility checks using `vitest-axe`
+- Optionally add Lighthouse CI in non-blocking mode for trend visibility.
-- Provide preset themes that apply styles globally
-- Similar to shadcn's theme generator
-- Easy theme switching and customization
+### Definitive PR queue (no fixed dates)
+
+1. `PR-01` Scope lock and docs alignment for v0.8 policy.
+2. `PR-02` Quality infrastructure (CI + lint + Vitest + registry drift checks).
+3. `PR-03` Deterministic build hardening (external fetch/font fallbacks).
+4. `PR-04` ShadCN API coherence pass (before migration).
+5. `PR-05` `data-slot` migration: `accordion`, `collapsible`.
+6. `PR-06` `data-slot` migration: `tabs`.
+7. `PR-07` Cleanup and packaging integrity (remove dead/empty artifacts, align docs/config).
+8. `PR-08` Release candidate + final stabilization + v0.8 release notes.
+
+### Branching model for v0.8
+
+- Integration branch: `codex/0.8`.
+- Working branches: short-lived branches from `codex/0.8` per PR.
+- Merge target for all v0.8 PRs: `codex/0.8`.
+- After release hardening, merge `codex/0.8` back to the default branch.
+
+## Post-v0.8 direction
+
+- Resume broader component and block expansion after the reliability baseline is stable.
+- Expand interaction coverage for migrated primitives (`dialog`, `sheet`, `navigation-menu`) and deeper accessibility test scenarios.
+- Revisit `data-slot` migration for `dialog` and `sheet`.
+- Add `tooltip` and `popover` (+ docs + registry entries) in the next planned release phase.
+- Revisit additional features (e-commerce, expanded primitives, theme presets) in a later release.
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 000000000..87902e487
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,76 @@
+// @ts-nocheck
+import js from "@eslint/js"
+import tsPlugin from "@typescript-eslint/eslint-plugin"
+import tsParser from "@typescript-eslint/parser"
+import astro from "eslint-plugin-astro"
+
+export default [
+ {
+ ignores: [
+ ".astro/**",
+ "dist/**",
+ "node_modules/**",
+ "public/r/**",
+ "*.min.js",
+ ],
+ },
+ js.configs.recommended,
+ ...astro.configs.recommended,
+ {
+ files: ["**/*.{ts,mts,cts}"],
+ languageOptions: {
+ parser: tsParser,
+ parserOptions: {
+ ecmaVersion: "latest",
+ sourceType: "module",
+ },
+ },
+ plugins: {
+ "@typescript-eslint": tsPlugin,
+ },
+ rules: {
+ "no-unused-vars": "off",
+ "no-undef": "off",
+ "@typescript-eslint/no-unused-vars": [
+ "error",
+ {
+ argsIgnorePattern: "^_",
+ varsIgnorePattern: "^_",
+ },
+ ],
+ "@typescript-eslint/consistent-type-imports": [
+ "error",
+ {
+ prefer: "type-imports",
+ },
+ ],
+ "@typescript-eslint/no-explicit-any": "warn",
+ },
+ },
+ {
+ files: ["**/*.test.ts"],
+ languageOptions: {
+ globals: {
+ document: "readonly",
+ window: "readonly",
+ },
+ },
+ },
+ {
+ files: ["**/*.astro"],
+ languageOptions: {
+ parserOptions: {
+ parser: tsParser,
+ extraFileExtensions: [".astro"],
+ },
+ },
+ rules: {
+ "astro/no-set-html-directive": "off",
+ "astro/no-conflict-set-directives": "off",
+ "no-undef": "off",
+ "no-unused-vars": "off",
+ "no-redeclare": "off",
+ "no-case-declarations": "warn",
+ },
+ },
+]
diff --git a/package.example.json b/package.example.json
deleted file mode 100644
index 395b329e0..000000000
--- a/package.example.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "name": "fulldev-ui",
- "version": "0.7.0",
- "type": "module",
- "scripts": {
- "astro": "astro",
- "dev": "astro dev",
- "start": "astro dev",
- "check": "astro check",
- "preview": "astro preview",
- "build": "astro build",
- "build:prod": "astro check && astro build",
- "build:test": "astro check && astro build && astro preview --host"
- },
- "dependencies": {
- "@astrojs/sitemap": "^3.6.0",
- "@fontsource/inter": "^5.2.8",
- "@tailwindcss/vite": "^4.1.14",
- "astro": "^5.14.5",
- "astro-favicons": "^3.1.5",
- "astro-robots-txt": "^1.0.0",
- "class-variance-authority": "^0.7.1",
- "clsx": "^2.1.1",
- "lucide-static": "^0.546.0",
- "shadcn": "3.4.2",
- "sharp": "^0.34.4",
- "simple-icons": "^15.16.1",
- "tailwind-merge": "^3.3.1",
- "tailwindcss": "^4.1.14",
- "tw-animate-css": "^1.4.0",
- "typescript": "^5.9.3"
- },
- "devDependencies": {
- "@astrojs/check": "^0.9.4",
- "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
- "@types/node": "^24.8.1",
- "prettier": "3.6.2",
- "prettier-plugin-astro": "0.14.1",
- "prettier-plugin-tailwindcss": "^0.7.0"
- }
-}
diff --git a/package.json b/package.json
index 6caa17ee3..eccf38686 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "fulldev-ui",
- "version": "0.7.0",
+ "version": "0.8.0",
"description": "Astro UI component and block library compatible with shadcn/ui",
"homepage": "https://ui.full.dev",
"bugs": "https://github.com/fulldotdev/ui/issues",
@@ -33,11 +33,17 @@
"dev": "astro dev",
"start": "astro dev",
"check": "astro check",
+ "lint": "eslint .",
+ "lint:fix": "eslint . --fix",
+ "test": "vitest run",
+ "test:watch": "vitest",
"preview": "astro preview",
"registry:build": "shadcn build",
+ "registry:drift": "git diff --exit-code -- registry.json public/r",
"build": "astro build",
"build:prod": "astro check && shadcn build && astro build ",
- "build:test": "astro check && shadcn build && astro build && astro preview --host"
+ "build:test": "astro check && shadcn build && astro build && astro preview --host",
+ "ci": "pnpm check && pnpm lint && pnpm test && pnpm build && pnpm registry:build && pnpm registry:drift"
},
"dependencies": {
"@astrojs/mdx": "^4.3.8",
@@ -45,6 +51,18 @@
"@astrojs/sitemap": "^3.6.0",
"@astrojs/starlight": "^0.36.1",
"@astrojs/starlight-tailwind": "^4.0.1",
+ "@data-slot/accordion": "^0.2.103",
+ "@data-slot/collapsible": "^0.2.103",
+ "@data-slot/combobox": "^0.2.103",
+ "@data-slot/core": "^0.2.103",
+ "@data-slot/dialog": "^0.2.103",
+ "@data-slot/dropdown-menu": "^0.2.103",
+ "@data-slot/navigation-menu": "^0.2.103",
+ "@data-slot/popover": "^0.2.103",
+ "@data-slot/select": "^0.2.103",
+ "@data-slot/slider": "^0.2.103",
+ "@data-slot/tabs": "^0.2.103",
+ "@data-slot/tooltip": "^0.2.103",
"@fontsource/inter": "^5.2.8",
"@tailwindcss/vite": "^4.1.14",
"astro": "^5.14.5",
@@ -64,10 +82,19 @@
},
"devDependencies": {
"@astrojs/check": "^0.9.4",
+ "@eslint/js": "^10.0.1",
"@ianvs/prettier-plugin-sort-imports": "^4.7.0",
"@types/node": "^24.8.1",
+ "@typescript-eslint/eslint-plugin": "^8.56.1",
+ "@typescript-eslint/parser": "^8.56.1",
+ "astro-eslint-parser": "^1.3.0",
+ "eslint": "^10.0.2",
+ "eslint-plugin-astro": "^1.6.0",
+ "jsdom": "^28.1.0",
"prettier": "3.6.2",
"prettier-plugin-astro": "0.14.1",
- "prettier-plugin-tailwindcss": "^0.7.0"
+ "prettier-plugin-tailwindcss": "^0.7.0",
+ "vitest": "^4.0.18",
+ "vitest-axe": "^0.1.0"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d4bdbbe3a..e7fc06cee 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -23,6 +23,42 @@ importers:
'@astrojs/starlight-tailwind':
specifier: ^4.0.1
version: 4.0.1(@astrojs/starlight@0.36.1(astro@5.14.5(@netlify/blobs@10.1.0)(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.46.2)(sass-embedded@1.93.2)(sass@1.93.2)(typescript@5.9.3)(yaml@2.8.1)))(tailwindcss@4.1.14)
+ '@data-slot/accordion':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/collapsible':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/combobox':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/core':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/dialog':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/dropdown-menu':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/navigation-menu':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/popover':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/select':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/slider':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/tabs':
+ specifier: ^0.2.103
+ version: 0.2.103
+ '@data-slot/tooltip':
+ specifier: ^0.2.103
+ version: 0.2.103
'@fontsource/inter':
specifier: ^5.2.8
version: 5.2.8
@@ -75,12 +111,33 @@ importers:
'@astrojs/check':
specifier: ^0.9.4
version: 0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)
+ '@eslint/js':
+ specifier: ^10.0.1
+ version: 10.0.1(eslint@10.0.2(jiti@2.6.1))
'@ianvs/prettier-plugin-sort-imports':
specifier: ^4.7.0
version: 4.7.0(@vue/compiler-sfc@3.5.22)(prettier@3.6.2)
'@types/node':
specifier: ^24.8.1
version: 24.8.1
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^8.56.1
+ version: 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser':
+ specifier: ^8.56.1
+ version: 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)
+ astro-eslint-parser:
+ specifier: ^1.3.0
+ version: 1.3.0
+ eslint:
+ specifier: ^10.0.2
+ version: 10.0.2(jiti@2.6.1)
+ eslint-plugin-astro:
+ specifier: ^1.6.0
+ version: 1.6.0(eslint@10.0.2(jiti@2.6.1))
+ jsdom:
+ specifier: ^28.1.0
+ version: 28.1.0(@noble/hashes@1.8.0)
prettier:
specifier: 3.6.2
version: 3.6.2
@@ -90,9 +147,18 @@ importers:
prettier-plugin-tailwindcss:
specifier: ^0.7.0
version: 0.7.0(@ianvs/prettier-plugin-sort-imports@4.7.0(@vue/compiler-sfc@3.5.22)(prettier@3.6.2))(prettier-plugin-astro@0.14.1)(prettier@3.6.2)
+ vitest:
+ specifier: ^4.0.18
+ version: 4.0.18(@types/node@24.8.1)(jiti@2.6.1)(jsdom@28.1.0(@noble/hashes@1.8.0))(lightningcss@1.30.1)(msw@2.10.4(@types/node@24.8.1)(typescript@5.9.3))(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1)
+ vitest-axe:
+ specifier: ^0.1.0
+ version: 0.1.0(vitest@4.0.18(@types/node@24.8.1)(jiti@2.6.1)(jsdom@28.1.0(@noble/hashes@1.8.0))(lightningcss@1.30.1)(msw@2.10.4(@types/node@24.8.1)(typescript@5.9.3))(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1))
packages:
+ '@acemir/cssom@0.9.31':
+ resolution: {integrity: sha512-ZnR3GSaH+/vJ0YlHau21FjfLYjMpYVIzTD8M8vIEQvIGxeOXyXdzCI140rrCY862p/C/BbzWsjc1dgnM9mkoTA==}
+
'@ampproject/remapping@2.3.0':
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
@@ -101,6 +167,16 @@ packages:
resolution: {integrity: sha512-9q/yCljni37pkMr4sPrI3G4jqdIk074+iukc5aFJl7kmDCCsiJrbZ6zKxnES1Gwg+i9RcDZwvktl23puGslmvA==}
hasBin: true
+ '@asamuzakjp/css-color@5.0.1':
+ resolution: {integrity: sha512-2SZFvqMyvboVV1d15lMf7XiI3m7SDqXUuKaTymJYLN6dSGadqp+fVojqJlVoMlbZnlTmu3S0TLwLTJpvBMO1Aw==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+
+ '@asamuzakjp/dom-selector@6.8.1':
+ resolution: {integrity: sha512-MvRz1nCqW0fsy8Qz4dnLIvhOlMzqDVBabZx6lH+YywFDdjXhMY37SmpV1XFX3JzG5GWHn63j6HX6QPr3lZXHvQ==}
+
+ '@asamuzakjp/nwsapi@2.3.9':
+ resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==}
+
'@astrojs/check@0.9.4':
resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==}
hasBin: true
@@ -312,6 +388,10 @@ packages:
resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
engines: {node: '>=6.9.0'}
+ '@bramus/specificity@2.4.2':
+ resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==}
+ hasBin: true
+
'@bufbuild/protobuf@2.9.0':
resolution: {integrity: sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==}
@@ -332,6 +412,37 @@ packages:
resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==}
engines: {node: '>=0.1.90'}
+ '@csstools/color-helpers@6.0.2':
+ resolution: {integrity: sha512-LMGQLS9EuADloEFkcTBR3BwV/CGHV7zyDxVRtVDTwdI2Ca4it0CCVTT9wCkxSgokjE5Ho41hEPgb8OEUwoXr6Q==}
+ engines: {node: '>=20.19.0'}
+
+ '@csstools/css-calc@3.1.1':
+ resolution: {integrity: sha512-HJ26Z/vmsZQqs/o3a6bgKslXGFAungXGbinULZO3eMsOyNJHeBBZfup5FiZInOghgoM4Hwnmw+OgbJCNg1wwUQ==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^4.0.0
+ '@csstools/css-tokenizer': ^4.0.0
+
+ '@csstools/css-color-parser@4.0.2':
+ resolution: {integrity: sha512-0GEfbBLmTFf0dJlpsNU7zwxRIH0/BGEMuXLTCvFYxuL1tNhqzTbtnFICyJLTNK4a+RechKP75e7w42ClXSnJQw==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-parser-algorithms': ^4.0.0
+ '@csstools/css-tokenizer': ^4.0.0
+
+ '@csstools/css-parser-algorithms@4.0.0':
+ resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==}
+ engines: {node: '>=20.19.0'}
+ peerDependencies:
+ '@csstools/css-tokenizer': ^4.0.0
+
+ '@csstools/css-syntax-patches-for-csstree@1.0.28':
+ resolution: {integrity: sha512-1NRf1CUBjnr3K7hu8BLxjQrKCxEe8FP/xmPTenAxCRZWVLbmGotkFvG9mfNpjA6k7Bw1bw4BilZq9cu19RA5pg==}
+
+ '@csstools/css-tokenizer@4.0.0':
+ resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==}
+ engines: {node: '>=20.19.0'}
+
'@ctrl/tinycolor@4.2.0':
resolution: {integrity: sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==}
engines: {node: '>=14'}
@@ -339,6 +450,42 @@ packages:
'@dabh/diagnostics@2.0.7':
resolution: {integrity: sha512-EnXa4T9/wuLw8iaEUFwIJMo0xNxyE3mzxLL14ixfVToJNQHG2Jwo8xMmafVJwAiAmIyHXsFDZpZR/TJC31857g==}
+ '@data-slot/accordion@0.2.103':
+ resolution: {integrity: sha512-/krXH1+w02eaQI1ehQaLhpsZZw2sNIol6l0JyKn4cqETVYSX7Q35Axv/Q3LVC1Bs87ssLAoO6+x/YhMD8OmYjA==}
+
+ '@data-slot/collapsible@0.2.103':
+ resolution: {integrity: sha512-X/qTmBwb+S16WUWJYborLfdWXyicmtXTWn63nmXM7ZT/XjKHx01kfn3JHtM+2JewxQJvsVWc3rlopx19XvqXbg==}
+
+ '@data-slot/combobox@0.2.103':
+ resolution: {integrity: sha512-GrEILqtPTWcUSN/xkPrj9iJn6YqfRmbywXTyhvNsvDW4+Y6pTIVi1syyYQz29W12leMzWR7+S+65Oj9bmHWTFw==}
+
+ '@data-slot/core@0.2.103':
+ resolution: {integrity: sha512-suWGQlvknrCpt4mQVDBQD4rF8OujTok/u6leFK9x3ysvdLalFVFqlh+j1ZDMgvXfSbd5/WJn8TB+zKpfj546DA==}
+
+ '@data-slot/dialog@0.2.103':
+ resolution: {integrity: sha512-D9Y7LA/twTsGGY7t66sGURNcbWmoemcqE6E55ZcQ0vdsm47kC5rtLxSChvka/W3I1m3zJ8RPWcL/vKG2/YYcHA==}
+
+ '@data-slot/dropdown-menu@0.2.103':
+ resolution: {integrity: sha512-xJl9tcma+UmcKwK5Xf4qwlFGmERJuGebwYv7S03l3KaX4VH15aAUUeikK6SlnbPgY1z9q6B/bIJ9hXzZFGdCZw==}
+
+ '@data-slot/navigation-menu@0.2.103':
+ resolution: {integrity: sha512-lqBpvDUteNB4F5F7MxUpxpyYrh55G0JtiFyN8SC7g99FHwipw7bqbbsxPxPuhw6CS730C9ufmy961gAAXixe1w==}
+
+ '@data-slot/popover@0.2.103':
+ resolution: {integrity: sha512-qClAQzVDRpCP9S0rj+AIuRAxCT4ufKSqLdR1az8dKrpE7TaqoFeENHJgxbMzJyr+cWcqflV5Z6sLIvbmOL073Q==}
+
+ '@data-slot/select@0.2.103':
+ resolution: {integrity: sha512-OFv8O79z7xbAFHEpaXbPOWXRtav7y11+sB+UgWmvKPRrTUqtChQzSPCLJxjGF25ulM/kXPZZr0xLrULj1dRi/g==}
+
+ '@data-slot/slider@0.2.103':
+ resolution: {integrity: sha512-XPXUY18RxLdzwW8vFRMHhhhSaUcFJDQNR9gODDT6iADtBnCWfTZjfD2+5VTBAYN9qKU/0JwHCX+nL6vKAAs89A==}
+
+ '@data-slot/tabs@0.2.103':
+ resolution: {integrity: sha512-q2eK3+OMheCNUsyeuw4e7kB0ejwXIe8CYBBXi9tO/joBZ4RJj11GdxatXDwPG2wOZfxntUZsj9Ujzzb9U4RxqA==}
+
+ '@data-slot/tooltip@0.2.103':
+ resolution: {integrity: sha512-N2dZ2+46Td4l90QxYjkcVkH+NmirJY6eC8CGXPOpMCys3VSecdHfy/IQjLkJQ0F1dI1/Pa0XN0GF99VjVIAi0A==}
+
'@dependents/detective-less@5.0.1':
resolution: {integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==}
engines: {node: '>=18'}
@@ -537,6 +684,54 @@ packages:
cpu: [x64]
os: [win32]
+ '@eslint-community/eslint-utils@4.9.1':
+ resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.2':
+ resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/config-array@0.23.2':
+ resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/config-helpers@0.5.2':
+ resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/core@1.1.0':
+ resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/js@10.0.1':
+ resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ peerDependencies:
+ eslint: ^10.0.0
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+
+ '@eslint/object-schema@3.0.2':
+ resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@eslint/plugin-kit@0.6.0':
+ resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ '@exodus/bytes@1.14.1':
+ resolution: {integrity: sha512-OhkBFWI6GcRMUroChZiopRiSp2iAMvEBK47NhJooDqz1RERO4QuZIZnjP63TXX8GAiLABkYmX+fuQsdJ1dd2QQ==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+ peerDependencies:
+ '@noble/hashes': ^1.8.0 || ^2.0.0
+ peerDependenciesMeta:
+ '@noble/hashes':
+ optional: true
+
'@expressive-code/core@0.41.3':
resolution: {integrity: sha512-9qzohqU7O0+JwMEEgQhnBPOw5DtsQRBXhW++5fvEywsuX44vCGGof1SL5OvPElvNgaWZ4pFZAFSlkNOkGyLwSQ==}
@@ -558,10 +753,26 @@ packages:
'@fontsource/inter@5.2.8':
resolution: {integrity: sha512-P6r5WnJoKiNVV+zvW2xM13gNdFhAEpQ9dQJHt3naLvfg+LkF2ldgSLiF4T41lf1SQCM9QmkqPTn4TH568IRagg==}
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.7':
+ resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
'@humanwhocodes/momoa@2.0.4':
resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==}
engines: {node: '>=10.10.0'}
+ '@humanwhocodes/retry@0.4.3':
+ resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
+ engines: {node: '>=18.18'}
+
'@ianvs/prettier-plugin-sort-imports@4.7.0':
resolution: {integrity: sha512-soa2bPUJAFruLL4z/CnMfSEKGznm5ebz29fIa9PxYtu8HHyLKNE1NXAs6dylfw1jn/ilEIfO2oLLN6uAafb7DA==}
peerDependencies:
@@ -1163,6 +1374,10 @@ packages:
resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
engines: {node: '>=14'}
+ '@pkgr/core@0.2.9':
+ resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
+ engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
'@rollup/pluginutils@5.2.0':
resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==}
engines: {node: '>=14.0.0'}
@@ -1303,6 +1518,9 @@ packages:
'@so-ric/colorspace@1.1.6':
resolution: {integrity: sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==}
+ '@standard-schema/spec@1.1.0':
+ resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
+
'@swc/helpers@0.5.17':
resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==}
@@ -1399,12 +1617,21 @@ packages:
'@ts-morph/common@0.27.0':
resolution: {integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==}
+ '@types/chai@5.2.3':
+ resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
+
'@types/cookie@0.6.0':
resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
'@types/debug@4.1.12':
resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
+ '@types/deep-eql@4.0.2':
+ resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+
+ '@types/esrecurse@4.3.1':
+ resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==}
+
'@types/estree-jsx@1.0.5':
resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==}
@@ -1420,6 +1647,9 @@ packages:
'@types/js-yaml@4.0.9':
resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==}
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
@@ -1465,32 +1695,91 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
+ '@typescript-eslint/eslint-plugin@8.56.1':
+ resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^8.56.1
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/parser@8.56.1':
+ resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
'@typescript-eslint/project-service@8.45.0':
resolution: {integrity: sha512-3pcVHwMG/iA8afdGLMuTibGR7pDsn9RjDev6CCB+naRsSYs2pns5QbinF4Xqw6YC/Sj3lMrm/Im0eMfaa61WUg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
+ '@typescript-eslint/project-service@8.56.1':
+ resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/scope-manager@8.56.1':
+ resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@typescript-eslint/tsconfig-utils@8.45.0':
resolution: {integrity: sha512-aFdr+c37sc+jqNMGhH+ajxPXwjv9UtFZk79k8pLoJ6p4y0snmYpPA52GuWHgt2ZF4gRRW6odsEj41uZLojDt5w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
+ '@typescript-eslint/tsconfig-utils@8.56.1':
+ resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/type-utils@8.56.1':
+ resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
'@typescript-eslint/types@8.45.0':
resolution: {integrity: sha512-WugXLuOIq67BMgQInIxxnsSyRLFxdkJEJu8r4ngLR56q/4Q5LrbfkFRH27vMTjxEK8Pyz7QfzuZe/G15qQnVRA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@typescript-eslint/types@8.56.1':
+ resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@typescript-eslint/typescript-estree@8.45.0':
resolution: {integrity: sha512-GfE1NfVbLam6XQ0LcERKwdTTPlLvHvXXhOeUGC1OXi4eQBoyy1iVsW+uzJ/J9jtCz6/7GCQ9MtrQ0fml/jWCnA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
+ '@typescript-eslint/typescript-estree@8.56.1':
+ resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/utils@8.56.1':
+ resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.0.0'
+
'@typescript-eslint/visitor-keys@8.45.0':
resolution: {integrity: sha512-qsaFBA3e09MIDAGFUrTk+dzqtfv1XPVz8t8d1f0ybTzrCY7BKiMC5cjrl1O/P7UmHsNyW90EYSkU/ZWpmXelag==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@typescript-eslint/visitor-keys@8.56.1':
+ resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@ungap/structured-clone@1.3.0':
resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==}
@@ -1504,6 +1793,35 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ '@vitest/expect@4.0.18':
+ resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==}
+
+ '@vitest/mocker@4.0.18':
+ resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^6.0.0 || ^7.0.0-0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
+ '@vitest/pretty-format@4.0.18':
+ resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==}
+
+ '@vitest/runner@4.0.18':
+ resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==}
+
+ '@vitest/snapshot@4.0.18':
+ resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==}
+
+ '@vitest/spy@4.0.18':
+ resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==}
+
+ '@vitest/utils@4.0.18':
+ resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==}
+
'@volar/kit@2.4.22':
resolution: {integrity: sha512-o2LhNb2PLCUJ6v2XSqN7m+pJt+SE0QW1U2E52jnS8yZ03ohcGOOuFJdH1VlZgCBk0RlwO4xp0OaDoTtyTvMTrw==}
peerDependencies:
@@ -1592,6 +1910,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ acorn@8.16.0:
+ resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
agent-base@7.1.4:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
@@ -1604,6 +1927,9 @@ packages:
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@6.14.0:
+ resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==}
+
ajv@8.17.1:
resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
@@ -1659,6 +1985,10 @@ packages:
array-iterate@2.0.1:
resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==}
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
+
ast-module-types@6.0.1:
resolution: {integrity: sha512-WHw67kLXYbZuHTmcdbIrVArCq5wxo6NEuj3hiYAWr8mwJeC+C2mMCIBIWCiDoCye/OF/xelc+teJ1ERoWmnEIA==}
engines: {node: '>=18'}
@@ -1671,6 +2001,10 @@ packages:
resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==}
hasBin: true
+ astro-eslint-parser@1.3.0:
+ resolution: {integrity: sha512-aOLc/aDR7lTWAHlytEefwn4Y6qs6uMr69DZvUx2A1AOAZsWhGB/paiRWPtVchh9wzMvLeqr+DkbENhVreVr9AQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
astro-expressive-code@0.41.3:
resolution: {integrity: sha512-u+zHMqo/QNLE2eqYRCrK3+XMlKakv33Bzuz+56V1gs8H0y6TZ0hIi3VNbIxeTn51NLn+mJfUV/A0kMNfE4rANw==}
peerDependencies:
@@ -1692,12 +2026,22 @@ packages:
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
hasBin: true
+ astrojs-compiler-sync@1.1.1:
+ resolution: {integrity: sha512-0mKvB9sDQRIZPsEJadw6OaFbGJ92cJPPR++ICca9XEyiUAZqgVuk25jNmzHPT0KF80rI94trSZrUR5iHFXGGOQ==}
+ engines: {node: ^18.18.0 || >=20.9.0}
+ peerDependencies:
+ '@astrojs/compiler': '>=0.27.0'
+
async-sema@3.1.1:
resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==}
async@3.2.6:
resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
+ axe-core@4.11.1:
+ resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==}
+ engines: {node: '>=4'}
+
axobject-query@4.1.0:
resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
engines: {node: '>= 0.4'}
@@ -1716,6 +2060,10 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@4.0.4:
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
+ engines: {node: 18 || 20 || >=22}
+
bare-events@2.7.0:
resolution: {integrity: sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==}
@@ -1741,6 +2089,9 @@ packages:
peerDependencies:
ajv: 4.11.8 - 8
+ bidi-js@1.0.3:
+ resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==}
+
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
@@ -1758,6 +2109,10 @@ packages:
brace-expansion@2.0.2:
resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==}
+ brace-expansion@5.0.3:
+ resolution: {integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==}
+ engines: {node: 18 || 20 || >=22}
+
braces@3.0.3:
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
engines: {node: '>=8'}
@@ -1818,6 +2173,10 @@ packages:
ccount@2.0.1:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+ chai@6.2.2:
+ resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
+ engines: {node: '>=18'}
+
chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
@@ -2062,10 +2421,18 @@ packages:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+ cssstyle@6.1.0:
+ resolution: {integrity: sha512-Ml4fP2UT2K3CUBQnVlbdV/8aFDdlY69E+YnwJM+3VUWl08S3J8c8aRuJqCkD9Py8DHZ7zNNvsfKl8psocHZEFg==}
+ engines: {node: '>=20'}
+
data-uri-to-buffer@4.0.1:
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
engines: {node: '>= 12'}
+ data-urls@7.0.0:
+ resolution: {integrity: sha512-23XHcCF+coGYevirZceTVD7NdJOqVn+49IHyxgszm+JIiHLoB2TkmPtsYkNWT1pvRSGkc35L6NHs0yHkN2SumA==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+
debug@4.4.1:
resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==}
engines: {node: '>=6.0'}
@@ -2075,9 +2442,21 @@ packages:
supports-color:
optional: true
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
decache@4.6.2:
resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==}
+ decimal.js@10.6.0:
+ resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==}
+
decode-named-character-reference@1.2.0:
resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==}
@@ -2089,6 +2468,9 @@ packages:
babel-plugin-macros:
optional: true
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
deepmerge@4.3.1:
resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
engines: {node: '>=0.10.0'}
@@ -2190,6 +2572,9 @@ packages:
dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+ dom-accessibility-api@0.5.16:
+ resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==}
+
dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
@@ -2321,6 +2706,10 @@ packages:
escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
escape-string-regexp@5.0.0:
resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
engines: {node: '>=12'}
@@ -2330,15 +2719,69 @@ packages:
engines: {node: '>=6.0'}
hasBin: true
+ eslint-compat-utils@0.6.5:
+ resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
+
+ eslint-plugin-astro@1.6.0:
+ resolution: {integrity: sha512-yGIbLHuj5MOUXa0s4sZ6cVhv6ehb+WLF80tsrGaxMk6VTUExruMzubQDzhOYt8fbR1c9vILCCRSCsKI7M1whig==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: '>=8.57.0'
+
+ eslint-scope@8.4.0:
+ resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ eslint-scope@9.1.1:
+ resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
eslint-visitor-keys@4.2.1:
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ eslint-visitor-keys@5.0.1:
+ resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
+ eslint@10.0.2:
+ resolution: {integrity: sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.4.0:
+ resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ espree@11.1.1:
+ resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==}
+ engines: {node: ^20.19.0 || ^22.13.0 || >=24}
+
esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
hasBin: true
+ esquery@1.7.0:
+ resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==}
+ engines: {node: '>=0.10'}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
@@ -2409,6 +2852,10 @@ packages:
resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==}
engines: {node: ^18.19.0 || >=20.5.0}
+ expect-type@1.3.0:
+ resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==}
+ engines: {node: '>=12.0.0'}
+
express-rate-limit@7.5.1:
resolution: {integrity: sha512-7iN8iPMDzOMHPUYllBEsQdWVB6fPDMPqwjBaFrgr4Jgr/+okjvzAy+UHlYYL/Vs0OsOrMkwS6PJDkFlJwoxUnw==}
engines: {node: '>= 16'}
@@ -2443,6 +2890,9 @@ packages:
fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
fast-safe-stringify@2.1.1:
resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==}
@@ -2479,6 +2929,10 @@ packages:
resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==}
engines: {node: '>=18'}
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
@@ -2502,6 +2956,10 @@ packages:
resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==}
engines: {node: '>=18'}
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
find-up@7.0.0:
resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==}
engines: {node: '>=18'}
@@ -2509,6 +2967,13 @@ packages:
fix-esm@1.0.1:
resolution: {integrity: sha512-EZtb7wPXZS54GaGxaWxMlhd1DUDCnAg5srlYdu/1ZVeW+7wwR3Tp59nu52dXByFs3MBRq+SByx1wDOJpRvLEXw==}
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
+ flatted@3.3.3:
+ resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==}
+
flattie@1.1.1:
resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==}
engines: {node: '>=8'}
@@ -2614,10 +3079,18 @@ packages:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
+ glob-parent@6.0.2:
+ 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
+ globals@16.5.0:
+ resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==}
+ engines: {node: '>=18'}
+
gonzales-pe@4.3.0:
resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==}
engines: {node: '>=0.6.0'}
@@ -2716,6 +3189,10 @@ packages:
resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==}
engines: {node: ^16.14.0 || >=18.0.0}
+ html-encoding-sniffer@6.0.0:
+ resolution: {integrity: sha512-CV9TW3Y3f8/wT0BRFc1/KAVQ3TUHiXmaAb6VW9vtiMFf7SLoMd1PdAc4W3KFOFETBJUb90KatHqlsZMWV+R9Gg==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+
html-escaper@3.0.3:
resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
@@ -2732,6 +3209,10 @@ packages:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
engines: {node: '>= 0.8'}
+ http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
+ engines: {node: '>= 14'}
+
http-shutdown@1.2.2:
resolution: {integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
@@ -2766,6 +3247,10 @@ packages:
resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
engines: {node: '>= 4'}
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
image-meta@0.2.1:
resolution: {integrity: sha512-K6acvFaelNxx8wc2VjbIzXKDVB0Khs0QT35U6NkGfTdCmjLNcO2945m7RFNR9/RPVFm48hq7QPzK8uGH18HCGw==}
@@ -2788,6 +3273,10 @@ packages:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
+ indent-string@4.0.0:
+ resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+ engines: {node: '>=8'}
+
indent-string@5.0.0:
resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==}
engines: {node: '>=12'}
@@ -2888,6 +3377,9 @@ packages:
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
engines: {node: '>=12'}
+ is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+
is-promise@4.0.0:
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
@@ -2960,11 +3452,23 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ jsdom@28.1.0:
+ resolution: {integrity: sha512-0+MoQNYyr2rBHqO1xilltfDjV9G7ymYGlAUazgcDLQaUf8JDHbuGwsxN6U9qWaElZ4w1B2r7yEGIL3GdeW3Rug==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+ peerDependencies:
+ canvas: ^3.0.0
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
jsesc@3.1.0:
resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==}
engines: {node: '>=6'}
hasBin: true
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
@@ -2974,6 +3478,9 @@ packages:
json-schema-traverse@1.0.0:
resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
@@ -3010,6 +3517,9 @@ packages:
resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==}
engines: {node: '>=18'}
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
kleur@3.0.3:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
@@ -3038,6 +3548,10 @@ packages:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
lightningcss-darwin-arm64@1.30.1:
resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==}
engines: {node: '>= 12.0.0'}
@@ -3109,10 +3623,17 @@ packages:
resolution: {integrity: sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==}
hasBin: true
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
locate-path@7.2.0:
resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ lodash-es@4.17.23:
+ resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==}
+
lodash.includes@4.3.0:
resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
@@ -3151,6 +3672,10 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+ lru-cache@11.2.6:
+ resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==}
+ engines: {node: 20 || >=22}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -3164,6 +3689,9 @@ packages:
magic-string@0.30.19:
resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
+ magic-string@0.30.21:
+ resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
+
magicast@0.3.5:
resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
@@ -3393,10 +3921,18 @@ packages:
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
engines: {node: '>=18'}
+ min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+
minimatch@10.0.3:
resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==}
engines: {node: 20 || >=22}
+ minimatch@10.2.4:
+ resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==}
+ engines: {node: 18 || 20 || >=22}
+
minimatch@5.1.6:
resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
engines: {node: '>=10'}
@@ -3453,6 +3989,9 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
negotiator@1.0.0:
resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
engines: {node: '>= 0.6'}
@@ -3557,6 +4096,9 @@ packages:
resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==}
engines: {node: '>= 10'}
+ obug@2.1.1:
+ resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==}
+
ofetch@1.4.1:
resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==}
@@ -3594,6 +4136,10 @@ packages:
oniguruma-to-es@4.3.3:
resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==}
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
ora@8.2.0:
resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==}
engines: {node: '>=18'}
@@ -3605,6 +4151,10 @@ packages:
resolution: {integrity: sha512-Q6Bekk5wpzW5qIyUP4gdMEujObYstZl6DMMOSenwBvV0BlE5LkDwkjs5yHbZmdCEq2o4RJx4tE1vwxFVf2FG1w==}
engines: {node: '>=16.17'}
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
p-limit@4.0.0:
resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -3613,6 +4163,10 @@ packages:
resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==}
engines: {node: '>=18'}
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
p-locate@6.0.0:
resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -3683,6 +4237,9 @@ packages:
parse5@7.3.0:
resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==}
+ parse5@8.0.0:
+ resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==}
+
parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
engines: {node: '>= 0.8'}
@@ -3690,6 +4247,10 @@ packages:
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
path-exists@5.0.0:
resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -3760,6 +4321,10 @@ packages:
resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
engines: {node: '>=4'}
+ postcss-selector-parser@7.1.1:
+ resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==}
+ engines: {node: '>=4'}
+
postcss-values-parser@6.0.2:
resolution: {integrity: sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==}
engines: {node: '>=10'}
@@ -3775,6 +4340,10 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
prettier-plugin-astro@0.14.1:
resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==}
engines: {node: ^14.15.0 || >=16.0.0}
@@ -3951,6 +4520,10 @@ packages:
recma-stringify@1.0.0:
resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==}
+ redent@3.0.0:
+ resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
+ engines: {node: '>=8'}
+
regex-recursion@6.0.2:
resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
@@ -4216,6 +4789,10 @@ packages:
sax@1.4.1:
resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
+ saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
@@ -4225,6 +4802,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ semver@7.7.4:
+ resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==}
+ engines: {node: '>=10'}
+ hasBin: true
+
send@1.2.0:
resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==}
engines: {node: '>= 18'}
@@ -4275,6 +4857,9 @@ packages:
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
engines: {node: '>= 0.4'}
+ siginfo@2.0.0:
+ resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
+
signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@@ -4338,6 +4923,9 @@ packages:
stack-trace@0.0.10:
resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
+ stackback@0.0.2:
+ resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
+
statuses@2.0.1:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
@@ -4346,6 +4934,9 @@ packages:
resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==}
engines: {node: '>= 0.8'}
+ std-env@3.10.0:
+ resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==}
+
std-env@3.9.0:
resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
@@ -4411,6 +5002,10 @@ packages:
resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==}
engines: {node: '>=18'}
+ strip-indent@3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+
style-to-js@1.1.18:
resolution: {integrity: sha512-JFPn62D4kJaPTnhFUI244MThx+FEGbi+9dw1b9yBBQ+1CZpV7QAT8kUtJ7b7EUNdHajjF/0x8fT+16oLJoojLg==}
@@ -4437,6 +5032,9 @@ packages:
engines: {node: '>=16'}
hasBin: true
+ symbol-tree@3.2.4:
+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
+
sync-child-process@1.0.2:
resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==}
engines: {node: '>=16.0.0'}
@@ -4445,6 +5043,10 @@ packages:
resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==}
engines: {node: '>=16.0.0'}
+ synckit@0.11.12:
+ resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+
system-architecture@0.1.0:
resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==}
engines: {node: '>=18'}
@@ -4478,13 +5080,31 @@ packages:
tiny-invariant@1.3.3:
resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+ tinybench@2.9.0:
+ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
+
tinyexec@1.0.1:
resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
+ tinyexec@1.0.2:
+ resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
+ engines: {node: '>=18'}
+
tinyglobby@0.2.15:
resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
engines: {node: '>=12.0.0'}
+ tinyrainbow@3.0.3:
+ resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==}
+ engines: {node: '>=14.0.0'}
+
+ tldts-core@7.0.23:
+ resolution: {integrity: sha512-0g9vrtDQLrNIiCj22HSe9d4mLVG3g5ph5DZ8zCKBr4OtrspmNB6ss7hVyzArAeE88ceZocIEGkyW1Ime7fxPtQ==}
+
+ tldts@7.0.23:
+ resolution: {integrity: sha512-ASdhgQIBSay0R/eXggAkQ53G4nTJqTXqC2kbaBbdDwM7SkjyZyO0OaaN1/FH7U/yCeqOHDwFO5j8+Os/IS1dXw==}
+ hasBin: true
+
tmp-promise@3.0.3:
resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==}
@@ -4510,9 +5130,17 @@ packages:
resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
engines: {node: '>=6'}
+ tough-cookie@6.0.0:
+ resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==}
+ engines: {node: '>=16'}
+
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ tr46@6.0.0:
+ resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==}
+ engines: {node: '>=20'}
+
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@@ -4529,6 +5157,12 @@ packages:
peerDependencies:
typescript: '>=4.8.4'
+ ts-api-utils@2.4.0:
+ resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==}
+ engines: {node: '>=18.12'}
+ peerDependencies:
+ typescript: '>=4.8.4'
+
ts-morph@26.0.0:
resolution: {integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==}
@@ -4552,6 +5186,10 @@ packages:
tw-animate-css@1.4.0:
resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==}
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
type-fest@0.21.3:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
@@ -4591,6 +5229,10 @@ packages:
undici-types@7.14.0:
resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==}
+ undici@7.22.0:
+ resolution: {integrity: sha512-RqslV2Us5BrllB+JeiZnK4peryVTndy9Dnqq62S3yYRRTj0tFQCwEniUy2167skdGOy3vqRzEvl1Dm4sV2ReDg==}
+ engines: {node: '>=20.18.1'}
+
unicode-properties@1.4.1:
resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==}
@@ -4826,24 +5468,63 @@ packages:
vite:
optional: true
- volar-service-css@0.0.62:
- resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==}
+ vitest-axe@0.1.0:
+ resolution: {integrity: sha512-jvtXxeQPg8R/2ANTY8QicA5pvvdRP4F0FsVUAHANJ46YCDASie/cuhlSzu0DGcLmZvGBSBNsNuK3HqfaeknyvA==}
peerDependencies:
- '@volar/language-service': ~2.4.0
- peerDependenciesMeta:
- '@volar/language-service':
- optional: true
+ vitest: '>=0.16.0'
- volar-service-emmet@0.0.62:
- resolution: {integrity: sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==}
+ vitest@4.0.18:
+ resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==}
+ engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
+ hasBin: true
peerDependencies:
- '@volar/language-service': ~2.4.0
+ '@edge-runtime/vm': '*'
+ '@opentelemetry/api': ^1.9.0
+ '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
+ '@vitest/browser-playwright': 4.0.18
+ '@vitest/browser-preview': 4.0.18
+ '@vitest/browser-webdriverio': 4.0.18
+ '@vitest/ui': 4.0.18
+ happy-dom: '*'
+ jsdom: '*'
peerDependenciesMeta:
- '@volar/language-service':
+ '@edge-runtime/vm':
optional: true
-
- volar-service-html@0.0.62:
- resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==}
+ '@opentelemetry/api':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser-playwright':
+ optional: true
+ '@vitest/browser-preview':
+ optional: true
+ '@vitest/browser-webdriverio':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+
+ volar-service-css@0.0.62:
+ resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+
+ volar-service-emmet@0.0.62:
+ resolution: {integrity: sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==}
+ peerDependencies:
+ '@volar/language-service': ~2.4.0
+ peerDependenciesMeta:
+ '@volar/language-service':
+ optional: true
+
+ volar-service-html@0.0.62:
+ resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==}
peerDependencies:
'@volar/language-service': ~2.4.0
peerDependenciesMeta:
@@ -4932,6 +5613,10 @@ packages:
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
+ w3c-xmlserializer@5.0.0:
+ resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
+ engines: {node: '>=18'}
+
web-namespaces@2.0.1:
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
@@ -4942,6 +5627,18 @@ packages:
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ webidl-conversions@8.0.1:
+ resolution: {integrity: sha512-BMhLD/Sw+GbJC21C/UgyaZX41nPt8bUTg+jWyDeg7e7YN4xOM05YPSIXceACnXVtqyEw/LMClUQMtMZ+PGGpqQ==}
+ engines: {node: '>=20'}
+
+ whatwg-mimetype@5.0.0:
+ resolution: {integrity: sha512-sXcNcHOC51uPGF0P/D4NVtrkjSU2fNsm9iog4ZvZJsL3rjoDAzXZhkm2MWt1y+PUdggKAYVoMAIYcs78wJ51Cw==}
+ engines: {node: '>=20'}
+
+ whatwg-url@16.0.1:
+ resolution: {integrity: sha512-1to4zXBxmXHV3IiSSEInrreIlu02vUOvrhxJJH5vcxYTBDAx51cqZiKdyTxlecdKNSjj8EcxGBxNf6Vg+945gw==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+
whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
@@ -4959,6 +5656,11 @@ packages:
engines: {node: ^16.13.0 || >=18.0.0}
hasBin: true
+ why-is-node-running@2.3.0:
+ resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
+ engines: {node: '>=8'}
+ hasBin: true
+
widest-line@5.0.0:
resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==}
engines: {node: '>=18'}
@@ -4971,6 +5673,10 @@ packages:
resolution: {integrity: sha512-+yDkrWD2rWkv6XjSgK2QyujZDNsHE9YLa8S284TpVrYdaloMkZ7NvHzfnETYlSPOX9h5j5VJ+Ro9J872O8CC/g==}
engines: {node: '>= 12.0.0'}
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
engines: {node: '>=8'}
@@ -4994,6 +5700,10 @@ packages:
resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ xml-name-validator@5.0.0:
+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
+ engines: {node: '>=18'}
+
xml2js@0.6.2:
resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==}
engines: {node: '>=4.0.0'}
@@ -5002,6 +5712,9 @@ packages:
resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==}
engines: {node: '>=4.0'}
+ xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+
xss@1.0.15:
resolution: {integrity: sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==}
engines: {node: '>= 0.10.0'}
@@ -5045,6 +5758,10 @@ packages:
yauzl@2.10.0:
resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
yocto-queue@1.2.1:
resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
engines: {node: '>=12.20'}
@@ -5084,6 +5801,8 @@ packages:
snapshots:
+ '@acemir/cssom@0.9.31': {}
+
'@ampproject/remapping@2.3.0':
dependencies:
'@jridgewell/gen-mapping': 0.3.12
@@ -5096,6 +5815,24 @@ snapshots:
package-manager-detector: 1.3.0
tinyexec: 1.0.1
+ '@asamuzakjp/css-color@5.0.1':
+ dependencies:
+ '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-color-parser': 4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-tokenizer': 4.0.0
+ lru-cache: 11.2.6
+
+ '@asamuzakjp/dom-selector@6.8.1':
+ dependencies:
+ '@asamuzakjp/nwsapi': 2.3.9
+ bidi-js: 1.0.3
+ css-tree: 3.1.0
+ is-potential-custom-element-name: 1.0.1
+ lru-cache: 11.2.6
+
+ '@asamuzakjp/nwsapi@2.3.9': {}
+
'@astrojs/check@0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)':
dependencies:
'@astrojs/language-server': 2.15.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.3)
@@ -5495,6 +6232,10 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
+ '@bramus/specificity@2.4.2':
+ dependencies:
+ css-tree: 3.1.0
+
'@bufbuild/protobuf@2.9.0':
optional: true
@@ -5517,6 +6258,28 @@ snapshots:
'@colors/colors@1.6.0': {}
+ '@csstools/color-helpers@6.0.2': {}
+
+ '@csstools/css-calc@3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
+ dependencies:
+ '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-tokenizer': 4.0.0
+
+ '@csstools/css-color-parser@4.0.2(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
+ dependencies:
+ '@csstools/color-helpers': 6.0.2
+ '@csstools/css-calc': 3.1.1(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
+ '@csstools/css-tokenizer': 4.0.0
+
+ '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)':
+ dependencies:
+ '@csstools/css-tokenizer': 4.0.0
+
+ '@csstools/css-syntax-patches-for-csstree@1.0.28': {}
+
+ '@csstools/css-tokenizer@4.0.0': {}
+
'@ctrl/tinycolor@4.2.0': {}
'@dabh/diagnostics@2.0.7':
@@ -5528,6 +6291,52 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@data-slot/accordion@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/collapsible@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/combobox@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/core@0.2.103': {}
+
+ '@data-slot/dialog@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/dropdown-menu@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/navigation-menu@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/popover@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/select@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/slider@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/tabs@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
+ '@data-slot/tooltip@0.2.103':
+ dependencies:
+ '@data-slot/core': 0.2.103
+
'@dependents/detective-less@5.0.1':
dependencies:
gonzales-pe: 4.3.0
@@ -5660,6 +6469,44 @@ snapshots:
'@esbuild/win32-x64@0.25.10':
optional: true
+ '@eslint-community/eslint-utils@4.9.1(eslint@10.0.2(jiti@2.6.1))':
+ dependencies:
+ eslint: 10.0.2(jiti@2.6.1)
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.2': {}
+
+ '@eslint/config-array@0.23.2':
+ dependencies:
+ '@eslint/object-schema': 3.0.2
+ debug: 4.4.1
+ minimatch: 10.2.4
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/config-helpers@0.5.2':
+ dependencies:
+ '@eslint/core': 1.1.0
+
+ '@eslint/core@1.1.0':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
+ '@eslint/js@10.0.1(eslint@10.0.2(jiti@2.6.1))':
+ optionalDependencies:
+ eslint: 10.0.2(jiti@2.6.1)
+
+ '@eslint/object-schema@3.0.2': {}
+
+ '@eslint/plugin-kit@0.6.0':
+ dependencies:
+ '@eslint/core': 1.1.0
+ levn: 0.4.1
+
+ '@exodus/bytes@1.14.1(@noble/hashes@1.8.0)':
+ optionalDependencies:
+ '@noble/hashes': 1.8.0
+
'@expressive-code/core@0.41.3':
dependencies:
'@ctrl/tinycolor': 4.2.0
@@ -5691,8 +6538,19 @@ snapshots:
'@fontsource/inter@5.2.8': {}
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.7':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.4.3
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
'@humanwhocodes/momoa@2.0.4': {}
+ '@humanwhocodes/retry@0.4.3': {}
+
'@ianvs/prettier-plugin-sort-imports@4.7.0(@vue/compiler-sfc@3.5.22)(prettier@3.6.2)':
dependencies:
'@babel/generator': 7.28.0
@@ -6446,6 +7304,8 @@ snapshots:
'@pkgjs/parseargs@0.11.0':
optional: true
+ '@pkgr/core@0.2.9': {}
+
'@rollup/pluginutils@5.2.0(rollup@4.46.2)':
dependencies:
'@types/estree': 1.0.8
@@ -6556,6 +7416,8 @@ snapshots:
color: 5.0.2
text-hex: 1.0.0
+ '@standard-schema/spec@1.1.0': {}
+
'@swc/helpers@0.5.17':
dependencies:
tslib: 2.8.1
@@ -6637,12 +7499,21 @@ snapshots:
minimatch: 10.0.3
path-browserify: 1.0.1
+ '@types/chai@5.2.3':
+ dependencies:
+ '@types/deep-eql': 4.0.2
+ assertion-error: 2.0.1
+
'@types/cookie@0.6.0': {}
'@types/debug@4.1.12':
dependencies:
'@types/ms': 2.1.0
+ '@types/deep-eql@4.0.2': {}
+
+ '@types/esrecurse@4.3.1': {}
+
'@types/estree-jsx@1.0.5':
dependencies:
'@types/estree': 1.0.8
@@ -6659,6 +7530,8 @@ snapshots:
'@types/js-yaml@4.0.9': {}
+ '@types/json-schema@7.0.15': {}
+
'@types/mdast@4.0.4':
dependencies:
'@types/unist': 3.0.3
@@ -6700,6 +7573,34 @@ snapshots:
'@types/node': 24.8.1
optional: true
+ '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/regexpp': 4.12.2
+ '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.56.1
+ '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.56.1
+ eslint: 10.0.2(jiti@2.6.1)
+ ignore: 7.0.5
+ natural-compare: 1.4.0
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 8.56.1
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.56.1
+ debug: 4.4.3
+ eslint: 10.0.2(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/project-service@8.45.0(typescript@5.9.3)':
dependencies:
'@typescript-eslint/tsconfig-utils': 8.45.0(typescript@5.9.3)
@@ -6709,12 +7610,44 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/types': 8.56.1
+ debug: 4.4.3
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@8.56.1':
+ dependencies:
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/visitor-keys': 8.56.1
+
'@typescript-eslint/tsconfig-utils@8.45.0(typescript@5.9.3)':
dependencies:
typescript: 5.9.3
+ '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)':
+ dependencies:
+ typescript: 5.9.3
+
+ '@typescript-eslint/type-utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)
+ debug: 4.4.3
+ eslint: 10.0.2(jiti@2.6.1)
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/types@8.45.0': {}
+ '@typescript-eslint/types@8.56.1': {}
+
'@typescript-eslint/typescript-estree@8.45.0(typescript@5.9.3)':
dependencies:
'@typescript-eslint/project-service': 8.45.0(typescript@5.9.3)
@@ -6731,11 +7664,42 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3)
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/visitor-keys': 8.56.1
+ debug: 4.4.3
+ minimatch: 10.2.4
+ semver: 7.7.4
+ tinyglobby: 0.2.15
+ ts-api-utils: 2.4.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.56.1
+ '@typescript-eslint/types': 8.56.1
+ '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3)
+ eslint: 10.0.2(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/visitor-keys@8.45.0':
dependencies:
'@typescript-eslint/types': 8.45.0
eslint-visitor-keys: 4.2.1
+ '@typescript-eslint/visitor-keys@8.56.1':
+ dependencies:
+ '@typescript-eslint/types': 8.56.1
+ eslint-visitor-keys: 5.0.1
+
'@ungap/structured-clone@1.3.0': {}
'@vercel/nft@0.29.4(rollup@4.46.2)':
@@ -6776,6 +7740,46 @@ snapshots:
- rollup
- supports-color
+ '@vitest/expect@4.0.18':
+ dependencies:
+ '@standard-schema/spec': 1.1.0
+ '@types/chai': 5.2.3
+ '@vitest/spy': 4.0.18
+ '@vitest/utils': 4.0.18
+ chai: 6.2.2
+ tinyrainbow: 3.0.3
+
+ '@vitest/mocker@4.0.18(msw@2.10.4(@types/node@24.8.1)(typescript@5.9.3))(vite@6.3.6(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1))':
+ dependencies:
+ '@vitest/spy': 4.0.18
+ estree-walker: 3.0.3
+ magic-string: 0.30.21
+ optionalDependencies:
+ msw: 2.10.4(@types/node@24.8.1)(typescript@5.9.3)
+ vite: 6.3.6(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1)
+
+ '@vitest/pretty-format@4.0.18':
+ dependencies:
+ tinyrainbow: 3.0.3
+
+ '@vitest/runner@4.0.18':
+ dependencies:
+ '@vitest/utils': 4.0.18
+ pathe: 2.0.3
+
+ '@vitest/snapshot@4.0.18':
+ dependencies:
+ '@vitest/pretty-format': 4.0.18
+ magic-string: 0.30.21
+ pathe: 2.0.3
+
+ '@vitest/spy@4.0.18': {}
+
+ '@vitest/utils@4.0.18':
+ dependencies:
+ '@vitest/pretty-format': 4.0.18
+ tinyrainbow: 3.0.3
+
'@volar/kit@2.4.22(typescript@5.9.3)':
dependencies:
'@volar/language-service': 2.4.22
@@ -6906,8 +7910,14 @@ snapshots:
dependencies:
acorn: 8.15.0
+ acorn-jsx@5.3.2(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
+
acorn@8.15.0: {}
+ acorn@8.16.0: {}
+
agent-base@7.1.4: {}
ajv-errors@3.0.0(ajv@8.17.1):
@@ -6921,6 +7931,13 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ajv@6.14.0:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
ajv@8.17.1:
dependencies:
fast-deep-equal: 3.1.3
@@ -6983,6 +8000,8 @@ snapshots:
array-iterate@2.0.1: {}
+ assertion-error@2.0.1: {}
+
ast-module-types@6.0.1: {}
ast-types@0.16.1:
@@ -6991,6 +8010,23 @@ snapshots:
astring@1.9.0: {}
+ astro-eslint-parser@1.3.0:
+ dependencies:
+ '@astrojs/compiler': 2.12.2
+ '@typescript-eslint/scope-manager': 8.56.1
+ '@typescript-eslint/types': 8.45.0
+ astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.12.2)
+ debug: 4.4.1
+ entities: 6.0.1
+ eslint-scope: 8.4.0
+ eslint-visitor-keys: 4.2.1
+ espree: 10.4.0
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ semver: 7.7.2
+ transitivePeerDependencies:
+ - supports-color
+
astro-expressive-code@0.41.3(astro@5.14.5(@netlify/blobs@10.1.0)(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.46.2)(sass-embedded@1.93.2)(sass@1.93.2)(typescript@5.9.3)(yaml@2.8.1)):
dependencies:
astro: 5.14.5(@netlify/blobs@10.1.0)(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(rollup@4.46.2)(sass-embedded@1.93.2)(sass@1.93.2)(typescript@5.9.3)(yaml@2.8.1)
@@ -7114,10 +8150,17 @@ snapshots:
- uploadthing
- yaml
+ astrojs-compiler-sync@1.1.1(@astrojs/compiler@2.12.2):
+ dependencies:
+ '@astrojs/compiler': 2.12.2
+ synckit: 0.11.12
+
async-sema@3.1.1: {}
async@3.2.6: {}
+ axe-core@4.11.1: {}
+
axobject-query@4.1.0: {}
b4a@1.7.3: {}
@@ -7126,6 +8169,8 @@ snapshots:
balanced-match@1.0.2: {}
+ balanced-match@4.0.4: {}
+
bare-events@2.7.0: {}
base-64@1.0.0: {}
@@ -7151,6 +8196,10 @@ snapshots:
jsonpointer: 5.0.1
leven: 3.1.0
+ bidi-js@1.0.3:
+ dependencies:
+ require-from-string: 2.0.2
+
bindings@1.5.0:
dependencies:
file-uri-to-path: 1.0.0
@@ -7186,6 +8235,10 @@ snapshots:
dependencies:
balanced-match: 1.0.2
+ brace-expansion@5.0.3:
+ dependencies:
+ balanced-match: 4.0.4
+
braces@3.0.3:
dependencies:
fill-range: 7.1.1
@@ -7240,6 +8293,8 @@ snapshots:
ccount@2.0.1: {}
+ chai@6.2.2: {}
+
chalk@4.1.2:
dependencies:
ansi-styles: 4.3.0
@@ -7451,22 +8506,44 @@ snapshots:
dependencies:
css-tree: 2.2.1
+ cssstyle@6.1.0:
+ dependencies:
+ '@asamuzakjp/css-color': 5.0.1
+ '@csstools/css-syntax-patches-for-csstree': 1.0.28
+ css-tree: 3.1.0
+ lru-cache: 11.2.6
+
data-uri-to-buffer@4.0.1: {}
+ data-urls@7.0.0(@noble/hashes@1.8.0):
+ dependencies:
+ whatwg-mimetype: 5.0.0
+ whatwg-url: 16.0.1(@noble/hashes@1.8.0)
+ transitivePeerDependencies:
+ - '@noble/hashes'
+
debug@4.4.1:
dependencies:
ms: 2.1.3
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
decache@4.6.2:
dependencies:
callsite: 1.0.0
+ decimal.js@10.6.0: {}
+
decode-named-character-reference@1.2.0:
dependencies:
character-entities: 2.0.2
dedent@1.7.0: {}
+ deep-is@0.1.4: {}
+
deepmerge@4.3.1: {}
defu@6.1.4: {}
@@ -7559,6 +8636,8 @@ snapshots:
dlv@1.1.3: {}
+ dom-accessibility-api@0.5.16: {}
+
dom-serializer@2.0.0:
dependencies:
domelementtype: 2.3.0
@@ -7705,6 +8784,8 @@ snapshots:
escape-html@1.0.3: {}
+ escape-string-regexp@4.0.0: {}
+
escape-string-regexp@5.0.0: {}
escodegen@2.1.0:
@@ -7715,10 +8796,102 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
+ eslint-compat-utils@0.6.5(eslint@10.0.2(jiti@2.6.1)):
+ dependencies:
+ eslint: 10.0.2(jiti@2.6.1)
+ semver: 7.7.2
+
+ eslint-plugin-astro@1.6.0(eslint@10.0.2(jiti@2.6.1)):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1))
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@typescript-eslint/types': 8.45.0
+ astro-eslint-parser: 1.3.0
+ eslint: 10.0.2(jiti@2.6.1)
+ eslint-compat-utils: 0.6.5(eslint@10.0.2(jiti@2.6.1))
+ globals: 16.5.0
+ postcss: 8.5.6
+ postcss-selector-parser: 7.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-scope@8.4.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-scope@9.1.1:
+ dependencies:
+ '@types/esrecurse': 4.3.1
+ '@types/estree': 1.0.8
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
eslint-visitor-keys@4.2.1: {}
+ eslint-visitor-keys@5.0.1: {}
+
+ eslint@10.0.2(jiti@2.6.1):
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1))
+ '@eslint-community/regexpp': 4.12.2
+ '@eslint/config-array': 0.23.2
+ '@eslint/config-helpers': 0.5.2
+ '@eslint/core': 1.1.0
+ '@eslint/plugin-kit': 0.6.0
+ '@humanfs/node': 0.16.7
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.3
+ '@types/estree': 1.0.8
+ ajv: 6.14.0
+ cross-spawn: 7.0.6
+ debug: 4.4.1
+ escape-string-regexp: 4.0.0
+ eslint-scope: 9.1.1
+ eslint-visitor-keys: 5.0.1
+ espree: 11.1.1
+ esquery: 1.7.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ minimatch: 10.2.4
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ optionalDependencies:
+ jiti: 2.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.4.0:
+ dependencies:
+ acorn: 8.15.0
+ acorn-jsx: 5.3.2(acorn@8.15.0)
+ eslint-visitor-keys: 4.2.1
+
+ espree@11.1.1:
+ dependencies:
+ acorn: 8.16.0
+ acorn-jsx: 5.3.2(acorn@8.16.0)
+ eslint-visitor-keys: 5.0.1
+
esprima@4.0.1: {}
+ esquery@1.7.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
estraverse@5.3.0: {}
estree-util-attach-comments@3.0.0:
@@ -7815,6 +8988,8 @@ snapshots:
strip-final-newline: 4.0.0
yoctocolors: 2.1.1
+ expect-type@1.3.0: {}
+
express-rate-limit@7.5.1(express@5.1.0):
dependencies:
express: 5.1.0
@@ -7884,6 +9059,8 @@ snapshots:
fast-json-stable-stringify@2.1.0: {}
+ fast-levenshtein@2.0.6: {}
+
fast-safe-stringify@2.1.1: {}
fast-uri@3.0.6: {}
@@ -7917,6 +9094,10 @@ snapshots:
dependencies:
is-unicode-supported: 2.1.0
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
file-uri-to-path@1.0.0: {}
filename-reserved-regex@3.0.0: {}
@@ -7940,6 +9121,11 @@ snapshots:
find-up-simple@1.0.1: {}
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
find-up@7.0.0:
dependencies:
locate-path: 7.2.0
@@ -7954,6 +9140,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.3
+ keyv: 4.5.4
+
+ flatted@3.3.3: {}
+
flattie@1.1.1: {}
fn.name@1.1.0: {}
@@ -8057,6 +9250,10 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
glob@10.4.5:
dependencies:
foreground-child: 3.3.1
@@ -8066,6 +9263,8 @@ snapshots:
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
+ globals@16.5.0: {}
+
gonzales-pe@4.3.0:
dependencies:
minimist: 1.2.8
@@ -8291,6 +9490,12 @@ snapshots:
dependencies:
lru-cache: 10.4.3
+ html-encoding-sniffer@6.0.0(@noble/hashes@1.8.0):
+ dependencies:
+ '@exodus/bytes': 1.14.1(@noble/hashes@1.8.0)
+ transitivePeerDependencies:
+ - '@noble/hashes'
+
html-escaper@3.0.3: {}
html-void-elements@3.0.0: {}
@@ -8307,6 +9512,13 @@ snapshots:
statuses: 2.0.1
toidentifier: 1.0.1
+ http-proxy-agent@7.0.2:
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.1
+ transitivePeerDependencies:
+ - supports-color
+
http-shutdown@1.2.2: {}
https-proxy-agent@7.0.6:
@@ -8334,6 +9546,8 @@ snapshots:
ignore@5.3.2: {}
+ ignore@7.0.5: {}
+
image-meta@0.2.1: {}
image-size@2.0.2: {}
@@ -8350,6 +9564,8 @@ snapshots:
imurmurhash@0.1.4: {}
+ indent-string@4.0.0: {}
+
indent-string@5.0.0: {}
index-to-position@1.2.0: {}
@@ -8450,6 +9666,8 @@ snapshots:
is-plain-obj@4.1.0: {}
+ is-potential-custom-element-name@1.0.1: {}
+
is-promise@4.0.0: {}
is-regexp@3.1.0: {}
@@ -8502,14 +9720,45 @@ snapshots:
dependencies:
argparse: 2.0.1
+ jsdom@28.1.0(@noble/hashes@1.8.0):
+ dependencies:
+ '@acemir/cssom': 0.9.31
+ '@asamuzakjp/dom-selector': 6.8.1
+ '@bramus/specificity': 2.4.2
+ '@exodus/bytes': 1.14.1(@noble/hashes@1.8.0)
+ cssstyle: 6.1.0
+ data-urls: 7.0.0(@noble/hashes@1.8.0)
+ decimal.js: 10.6.0
+ html-encoding-sniffer: 6.0.0(@noble/hashes@1.8.0)
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
+ is-potential-custom-element-name: 1.0.1
+ parse5: 8.0.0
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 6.0.0
+ undici: 7.22.0
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 8.0.1
+ whatwg-mimetype: 5.0.0
+ whatwg-url: 16.0.1(@noble/hashes@1.8.0)
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - '@noble/hashes'
+ - supports-color
+
jsesc@3.1.0: {}
+ json-buffer@3.0.1: {}
+
json-parse-even-better-errors@2.3.1: {}
json-schema-traverse@0.4.1: {}
json-schema-traverse@1.0.0: {}
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
json5@2.2.3: {}
jsonc-parser@2.3.1: {}
@@ -8552,6 +9801,10 @@ snapshots:
jwt-decode@4.0.0: {}
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
kleur@3.0.3: {}
kleur@4.1.5: {}
@@ -8574,6 +9827,11 @@ snapshots:
leven@3.1.0: {}
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
lightningcss-darwin-arm64@1.30.1:
optional: true
@@ -8642,10 +9900,16 @@ snapshots:
untun: 0.1.3
uqr: 0.1.2
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
locate-path@7.2.0:
dependencies:
p-locate: 6.0.0
+ lodash-es@4.17.23: {}
+
lodash.includes@4.3.0: {}
lodash.isboolean@3.0.3: {}
@@ -8680,6 +9944,8 @@ snapshots:
lru-cache@10.4.3: {}
+ lru-cache@11.2.6: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -8692,6 +9958,10 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
+ magic-string@0.30.21:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
magicast@0.3.5:
dependencies:
'@babel/parser': 7.28.4
@@ -9196,10 +10466,16 @@ snapshots:
mimic-function@5.0.1: {}
+ min-indent@1.0.1: {}
+
minimatch@10.0.3:
dependencies:
'@isaacs/brace-expansion': 5.0.0
+ minimatch@10.2.4:
+ dependencies:
+ brace-expansion: 5.0.3
+
minimatch@5.1.6:
dependencies:
brace-expansion: 2.0.2
@@ -9263,6 +10539,8 @@ snapshots:
nanoid@3.3.11: {}
+ natural-compare@1.4.0: {}
+
negotiator@1.0.0: {}
neotraverse@0.6.18: {}
@@ -9342,6 +10620,8 @@ snapshots:
object-treeify@1.1.33: {}
+ obug@2.1.1: {}
+
ofetch@1.4.1:
dependencies:
destr: 2.0.5
@@ -9384,6 +10664,15 @@ snapshots:
regex: 6.0.1
regex-recursion: 6.0.2
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
ora@8.2.0:
dependencies:
chalk: 5.5.0
@@ -9402,6 +10691,10 @@ snapshots:
dependencies:
p-timeout: 6.1.4
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
p-limit@4.0.0:
dependencies:
yocto-queue: 1.2.1
@@ -9410,6 +10703,10 @@ snapshots:
dependencies:
yocto-queue: 1.2.1
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
p-locate@6.0.0:
dependencies:
p-limit: 4.0.0
@@ -9497,10 +10794,16 @@ snapshots:
dependencies:
entities: 6.0.1
+ parse5@8.0.0:
+ dependencies:
+ entities: 6.0.1
+
parseurl@1.3.3: {}
path-browserify@1.0.1: {}
+ path-exists@4.0.0: {}
+
path-exists@5.0.0: {}
path-key@3.1.1: {}
@@ -9552,6 +10855,11 @@ snapshots:
cssesc: 3.0.0
util-deprecate: 1.0.2
+ postcss-selector-parser@7.1.1:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
postcss-values-parser@6.0.2(postcss@8.5.6):
dependencies:
color-name: 1.1.4
@@ -9585,6 +10893,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ prelude-ls@1.2.1: {}
+
prettier-plugin-astro@0.14.1:
dependencies:
'@astrojs/compiler': 2.12.2
@@ -9740,6 +11050,11 @@ snapshots:
unified: 11.0.5
vfile: 6.0.3
+ redent@3.0.0:
+ dependencies:
+ indent-string: 4.0.0
+ strip-indent: 3.0.0
+
regex-recursion@6.0.2:
dependencies:
regex-utilities: 2.3.0
@@ -10068,10 +11383,16 @@ snapshots:
sax@1.4.1: {}
+ saxes@6.0.0:
+ dependencies:
+ xmlchars: 2.2.0
+
semver@6.3.1: {}
semver@7.7.2: {}
+ semver@7.7.4: {}
+
send@1.2.0:
dependencies:
debug: 4.4.1
@@ -10237,6 +11558,8 @@ snapshots:
side-channel-map: 1.0.1
side-channel-weakmap: 1.0.2
+ siginfo@2.0.0: {}
+
signal-exit@3.0.7: {}
signal-exit@4.1.0: {}
@@ -10289,10 +11612,14 @@ snapshots:
stack-trace@0.0.10: {}
+ stackback@0.0.2: {}
+
statuses@2.0.1: {}
statuses@2.0.2: {}
+ std-env@3.10.0: {}
+
std-env@3.9.0: {}
stdin-discarder@0.2.2: {}
@@ -10362,6 +11689,10 @@ snapshots:
strip-final-newline@4.0.0: {}
+ strip-indent@3.0.0:
+ dependencies:
+ min-indent: 1.0.1
+
style-to-js@1.1.18:
dependencies:
style-to-object: 1.0.11
@@ -10395,6 +11726,8 @@ snapshots:
picocolors: 1.1.1
sax: 1.4.1
+ symbol-tree@3.2.4: {}
+
sync-child-process@1.0.2:
dependencies:
sync-message-port: 1.1.3
@@ -10403,6 +11736,10 @@ snapshots:
sync-message-port@1.1.3:
optional: true
+ synckit@0.11.12:
+ dependencies:
+ '@pkgr/core': 0.2.9
+
system-architecture@0.1.0: {}
tailwind-merge@3.3.1: {}
@@ -10439,13 +11776,25 @@ snapshots:
tiny-invariant@1.3.3: {}
+ tinybench@2.9.0: {}
+
tinyexec@1.0.1: {}
+ tinyexec@1.0.2: {}
+
tinyglobby@0.2.15:
dependencies:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
+ tinyrainbow@3.0.3: {}
+
+ tldts-core@7.0.23: {}
+
+ tldts@7.0.23:
+ dependencies:
+ tldts-core: 7.0.23
+
tmp-promise@3.0.3:
dependencies:
tmp: 0.2.5
@@ -10469,8 +11818,16 @@ snapshots:
universalify: 0.2.0
url-parse: 1.5.10
+ tough-cookie@6.0.0:
+ dependencies:
+ tldts: 7.0.23
+
tr46@0.0.3: {}
+ tr46@6.0.0:
+ dependencies:
+ punycode: 2.3.1
+
trim-lines@3.0.1: {}
triple-beam@1.4.1: {}
@@ -10481,6 +11838,10 @@ snapshots:
dependencies:
typescript: 5.9.3
+ ts-api-utils@2.4.0(typescript@5.9.3):
+ dependencies:
+ typescript: 5.9.3
+
ts-morph@26.0.0:
dependencies:
'@ts-morph/common': 0.27.0
@@ -10500,6 +11861,10 @@ snapshots:
tw-animate-css@1.4.0: {}
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
type-fest@0.21.3: {}
type-fest@4.41.0: {}
@@ -10528,6 +11893,8 @@ snapshots:
undici-types@7.14.0: {}
+ undici@7.22.0: {}
+
unicode-properties@1.4.1:
dependencies:
base64-js: 1.5.1
@@ -10710,6 +12077,54 @@ snapshots:
optionalDependencies:
vite: 6.3.6(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1)
+ vitest-axe@0.1.0(vitest@4.0.18(@types/node@24.8.1)(jiti@2.6.1)(jsdom@28.1.0(@noble/hashes@1.8.0))(lightningcss@1.30.1)(msw@2.10.4(@types/node@24.8.1)(typescript@5.9.3))(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1)):
+ dependencies:
+ aria-query: 5.3.2
+ axe-core: 4.11.1
+ chalk: 5.5.0
+ dom-accessibility-api: 0.5.16
+ lodash-es: 4.17.23
+ redent: 3.0.0
+ vitest: 4.0.18(@types/node@24.8.1)(jiti@2.6.1)(jsdom@28.1.0(@noble/hashes@1.8.0))(lightningcss@1.30.1)(msw@2.10.4(@types/node@24.8.1)(typescript@5.9.3))(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1)
+
+ vitest@4.0.18(@types/node@24.8.1)(jiti@2.6.1)(jsdom@28.1.0(@noble/hashes@1.8.0))(lightningcss@1.30.1)(msw@2.10.4(@types/node@24.8.1)(typescript@5.9.3))(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1):
+ dependencies:
+ '@vitest/expect': 4.0.18
+ '@vitest/mocker': 4.0.18(msw@2.10.4(@types/node@24.8.1)(typescript@5.9.3))(vite@6.3.6(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1))
+ '@vitest/pretty-format': 4.0.18
+ '@vitest/runner': 4.0.18
+ '@vitest/snapshot': 4.0.18
+ '@vitest/spy': 4.0.18
+ '@vitest/utils': 4.0.18
+ es-module-lexer: 1.7.0
+ expect-type: 1.3.0
+ magic-string: 0.30.21
+ obug: 2.1.1
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ std-env: 3.10.0
+ tinybench: 2.9.0
+ tinyexec: 1.0.2
+ tinyglobby: 0.2.15
+ tinyrainbow: 3.0.3
+ vite: 6.3.6(@types/node@24.8.1)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(yaml@2.8.1)
+ why-is-node-running: 2.3.0
+ optionalDependencies:
+ '@types/node': 24.8.1
+ jsdom: 28.1.0(@noble/hashes@1.8.0)
+ transitivePeerDependencies:
+ - jiti
+ - less
+ - lightningcss
+ - msw
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - terser
+ - tsx
+ - yaml
+
volar-service-css@0.0.62(@volar/language-service@2.4.22):
dependencies:
vscode-css-languageservice: 6.3.7
@@ -10820,12 +12235,28 @@ snapshots:
vscode-uri@3.1.0: {}
+ w3c-xmlserializer@5.0.0:
+ dependencies:
+ xml-name-validator: 5.0.0
+
web-namespaces@2.0.1: {}
web-streams-polyfill@3.3.3: {}
webidl-conversions@3.0.1: {}
+ webidl-conversions@8.0.1: {}
+
+ whatwg-mimetype@5.0.0: {}
+
+ whatwg-url@16.0.1(@noble/hashes@1.8.0):
+ dependencies:
+ '@exodus/bytes': 1.14.1(@noble/hashes@1.8.0)
+ tr46: 6.0.0
+ webidl-conversions: 8.0.1
+ transitivePeerDependencies:
+ - '@noble/hashes'
+
whatwg-url@5.0.0:
dependencies:
tr46: 0.0.3
@@ -10841,6 +12272,11 @@ snapshots:
dependencies:
isexe: 3.1.1
+ why-is-node-running@2.3.0:
+ dependencies:
+ siginfo: 2.0.0
+ stackback: 0.0.2
+
widest-line@5.0.0:
dependencies:
string-width: 7.2.0
@@ -10867,6 +12303,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ word-wrap@1.2.5: {}
+
wrap-ansi@6.2.0:
dependencies:
ansi-styles: 4.3.0
@@ -10898,6 +12336,8 @@ snapshots:
imurmurhash: 0.1.4
signal-exit: 4.1.0
+ xml-name-validator@5.0.0: {}
+
xml2js@0.6.2:
dependencies:
sax: 1.4.1
@@ -10905,6 +12345,8 @@ snapshots:
xmlbuilder@11.0.1: {}
+ xmlchars@2.2.0: {}
+
xss@1.0.15:
dependencies:
commander: 2.20.3
@@ -10954,6 +12396,8 @@ snapshots:
buffer-crc32: 0.2.13
fd-slicer: 1.1.0
+ yocto-queue@0.1.0: {}
+
yocto-queue@1.2.1: {}
yocto-spinner@0.2.3:
diff --git a/public/r/accordion.json b/public/r/accordion.json
index 467dcd608..0fcb0ba95 100644
--- a/public/r/accordion.json
+++ b/public/r/accordion.json
@@ -5,22 +5,22 @@
"files": [
{
"path": "src/components/ui/accordion/accordion.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n
\n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/accordion/accordion-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/accordion/accordion-item.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"class\"> {\n class?: string\n open?: boolean\n}\n\nconst { class: className, open = false, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"details\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/accordion/accordion-trigger.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport ChevronDownIcon from \"lucide-static/icons/chevron-down.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"class\"> {\n class?: string\n}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n svg]:rotate-180\",\n className\n )}\n {...props}\n >\n \n \n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport ChevronDownIcon from \"lucide-static/icons/chevron-down.svg\"\nimport ChevronUpIcon from \"lucide-static/icons/chevron-up.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"summary\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/alert.json b/public/r/alert.json
index d36cee7c5..0b133341f 100644
--- a/public/r/alert.json
+++ b/public/r/alert.json
@@ -5,22 +5,22 @@
"files": [
{
"path": "src/components/ui/alert/alert.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = VariantProps & HTMLAttributes<\"div\">\n\nconst variants = cva(\n \"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = VariantProps & HTMLAttributes<\"div\">\n\nconst variants = cva(\n \"group/alert relative grid w-full gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/alert/alert-description.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/alert/alert-title.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\nsvg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3\",\n className\n )}\n {...props}\n>\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/alert/index.ts",
- "content": "export { default as Alert } from \"./alert.astro\"\nexport { default as AlertTitle } from \"./alert-title.astro\"\nexport { default as AlertDescription } from \"./alert-description.astro\"\n",
+ "content": "export { default as Alert } from \"./alert.astro\"\nexport { default as AlertAction } from \"./alert-action.astro\"\nexport { default as AlertTitle } from \"./alert-title.astro\"\nexport { default as AlertDescription } from \"./alert-description.astro\"\n",
"type": "registry:ui"
}
]
diff --git a/public/r/article-2.json b/public/r/article-2.json
index 96da102c8..e7866d821 100644
--- a/public/r/article-2.json
+++ b/public/r/article-2.json
@@ -11,7 +11,7 @@
"files": [
{
"path": "src/components/blocks/article-2.astro",
- "content": "---\nimport { Avatar, AvatarImage } from \"@/components/ui/avatar\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/components/ui/item\"\nimport {\n Section,\n SectionContent,\n SectionMedia,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n title?: string\n description?: string\n item?: {\n image?: {\n src: string\n alt: string\n }\n title?: string\n description?: string\n }\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, title, description, image, item } = Astro.props\n---\n\n\n \n \n {title && {title} }\n {description && {description}
}\n \n - \n
\n \n \n \n \n \n {item?.title} \n {item?.description} \n \n \n \n \n \n \n \n \n \n \n",
+ "content": "---\nimport { Avatar, AvatarImage } from \"@/components/ui/avatar\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/components/ui/item\"\nimport {\n Section,\n SectionContent,\n SectionMedia,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n title?: string\n description?: string\n item?: {\n image?: {\n src: string\n alt: string\n }\n title?: string\n description?: string\n }\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, title, description, image, item } = Astro.props\n---\n\n\n \n \n {title && {title} }\n {description && {description}
}\n \n - \n
\n \n \n \n \n \n {item?.title} \n {item?.description} \n \n \n \n \n \n \n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/auto-form.json b/public/r/auto-form.json
index d348aa9b1..d39e67f07 100644
--- a/public/r/auto-form.json
+++ b/public/r/auto-form.json
@@ -14,7 +14,7 @@
"files": [
{
"path": "src/components/ui/auto-form/auto-form.astro",
- "content": "---\nimport type { ComponentProps, HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldLabel,\n FieldSet,\n} from \"@/components/ui/field\"\nimport { Input } from \"@/components/ui/input\"\nimport { NativeSelect, NativeSelectOption } from \"@/components/ui/native-select\"\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\"\nimport { Textarea } from \"@/components/ui/textarea\"\n\ntype Field = {\n label?: string\n description?: string\n} & (\n | (ComponentProps & {\n type: \"textarea\"\n })\n | (ComponentProps & {\n type: \"checkbox\"\n })\n | (ComponentProps & {\n type: \"select\"\n options: string[]\n placeholder?: string\n })\n | (ComponentProps & {\n type: \"radio-group\"\n options: string[]\n })\n | (ComponentProps & {\n type: \"text\" | \"tel\" | \"email\" | \"number\"\n })\n)\n\ninterface Props extends HTMLAttributes<\"form\"> {\n inbox?: string\n fields?: Field[]\n submit?: string\n}\n\nconst { class: className, inbox, fields, submit, ...props } = Astro.props\n---\n\n\n",
+ "content": "---\n// @ts-nocheck\nimport type { ComponentProps, HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldLabel,\n FieldSet,\n} from \"@/components/ui/field\"\nimport { Input } from \"@/components/ui/input\"\nimport { NativeSelect, NativeSelectOption } from \"@/components/ui/native-select\"\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\"\nimport { Textarea } from \"@/components/ui/textarea\"\n\ntype Field = {\n label?: string\n description?: string\n} & (\n | (ComponentProps & {\n type: \"textarea\"\n })\n | (ComponentProps & {\n type: \"checkbox\"\n })\n | (ComponentProps & {\n type: \"select\"\n options: string[]\n placeholder?: string\n })\n | (ComponentProps & {\n type: \"radio-group\"\n options: string[]\n })\n | (ComponentProps & {\n type: \"text\" | \"tel\" | \"email\" | \"number\"\n })\n)\n\ninterface Props extends HTMLAttributes<\"form\"> {\n inbox?: string\n fields?: Field[]\n submit?: string\n}\n\nconst { class: className, inbox, fields, submit, ...props } = Astro.props\n---\n\n\n {\n fields?.map(({ label, description, name = label, id = name, ...field }) => {\n switch (field.type) {\n case \"textarea\":\n return (\n \n {label} \n \n {description} \n \n )\n case \"select\":\n const { options: selectOptions, placeholder, ...select } = field\n return (\n \n {label} \n \n \n {placeholder}\n \n {selectOptions?.map((option) => (\n \n {option}\n \n ))}\n \n {description} \n \n )\n case \"checkbox\":\n return (\n \n \n \n {label} \n {description} \n \n \n )\n case \"radio-group\":\n const { options: radioOptions, ...radioGroup } = field\n return (\n \n {label} \n {description} \n \n {radioOptions?.map((option) => (\n \n \n {option} \n \n ))}\n \n {description} \n \n )\n default:\n return (\n \n {label} \n \n {description} \n \n )\n }\n })\n }\n \n {inbox && }\n \n \n {submit} \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/avatar.json b/public/r/avatar.json
index 9b5d0a140..dee01949c 100644
--- a/public/r/avatar.json
+++ b/public/r/avatar.json
@@ -8,22 +8,22 @@
"files": [
{
"path": "src/components/ui/avatar/avatar.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {\n size?: \"default\" | \"sm\" | \"lg\"\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/avatar/avatar-fallback.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/avatar/avatar-image.astro",
- "content": "---\nimport type { ComponentProps } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Image } from \"@/components/ui/image\"\n\ntype Props = Partial>\n\nconst {\n class: className,\n alt = \"\",\n width = 44,\n height = 44,\n sizes = \"44px\",\n widths = [44, 88, 176],\n ...props\n} = Astro.props\n---\n\n{\n props.src && (\n \n )\n}\n",
+ "content": "---\nimport type { ComponentProps } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Image } from \"@/components/ui/image\"\n\ntype Props = Partial>\n\nconst {\n class: className,\n alt = \"\",\n width = 44,\n height = 44,\n sizes = \"44px\",\n widths = [44, 88, 176],\n ...props\n} = Astro.props\n---\n\n{\n props.src && (\n \n )\n}\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/avatar/index.ts",
- "content": "export { default as Avatar } from \"./avatar.astro\"\nexport { default as AvatarFallback } from \"./avatar-fallback.astro\"\nexport { default as AvatarImage } from \"./avatar-image.astro\"\n",
+ "content": "export { default as Avatar } from \"./avatar.astro\"\nexport { default as AvatarBadge } from \"./avatar-badge.astro\"\nexport { default as AvatarFallback } from \"./avatar-fallback.astro\"\nexport { default as AvatarGroup } from \"./avatar-group.astro\"\nexport { default as AvatarGroupCount } from \"./avatar-group-count.astro\"\nexport { default as AvatarImage } from \"./avatar-image.astro\"\n",
"type": "registry:ui"
}
]
diff --git a/public/r/badge.json b/public/r/badge.json
index 1716a5f80..994b8c79e 100644
--- a/public/r/badge.json
+++ b/public/r/badge.json
@@ -3,14 +3,19 @@
"name": "badge",
"type": "registry:ui",
"files": [
+ {
+ "path": "src/components/ui/badge/badge-variants.ts",
+ "content": "import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const badgeVariants = cva(\n \"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:ring-[3px] has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary:\n \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n destructive:\n \"bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20\",\n outline:\n \"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost:\n \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport type BadgeVariantProps = VariantProps\n",
+ "type": "registry:ui"
+ },
{
"path": "src/components/ui/badge/badge.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = VariantProps &\n HTMLAttributes<\"span\"> &\n HTMLAttributes<\"a\"> & {\n text?: string\n html?: string\n }\n\nconst variants = cva(\n \"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-md border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground [a&]:hover:bg-primary/90 border-transparent\",\n secondary:\n \"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent\",\n destructive:\n \"bg-destructive [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 border-transparent text-white\",\n outline:\n \"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, href, text, html, ...props } = Astro.props\n\nconst Comp = href ? \"a\" : \"span\"\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLTag, Polymorphic } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport { badgeVariants, type BadgeVariantProps } from \"./badge-variants\"\n\ntype Props = Polymorphic<{ as: Tag }> & BadgeVariantProps\n\nconst {\n as: Tag = \"span\",\n class: className,\n variant = \"default\",\n ...props\n} = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/badge/index.ts",
- "content": "export { default as Badge } from \"./badge.astro\"\n",
+ "content": "export { badgeVariants, type BadgeVariantProps } from \"./badge-variants\"\n\nexport { default as Badge } from \"./badge.astro\"\n",
"type": "registry:ui"
}
]
diff --git a/public/r/banner.json b/public/r/banner.json
index b53f93dc8..2ba49017e 100644
--- a/public/r/banner.json
+++ b/public/r/banner.json
@@ -9,7 +9,7 @@
"files": [
{
"path": "src/components/ui/banner/banner.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends HTMLAttributes<\"header\">,\n VariantProps {}\n\nconst variants = cva(\n \"relative mx-auto flex min-h-12 items-center justify-between gap-8 border border-transparent px-(--banner-px) py-1\",\n {\n variants: {\n variant: {\n default: \"bg-foreground text-background w-full\",\n floating: [\n \"bg-foreground text-background rounded-xl shadow-sm\",\n \"w-[calc(100%-2*var(--gutter,24px))] max-w-(--banner-width)\",\n \"border-border my-2 overflow-hidden rounded-xl border\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n\n\n\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends HTMLAttributes<\"header\">,\n VariantProps {}\n\nconst variants = cva(\n \"relative mx-auto flex min-h-12 items-center justify-between gap-8 border border-transparent px-(--banner-px) py-1\",\n {\n variants: {\n variant: {\n default: \"bg-foreground text-background w-full\",\n floating: [\n \"bg-foreground text-background rounded-xl shadow-sm\",\n \"w-[calc(100%-2*var(--gutter,24px))] max-w-(--banner-width)\",\n \"border-border my-2 overflow-hidden rounded-xl border\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, ...props } = Astro.props\n---\n\n\n\n\n\n\n\n\n",
"type": "registry:ui"
},
{
@@ -19,17 +19,17 @@
},
{
"path": "src/components/ui/banner/banner-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport XIcon from \"lucide-static/icons/x.svg\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\ninterface Props extends HTMLAttributes<\"div\"> {\n showClose?: boolean\n}\n\nconst { class: className, showClose = true, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n {showClose && (\n \n \n \n )}\n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport XIcon from \"lucide-static/icons/x.svg\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\ninterface Props extends HTMLAttributes<\"div\"> {\n showClose?: boolean\n}\n\nconst { class: className, showClose = true, ...props } = Astro.props\n---\n\n\n \n {\n showClose && (\n \n \n \n )\n }\n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/banner/banner-description.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/banner/banner-title.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
diff --git a/public/r/block.json b/public/r/block.json
index b1c33a36e..2d9b7556b 100644
--- a/public/r/block.json
+++ b/public/r/block.json
@@ -3,81 +3,7 @@
"name": "block",
"type": "registry:component",
"registryDependencies": [
- "@fulldev/article-1",
- "@fulldev/article-2",
- "@fulldev/articles-1",
- "@fulldev/articles-2",
- "@fulldev/articles-3",
- "@fulldev/articles-4",
- "@fulldev/banner-1",
- "@fulldev/banner-2",
- "@fulldev/contact-1",
- "@fulldev/contact-2",
- "@fulldev/contact-3",
- "@fulldev/content-1",
- "@fulldev/content-2",
- "@fulldev/content-3",
- "@fulldev/content-4",
- "@fulldev/cta-1",
- "@fulldev/cta-2",
- "@fulldev/cta-3",
- "@fulldev/cta-4",
- "@fulldev/cta-5",
- "@fulldev/cta-6",
- "@fulldev/cta-7",
- "@fulldev/cta-8",
- "@fulldev/faqs-1",
- "@fulldev/faqs-2",
- "@fulldev/faqs-3",
- "@fulldev/faqs-4",
- "@fulldev/features-1",
- "@fulldev/features-2",
- "@fulldev/features-3",
- "@fulldev/features-4",
- "@fulldev/features-5",
- "@fulldev/features-6",
- "@fulldev/footer-1",
- "@fulldev/footer-2",
- "@fulldev/header-1",
- "@fulldev/header-2",
- "@fulldev/header-3",
- "@fulldev/hero-1",
- "@fulldev/hero-2",
- "@fulldev/hero-3",
- "@fulldev/hero-4",
- "@fulldev/hero-5",
- "@fulldev/hero-6",
- "@fulldev/hero-7",
- "@fulldev/hero-8",
- "@fulldev/hero-9",
- "@fulldev/hero-10",
- "@fulldev/hero-11",
- "@fulldev/hero-12",
- "@fulldev/hero-13",
- "@fulldev/logos-1",
- "@fulldev/logos-2",
- "@fulldev/logos-3",
- "@fulldev/pricings-1",
- "@fulldev/pricings-2",
- "@fulldev/pricings-3",
- "@fulldev/product-1",
- "@fulldev/products-1",
- "@fulldev/products-2",
- "@fulldev/products-3",
- "@fulldev/products-4",
- "@fulldev/products-5",
- "@fulldev/reviews-1",
- "@fulldev/reviews-2",
- "@fulldev/reviews-3",
- "@fulldev/reviews-4",
- "@fulldev/reviews-5",
- "@fulldev/services-1",
- "@fulldev/services-2",
- "@fulldev/services-3",
- "@fulldev/services-4",
- "@fulldev/services-5",
- "@fulldev/services-6",
- "@fulldev/services-7"
+ "@fulldev/blocks"
],
"files": [
{
@@ -86,4 +12,4 @@
"type": "registry:component"
}
]
-}
+}
\ No newline at end of file
diff --git a/public/r/button.json b/public/r/button.json
index 30d860efe..816f3fe99 100644
--- a/public/r/button.json
+++ b/public/r/button.json
@@ -3,14 +3,19 @@
"name": "button",
"type": "registry:ui",
"files": [
+ {
+ "path": "src/components/ui/button/button-variants.ts",
+ "content": "import { cva, type VariantProps } from \"class-variance-authority\"\n\nexport const buttonVariants = cva(\n \"focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-3 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/80\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n ghost:\n \"hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground\",\n destructive:\n \"bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default:\n \"h-9 gap-1.5 px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n xs: \"h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n lg: \"h-10 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n icon: \"size-9\",\n \"icon-xs\":\n \"size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\":\n \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport type ButtonVariantProps = VariantProps\n",
+ "type": "registry:ui"
+ },
{
"path": "src/components/ui/button/button.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = VariantProps &\n HTMLAttributes<\"button\"> &\n HTMLAttributes<\"a\"> &\n HTMLAttributes<\"label\"> & {\n as?: \"button\" | \"a\" | \"label\"\n text?: string\n html?: string\n }\n\nconst variants = cva(\n \"focus-visible:border-ring text-foreground focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 text-white\",\n outline:\n \"bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 border shadow-xs\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst {\n class: className,\n variant,\n size,\n href,\n text,\n html,\n ...props\n} = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n\nconst Comp = href ? \"a\" : \"button\"\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLTag, Polymorphic } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport { buttonVariants, type ButtonVariantProps } from \"./button-variants\"\n\ntype Props = Polymorphic<{ as: Tag }> &\n ButtonVariantProps\n\nconst {\n as: Tag = \"href\" in Astro.props ? \"a\" : \"button\",\n class: className,\n variant = \"default\",\n size = \"default\",\n ...props\n} = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/button/index.ts",
- "content": "export { default as Button } from \"./button.astro\"\n",
+ "content": "export { buttonVariants, type ButtonVariantProps } from \"./button-variants\"\n\nexport { default as Button } from \"./button.astro\"\n",
"type": "registry:ui"
}
]
diff --git a/public/r/checkbox.json b/public/r/checkbox.json
index 1d9562609..9505fc646 100644
--- a/public/r/checkbox.json
+++ b/public/r/checkbox.json
@@ -5,7 +5,7 @@
"files": [
{
"path": "src/components/ui/checkbox/checkbox.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"type\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"type\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n\n\n",
"type": "registry:ui"
},
{
diff --git a/public/r/collapsible.json b/public/r/collapsible.json
index 5cc36ae4b..1eed28e56 100644
--- a/public/r/collapsible.json
+++ b/public/r/collapsible.json
@@ -5,17 +5,17 @@
"files": [
{
"path": "src/components/ui/collapsible/collapsible.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"class\"> {\n class?: string\n open?: boolean\n}\n\nconst { class: className, open = false, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"details\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/collapsible/collapsible-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/collapsible/collapsible-trigger.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport ChevronDownIcon from \"lucide-static/icons/chevron-down.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"class\"> {\n class?: string\n showChevron?: boolean\n}\n\nconst { class: className, showChevron = true, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n {showChevron && (\n \n )}\n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"summary\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/content-5.json b/public/r/content-5.json
index 521a6b9bc..9fe8fc71f 100644
--- a/public/r/content-5.json
+++ b/public/r/content-5.json
@@ -12,7 +12,7 @@
"files": [
{
"path": "src/components/blocks/content-5.astro",
- "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport { List, ListItem } from \"@/components/ui/list\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n SectionSplit,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n list?: string[]\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, list, links, image } = Astro.props\n---\n\n\n \n \n \n \n \n \n {\n list?.map((item) => (\n \n \n {item}\n \n ))\n }\n
\n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n \n",
+ "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport { List, ListItem } from \"@/components/ui/list\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n SectionSplit,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n list?: string[]\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, list, links, image } = Astro.props\n---\n\n\n \n \n \n \n \n {\n list?.length && (\n \n {list?.map((item) => (\n \n \n {item}\n \n ))}\n
\n )\n }\n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/content-6.json b/public/r/content-6.json
index 4ced2914f..b3872bb0a 100644
--- a/public/r/content-6.json
+++ b/public/r/content-6.json
@@ -12,7 +12,7 @@
"files": [
{
"path": "src/components/blocks/content-6.astro",
- "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport { List, ListItem } from \"@/components/ui/list\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n SectionSplit,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n list?: string[]\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, list, links, image } = Astro.props\n---\n\n\n \n \n \n \n \n \n {\n list?.map((item) => (\n \n \n {item}\n \n ))\n }\n
\n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n \n",
+ "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport { List, ListItem } from \"@/components/ui/list\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n SectionSplit,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n list?: string[]\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, list, links, image } = Astro.props\n---\n\n\n \n \n \n \n \n {\n list?.length && (\n \n {list?.map((item) => (\n \n \n {item}\n \n ))}\n
\n )\n }\n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/cta-1.json b/public/r/cta-1.json
index a5a91493a..fa472c54e 100644
--- a/public/r/cta-1.json
+++ b/public/r/cta-1.json
@@ -13,7 +13,7 @@
"files": [
{
"path": "src/components/blocks/cta-1.astro",
- "content": "---\nimport { Avatar, AvatarImage } from \"@/components/ui/avatar\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n} from \"@/components/ui/item\"\nimport { Rating } from \"@/components/ui/rating\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n item?: {\n images?: {\n src: string\n alt: string\n }[]\n rating?: number\n description?: string\n }\n}\n\nconst { class: className, id, links, item } = Astro.props\n---\n\n\n \n - \n
\n {\n item?.images?.map((image) => (\n \n \n \n ))\n }\n \n \n \n \n {item?.description}\n \n \n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n",
+ "content": "---\nimport { Avatar, AvatarImage } from \"@/components/ui/avatar\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n} from \"@/components/ui/item\"\nimport { Rating } from \"@/components/ui/rating\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n item?: {\n images?: {\n src: string\n alt: string\n }[]\n rating?: number\n description?: string\n }\n}\n\nconst { class: className, id, links, item } = Astro.props\n---\n\n\n \n - \n
\n {\n item?.images?.map((image) => (\n \n \n \n ))\n }\n \n \n \n \n {item?.description}\n \n \n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/cta-8.json b/public/r/cta-8.json
index e90ca5c07..ad3b3d169 100644
--- a/public/r/cta-8.json
+++ b/public/r/cta-8.json
@@ -13,7 +13,7 @@
"files": [
{
"path": "src/components/blocks/cta-8.astro",
- "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Avatar, AvatarImage } from \"@/components/ui/avatar\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n} from \"@/components/ui/item\"\nimport { Rating } from \"@/components/ui/rating\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n item?: {\n images?: {\n src: string\n alt: string\n }[]\n rating?: number\n description?: string\n }\n}\n\nconst { class: className, id, links, item } = Astro.props\n---\n\n\n \n - \n
\n {\n item?.images?.map((image) => (\n \n \n \n ))\n }\n \n \n \n \n {item?.description}\n \n \n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n",
+ "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n item?: {\n images?: {\n src: string\n alt: string\n }[]\n rating?: number\n description?: string\n }\n}\n\nconst { class: className, id, links } = Astro.props\n---\n\n\n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/empty.json b/public/r/empty.json
index 407ac3d0a..0142f29d8 100644
--- a/public/r/empty.json
+++ b/public/r/empty.json
@@ -5,32 +5,32 @@
"files": [
{
"path": "src/components/ui/empty/empty.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/empty/empty-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/empty/empty-description.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n >\n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\na:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n>\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/empty/empty-header.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/empty/empty-media.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = VariantProps & HTMLAttributes<\"div\">\n\nconst variants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant = \"default\", ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = VariantProps & HTMLAttributes<\"div\">\n\nconst variants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant = \"default\", ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/empty/empty-title.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
diff --git a/public/r/features-1.json b/public/r/features-1.json
index fc74416f0..f9e43eb69 100644
--- a/public/r/features-1.json
+++ b/public/r/features-1.json
@@ -11,7 +11,7 @@
"files": [
{
"path": "src/components/blocks/features-1.astro",
- "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n icon?: string\n href?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, icon, links }) => (\n \n \n \n \n \n {title} \n {description} \n \n \n {links?.map(({ icon, text, href, target }) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
+ "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n icon?: string\n href?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, icon, links }) => (\n \n \n \n \n \n {title} \n {description} \n \n \n {links?.map(({ icon, text, href, target }) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/features-2.json b/public/r/features-2.json
index 1f7bbbb05..add899ec8 100644
--- a/public/r/features-2.json
+++ b/public/r/features-2.json
@@ -11,7 +11,7 @@
"files": [
{
"path": "src/components/blocks/features-2.astro",
- "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n icon?: string\n href?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, icon, links }) => (\n \n \n \n \n \n {title} \n {description} \n \n \n {links?.map(({ icon, text, href, target }) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
+ "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n icon?: string\n href?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, icon, links }) => (\n \n \n \n \n \n {title} \n {description} \n \n \n {links?.map(({ icon, text, href, target }) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/features-4.json b/public/r/features-4.json
index 2d689766c..6ddf836f6 100644
--- a/public/r/features-4.json
+++ b/public/r/features-4.json
@@ -11,7 +11,7 @@
"files": [
{
"path": "src/components/blocks/features-4.astro",
- "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n SectionSplit,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n icon?: string\n href?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, icon, links }) => (\n \n \n \n \n \n {title} \n {description} \n \n \n {links?.map(({ icon, text, href, target }) => (\n \n {text}\n {icon && }\n \n ))}\n \n \n ))\n }\n \n \n \n",
+ "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n SectionSplit,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n icon?: string\n href?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, icon, links }) => (\n \n \n \n \n \n {title} \n {description} \n \n \n {links?.map(({ icon, text, href, target }) => (\n \n {text}\n {icon && }\n \n ))}\n \n \n ))\n }\n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/features-5.json b/public/r/features-5.json
index 09a807ddf..8fce731b2 100644
--- a/public/r/features-5.json
+++ b/public/r/features-5.json
@@ -11,7 +11,7 @@
"files": [
{
"path": "src/components/blocks/features-5.astro",
- "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n icon?: string\n href?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, icon, links }) => (\n \n \n \n \n \n {title} \n \n {description}\n \n \n \n {links?.map(({ icon, text, href, target }) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
+ "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n icon?: string\n href?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\nconst slot = await Astro.slots.render(\"default\")\nconst hasSlot = slot.length > 0\n---\n\n\n {\n (hasSlot || links?.length) && (\n \n \n \n \n \n {links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n )\n }\n \n {\n items?.map(({ title, description, icon, links }) => (\n \n \n \n \n \n {title} \n \n {description}\n \n \n \n {links?.map(({ icon, text, href, target }) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/field.json b/public/r/field.json
index 461e32db1..ace8edad2 100644
--- a/public/r/field.json
+++ b/public/r/field.json
@@ -8,52 +8,47 @@
"files": [
{
"path": "src/components/ui/field/field.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst variants = cva(\n \"group/field data-[invalid=true]:text-destructive flex w-full gap-3\",\n {\n variants: {\n orientation: {\n vertical: [\"flex-col [&>*]:w-full [&>.sr-only]:w-auto\"],\n horizontal: [\n \"flex-row items-center\",\n \"[&>[data-slot=field-label]]:flex-auto\",\n \"has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n responsive: [\n \"flex-col @md/field-group:flex-row @md/field-group:items-center [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto\",\n \"@md/field-group:[&>[data-slot=field-label]]:flex-auto\",\n \"@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n ],\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nconst { class: className, orientation = \"vertical\", ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst variants = cva(\n \"data-[invalid=true]:text-destructive group/field flex w-full gap-3\",\n {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center has-[>[data-slot=field-content]]:items-start *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n responsive:\n \"flex-col *:w-full @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:*:data-[slot=field-label]:flex-auto [&>.sr-only]:w-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n }\n)\n\nconst { class: className, orientation = \"vertical\", ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/field/field-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/field/field-description.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n >\n \n
\n )\n}\n",
- "type": "registry:ui"
- },
- {
- "path": "src/components/ui/field/field-error.astro",
- "content": "\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\na:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n>\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/field/field-group.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n [data-slot=field-group]]:gap-4\",\n className\n )}\n {...props}\n >\n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/field/field-label.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"label\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n [data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4\",\n \"has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10\",\n className\n )}\n {...props}\n >\n \n \n )\n}\n",
+ "content": "---\nimport type { ComponentProps } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/components/ui/label\"\n\ninterface Props extends ComponentProps {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-3\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col\",\n className\n )}\n {...props}\n>\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/field/field-legend.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"legend\"> {\n variant?: \"legend\" | \"label\"\n}\n\nconst { class: className, variant = \"legend\", ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"legend\"> {\n variant?: \"legend\" | \"label\"\n}\n\nconst { class: className, variant = \"legend\", ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/field/field-separator.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/components/ui/separator\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n\n \n {\n slot?.trim().length > 0 && (\n \n \n \n )\n }\n
\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/components/ui/separator\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\nconst hasContent = Astro.slots.has(\"default\")\n---\n\n\n \n {\n hasContent && (\n \n \n \n )\n }\n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/field/field-set.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"fieldset\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n [data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n >\n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"fieldset\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className\n )}\n {...props}\n>\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/field/field-title.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
diff --git a/public/r/footer.json b/public/r/footer.json
index 50ec0e107..6a937192f 100644
--- a/public/r/footer.json
+++ b/public/r/footer.json
@@ -5,67 +5,67 @@
"files": [
{
"path": "src/components/ui/footer/footer.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends HTMLAttributes<\"footer\">,\n VariantProps {}\n\nconst variants = cva(\n \"relative mx-auto flex scroll-m-(--footer-py) flex-col gap-16 px-(--footer-px) py-(--footer-py)\",\n {\n variants: {\n variant: {\n default: \"bg-background w-full\",\n floating: [\n \"bg-background rounded-lg border shadow-sm\",\n \"w-[calc(100%-2*var(--gutter,24px))] max-w-(--footer-width)\",\n \"my-(--footer-py) overflow-hidden rounded-xl first:mt-2\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends HTMLAttributes<\"footer\">,\n VariantProps {}\n\nconst variants = cva(\n \"relative mx-auto flex scroll-m-(--footer-py) flex-col gap-16 px-(--footer-px) py-(--footer-py)\",\n {\n variants: {\n variant: {\n default: \"bg-background w-full\",\n floating: [\n \"bg-background rounded-lg border shadow-sm\",\n \"w-[calc(100%-2*var(--gutter,24px))] max-w-(--footer-width)\",\n \"my-(--footer-py) overflow-hidden rounded-xl first:mt-2\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, ...props } = Astro.props\n---\n\n\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-actions.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-copyright.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\";\n\nimport { cn } from \"@/lib/utils\";\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props;\n\nconst slot = await Astro.slots.render(\"default\");\n---\n\n{\n slot?.trim().length > 0 && (\n \n © {`${new Date().getFullYear()} `}\n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n © {`${new Date().getFullYear()} `}\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-description.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\">, VariantProps {}\n\nconst variants = cva(\"text-muted-foreground text-sm\", {\n variants: {\n size: {\n lg: \"text-base\",\n default: \"text-sm\",\n sm: \"text-xs\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nconst { class: className, size, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\">, VariantProps {}\n\nconst variants = cva(\"text-muted-foreground text-sm\", {\n variants: {\n size: {\n lg: \"text-base\",\n default: \"text-sm\",\n sm: \"text-xs\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nconst { class: className, size, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-grid.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-group-label.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"h3\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"h3\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-group.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-menu-item.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-menu-link.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"a\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"a\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-menu.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"menu\">, VariantProps {}\n\nconst variants = cva(\"flex w-max gap-x-4 gap-y-2\", {\n variants: {\n orientation: {\n vertical: \"flex-col\",\n horizontal: \"flex-row\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n})\n\nconst { class: className, orientation, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"menu\">, VariantProps {}\n\nconst variants = cva(\"flex w-max gap-x-4 gap-y-2\", {\n variants: {\n orientation: {\n vertical: \"flex-col\",\n horizontal: \"flex-row\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n})\n\nconst { class: className, orientation, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-split.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/footer/footer-spread.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
diff --git a/public/r/header-1.json b/public/r/header-1.json
index 38c9453cb..45ff4e530 100644
--- a/public/r/header-1.json
+++ b/public/r/header-1.json
@@ -16,7 +16,7 @@
"files": [
{
"path": "src/components/blocks/header-1.astro",
- "content": "---\nimport MenuIcon from \"lucide-static/icons/menu.svg\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport { Header, HeaderActions } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Logo, LogoImage, LogoText } from \"@/components/ui/logo\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuSub,\n NavigationMenuSubItem,\n NavigationMenuSubLink,\n NavigationMenuTrigger,\n} from \"@/components/ui/navigation-menu\"\nimport { Sheet, SheetContent, SheetTrigger } from \"@/components/ui/sheet\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\nimport { ThemeToggle } from \"@/components/ui/theme-toggle\"\n\ninterface Props {\n logo?: {\n src?: string\n alt?: string\n text?: string\n href?: string\n }\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n socials?: string[]\n menus?: {\n text?: string\n href?: string\n links?: {\n text?: string\n href?: string\n }[]\n }[]\n}\n\nconst { logo, menus, links, socials } = Astro.props\n---\n\n\n \n \n {logo?.text} \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n <>\n \n {menu.text}\n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n >\n ) : (\n \n {menu.text}\n \n )}\n \n ))\n }\n \n \n \n {\n socials?.map((social) => (\n <>\n \n \n \n >\n ))\n }\n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n \n \n \n {menu.text}\n \n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n \n ) : (\n svg]:px-4\"\n href={menu.href}\n >\n {menu.text}\n \n )}\n \n ))\n }\n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n {\n socials?.map((social) => (\n \n \n \n ))\n }\n \n \n \n \n",
+ "content": "---\nimport MenuIcon from \"lucide-static/icons/menu.svg\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport { Header, HeaderActions } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Logo, LogoImage, LogoText } from \"@/components/ui/logo\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n} from \"@/components/ui/navigation-menu\"\nimport { Sheet, SheetContent, SheetTrigger } from \"@/components/ui/sheet\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\nimport { ThemeToggle } from \"@/components/ui/theme-toggle\"\n\ninterface Props {\n logo?: {\n src?: string\n alt?: string\n text?: string\n href?: string\n }\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n socials?: string[]\n menus?: {\n text?: string\n href?: string\n links?: {\n text?: string\n href?: string\n }[]\n }[]\n}\n\nconst { logo, menus, links, socials } = Astro.props\n---\n\n\n \n \n {logo?.text} \n \n \n \n {\n menus?.map((menu, index) => (\n \n {menu.links && menu.links.length > 0 ? (\n <>\n \n {menu.text}\n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n >\n ) : (\n \n {menu.text}\n \n )}\n \n ))\n }\n \n \n \n {\n socials?.map((social) => (\n <>\n \n \n \n >\n ))\n }\n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n \n \n \n {menu.text}\n \n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n \n ) : (\n svg]:px-4\"\n href={menu.href}\n >\n {menu.text}\n \n )}\n \n ))\n }\n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n {\n socials?.map((social) => (\n \n \n \n ))\n }\n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/header-2.json b/public/r/header-2.json
index e7aaaafd3..75a0e4106 100644
--- a/public/r/header-2.json
+++ b/public/r/header-2.json
@@ -16,7 +16,7 @@
"files": [
{
"path": "src/components/blocks/header-2.astro",
- "content": "---\nimport MenuIcon from \"lucide-static/icons/menu.svg\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport { Header, HeaderActions } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Logo, LogoImage, LogoText } from \"@/components/ui/logo\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuSub,\n NavigationMenuSubItem,\n NavigationMenuSubLink,\n NavigationMenuTrigger,\n} from \"@/components/ui/navigation-menu\"\nimport { Sheet, SheetContent, SheetTrigger } from \"@/components/ui/sheet\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\nimport { ThemeToggle } from \"@/components/ui/theme-toggle\"\n\ninterface Props {\n logo?: {\n src?: string\n alt?: string\n text?: string\n href?: string\n }\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n socials?: string[]\n menus?: {\n text?: string\n href?: string\n links?: {\n text?: string\n href?: string\n }[]\n }[]\n}\n\nconst { logo, menus, links, socials } = Astro.props\n---\n\n\n \n \n {logo?.text} \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n <>\n \n {menu.text}\n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n >\n ) : (\n \n {menu.text}\n \n )}\n \n ))\n }\n \n \n \n \n {\n socials?.map((social) => (\n \n \n \n ))\n }\n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n \n \n {menu.text} \n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n \n ) : (\n svg]:px-4\"\n href={menu.href}\n >\n {menu.text}\n \n )}\n \n ))\n }\n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n {\n socials?.map((social) => (\n \n \n \n ))\n }\n \n \n \n \n",
+ "content": "---\nimport MenuIcon from \"lucide-static/icons/menu.svg\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport { Header, HeaderActions } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Logo, LogoImage, LogoText } from \"@/components/ui/logo\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n} from \"@/components/ui/navigation-menu\"\nimport { Sheet, SheetContent, SheetTrigger } from \"@/components/ui/sheet\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\nimport { ThemeToggle } from \"@/components/ui/theme-toggle\"\n\ninterface Props {\n logo?: {\n src?: string\n alt?: string\n text?: string\n href?: string\n }\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n socials?: string[]\n menus?: {\n text?: string\n href?: string\n links?: {\n text?: string\n href?: string\n }[]\n }[]\n}\n\nconst { logo, menus, links, socials } = Astro.props\n---\n\n\n \n \n {logo?.text} \n \n \n \n {\n menus?.map((menu, index) => (\n \n {menu.links && menu.links.length > 0 ? (\n <>\n \n {menu.text}\n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n >\n ) : (\n \n {menu.text}\n \n )}\n \n ))\n }\n \n \n \n \n {\n socials?.map((social) => (\n \n \n \n ))\n }\n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n \n \n {menu.text} \n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n \n ) : (\n svg]:px-4\"\n href={menu.href}\n >\n {menu.text}\n \n )}\n \n ))\n }\n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n {\n socials?.map((social) => (\n \n \n \n ))\n }\n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/header-3.json b/public/r/header-3.json
index d1b889442..b99da34f1 100644
--- a/public/r/header-3.json
+++ b/public/r/header-3.json
@@ -16,7 +16,7 @@
"files": [
{
"path": "src/components/blocks/header-3.astro",
- "content": "---\nimport MenuIcon from \"lucide-static/icons/menu.svg\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport { Header, HeaderActions } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Logo, LogoImage, LogoText } from \"@/components/ui/logo\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuSub,\n NavigationMenuSubItem,\n NavigationMenuSubLink,\n NavigationMenuTrigger,\n} from \"@/components/ui/navigation-menu\"\nimport { Sheet, SheetContent, SheetTrigger } from \"@/components/ui/sheet\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\nimport { ThemeToggle } from \"@/components/ui/theme-toggle\"\n\ninterface Props {\n logo?: {\n src?: string\n alt?: string\n text?: string\n href?: string\n }\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n socials?: string[]\n menus?: {\n text?: string\n href?: string\n links?: {\n text?: string\n href?: string\n }[]\n }[]\n}\n\nconst { logo, menus, links, socials } = Astro.props\n\nconst githubStarCount = (\n await (await fetch(\"https://api.github.com/repos/fulldotdev/ui\")).json()\n).stargazers_count\n---\n\n\n \n \n {logo?.text} \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n <>\n \n {menu.text}\n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n >\n ) : (\n \n {menu.text}\n \n )}\n \n ))\n }\n \n \n \n \n {\n socials?.map((social) => (\n <>\n \n \n \n >\n ))\n }\n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n {githubStarCount}\n \n \n \n \n \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n \n \n \n {menu.text}\n \n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n \n ) : (\n svg]:px-4\"\n href={menu.href}\n >\n {menu.text}\n \n )}\n \n ))\n }\n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n {\n socials?.map((social) => (\n \n \n \n ))\n }\n \n \n \n \n",
+ "content": "---\nimport MenuIcon from \"lucide-static/icons/menu.svg\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport { Header, HeaderActions } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Logo, LogoImage, LogoText } from \"@/components/ui/logo\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n} from \"@/components/ui/navigation-menu\"\nimport { Sheet, SheetContent, SheetTrigger } from \"@/components/ui/sheet\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\nimport { ThemeToggle } from \"@/components/ui/theme-toggle\"\n\ninterface Props {\n logo?: {\n src?: string\n alt?: string\n text?: string\n href?: string\n }\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n socials?: string[]\n menus?: {\n text?: string\n href?: string\n links?: {\n text?: string\n href?: string\n }[]\n }[]\n}\n\nconst { logo, menus, links, socials } = Astro.props\n\nconst parseEnvStarCount = (value: string | undefined) => {\n if (!value) return null\n const parsed = Number(value)\n return Number.isFinite(parsed) && parsed >= 0 ? Math.floor(parsed) : null\n}\n\nasync function getGithubStarCount(repo: string): Promise {\n const envStarCount = parseEnvStarCount(\n import.meta.env.PUBLIC_GITHUB_STAR_COUNT\n )\n if (envStarCount !== null) return envStarCount\n\n if (import.meta.env.PUBLIC_FETCH_GITHUB_STARS !== \"true\") return null\n\n try {\n const response = await fetch(`https://api.github.com/repos/${repo}`, {\n headers: {\n Accept: \"application/vnd.github+json\",\n },\n signal: AbortSignal.timeout(2000),\n })\n\n if (!response.ok) return null\n\n const data = (await response.json()) as { stargazers_count?: unknown }\n return typeof data.stargazers_count === \"number\"\n ? data.stargazers_count\n : null\n } catch {\n return null\n }\n}\n\nconst githubStarCount = await getGithubStarCount(\"fulldotdev/ui\")\n---\n\n\n \n \n {logo?.text} \n \n \n \n {\n menus?.map((menu, index) => (\n \n {menu.links && menu.links.length > 0 ? (\n <>\n \n {menu.text}\n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n >\n ) : (\n \n {menu.text}\n \n )}\n \n ))\n }\n \n \n \n \n {\n socials?.map((social) => (\n <>\n \n \n \n >\n ))\n }\n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n {githubStarCount !== null && githubStarCount.toLocaleString()}\n \n \n \n \n \n \n \n \n {\n menus?.map((menu) => (\n \n {menu.links && menu.links.length > 0 ? (\n \n \n \n {menu.text}\n \n \n \n \n {menu.links?.map((link) => (\n \n \n {link.text}\n \n \n ))}\n \n \n \n ) : (\n svg]:px-4\"\n href={menu.href}\n >\n {menu.text}\n \n )}\n \n ))\n }\n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n {\n socials?.map((social) => (\n \n \n \n ))\n }\n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/header.json b/public/r/header.json
index fd107b7f6..86048a568 100644
--- a/public/r/header.json
+++ b/public/r/header.json
@@ -5,17 +5,17 @@
"files": [
{
"path": "src/components/ui/header/header.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends HTMLAttributes<\"header\">,\n VariantProps {}\n\nconst variants = cva(\n \"relative top-0 z-50 mx-auto flex h-(--header-height) items-center justify-between gap-8 border-b border-transparent px-(--header-px) py-4\",\n {\n variants: {\n variant: {\n default: \"bg-background sticky w-full\",\n floating: [\n \"w-[calc(100%-2*var(--gutter,24px))] max-w-(--header-width)\",\n \"top-2 mt-2 h-[calc(var(--header-height)-var(--spacing)*2)] overflow-hidden rounded-xl\",\n \"bg-background border-border sticky border\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends HTMLAttributes<\"header\">,\n VariantProps {}\n\nconst variants = cva(\n \"relative top-0 z-50 mx-auto flex h-(--header-height) items-center justify-between gap-8 border-b border-transparent px-(--header-px) py-4\",\n {\n variants: {\n variant: {\n default: \"bg-background sticky w-full\",\n floating: [\n \"w-[calc(100%-2*var(--gutter,24px))] max-w-(--header-width)\",\n \"top-2 mt-2 h-[calc(var(--header-height)-var(--spacing)*2)] overflow-hidden rounded-xl\",\n \"bg-background border-border sticky border\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, ...props } = Astro.props\n---\n\n\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/header/header-actions.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/header/header-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
diff --git a/public/r/hero-1.json b/public/r/hero-1.json
index 4d2dbaf5a..673c5e86c 100644
--- a/public/r/hero-1.json
+++ b/public/r/hero-1.json
@@ -12,7 +12,7 @@
"files": [
{
"path": "src/components/blocks/hero-1.astro",
- "content": "---\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n link?: {\n text?: string\n href?: string\n icon?: string\n target?: string\n }\n links?: {\n text?: string\n href?: string\n icon?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, link, links, image } = Astro.props\n---\n\n\n \n \n {link?.text}\n {link?.href && }\n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n",
+ "content": "---\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n link?: {\n text?: string\n href?: string\n icon?: string\n target?: string\n }\n links?: {\n text?: string\n href?: string\n icon?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, link, links, image } = Astro.props\n---\n\n\n \n {\n link?.href ? (\n \n {link.text}\n {link.href && }\n \n ) : (\n {link?.text} \n )\n }\n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/hero-12.json b/public/r/hero-12.json
index 93bcf94f8..49374df89 100644
--- a/public/r/hero-12.json
+++ b/public/r/hero-12.json
@@ -11,7 +11,7 @@
"files": [
{
"path": "src/components/blocks/hero-12.astro",
- "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n SectionSpread,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n title?: string\n description?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst {\n class: className,\n id,\n title,\n description,\n links,\n image,\n} = Astro.props\n---\n\n\n \n \n \n {title && {title} }\n \n \n {description && {description}
}\n \n \n {\n links?.map(({ href, text, ...link }) => (\n \n {text}\n {href && }\n \n ))\n }\n \n \n \n \n \n \n \n",
+ "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n SectionSpread,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n title?: string\n description?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, title, description, links, image } = Astro.props\n---\n\n\n \n \n \n {title && {title} }\n \n \n {description && {description}
}\n \n \n {\n links?.map(({ href, text, ...link }) => (\n \n {text}\n {href && }\n \n ))\n }\n \n \n \n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/hero-13.json b/public/r/hero-13.json
index a52973165..b0cf79727 100644
--- a/public/r/hero-13.json
+++ b/public/r/hero-13.json
@@ -11,7 +11,7 @@
"files": [
{
"path": "src/components/blocks/hero-13.astro",
- "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n SectionSplit,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst {\n class: className,\n id,\n links,\n image,\n} = Astro.props\n---\n\n\n \n \n \n \n \n \n {\n links?.map(({ href, text, ...link }) => (\n \n {text}\n {href && }\n \n ))\n }\n \n \n \n \n \n \n \n",
+ "content": "---\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n SectionSplit,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, links, image } = Astro.props\n---\n\n\n \n \n \n \n \n \n {\n links?.map(({ href, text, ...link }) => (\n \n {text}\n {href && }\n \n ))\n }\n \n \n \n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/hero-2.json b/public/r/hero-2.json
index 3456544bb..d957953bf 100644
--- a/public/r/hero-2.json
+++ b/public/r/hero-2.json
@@ -14,7 +14,7 @@
"files": [
{
"path": "src/components/blocks/hero-2.astro",
- "content": "---\nimport { Avatar, AvatarImage } from \"@/components/ui/avatar\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n} from \"@/components/ui/item\"\nimport { Rating } from \"@/components/ui/rating\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n item?: {\n images?: {\n src: string\n alt: string\n }[]\n rating?: number\n description?: string\n }\n links?: {\n text?: string\n href?: string\n icon?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, item, links, image } = Astro.props\n---\n\n\n \n - \n
\n {\n item?.images?.map((image) => (\n \n \n \n ))\n }\n \n \n \n \n {item?.description}\n \n \n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n",
+ "content": "---\nimport { Avatar, AvatarImage } from \"@/components/ui/avatar\"\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n} from \"@/components/ui/item\"\nimport { Rating } from \"@/components/ui/rating\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionMedia,\n SectionProse,\n} from \"@/components/ui/section\"\n\ninterface Props {\n class?: string\n id?: string\n item?: {\n images?: {\n src: string\n alt: string\n }[]\n rating?: number\n description?: string\n }\n links?: {\n text?: string\n href?: string\n icon?: string\n target?: string\n }[]\n image?: {\n src: string\n alt: string\n }\n}\n\nconst { class: className, id, item, links, image } = Astro.props\n---\n\n\n \n - \n
\n {\n item?.images?.map((image) => (\n \n \n \n ))\n }\n \n \n \n \n {item?.description}\n \n \n \n \n \n \n \n {\n links?.map(({ icon, text, ...link }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n \n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/input.json b/public/r/input.json
index d86815ae4..73812628a 100644
--- a/public/r/input.json
+++ b/public/r/input.json
@@ -5,7 +5,7 @@
"files": [
{
"path": "src/components/ui/input/input.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"type\"> {\n type: \"text\" | \"email\" | \"tel\"\n}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"input\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/item.json b/public/r/item.json
index 5d1b22b28..d5e8327b4 100644
--- a/public/r/item.json
+++ b/public/r/item.json
@@ -5,42 +5,42 @@
"files": [
{
"path": "src/components/ui/item/item.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends VariantProps,\n HTMLAttributes<\"div\">,\n HTMLAttributes<\"a\"> {}\n\nconst variants = cva(\n \"group/item [a]:hover:bg-accent/50 focus-visible:border-ring focus-visible:ring-ring/50 flex flex-wrap items-center rounded-md border border-transparent text-sm transition-colors duration-100 outline-none focus-visible:ring-[3px] [a]:transition-colors\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n },\n size: {\n default: \"gap-4 p-4\",\n sm: \"gap-2.5 px-4 py-3\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst { class: className, variant, size, href, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n\nconst Comp = href ? \"a\" : \"div\"\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends VariantProps,\n HTMLAttributes<\"div\">,\n HTMLAttributes<\"a\"> {}\n\nconst variants = cva(\n \"[a]:hover:bg-muted rounded-md border text-sm w-full group/item focus-visible:border-ring focus-visible:ring-ring/50 flex items-center flex-wrap outline-none transition-colors duration-100 focus-visible:ring-[3px] [a]:transition-colors\",\n {\n variants: {\n variant: {\n default: \"border-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50 border-transparent\",\n },\n size: {\n default: \"gap-3.5 px-4 py-3.5\",\n sm: \"gap-2.5 px-3 py-2.5\",\n xs: \"gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst {\n class: className,\n variant = \"default\",\n size = \"default\",\n href,\n ...props\n} = Astro.props\n\nconst Comp = href ? \"a\" : \"div\"\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/item/item-actions.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/item/item-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/item/item-description.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n >\n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\na:hover]:text-primary line-clamp-2 text-left text-sm leading-normal font-normal group-data-[size=xs]/item:text-xs [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n>\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/item/item-group.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/item/item-media.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst { class: className, variant, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n \"gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start flex shrink-0 items-center justify-center [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst { class: className, variant, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/item/item-title.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"h3\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/item/index.ts",
- "content": "export { default as Item } from \"./item.astro\"\nexport { default as ItemContent } from \"./item-content.astro\"\nexport { default as ItemDescription } from \"./item-description.astro\"\nexport { default as ItemGroup } from \"./item-group.astro\"\nexport { default as ItemMedia } from \"./item-media.astro\"\nexport { default as ItemTitle } from \"./item-title.astro\"\nexport { default as ItemActions } from \"./item-actions.astro\"\n",
+ "content": "export { default as Item } from \"./item.astro\"\nexport { default as ItemActions } from \"./item-actions.astro\"\nexport { default as ItemContent } from \"./item-content.astro\"\nexport { default as ItemDescription } from \"./item-description.astro\"\nexport { default as ItemFooter } from \"./item-footer.astro\"\nexport { default as ItemGroup } from \"./item-group.astro\"\nexport { default as ItemHeader } from \"./item-header.astro\"\nexport { default as ItemMedia } from \"./item-media.astro\"\nexport { default as ItemSeparator } from \"./item-separator.astro\"\nexport { default as ItemTitle } from \"./item-title.astro\"\n",
"type": "registry:ui"
}
]
diff --git a/public/r/label.json b/public/r/label.json
index 5851213e0..569cfe888 100644
--- a/public/r/label.json
+++ b/public/r/label.json
@@ -5,7 +5,7 @@
"files": [
{
"path": "src/components/ui/label/label.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"label\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"label\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/list.json b/public/r/list.json
index 5bf4403ce..b9937181f 100644
--- a/public/r/list.json
+++ b/public/r/list.json
@@ -5,12 +5,12 @@
"files": [
{
"path": "src/components/ui/list/list.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/list/list-item.astro",
- "content": "---\nimport { cn } from \"@/lib/utils\"\n\ninterface Props {\n class?: string\n icon?: boolean\n}\n\nconst { class: className, icon = true, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport { cn } from \"@/lib/utils\"\n\ninterface Props {\n class?: string\n icon?: boolean\n}\n\nconst { class: className, icon = true, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/logo.json b/public/r/logo.json
index c941ac9b9..d2927dca5 100644
--- a/public/r/logo.json
+++ b/public/r/logo.json
@@ -8,7 +8,7 @@
"files": [
{
"path": "src/components/ui/logo/logo.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & HTMLAttributes<\"a\">\n\nconst { class: className, href, ...props } = Astro.props\n\nconst Comp = href ? \"a\" : \"div\"\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & HTMLAttributes<\"a\">\n\nconst { class: className, href, ...props } = Astro.props\n\nconst Comp = href ? \"a\" : \"div\"\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
@@ -18,7 +18,7 @@
},
{
"path": "src/components/ui/logo/logo-text.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"span\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"span\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/marquee.json b/public/r/marquee.json
index f9a4cca6b..597c103fd 100644
--- a/public/r/marquee.json
+++ b/public/r/marquee.json
@@ -10,7 +10,7 @@
},
{
"path": "src/components/ui/marquee/marquee-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & VariantProps\n\nconst contentVariants = cva(\n \"animation-duration-40000 flex min-w-full shrink-0 justify-between gap-6 after:w-0\",\n {\n variants: {\n direction: {\n left: \"animate-[marquee-horizontal_linear_infinite]\",\n right: \"reverse animate-[marquee-horizontal_linear_infinite_reverse]\",\n },\n pauseOnHover: {\n true: \"group-hover/marquee:paused\",\n false: \"\",\n },\n },\n defaultVariants: {\n direction: \"left\",\n pauseOnHover: false,\n },\n }\n)\n\nconst { class: className, direction, pauseOnHover, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n\n \n
\n\n \n
\n\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & VariantProps\n\nconst contentVariants = cva(\n \"animation-duration-40000 flex min-w-full shrink-0 justify-between gap-6 after:w-0\",\n {\n variants: {\n direction: {\n left: \"animate-[marquee-horizontal_linear_infinite]\",\n right: \"reverse animate-[marquee-horizontal_linear_infinite_reverse]\",\n },\n pauseOnHover: {\n true: \"group-hover/marquee:paused\",\n false: \"\",\n },\n },\n defaultVariants: {\n direction: \"left\",\n pauseOnHover: false,\n },\n }\n)\n\nconst { class: className, direction, pauseOnHover, ...props } = Astro.props\n---\n\n\n \n
\n\n \n
\n\n\n",
"type": "registry:ui"
},
{
diff --git a/public/r/native-select.json b/public/r/native-select.json
index 1476add9a..c070d6af8 100644
--- a/public/r/native-select.json
+++ b/public/r/native-select.json
@@ -5,12 +5,12 @@
"files": [
{
"path": "src/components/ui/native-select/native-select.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport ChevronDownIcon from \"lucide-static/icons/chevron-down.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"select\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n \n \n
\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport ChevronDownIcon from \"lucide-static/icons/chevron-down.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = Omit, \"size\"> & {\n size?: \"sm\" | \"default\"\n}\n\nconst { class: className, size = \"default\", ...props } = Astro.props\n---\n\n\n \n \n \n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/native-select/native-select-option.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ninterface Props extends HTMLAttributes<\"option\"> {}\n\nconst { ...props } = Astro.props\n---\n\n\n \n \n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ninterface Props extends HTMLAttributes<\"option\"> {}\n\nconst { ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/navigation-menu.json b/public/r/navigation-menu.json
index 24cca1d5e..3e2be461b 100644
--- a/public/r/navigation-menu.json
+++ b/public/r/navigation-menu.json
@@ -5,52 +5,52 @@
"files": [
{
"path": "src/components/ui/navigation-menu/navigation-menu.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"nav\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport NavigationMenuViewport from \"./navigation-menu-viewport.astro\"\n\ninterface Props extends HTMLAttributes<\"nav\"> {\n viewport?: boolean\n delayOpen?: number\n delayClose?: number\n openOnFocus?: boolean\n}\n\nconst {\n class: className = \"\",\n viewport = true,\n delayOpen = 0,\n delayClose = 50,\n openOnFocus,\n ...props\n} = Astro.props\n---\n\n\n \n {viewport && }\n \n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/navigation-menu/navigation-menu-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = {\n class?: string\n align?: \"start\" | \"center\" | \"end\"\n alignOffset?: number\n side?: \"top\" | \"bottom\"\n sideOffset?: number\n} & HTMLAttributes<\"div\">\n\nconst {\n class: className = \"\",\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n ...props\n} = Astro.props\n\n// Custom motion tuning for @data-slot/navigation-menu.\n// Intentionally differs from shadcn/bejamas to keep transitions smooth in this Astro implementation.\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/navigation-menu/navigation-menu-item.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {\n value: string\n}\n\nconst { class: className, value, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/navigation-menu/navigation-menu-link.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n \"focus-visible:ring-ring/50 inline-flex w-full items-start justify-start rounded-md transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-none\",\n {\n variants: {\n variant: {\n default:\n \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground flex-col gap-1 p-2 text-sm [&_svg:not([class*='size-'])]:size-4\",\n trigger:\n \"bg-background hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground h-9 w-max px-4 py-2 text-sm font-medium disabled:pointer-events-none disabled:opacity-50\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ninterface Props extends HTMLAttributes<\"a\">, VariantProps {\n active?: boolean\n}\n\nconst { class: className, variant, href, active, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"a\"> {\n active?: boolean\n}\n\nconst { class: className, active, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/navigation-menu/navigation-menu-list.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n",
+ "path": "src/components/ui/navigation-menu/navigation-menu-indicator.astro",
+ "content": "---\n---\n\n\n",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub-item.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "path": "src/components/ui/navigation-menu/navigation-menu-trigger.astro",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { type VariantProps } from \"class-variance-authority\"\nimport ChevronDown from \"lucide-static/icons/chevron-down.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport navigationMenuTriggerStyle from \"./navigation-menu-trigger-style\"\n\ntype Props = HTMLAttributes<\"button\"> &\n VariantProps\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub-link.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"a\"> {}\n\nconst { class: className, href, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "path": "src/components/ui/navigation-menu/navigation-menu-trigger-style.ts",
+ "content": "import { cva } from \"class-variance-authority\"\n\nconst navigationMenuTriggerStyle = cva(\n \"bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-all outline-none focus-visible:ring-3 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50\"\n)\n\nexport default navigationMenuTriggerStyle\n",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-trigger.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport ChevronDown from \"lucide-static/icons/chevron-down.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"button\"> & HTMLAttributes<\"a\">\n\nconst { class: className, href, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n\nconst Comp = href ? \"a\" : \"button\"\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n \n )\n}\n",
+ "path": "src/components/ui/navigation-menu/navigation-menu-viewport.astro",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/navigation-menu/index.ts",
- "content": "export { default as NavigationMenu } from \"./navigation-menu.astro\"\nexport { default as NavigationMenuContent } from \"./navigation-menu-content.astro\"\nexport { default as NavigationMenuItem } from \"./navigation-menu-item.astro\"\nexport { default as NavigationMenuLink } from \"./navigation-menu-link.astro\"\nexport { default as NavigationMenuList } from \"./navigation-menu-list.astro\"\nexport { default as NavigationMenuSub } from \"./navigation-menu-sub.astro\"\nexport { default as NavigationMenuSubItem } from \"./navigation-menu-sub-item.astro\"\nexport { default as NavigationMenuSubLink } from \"./navigation-menu-sub-link.astro\"\nexport { default as NavigationMenuTrigger } from \"./navigation-menu-trigger.astro\"\n",
+ "content": "export { default as NavigationMenu } from \"./navigation-menu.astro\"\nexport { default as NavigationMenuContent } from \"./navigation-menu-content.astro\"\nexport { default as NavigationMenuIndicator } from \"./navigation-menu-indicator.astro\"\nexport { default as NavigationMenuItem } from \"./navigation-menu-item.astro\"\nexport { default as NavigationMenuLink } from \"./navigation-menu-link.astro\"\nexport { default as NavigationMenuList } from \"./navigation-menu-list.astro\"\nexport { default as NavigationMenuTrigger } from \"./navigation-menu-trigger.astro\"\nexport { default as navigationMenuTriggerStyle } from \"./navigation-menu-trigger-style\"\nexport { default as NavigationMenuViewport } from \"./navigation-menu-viewport.astro\"\n",
"type": "registry:ui"
}
]
diff --git a/public/r/price.json b/public/r/price.json
index f0ccccce4..c0671cdf0 100644
--- a/public/r/price.json
+++ b/public/r/price.json
@@ -5,12 +5,12 @@
"files": [
{
"path": "src/components/ui/price/price.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/price/price-unit.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"span\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n / \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"span\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n / \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/pricings-1.json b/public/r/pricings-1.json
index 7358ff509..eb7b7020d 100644
--- a/public/r/pricings-1.json
+++ b/public/r/pricings-1.json
@@ -13,7 +13,7 @@
"files": [
{
"path": "src/components/blocks/pricings-1.astro",
- "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { List, ListItem } from \"@/components/ui/list\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {\n Section,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n items?: {\n title?: string\n description?: string\n icon?: string\n list?: string[]\n links?: {\n text?: string\n href?: string\n target?: string\n }[]\n price?: string | number\n unit?: string\n }[]\n}\n\nconst { class: className, id, items } = Astro.props\n---\n\n\n \n \n \n \n {\n items?.map(({ title, description, links, list, price, unit }) => (\n \n \n {title} \n {description} \n \n \n {unit} \n \n \n {list?.map((item) => (\n \n \n {item}\n \n ))}\n
\n \n \n {links?.map(({ text, ...link }, i) => (\n \n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
+ "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { List, ListItem } from \"@/components/ui/list\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport { Section, SectionGrid, SectionProse } from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n items?: {\n title?: string\n description?: string\n icon?: string\n list?: string[]\n links?: {\n text?: string\n href?: string\n target?: string\n }[]\n price?: string | number\n unit?: string\n }[]\n}\n\nconst { class: className, id, items } = Astro.props\n---\n\n\n \n \n \n \n {\n items?.map(({ title, description, links, list, price, unit }) => (\n \n \n {title} \n {description} \n \n \n {unit} \n \n \n {list?.map((item) => (\n \n \n {item}\n \n ))}\n
\n \n \n {links?.map(({ text, ...link }, i) => (\n \n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/pricings-3.json b/public/r/pricings-3.json
index 359f582be..a26b0b255 100644
--- a/public/r/pricings-3.json
+++ b/public/r/pricings-3.json
@@ -13,7 +13,7 @@
"files": [
{
"path": "src/components/blocks/pricings-3.astro",
- "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { List, ListItem } from \"@/components/ui/list\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport {\n Section,\n SectionProse,\n SectionSpread,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n items?: {\n title?: string\n description?: string\n icon?: string\n list?: string[]\n links?: {\n text?: string\n href?: string\n target?: string\n }[]\n price?: string | number\n unit?: string\n }[]\n}\n\nconst { class: className, id, items } = Astro.props\n---\n\n\n \n \n \n \n {\n items?.map(({ title, description, links, list, price, unit }) => (\n \n \n {title} \n {description} \n \n \n {unit} \n \n \n {list?.map((item) => (\n \n \n {item}\n \n ))}\n
\n \n \n {links?.map(({ text, ...link }, i) => (\n \n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
+ "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { List, ListItem } from \"@/components/ui/list\"\nimport { Price, PriceUnit, PriceValue } from \"@/components/ui/price\"\nimport { Section, SectionProse, SectionSpread } from \"@/components/ui/section\"\nimport {\n Tile,\n TileActions,\n TileContent,\n TileDescription,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n items?: {\n title?: string\n description?: string\n icon?: string\n list?: string[]\n links?: {\n text?: string\n href?: string\n target?: string\n }[]\n price?: string | number\n unit?: string\n }[]\n}\n\nconst { class: className, id, items } = Astro.props\n---\n\n\n \n \n \n \n {\n items?.map(({ title, description, links, list, price, unit }) => (\n \n \n {title} \n {description} \n \n \n {unit} \n \n \n {list?.map((item) => (\n \n \n {item}\n \n ))}\n
\n \n \n {links?.map(({ text, ...link }, i) => (\n \n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/radio-group.json b/public/r/radio-group.json
index c84af7cee..165c5419e 100644
--- a/public/r/radio-group.json
+++ b/public/r/radio-group.json
@@ -5,12 +5,12 @@
"files": [
{
"path": "src/components/ui/radio-group/radio-group.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/radio-group/radio-group-item.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"type\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"type\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n\n\n",
"type": "registry:ui"
},
{
diff --git a/public/r/registry.json b/public/r/registry.json
index 36a8979b6..26271b101 100644
--- a/public/r/registry.json
+++ b/public/r/registry.json
@@ -78,6 +78,10 @@
"name": "badge",
"type": "registry:ui",
"files": [
+ {
+ "path": "src/components/ui/badge/badge-variants.ts",
+ "type": "registry:ui"
+ },
{
"path": "src/components/ui/badge/badge.astro",
"type": "registry:ui"
@@ -123,6 +127,10 @@
"name": "button",
"type": "registry:ui",
"files": [
+ {
+ "path": "src/components/ui/button/button-variants.ts",
+ "type": "registry:ui"
+ },
{
"path": "src/components/ui/button/button.astro",
"type": "registry:ui"
@@ -219,10 +227,6 @@
"path": "src/components/ui/field/field-description.astro",
"type": "registry:ui"
},
- {
- "path": "src/components/ui/field/field-error.astro",
- "type": "registry:ui"
- },
{
"path": "src/components/ui/field/field-group.astro",
"type": "registry:ui"
@@ -589,19 +593,19 @@
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub.astro",
+ "path": "src/components/ui/navigation-menu/navigation-menu-indicator.astro",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub-item.astro",
+ "path": "src/components/ui/navigation-menu/navigation-menu-trigger.astro",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub-link.astro",
+ "path": "src/components/ui/navigation-menu/navigation-menu-trigger-style.ts",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-trigger.astro",
+ "path": "src/components/ui/navigation-menu/navigation-menu-viewport.astro",
"type": "registry:ui"
},
{
@@ -2450,6 +2454,17 @@
"@fulldev/services-7"
]
},
+ {
+ "name": "block",
+ "type": "registry:component",
+ "files": [
+ {
+ "path": "src/components/block.astro",
+ "type": "registry:component"
+ }
+ ],
+ "registryDependencies": ["@fulldev/blocks"]
+ },
{
"name": "layout",
"type": "registry:component",
diff --git a/public/r/section.json b/public/r/section.json
index c99471839..18f43d193 100644
--- a/public/r/section.json
+++ b/public/r/section.json
@@ -5,52 +5,52 @@
"files": [
{
"path": "src/components/ui/section/section.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends HTMLAttributes<\"section\">,\n VariantProps {\n size?: \"sm\" | \"default\" | \"lg\"\n}\n\nconst variants = cva(\n \"relative mx-auto flex scroll-m-(--section-py) flex-col gap-16 px-(--section-px) py-(--section-py)\",\n {\n variants: {\n variant: {\n default: \"bg-background w-full\",\n floating: [\n \"bg-background rounded-lg border shadow-md\",\n \"w-[calc(100%-2*var(--gutter,24px))] max-w-(--section-width)\",\n \"my-(--section-py) overflow-hidden rounded-xl\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, size, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props\n extends HTMLAttributes<\"section\">,\n VariantProps {\n size?: \"sm\" | \"default\" | \"lg\"\n}\n\nconst variants = cva(\n \"relative mx-auto flex scroll-m-(--section-py) flex-col gap-16 px-(--section-px) py-(--section-py)\",\n {\n variants: {\n variant: {\n default: \"bg-background w-full\",\n floating: [\n \"bg-background rounded-lg border shadow-md\",\n \"w-[calc(100%-2*var(--gutter,24px))] max-w-(--section-width)\",\n \"my-(--section-py) overflow-hidden rounded-xl\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, size, ...props } = Astro.props\n---\n\n\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-actions.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-grid.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst variants = cva(\"grid w-full gap-6\", {\n variants: {\n frame: {\n default: \"\",\n },\n size: {\n sm: \"grid-cols-[repeat(auto-fit,minmax(200px,1fr))]\",\n default: \"grid-cols-1 sm:grid-cols-[repeat(auto-fit,minmax(260px,1fr))]\",\n lg: \"grid-cols-1 sm:grid-cols-[repeat(auto-fit,minmax(400px,1fr))]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n frame: \"default\",\n },\n})\n\nconst { class: className, size, frame, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst variants = cva(\"grid w-full gap-6\", {\n variants: {\n frame: {\n default: \"\",\n },\n size: {\n sm: \"grid-cols-[repeat(auto-fit,minmax(200px,1fr))]\",\n default: \"grid-cols-1 sm:grid-cols-[repeat(auto-fit,minmax(260px,1fr))]\",\n lg: \"grid-cols-1 sm:grid-cols-[repeat(auto-fit,minmax(400px,1fr))]\",\n },\n },\n defaultVariants: {\n size: \"default\",\n frame: \"default\",\n },\n})\n\nconst { class: className, size, frame, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-masonry.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst variants = cva(\"w-full gap-6 space-y-6 *:break-inside-avoid\", {\n variants: {\n size: {\n sm: \"columns-3xs\",\n default: \"columns-2xs\",\n lg: \"columns-xs\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nconst { class: className, size, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst variants = cva(\"w-full gap-6 space-y-6 *:break-inside-avoid\", {\n variants: {\n size: {\n sm: \"columns-3xs\",\n default: \"columns-2xs\",\n lg: \"columns-xs\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nconst { class: className, size, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-media.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-prose.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n [\n \"text-foreground w-full space-y-4 text-pretty\",\n \"[&_p]:leading-[1.8] [&_p]:not-first:mt-4\",\n \"[&_ul]:ml-5 [&_ul]:list-disc [&_ul]:space-y-2 [&_ul]:not-first:mt-4\",\n \"[&_ol]:ml-5 [&_ol]:list-decimal [&_ol]:space-y-2 [&_ol]:not-first:mt-4\",\n \"[&_li_p]:inline\",\n \"[&_a]:text-primary [&_a]:hover:underline\",\n \"@max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:break-words @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:wrap-break-word @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:hyphens-auto\",\n \"[&_:is(h1,h2,h3,h4,h5,h6)]:scroll-mt-20 [&_:is(h1,h2,h3,h4,h5,h6)]:leading-[1.1] [&_:is(h1,h2,h3,h4,h5,h6)]:font-semibold [&_:is(h1,h2,h3,h4,h5,h6)]:not-first:mt-12\",\n \"[&_img]:rounded-lg [&_img]:not-first:mt-12\",\n \"[&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:text-accent-foreground [&_p:first-child+:is(h1,h2,h3,h4,h5,h6)]:mt-4 [&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:text-sm [&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:font-medium\",\n \"[&_pre]:bg-muted [&_pre]:mt-6 [&_pre]:rounded-lg [&_pre]:rounded-md [&_pre]:border [&_pre]:p-4 [&_pre]:text-sm\",\n ],\n {\n variants: {\n size: {\n sm: \"max-w-2xl text-sm [&_h1]:text-3xl [&_h2]:text-2xl [&_h3]:text-xl [&_h4]:text-lg [&_h5]:text-base [&_h6]:text-sm\",\n default:\n \"max-w-3xl text-base [&_h1]:text-4xl [&_h2]:text-3xl [&_h3]:text-2xl [&_h4]:text-xl [&_h5]:text-lg [&_h6]:text-base\",\n lg: \"max-w-4xl text-lg [&_h1]:text-4xl @5xl:[&_h1]:text-5xl [&_h2]:text-4xl [&_h3]:text-3xl [&_h4]:text-2xl [&_h5]:text-xl [&_h6]:text-lg\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst { class: className, size, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n [\n \"text-foreground w-full space-y-4 text-pretty\",\n \"[&_p]:leading-[1.8] [&_p]:not-first:mt-4\",\n \"[&_ul]:ml-5 [&_ul]:list-disc [&_ul]:space-y-2 [&_ul]:not-first:mt-4\",\n \"[&_ol]:ml-5 [&_ol]:list-decimal [&_ol]:space-y-2 [&_ol]:not-first:mt-4\",\n \"[&_li_p]:inline\",\n \"[&_a]:text-primary [&_a]:hover:underline\",\n \"@max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:break-words @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:wrap-break-word @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:hyphens-auto\",\n \"[&_:is(h1,h2,h3,h4,h5,h6)]:scroll-mt-20 [&_:is(h1,h2,h3,h4,h5,h6)]:leading-[1.1] [&_:is(h1,h2,h3,h4,h5,h6)]:font-semibold [&_:is(h1,h2,h3,h4,h5,h6)]:not-first:mt-12\",\n \"[&_img]:rounded-lg [&_img]:not-first:mt-12\",\n \"[&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:text-accent-foreground [&_p:first-child+:is(h1,h2,h3,h4,h5,h6)]:mt-4 [&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:text-sm [&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:font-medium\",\n \"[&_pre]:bg-muted [&_pre]:mt-6 [&_pre]:rounded-lg [&_pre]:rounded-md [&_pre]:border [&_pre]:p-4 [&_pre]:text-sm\",\n ],\n {\n variants: {\n size: {\n sm: \"max-w-2xl text-sm [&_h1]:text-3xl [&_h2]:text-2xl [&_h3]:text-xl [&_h4]:text-lg [&_h5]:text-base [&_h6]:text-sm\",\n default:\n \"max-w-3xl text-base [&_h1]:text-4xl [&_h2]:text-3xl [&_h3]:text-2xl [&_h4]:text-xl [&_h5]:text-lg [&_h6]:text-base\",\n lg: \"max-w-4xl text-lg [&_h1]:text-4xl @5xl:[&_h1]:text-5xl [&_h2]:text-4xl [&_h3]:text-3xl [&_h4]:text-2xl [&_h5]:text-xl [&_h6]:text-lg\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst { class: className, size, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-provider.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"main\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"main\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-split.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/section/section-spread.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
diff --git a/public/r/separator.json b/public/r/separator.json
index 7ec53e417..469d876ee 100644
--- a/public/r/separator.json
+++ b/public/r/separator.json
@@ -5,7 +5,7 @@
"files": [
{
"path": "src/components/ui/separator/separator.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {\n orientation?: \"horizontal\" | \"vertical\"\n}\n\nconst variants = cva(\"bg-border block shrink-0\", {\n variants: {\n orientation: {\n horizontal: \"h-px w-full\",\n vertical: \"h-full w-px\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n})\n\nconst { class: className, orientation = \"horizontal\", ...props } = Astro.props\n---\n\n\n
\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {\n orientation?: \"horizontal\" | \"vertical\"\n decorative?: boolean\n}\n\nconst {\n class: className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n} = Astro.props\n---\n\n\n
\n",
"type": "registry:ui"
},
{
diff --git a/public/r/services-2.json b/public/r/services-2.json
index d0e50a0a0..34845444a 100644
--- a/public/r/services-2.json
+++ b/public/r/services-2.json
@@ -12,7 +12,7 @@
"files": [
{
"path": "src/components/blocks/services-2.astro",
- "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n text?: string\n href?: string\n icon?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n image?: {\n src: string\n alt: string\n }\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n {\n links?.map(({ text, icon, href, target }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, image, links }) => (\n \n \n \n \n \n {title} \n \n {description}\n \n \n \n {links?.map(({ text, icon, href, target }, i) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
+ "content": "---\nimport { Button } from \"@/components/ui/button\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Image } from \"@/components/ui/image\"\nimport {\n Section,\n SectionActions,\n SectionContent,\n SectionGrid,\n SectionProse,\n} from \"@/components/ui/section\"\nimport {\n Tile,\n TileContent,\n TileDescription,\n TileMedia,\n TileTitle,\n} from \"@/components/ui/tile\"\n\ninterface Props {\n class?: string\n id?: string\n links?: {\n text?: string\n href?: string\n icon?: string\n target?: string\n }[]\n items?: {\n title?: string\n description?: string\n image?: {\n src: string\n alt: string\n }\n links?: {\n icon?: string\n text?: string\n href?: string\n target?: string\n }[]\n }[]\n}\n\nconst { class: className, id, links, items } = Astro.props\n---\n\n\n \n \n \n \n \n {\n links?.map(({ text, icon, href, target }, i) => (\n \n {icon && }\n {text}\n \n ))\n }\n \n \n \n {\n items?.map(({ title, description, image, links }) => (\n \n \n \n \n \n {title} \n \n {description}\n \n \n \n {links?.map(({ text, icon, href, target }, i) => (\n \n {icon && }\n {text}\n \n ))}\n \n \n ))\n }\n \n \n",
"type": "registry:block"
}
]
diff --git a/public/r/sheet.json b/public/r/sheet.json
index 2e3121c07..0319c83fd 100644
--- a/public/r/sheet.json
+++ b/public/r/sheet.json
@@ -8,7 +8,7 @@
"files": [
{
"path": "src/components/ui/sheet/sheet.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n\n\n",
"type": "registry:ui"
},
{
@@ -18,32 +18,32 @@
},
{
"path": "src/components/ui/sheet/sheet-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport XIcon from \"lucide-static/icons/x.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst dialogVariants = cva(\n [\n \"fixed inset-0 z-50 m-0 max-h-none max-w-none border-0 bg-transparent p-0\",\n \"backdrop:bg-black/50\",\n // Added for quick fix over horizontal scroll issue\n \"overflow-x-hidden\",\n ],\n {\n variants: {\n side: {\n right: \"ml-auto h-full w-3/4 sm:max-w-sm\",\n left: \"mr-auto h-full w-3/4 sm:max-w-sm\",\n top: \"mb-auto h-auto w-full\",\n bottom: \"mt-auto h-auto w-full\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\nconst contentVariants = cva(\n \"bg-background flex h-full flex-col gap-4 shadow-lg transition-transform duration-500 ease-in-out\",\n {\n variants: {\n side: {\n right: \"translate-x-full border-l\",\n left: \"-translate-x-full border-r\",\n top: \"-translate-y-full border-b\",\n bottom: \"translate-y-full border-t\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ntype Props = VariantProps &\n HTMLAttributes<\"div\"> & {\n showClose?: boolean\n }\n\nconst { class: className, side, showClose = true, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n\n \n {\n showClose && (\n \n \n \n )\n }\n \n
\n \n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport XIcon from \"lucide-static/icons/x.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst dialogVariants = cva(\n [\n \"fixed inset-0 z-50 m-0 max-h-none max-w-none border-0 bg-transparent p-0\",\n \"backdrop:bg-black/50\",\n // Added for quick fix over horizontal scroll issue\n \"overflow-x-hidden\",\n ],\n {\n variants: {\n side: {\n right: \"ml-auto h-full w-3/4 sm:max-w-sm\",\n left: \"mr-auto h-full w-3/4 sm:max-w-sm\",\n top: \"mb-auto h-auto w-full\",\n bottom: \"mt-auto h-auto w-full\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\nconst contentVariants = cva(\n \"bg-background flex h-full flex-col gap-4 shadow-lg transition-transform duration-500 ease-in-out\",\n {\n variants: {\n side: {\n right: \"translate-x-full border-l\",\n left: \"-translate-x-full border-r\",\n top: \"-translate-y-full border-b\",\n bottom: \"translate-y-full border-t\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ntype Props = VariantProps & HTMLAttributes<\"div\">\n\nconst { class: className, side, ...props } = Astro.props\n---\n\n\n \n \n \n \n \n
\n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sheet/sheet-description.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sheet/sheet-footer.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sheet/sheet-header.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sheet/sheet-title.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"h2\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"h2\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sheet/sheet-trigger.astro",
- "content": "---\nimport type { ComponentProps } from \"astro/types\"\n\nimport { Button } from \"@/components/ui/button\"\n\ninterface Props extends ComponentProps {}\n\nconst { ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n buttonVariants,\n type ButtonVariantProps,\n} from \"@/components/ui/button/button-variants\"\n\ninterface Props extends HTMLAttributes<\"button\">, ButtonVariantProps {}\n\nconst {\n class: className,\n variant = \"ghost\",\n size = \"icon\",\n type = \"button\",\n name = \"open-sheet-button\",\n ...props\n} = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/sidebar.json b/public/r/sidebar.json
index 3ff9b3185..532cc7ed9 100644
--- a/public/r/sidebar.json
+++ b/public/r/sidebar.json
@@ -5,32 +5,32 @@
"files": [
{
"path": "src/components/ui/sidebar/sidebar-menu.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sidebar/sidebar-menu-button.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n \"hover:bg-accent hover:text-accent-foreground focus-visible:outline-ring active:bg-accent active:text-accent-foreground flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 disabled:pointer-events-none disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-accent hover:text-accent-foreground text-foreground\",\n outline:\n \"bg-background hover:bg-accent hover:text-accent-foreground shadow-[0_0_0_1px_hsl(var(--border))] hover:shadow-[0_0_0_1px_hsl(var(--accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm\",\n },\n active: {\n true: \"bg-accent text-accent-foreground font-medium\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n active: false,\n },\n }\n)\n\ntype Props = VariantProps &\n HTMLAttributes<\"button\"> &\n HTMLAttributes<\"a\"> & {\n href?: string\n }\n\nconst { class: className, variant, size, active, href, ...props } = Astro.props\n\nconst Comp = href ? \"a\" : \"button\"\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n \"hover:bg-accent hover:text-accent-foreground focus-visible:outline-ring active:bg-accent active:text-accent-foreground flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 disabled:pointer-events-none disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-accent hover:text-accent-foreground text-foreground\",\n outline:\n \"bg-background hover:bg-accent hover:text-accent-foreground shadow-[0_0_0_1px_hsl(var(--border))] hover:shadow-[0_0_0_1px_hsl(var(--accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm\",\n },\n active: {\n true: \"bg-accent text-accent-foreground font-medium\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n active: false,\n },\n }\n)\n\ntype Props = VariantProps &\n HTMLAttributes<\"button\"> &\n HTMLAttributes<\"a\"> & {\n href?: string\n }\n\nconst { class: className, variant, size, active, href, ...props } = Astro.props\n\nconst Comp = href ? \"a\" : \"button\"\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sidebar/sidebar-menu-item.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sidebar/sidebar-menu-sub.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"ul\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sidebar/sidebar-menu-sub-button.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n \"hover:bg-accent hover:text-accent-foreground focus-visible:outline-ring flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 disabled:pointer-events-none disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n },\n active: {\n true: \"bg-accent text-accent-foreground\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n active: false,\n },\n }\n)\n\ntype Props = VariantProps &\n HTMLAttributes<\"button\"> &\n HTMLAttributes<\"a\"> & {\n href?: string\n }\n\nconst { class: className, size, active, href, ...props } = Astro.props\n\nconst Comp = href ? \"a\" : \"button\"\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n \"hover:bg-accent hover:text-accent-foreground focus-visible:outline-ring flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 disabled:pointer-events-none disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n },\n active: {\n true: \"bg-accent text-accent-foreground\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n active: false,\n },\n }\n)\n\ntype Props = VariantProps &\n HTMLAttributes<\"button\"> &\n HTMLAttributes<\"a\"> & {\n href?: string\n }\n\nconst { class: className, size, active, href, ...props } = Astro.props\n\nconst Comp = href ? \"a\" : \"button\"\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/sidebar/sidebar-menu-sub-item.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"li\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n",
"type": "registry:ui"
},
{
diff --git a/public/r/skeleton.json b/public/r/skeleton.json
index 182ef83bc..1df30725d 100644
--- a/public/r/skeleton.json
+++ b/public/r/skeleton.json
@@ -5,7 +5,7 @@
"files": [
{
"path": "src/components/ui/skeleton/skeleton.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className } = Astro.props\n---\n\n
\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n
\n",
"type": "registry:ui"
},
{
diff --git a/public/r/spinner.json b/public/r/spinner.json
index 5b72295ac..656c83b11 100644
--- a/public/r/spinner.json
+++ b/public/r/spinner.json
@@ -5,7 +5,7 @@
"files": [
{
"path": "src/components/ui/spinner/spinner.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport Loader2Icon from \"lucide-static/icons/loader-2.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"svg\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport Loader2Icon from \"lucide-static/icons/loader-2.svg\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"svg\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/table.json b/public/r/table.json
index 050918eb9..95319317d 100644
--- a/public/r/table.json
+++ b/public/r/table.json
@@ -10,27 +10,27 @@
},
{
"path": "src/components/ui/table/table-body.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"tbody\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"tbody\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/table/table-caption.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"caption\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"caption\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/table/table-cell.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"td\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n>\n \n \n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"td\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/table/table-footer.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"tfoot\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\ntr]:last:border-b-0\",\n className\n )}\n {...props}\n>\n \n \n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"tfoot\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\ntr]:last:border-b-0\",\n className\n )}\n {...props}\n>\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/table/table-head.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"th\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n>\n \n \n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"th\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
@@ -40,12 +40,12 @@
},
{
"path": "src/components/ui/table/table-row.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"tr\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"tr\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/table/index.ts",
- "content": "export { default as Table } from \"./table.astro\"\nexport { default as TableHeader } from \"./table-header.astro\"\nexport { default as TableBody } from \"./table-body.astro\"\nexport { default as TableFooter } from \"./table-footer.astro\"\nexport { default as TableRow } from \"./table-row.astro\"\nexport { default as TableHead } from \"./table-head.astro\"\nexport { default as TableCell } from \"./table-cell.astro\"\nexport { default as TableCaption } from \"./table-caption.astro\"\n\n",
+ "content": "export { default as Table } from \"./table.astro\"\nexport { default as TableHeader } from \"./table-header.astro\"\nexport { default as TableBody } from \"./table-body.astro\"\nexport { default as TableFooter } from \"./table-footer.astro\"\nexport { default as TableRow } from \"./table-row.astro\"\nexport { default as TableHead } from \"./table-head.astro\"\nexport { default as TableCell } from \"./table-cell.astro\"\nexport { default as TableCaption } from \"./table-caption.astro\"\n",
"type": "registry:ui"
}
]
diff --git a/public/r/tabs.json b/public/r/tabs.json
index 846101d2c..37a927191 100644
--- a/public/r/tabs.json
+++ b/public/r/tabs.json
@@ -5,27 +5,27 @@
"files": [
{
"path": "src/components/ui/tabs/tabs.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {\n defaultValue?: string\n}\n\nconst { class: className, defaultValue, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n\n\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {\n defaultValue?: string\n orientation?: \"horizontal\" | \"vertical\"\n activationMode?: \"auto\" | \"manual\"\n}\n\nconst {\n class: className,\n defaultValue,\n orientation = \"horizontal\",\n activationMode,\n ...props\n} = Astro.props\n---\n\n\n \n
\n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tabs/tabs-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {\n value: string\n}\n\nconst { class: className, value, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {\n value: string\n}\n\nconst { class: className, value, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tabs/tabs-list.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst tabsListVariants = cva(\n \"group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center rounded-lg p-[3px] group-data-horizontal/tabs:h-9 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ninterface Props\n extends HTMLAttributes<\"div\">,\n VariantProps {}\n\nconst { class: className, variant = \"default\", ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tabs/tabs-trigger.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"class\"> {\n class?: string\n value: string\n disabled?: boolean\n}\n\nconst { class: className, value, disabled = false, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends Omit, \"class\"> {\n class?: string\n value: string\n disabled?: boolean\n}\n\nconst { class: className, value, disabled = false, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tabs/index.ts",
- "content": "export { default as Tabs } from \"./tabs.astro\"\nexport { default as TabsList } from \"./tabs-list.astro\"\nexport { default as TabsTrigger } from \"./tabs-trigger.astro\"\nexport { default as TabsContent } from \"./tabs-content.astro\"\n\n",
+ "content": "export { default as Tabs } from \"./tabs.astro\"\nexport { default as TabsList } from \"./tabs-list.astro\"\nexport { default as TabsTrigger } from \"./tabs-trigger.astro\"\nexport { default as TabsContent } from \"./tabs-content.astro\"\n",
"type": "registry:ui"
}
]
diff --git a/public/r/textarea.json b/public/r/textarea.json
index 1d2054e10..464fb92f7 100644
--- a/public/r/textarea.json
+++ b/public/r/textarea.json
@@ -5,7 +5,7 @@
"files": [
{
"path": "src/components/ui/textarea/textarea.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"textarea\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n \n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"textarea\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n",
"type": "registry:ui"
},
{
diff --git a/public/r/tile.json b/public/r/tile.json
index b7572765e..ff52332cf 100644
--- a/public/r/tile.json
+++ b/public/r/tile.json
@@ -5,42 +5,42 @@
"files": [
{
"path": "src/components/ui/tile/tile.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = VariantProps &\n HTMLAttributes<\"div\"> &\n HTMLAttributes<\"a\">\n\nconst variants = cva(\n \"group/tile focus-visible:border-ring focus-visible:ring-ring/50 [a]:hover:ring-accent/50 relative flex flex-col items-start gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all\",\n {\n variants: {\n variant: {\n default:\n \"[a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12\",\n floating:\n \"bg-card text-card-foreground [a]:hover:bg-accent/50 overflow-hidden rounded-sm border p-6 shadow-sm duration-100\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, href, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n\nconst Comp = href ? \"a\" : \"div\"\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n\n\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = VariantProps &\n HTMLAttributes<\"div\"> &\n HTMLAttributes<\"a\">\n\nconst variants = cva(\n \"group/tile focus-visible:border-ring focus-visible:ring-ring/50 [a]:hover:ring-accent/50 relative flex flex-col items-start gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all\",\n {\n variants: {\n variant: {\n default:\n \"[a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12\",\n floating:\n \"bg-card text-card-foreground [a]:hover:bg-accent/50 overflow-hidden rounded-sm border p-6 shadow-sm duration-100\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst { class: className, variant, href, ...props } = Astro.props\n\nconst Comp = href ? \"a\" : \"div\"\n---\n\n\n \n \n\n\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tile/tile-actions.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tile/tile-content.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tile/tile-description.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"p\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tile/tile-media.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n [\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none\",\n \"transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75\",\n \"relative overflow-hidden rounded-md\",\n ],\n {\n variants: {\n variant: {\n default: \"rounded-md *:size-full *:object-cover\",\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst { class: className, variant, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst variants = cva(\n [\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none\",\n \"transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75\",\n \"relative overflow-hidden rounded-md\",\n ],\n {\n variants: {\n variant: {\n default: \"rounded-md *:size-full *:object-cover\",\n icon: \"bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ninterface Props extends HTMLAttributes<\"div\">, VariantProps {}\n\nconst { class: className, variant, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tile/tile-split.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tile/tile-spread.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n
\n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"div\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n
\n",
"type": "registry:ui"
},
{
"path": "src/components/ui/tile/tile-title.astro",
- "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"h3\"> {}\n\nconst { class: className, ...props } = Astro.props\n\nconst slot = await Astro.slots.render(\"default\")\n---\n\n{\n slot?.trim().length > 0 && (\n \n \n \n )\n}\n",
+ "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface Props extends HTMLAttributes<\"h3\"> {}\n\nconst { class: className, ...props } = Astro.props\n---\n\n\n \n \n",
"type": "registry:ui"
},
{
diff --git a/registry.json b/registry.json
index 36a8979b6..26271b101 100644
--- a/registry.json
+++ b/registry.json
@@ -78,6 +78,10 @@
"name": "badge",
"type": "registry:ui",
"files": [
+ {
+ "path": "src/components/ui/badge/badge-variants.ts",
+ "type": "registry:ui"
+ },
{
"path": "src/components/ui/badge/badge.astro",
"type": "registry:ui"
@@ -123,6 +127,10 @@
"name": "button",
"type": "registry:ui",
"files": [
+ {
+ "path": "src/components/ui/button/button-variants.ts",
+ "type": "registry:ui"
+ },
{
"path": "src/components/ui/button/button.astro",
"type": "registry:ui"
@@ -219,10 +227,6 @@
"path": "src/components/ui/field/field-description.astro",
"type": "registry:ui"
},
- {
- "path": "src/components/ui/field/field-error.astro",
- "type": "registry:ui"
- },
{
"path": "src/components/ui/field/field-group.astro",
"type": "registry:ui"
@@ -589,19 +593,19 @@
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub.astro",
+ "path": "src/components/ui/navigation-menu/navigation-menu-indicator.astro",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub-item.astro",
+ "path": "src/components/ui/navigation-menu/navigation-menu-trigger.astro",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-sub-link.astro",
+ "path": "src/components/ui/navigation-menu/navigation-menu-trigger-style.ts",
"type": "registry:ui"
},
{
- "path": "src/components/ui/navigation-menu/navigation-menu-trigger.astro",
+ "path": "src/components/ui/navigation-menu/navigation-menu-viewport.astro",
"type": "registry:ui"
},
{
@@ -2450,6 +2454,17 @@
"@fulldev/services-7"
]
},
+ {
+ "name": "block",
+ "type": "registry:component",
+ "files": [
+ {
+ "path": "src/components/block.astro",
+ "type": "registry:component"
+ }
+ ],
+ "registryDependencies": ["@fulldev/blocks"]
+ },
{
"name": "layout",
"type": "registry:component",
diff --git a/src/components/blocks/article-2.astro b/src/components/blocks/article-2.astro
index d7a1606b0..b3267bb2a 100644
--- a/src/components/blocks/article-2.astro
+++ b/src/components/blocks/article-2.astro
@@ -38,12 +38,12 @@ const { class: className, id, title, description, image, item } = Astro.props
---
-
+
{title && {title} }
{description && {description}
}
- -
+
-
diff --git a/src/components/blocks/blocks-1.astro b/src/components/blocks/blocks-1.astro
index 1f8fbbd78..c913105d5 100644
--- a/src/components/blocks/blocks-1.astro
+++ b/src/components/blocks/blocks-1.astro
@@ -31,7 +31,7 @@ const sortedBlocks = Object.entries(allBlocks).sort(([a], [b]) =>
return BlockComponent ? (
-
+
{block}
diff --git a/src/components/blocks/blocks-4.astro b/src/components/blocks/blocks-4.astro
index 72ffd8afe..140b5ffc3 100644
--- a/src/components/blocks/blocks-4.astro
+++ b/src/components/blocks/blocks-4.astro
@@ -5,12 +5,7 @@ import { cn } from "@/lib/utils"
import { Button } from "@/components/ui/button"
import { Icon } from "@/components/ui/icon"
import { Marquee, MarqueeContent } from "@/components/ui/marquee"
-import {
- Section,
- SectionContent,
- SectionProse,
- SectionSpread,
-} from "@/components/ui/section"
+import { Section } from "@/components/ui/section"
import Block from "@/components/block.astro"
interface Props {
@@ -25,13 +20,6 @@ const { class: className, id, items } = Astro.props
---
-
-
-
-
-
-
-
{
(["left", "right"] as const).map((direction) => (
diff --git a/src/components/blocks/content-5.astro b/src/components/blocks/content-5.astro
index 5344b32d4..cc0a78be0 100644
--- a/src/components/blocks/content-5.astro
+++ b/src/components/blocks/content-5.astro
@@ -45,16 +45,18 @@ const { class: className, id, list, links, image } = Astro.props
-
- {
- list?.map((item) => (
-
-
- {item}
-
- ))
- }
-
+ {
+ list?.length && (
+
+ {list?.map((item) => (
+
+
+ {item}
+
+ ))}
+
+ )
+ }
{
links?.map(({ icon, text, ...link }, i) => (
diff --git a/src/components/blocks/content-6.astro b/src/components/blocks/content-6.astro
index fa46cee3d..98cf6a062 100644
--- a/src/components/blocks/content-6.astro
+++ b/src/components/blocks/content-6.astro
@@ -45,16 +45,18 @@ const { class: className, id, list, links, image } = Astro.props
-
- {
- list?.map((item) => (
-
-
- {item}
-
- ))
- }
-
+ {
+ list?.length && (
+
+ {list?.map((item) => (
+
+
+ {item}
+
+ ))}
+
+ )
+ }
{
links?.map(({ icon, text, ...link }, i) => (
diff --git a/src/components/blocks/cta-1.astro b/src/components/blocks/cta-1.astro
index c70ce0f43..afcd4ec17 100644
--- a/src/components/blocks/cta-1.astro
+++ b/src/components/blocks/cta-1.astro
@@ -40,7 +40,7 @@ const { class: className, id, links, item } = Astro.props
- -
+
-
{
item?.images?.map((image) => (
diff --git a/src/components/blocks/cta-8.astro b/src/components/blocks/cta-8.astro
index 17d92ee68..75ecf2b5c 100644
--- a/src/components/blocks/cta-8.astro
+++ b/src/components/blocks/cta-8.astro
@@ -1,15 +1,7 @@
---
import { cn } from "@/lib/utils"
-import { Avatar, AvatarImage } from "@/components/ui/avatar"
import { Button } from "@/components/ui/button"
import { Icon } from "@/components/ui/icon"
-import {
- Item,
- ItemContent,
- ItemDescription,
- ItemMedia,
-} from "@/components/ui/item"
-import { Rating } from "@/components/ui/rating"
import {
Section,
SectionActions,
@@ -36,7 +28,7 @@ interface Props {
}
}
-const { class: className, id, links, item } = Astro.props
+const { class: className, id, links } = Astro.props
---
- -
-
- {
- item?.images?.map((image) => (
-
-
-
- ))
- }
-
-
-
-
- {item?.description}
-
-
-
{
links?.map(({ icon, text, ...link }, i) => (
-
+
{icon && }
{text}
diff --git a/src/components/blocks/features-1.astro b/src/components/blocks/features-1.astro
index 92978c2a3..4d5517c00 100644
--- a/src/components/blocks/features-1.astro
+++ b/src/components/blocks/features-1.astro
@@ -73,6 +73,7 @@ const { class: className, id, links, items } = Astro.props
{links?.map(({ icon, text, href, target }) => (
{links?.map(({ icon, text, href, target }) => (
{links?.map(({ icon, text, href, target }) => (
0
---
-
-
-
-
-
- {
- links?.map(({ icon, text, ...link }, i) => (
-
- {icon && }
- {text}
-
- ))
- }
-
-
+ {
+ (hasSlot || links?.length) && (
+
+
+
+
+
+ {links?.map(({ icon, text, ...link }, i) => (
+
+ {icon && }
+ {text}
+
+ ))}
+
+
+ )
+ }
{
items?.map(({ title, description, icon, links }) => (
@@ -83,6 +87,7 @@ const { class: className, id, links, items } = Astro.props
{links?.map(({ icon, text, href, target }) => (
{
- menus?.map((menu) => (
-
+ menus?.map((menu, index) => (
+
{menu.links && menu.links.length > 0 ? (
<>
-
+
{menu.text}
-
+
{menu.links?.map((link) => (
-
-
+
+
{link.text}
-
-
+
+
))}
-
+
>
) : (
{menu.text}
@@ -107,7 +100,13 @@ const { logo, menus, links, socials } = Astro.props
{
socials?.map((social) => (
<>
-
+
>
@@ -189,7 +188,7 @@ const { logo, menus, links, socials } = Astro.props
{
socials?.map((social) => (
-
+
))
diff --git a/src/components/blocks/header-2.astro b/src/components/blocks/header-2.astro
index 86d1f582b..3bcd880d7 100644
--- a/src/components/blocks/header-2.astro
+++ b/src/components/blocks/header-2.astro
@@ -16,9 +16,6 @@ import {
NavigationMenuItem,
NavigationMenuLink,
NavigationMenuList,
- NavigationMenuSub,
- NavigationMenuSubItem,
- NavigationMenuSubLink,
NavigationMenuTrigger,
} from "@/components/ui/navigation-menu"
import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"
@@ -67,32 +64,28 @@ const { logo, menus, links, socials } = Astro.props
{
- menus?.map((menu) => (
-
+ menus?.map((menu, index) => (
+
{menu.links && menu.links.length > 0 ? (
<>
-
+
{menu.text}
-
+
{menu.links?.map((link) => (
-
-
+
+
{link.text}
-
-
+
+
))}
-
+
>
) : (
{menu.text}
@@ -107,7 +100,13 @@ const { logo, menus, links, socials } = Astro.props
{
socials?.map((social) => (
-
+
))
@@ -184,7 +183,7 @@ const { logo, menus, links, socials } = Astro.props
{
socials?.map((social) => (
-
+
))
diff --git a/src/components/blocks/header-3.astro b/src/components/blocks/header-3.astro
index ea84a2a79..419fae5da 100644
--- a/src/components/blocks/header-3.astro
+++ b/src/components/blocks/header-3.astro
@@ -16,9 +16,6 @@ import {
NavigationMenuItem,
NavigationMenuLink,
NavigationMenuList,
- NavigationMenuSub,
- NavigationMenuSubItem,
- NavigationMenuSubLink,
NavigationMenuTrigger,
} from "@/components/ui/navigation-menu"
import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"
@@ -58,9 +55,40 @@ interface Props {
const { logo, menus, links, socials } = Astro.props
-const githubStarCount = (
- await (await fetch("https://api.github.com/repos/fulldotdev/ui")).json()
-).stargazers_count
+const parseEnvStarCount = (value: string | undefined) => {
+ if (!value) return null
+ const parsed = Number(value)
+ return Number.isFinite(parsed) && parsed >= 0 ? Math.floor(parsed) : null
+}
+
+async function getGithubStarCount(repo: string): Promise {
+ const envStarCount = parseEnvStarCount(
+ import.meta.env.PUBLIC_GITHUB_STAR_COUNT
+ )
+ if (envStarCount !== null) return envStarCount
+
+ if (import.meta.env.PUBLIC_FETCH_GITHUB_STARS !== "true") return null
+
+ try {
+ const response = await fetch(`https://api.github.com/repos/${repo}`, {
+ headers: {
+ Accept: "application/vnd.github+json",
+ },
+ signal: AbortSignal.timeout(2000),
+ })
+
+ if (!response.ok) return null
+
+ const data = (await response.json()) as { stargazers_count?: unknown }
+ return typeof data.stargazers_count === "number"
+ ? data.stargazers_count
+ : null
+ } catch {
+ return null
+ }
+}
+
+const githubStarCount = await getGithubStarCount("fulldotdev/ui")
---
@@ -71,32 +99,28 @@ const githubStarCount = (
{
- menus?.map((menu) => (
-
+ menus?.map((menu, index) => (
+
{menu.links && menu.links.length > 0 ? (
<>
-
+
{menu.text}
-
+
{menu.links?.map((link) => (
-
-
+
+
{link.text}
-
-
+
+
))}
-
+
>
) : (
{menu.text}
@@ -112,7 +136,13 @@ const githubStarCount = (
{
socials?.map((social) => (
<>
-
+
>
@@ -131,13 +161,14 @@ const githubStarCount = (
))
}
- {githubStarCount}
+ {githubStarCount !== null && githubStarCount.toLocaleString()}
@@ -202,7 +233,7 @@ const githubStarCount = (
{
socials?.map((social) => (
-
+
))
diff --git a/src/components/blocks/hero-1.astro b/src/components/blocks/hero-1.astro
index be66510b8..57c9be32f 100644
--- a/src/components/blocks/hero-1.astro
+++ b/src/components/blocks/hero-1.astro
@@ -37,10 +37,16 @@ const { class: className, id, link, links, image } = Astro.props
-
- {link?.text}
- {link?.href && }
-
+ {
+ link?.href ? (
+
+ {link.text}
+ {link.href && }
+
+ ) : (
+ {link?.text}
+ )
+ }
diff --git a/src/components/blocks/hero-12.astro b/src/components/blocks/hero-12.astro
index 37036c325..a675d314d 100644
--- a/src/components/blocks/hero-12.astro
+++ b/src/components/blocks/hero-12.astro
@@ -29,14 +29,7 @@ interface Props {
}
}
-const {
- class: className,
- id,
- title,
- description,
- links,
- image,
-} = Astro.props
+const { class: className, id, title, description, links, image } = Astro.props
---
@@ -51,7 +44,7 @@ const {
{
links?.map(({ href, text, ...link }) => (
-
+
{text}
{href && }
diff --git a/src/components/blocks/hero-13.astro b/src/components/blocks/hero-13.astro
index a73e0be55..bb8c43fc3 100644
--- a/src/components/blocks/hero-13.astro
+++ b/src/components/blocks/hero-13.astro
@@ -27,12 +27,7 @@ interface Props {
}
}
-const {
- class: className,
- id,
- links,
- image,
-} = Astro.props
+const { class: className, id, links, image } = Astro.props
---
@@ -44,7 +39,7 @@ const {
{
links?.map(({ href, text, ...link }) => (
-
+
{text}
{href && }
diff --git a/src/components/blocks/hero-14.astro b/src/components/blocks/hero-14.astro
index 9bed5f6f6..a0c45a33b 100644
--- a/src/components/blocks/hero-14.astro
+++ b/src/components/blocks/hero-14.astro
@@ -42,21 +42,23 @@ const { class: className, id, link, links, image } = Astro.props
"before:from-primary/10 relative items-center before:absolute before:bottom-full before:left-0 before:h-[200%] before:w-full before:animate-pulse before:rounded-full before:bg-gradient-to-t before:to-transparent before:blur-3xl"
)}
>
-
- {link?.text}
- {link?.href && }
-
+ {
+ link?.href ? (
+
+ {link.text}
+ {link.href && }
+
+ ) : (
+ {link?.text}
+ )
+ }
{
links?.map(({ icon, text, ...link }, i) => (
-
+
{icon && }
{text}
@@ -64,7 +66,11 @@ const { class: className, id, link, links, image } = Astro.props
}
-
-
-
+ {
+ image && (
+
+
+
+ )
+ }
diff --git a/src/components/blocks/hero-2.astro b/src/components/blocks/hero-2.astro
index 75ee72d98..7dc9609f0 100644
--- a/src/components/blocks/hero-2.astro
+++ b/src/components/blocks/hero-2.astro
@@ -46,7 +46,7 @@ const { class: className, id, item, links, image } = Astro.props
- -
+
-
{
item?.images?.map((image) => (
diff --git a/src/components/blocks/images-2.astro b/src/components/blocks/images-2.astro
index 0a4620705..dfc55c2ae 100644
--- a/src/components/blocks/images-2.astro
+++ b/src/components/blocks/images-2.astro
@@ -33,7 +33,7 @@ const { class: className, id, links, images, title, description } = Astro.props
---
@@ -47,7 +47,13 @@ const { class: className, id, links, images, title, description } = Astro.props
{
links?.map(({ href, text, ...link }) => (
-
+
{text}
{href && }
diff --git a/src/components/blocks/links-1.astro b/src/components/blocks/links-1.astro
index 94796db8a..ee62cfb7c 100644
--- a/src/components/blocks/links-1.astro
+++ b/src/components/blocks/links-1.astro
@@ -32,6 +32,7 @@ const { class: className, id, links } = Astro.props
{
links?.map(({ icon, text, href, target }) => (
(
{links?.map(({ text, icon, href, target }, i) => (
{
return SkeletonComponent ? (