diff --git a/.changeset/data-slot-one.md b/.changeset/data-slot-one.md new file mode 100644 index 000000000..5f5a877b7 --- /dev/null +++ b/.changeset/data-slot-one.md @@ -0,0 +1,22 @@ +--- +"fulldev-ui": minor +--- + +Upgrade all Data Slot primitives and registry dependencies to 1.0.1. Use recommended +lazy mounting for Select, Tooltip, Hover Card and Navigation Menu, with an explicit +mountStrategy="eager" opt-in for integrations that query closed content. Discover nested +comboboxes and hover cards in retained content without duplicate initialization. + +Release outgoing controllers on Astro page swaps so open overlays cannot leave stale +modal stacks or scroll locks. Give CommandDialog a trigger slot and correct the +sidebar search composition for strict nested ownership. + +Use native autofocus for command palettes and native link activation for keyboard +commands. Align Slider defaults and Tabs values with the upstream API, and make +block dropdown links actual accessible menu items. + +Use shadcn button defaults and consistent overlay layers so nested popups receive +pointer input. Form submissions should explicitly set type="submit". + +Keep Data Slot modal stack layers and place floating positioners above them so +Select and other popups remain clickable inside dialogs. diff --git a/package.json b/package.json index 40df64235..a0977a461 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "stop": "lsof -tiTCP:4321 -sTCP:LISTEN | xargs kill 2>/dev/null || true", "preview": "pnpm stop && pnpm build && astro preview --host 127.0.0.1 --port 4321", "typecheck": "astro check", + "test:interactions": "playwright test --config playwright.interactions.config.ts", "check": "pnpm format:check && pnpm typecheck", "build": "astro build", "build:prod": "pnpm check && pnpm registry:build && pnpm build", @@ -72,24 +73,24 @@ "dependencies": { "@astrojs/mdx": "^5.0.6", "@astrojs/sitemap": "^3.7.3", - "@data-slot/accordion": "^0.2.166", - "@data-slot/alert-dialog": "^0.2.166", - "@data-slot/collapsible": "^0.2.166", - "@data-slot/combobox": "^0.2.166", - "@data-slot/command": "^0.2.166", - "@data-slot/core": "^0.2.166", - "@data-slot/dialog": "^0.2.166", - "@data-slot/dropdown-menu": "^0.2.166", - "@data-slot/hover-card": "^0.2.166", - "@data-slot/navigation-menu": "^0.2.166", - "@data-slot/popover": "^0.2.166", - "@data-slot/radio-group": "^0.2.166", - "@data-slot/select": "^0.2.166", - "@data-slot/slider": "^0.2.166", - "@data-slot/switch": "^0.2.166", - "@data-slot/tabs": "^0.2.166", - "@data-slot/toggle": "^0.2.166", - "@data-slot/tooltip": "^0.2.166", + "@data-slot/accordion": "^1.0.1", + "@data-slot/alert-dialog": "^1.0.1", + "@data-slot/collapsible": "^1.0.1", + "@data-slot/combobox": "^1.0.1", + "@data-slot/command": "^1.0.1", + "@data-slot/core": "^1.0.1", + "@data-slot/dialog": "^1.0.1", + "@data-slot/dropdown-menu": "^1.0.1", + "@data-slot/hover-card": "^1.0.1", + "@data-slot/navigation-menu": "^1.0.1", + "@data-slot/popover": "^1.0.1", + "@data-slot/radio-group": "^1.0.1", + "@data-slot/select": "^1.0.1", + "@data-slot/slider": "^1.0.1", + "@data-slot/switch": "^1.0.1", + "@data-slot/tabs": "^1.0.1", + "@data-slot/toggle": "^1.0.1", + "@data-slot/tooltip": "^1.0.1", "@fontsource-variable/geist": "^5.2.9", "@fontsource-variable/geist-mono": "^5.2.8", "@lexingtonthemes/seo": "^0.2.0", diff --git a/playwright.config.ts b/playwright.config.ts index cbfeaaac7..14a60b484 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -3,6 +3,7 @@ import { defineConfig } from "@playwright/test" export default defineConfig({ testDir: "./tests", + testMatch: "visual.spec.ts", forbidOnly: !!process.env.CI, workers: 2, reporter: [ diff --git a/playwright.interactions.config.ts b/playwright.interactions.config.ts new file mode 100644 index 000000000..0c9c06cdc --- /dev/null +++ b/playwright.interactions.config.ts @@ -0,0 +1,42 @@ +import { defineConfig } from "@playwright/test" + +import config from "./playwright.config" + +export default defineConfig({ + ...config, + testMatch: ["data-slot.spec.ts", "clipboard.spec.ts"], + reporter: [["list"]], + use: { + ...config.use, + reducedMotion: "no-preference", + trace: "retain-on-failure", + }, + projects: [ + { + name: "chromium-desktop", + use: { browserName: "chromium", viewport: { width: 1440, height: 1000 } }, + }, + { + name: "chromium-mobile", + use: { + browserName: "chromium", + viewport: { width: 390, height: 844 }, + isMobile: true, + hasTouch: true, + }, + }, + { + name: "webkit-desktop", + use: { browserName: "webkit", viewport: { width: 1440, height: 1000 } }, + }, + { + name: "webkit-mobile", + use: { + browserName: "webkit", + viewport: { width: 390, height: 844 }, + isMobile: true, + hasTouch: true, + }, + }, + ], +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0cc9ac3f9..ac67d3077 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,59 +15,59 @@ importers: specifier: ^3.7.3 version: 3.7.3 '@data-slot/accordion': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/alert-dialog': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/collapsible': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/combobox': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/command': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/core': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/dialog': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/dropdown-menu': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/hover-card': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/navigation-menu': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/popover': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/radio-group': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/select': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/slider': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/switch': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/tabs': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/toggle': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@data-slot/tooltip': - specifier: ^0.2.166 - version: 0.2.166 + specifier: ^1.0.1 + version: 1.0.1 '@fontsource-variable/geist': specifier: ^5.2.9 version: 5.3.0 @@ -444,59 +444,59 @@ packages: resolution: {integrity: sha512-GgcWwRCs/xPtaqlMy8qRhPnZf9vlWcWZNHAitnVQ3yk7JmSralSiq5q07yaffYE8SogtDm7zFeKccx1QNVARpw==} engines: {node: '>= 20.12.0'} - '@data-slot/accordion@0.2.166': - resolution: {integrity: sha512-MViSr1Nikj5PqL8aFTQMonG/9SHXYskWK0DTc8OyUvLBg5x2mwTQVTwlPxy114ZH4BMOAYlTXpZ+XuvOrDgH9Q==} + '@data-slot/accordion@1.0.1': + resolution: {integrity: sha512-gmg671YTOia+c3zM42FAikylWLpDd84UN0/fg2JvTD821bspm8t7Du+ILX2aJlWoGZEkxk6At/aqOpMEsQMajA==} - '@data-slot/alert-dialog@0.2.166': - resolution: {integrity: sha512-o+ne7Yjc56hteXai6KU/KsHjY0DunpOImHgrS3+K9KEhtUNtM6UAKhkA1C2FBOvHCvasZ8qdCPeWa6wME7MiAA==} + '@data-slot/alert-dialog@1.0.1': + resolution: {integrity: sha512-+3oTGvS9gVb35XcAJZRf6yAM5P7Pb/3r9TS4t++DkX0KLSnKjJ21WG8aUS1A42qNDc+twUlqcc3CLGDxtKIl2w==} - '@data-slot/collapsible@0.2.166': - resolution: {integrity: sha512-C1QhlaGVkV0OhB5Xa7bj/U4SZLbtMaotgZgxoq/3FXmtFbkEzU1dvumNdYWs5+6Wnwb4Pr+KfJdxfVBN1ofT1w==} + '@data-slot/collapsible@1.0.1': + resolution: {integrity: sha512-y0ugQ7+nvB9qWYcwP4fNRew+W0MJYMa+dgqbPZLB9Ga3eGu0KLC7wfA5iGxg592rGN2xjohl5ixGNuhaWvObng==} - '@data-slot/combobox@0.2.166': - resolution: {integrity: sha512-BPF4WKfTFeiksrlp8kyU7g3iEuICY9EBoWzrrzDWmq8di3nDI3phAO2f42M6xG7JSNf6Rvu9K8IsXzOyZk5DXA==} + '@data-slot/combobox@1.0.1': + resolution: {integrity: sha512-GefwzKOn849DA32laG4QttII1rVdJ+I1sqTi4vAeyHhaK4DnJfJq85T563DCIR1TGTEefSsFZTzxjFlniwZgbg==} - '@data-slot/command@0.2.166': - resolution: {integrity: sha512-+RRwXkjspJeD7gHYgVUXxvF/CkGFJS6OvRauUNhxvbaMxdCLf3KkOinFv/RKtzRFaOEEkjpanFy/DrO9agy3Cw==} + '@data-slot/command@1.0.1': + resolution: {integrity: sha512-vkgJvBr4HjSIsILOObtzuXz2A0YujzEqfRJe0dZsbDuSnMxSTVfTk5UuDNMOB3n65Q2dEthKrSYX280x0Q/u0A==} - '@data-slot/core@0.2.166': - resolution: {integrity: sha512-/DuzMFIqiefdjheX5fMhaqs4YPp0/t+/pN9EgnB2jLSDk8384WkBCPGq76T/Ypb0MjVlHFiexKDnx9+k+bdcjw==} + '@data-slot/core@1.0.1': + resolution: {integrity: sha512-hR5970E+ANJoawzd2LSCxnMYl+pe0VMj1IZVWYlG1UDTS+n55QrvuITMwj35+gLOCCbABhD5IMBnIJp3aVZoJA==} - '@data-slot/dialog@0.2.166': - resolution: {integrity: sha512-ioMkbfCMVt4x8VrNEa0V32ncs57Q3GEVqEn+uDUBoOU6Qyv2q1ebI0IMkK/54kSeUHut7FilECGUJzuvc7TJAQ==} + '@data-slot/dialog@1.0.1': + resolution: {integrity: sha512-0xtsy0p3m4082rVK8IBgJjPcav5pXYYemj7VxfTR/1OGcqXL8wu2m05HH+fKYANEPd4iHsULjX5AWbEC9l9Z7A==} - '@data-slot/dropdown-menu@0.2.166': - resolution: {integrity: sha512-8U9jUWlufUmHf75+w/10GHVNDc9XjfJCjVKuBWhkFbTFq68ROCzb+g/DugI/uXxz08qZWmky4nQK9kStjlet5A==} + '@data-slot/dropdown-menu@1.0.1': + resolution: {integrity: sha512-JpB7ZXxpaOrG9rN7Q76xkBJwpToe9b1nc7QMbJpgmDbog03pfpyTUBQFhHjqOEK+sNUkabG3JfVAnGG0xwm75g==} - '@data-slot/hover-card@0.2.166': - resolution: {integrity: sha512-ravzEp74MzWDNY83y4nPoBpScEmzRsV1QnXS6+SB4fypUIfB7OiVwlEUQ0NfCM5CgqDFrx3nZsmUzqcJRxQKxA==} + '@data-slot/hover-card@1.0.1': + resolution: {integrity: sha512-WQMXfc6RxYmc3t7R0N/Gjz3LkLeWSJqcBQuE4c+SgM4xaVXmoFxc7PEis1BE+JlmMwbLywrGubCWQo1n05yWjg==} - '@data-slot/navigation-menu@0.2.166': - resolution: {integrity: sha512-1yttL2tjMFsvQ4dfNMqC6MG5yABI7DGgK2Un89NGEXAG37uPmai5/KTf+68VO9gQhhLlmUkmvokyIFBFoBkF/A==} + '@data-slot/navigation-menu@1.0.1': + resolution: {integrity: sha512-qSFqHpUN93dui/VPKYgFlHp7s9pNPrEoXofJVPFkZMHnaa9+HAmfoQbPHWn6xHfHplGF6AUIUccEOm3qtpUkZg==} - '@data-slot/popover@0.2.166': - resolution: {integrity: sha512-NW35Efz0oEquMec1X4y/nVxTGOYPWEkcoErN3/wtj7QqRZtpyJnQMP2rxm59+il9kvUIdUCAgtWl9CyIg55CXw==} + '@data-slot/popover@1.0.1': + resolution: {integrity: sha512-4/FhCz5w6MRhXVB8hquZO0W5uyrwNTDu/UdUsavzWfNVK9pmFt4Rc7xjK6KH/uMqIu8gvxAYAsVDaFaOFsflHA==} - '@data-slot/radio-group@0.2.166': - resolution: {integrity: sha512-0CDJD3e+ap2o7REO5KPj8hkB75V/d3okiCaUmg3bDo+xzOkIxJ1qnif/I4QG5rRok9QBOcDjLYoyfY2Zjm9cVg==} + '@data-slot/radio-group@1.0.1': + resolution: {integrity: sha512-HCAmwdjBHY69R/q6V1k6Xc88lzfUP4idXQoOUkWwwKqqlP2DXH2NEuk9/p0zSBXDKerY8qg8UI0Ldvff/ydnIA==} - '@data-slot/select@0.2.166': - resolution: {integrity: sha512-8HVsjcs9LqjXfYRfK7SiuTuZirjx5DQWbSrrdifynWOwif0C9eXYrah6FR5kla9jr2/CsaoUEBlHHVsNnosNqg==} + '@data-slot/select@1.0.1': + resolution: {integrity: sha512-megYWB6aa1OupAFmQeTiRLO0cKmXyvJvS6Tht6P/gc59ioduxGLdU1SjIZS1XVK6ejN2FfXKOgx4dSsqZLwzpA==} - '@data-slot/slider@0.2.166': - resolution: {integrity: sha512-VuQmb1+xn9X05vSDvaz4PIbvH23K0U1azLgwUyOeUyr8WSCxcUObTbvpEPcXyGsQQySt9GEO5bX3qYLdgaMyWA==} + '@data-slot/slider@1.0.1': + resolution: {integrity: sha512-1h41stz/cZXk2HStHgAqzH/ymaiNAg6tN51HS62WnL0m4y3MJ3OvKhXKp8hdd8PgXpg5CPxrPj5k57eVzMvF1g==} - '@data-slot/switch@0.2.166': - resolution: {integrity: sha512-2AipHTGEiCfCOCGjKzlo2jAJ9hEN8+YbI90PrLLG8Q71TB8kNRWSdvE6hJhRzLJI0Ymdi89bVvd/DGEN38JVtA==} + '@data-slot/switch@1.0.1': + resolution: {integrity: sha512-q5Y0vwuKTro/FbZAjf67CcFK+Bl7MZoA4TOyvPPtlIeRcNmblx1Bn1OQxwpwtAE5nObNCo7l3ily3OcssAk5pw==} - '@data-slot/tabs@0.2.166': - resolution: {integrity: sha512-nM+kE5IgZeyX+fUq+LUiDQrbB1F47WcLtmwTngVShsMJcjFUJPrLI8snadcWJ2xD34yi6Jeq3X7iNFjK9tYfXQ==} + '@data-slot/tabs@1.0.1': + resolution: {integrity: sha512-hnr1PJhVbX+yKEAbGgo+/ITAY/Ibegxqb6G5+IFTfukQ5zJOapxrlHr4M0ERlmAKy/nNQGs830DbI5JQbBTNaA==} - '@data-slot/toggle@0.2.166': - resolution: {integrity: sha512-L9ejpPH75UA8zdbr1wb3DYF/nD7h+VdyyvYgJjGzjQ6J65O5s6qn8jEbPHQPlSQwyjoHyqMWvNoU359j648+BA==} + '@data-slot/toggle@1.0.1': + resolution: {integrity: sha512-ktkHGv/E3razY5+LGXyVC9hAwnNHZkXViBE3uyWEaO4leW/0ui4le7Fepg37J6PmK4hQTqhTMDKC1Gfs1ccHTQ==} - '@data-slot/tooltip@0.2.166': - resolution: {integrity: sha512-tpt0oqhiMhp0AeTG23S0iW27SGrRcaUZt0h3IK7H6z/a1LwCItl+8PUqqaSaHKUKlOc4oyccES4ZxlsOxW1jvA==} + '@data-slot/tooltip@1.0.1': + resolution: {integrity: sha512-Fmv/KqjnaoreUAbOMy1QsZnwGEFTh5eVFuWtOrp/a7J6NFi2oQNyzuqq3ZTx9lVJqSuSAkjPFk+FID3RDdyVUw==} '@dotenvx/dotenvx@1.64.0': resolution: {integrity: sha512-6+xRpZaWuHXEqnhBjae+VmQI9Uaqw5Uzu/ScpO+W7ww9Zp3lHSNBoNjFcUxhrCyc7pRGQzyDjhKzloqrPHERiQ==} @@ -4835,75 +4835,75 @@ snapshots: fast-wrap-ansi: 0.2.0 sisteransi: 1.0.5 - '@data-slot/accordion@0.2.166': + '@data-slot/accordion@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/alert-dialog@0.2.166': + '@data-slot/alert-dialog@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/collapsible@0.2.166': + '@data-slot/collapsible@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/combobox@0.2.166': + '@data-slot/combobox@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/command@0.2.166': + '@data-slot/command@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/core@0.2.166': {} + '@data-slot/core@1.0.1': {} - '@data-slot/dialog@0.2.166': + '@data-slot/dialog@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/dropdown-menu@0.2.166': + '@data-slot/dropdown-menu@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/hover-card@0.2.166': + '@data-slot/hover-card@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/navigation-menu@0.2.166': + '@data-slot/navigation-menu@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/popover@0.2.166': + '@data-slot/popover@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/radio-group@0.2.166': + '@data-slot/radio-group@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/select@0.2.166': + '@data-slot/select@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/slider@0.2.166': + '@data-slot/slider@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/switch@0.2.166': + '@data-slot/switch@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/tabs@0.2.166': + '@data-slot/tabs@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/toggle@0.2.166': + '@data-slot/toggle@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 - '@data-slot/tooltip@0.2.166': + '@data-slot/tooltip@1.0.1': dependencies: - '@data-slot/core': 0.2.166 + '@data-slot/core': 1.0.1 '@dotenvx/dotenvx@1.64.0': dependencies: diff --git a/public/r/accordion.json b/public/r/accordion.json index c72d0a559..1304ffd9c 100644 --- a/public/r/accordion.json +++ b/public/r/accordion.json @@ -4,13 +4,13 @@ "title": "Accordion", "description": "A vertically stacked set of interactive headings that each reveal a section of content.", "dependencies": [ - "@data-slot/accordion", + "@data-slot/accordion@^1.0.1", "@lucide/astro" ], "files": [ { "path": "src/components/ui/accordion/accordion.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n multiple?: boolean\n defaultValue?: string | string[]\n disabled?: boolean\n orientation?: \"horizontal\" | \"vertical\"\n loopFocus?: boolean\n hiddenUntilFound?: boolean\n collapsible?: boolean\n}\n\nconst {\n class: className,\n multiple,\n defaultValue,\n disabled,\n orientation = \"vertical\",\n loopFocus,\n hiddenUntilFound,\n collapsible,\n ...props\n} = Astro.props\n\nconst serializedDefaultValue = Array.isArray(defaultValue)\n ? JSON.stringify(defaultValue)\n : defaultValue\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n multiple?: boolean\n defaultValue?: string | string[]\n disabled?: boolean\n orientation?: \"horizontal\" | \"vertical\"\n loopFocus?: boolean\n hiddenUntilFound?: boolean\n collapsible?: boolean\n}\n\nconst {\n class: className,\n multiple,\n defaultValue,\n disabled,\n orientation = \"vertical\",\n loopFocus,\n hiddenUntilFound,\n collapsible,\n ...props\n} = Astro.props\n\nconst serializedDefaultValue = Array.isArray(defaultValue)\n ? JSON.stringify(defaultValue)\n : defaultValue\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/alert-dialog.json b/public/r/alert-dialog.json index 33e3b4c60..e0fa792c0 100644 --- a/public/r/alert-dialog.json +++ b/public/r/alert-dialog.json @@ -4,7 +4,7 @@ "title": "Alert Dialog", "description": "A modal dialog for important confirmations that expects a response.", "dependencies": [ - "@data-slot/alert-dialog" + "@data-slot/alert-dialog@^1.0.1" ], "registryDependencies": [ "@fulldev/button" @@ -12,7 +12,7 @@ "files": [ { "path": "src/components/ui/alert-dialog/alert-dialog.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n closeOnClickOutside,\n closeOnEscape,\n lockScroll,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n closeOnClickOutside,\n closeOnEscape,\n lockScroll,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/banner.json b/public/r/banner.json index 24175e7b7..30db587b7 100644 --- a/public/r/banner.json +++ b/public/r/banner.json @@ -6,10 +6,6 @@ "dependencies": [ "@lucide/astro" ], - "registryDependencies": [ - "@fulldev/button", - "@fulldev/dropdown-menu" - ], "files": [ { "path": "src/components/ui/banner/banner.astro", diff --git a/public/r/blocks-1.json b/public/r/blocks-1.json index eeb6cfdd3..3b685f5c0 100644 --- a/public/r/blocks-1.json +++ b/public/r/blocks-1.json @@ -15,7 +15,7 @@ "files": [ { "path": "src/components/blocks/blocks-1.astro", - "content": "---\nimport ArrowLeft from \"@lucide/astro/icons/arrow-left\"\nimport ArrowRight from \"@lucide/astro/icons/arrow-right\"\nimport Check from \"@lucide/astro/icons/check\"\nimport ChevronDown from \"@lucide/astro/icons/chevron-down\"\nimport Copy from \"@lucide/astro/icons/copy\"\nimport ExternalLink from \"@lucide/astro/icons/external-link\"\nimport Claude from \"simple-icons-astro/Claude\"\nimport Cursor from \"simple-icons-astro/Cursor\"\nimport Markdown from \"simple-icons-astro/Markdown\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { buttonVariants } from \"@/components/ui/button/button-variants\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { SectionContainer } from \"@/components/ui/section\"\nimport {\n Typography,\n TypographyH1,\n TypographyLead,\n} from \"@/components/ui/typography\"\n\ntype Props = {\n class?: string\n title: string\n description?: string\n copyButton?: {\n id: string\n source: string\n }\n markdownUrl?: string\n previousPage?: {\n href: string\n title: string\n }\n nextPage?: {\n href: string\n title: string\n }\n labels: {\n copyMarkdown: string\n openIn: string\n openInMarkdown: string\n openInChatGPT: string\n openInClaude: string\n openInCursor: string\n pagination: {\n previous: string\n next: string\n ariaLabel: string\n }\n }\n}\n\nconst {\n class: className,\n title,\n description,\n copyButton,\n markdownUrl,\n previousPage,\n nextPage,\n labels,\n} = Astro.props\nconst showCopyButton = Boolean(copyButton)\nconst showOpenButton = Boolean(markdownUrl)\nconst showPagination = Boolean(previousPage || nextPage)\nconst assistantPrompt = markdownUrl\n ? `Read ${new URL(markdownUrl, Astro.site ?? Astro.url.origin).href}, I want to ask questions about it.`\n : \"\"\nconst openLinks = markdownUrl\n ? [\n {\n label: labels.openInMarkdown,\n href: markdownUrl,\n icon: \"markdown\",\n },\n {\n label: labels.openInChatGPT,\n href: `https://chatgpt.com/?hints=search&q=${encodeURIComponent(assistantPrompt)}`,\n icon: \"chatgpt\",\n },\n {\n label: labels.openInClaude,\n href: `https://claude.ai/new?q=${encodeURIComponent(assistantPrompt)}`,\n icon: \"claude\",\n },\n {\n label: labels.openInCursor,\n href: `https://cursor.com/link/prompt?text=${encodeURIComponent(assistantPrompt)}`,\n icon: \"cursor\",\n },\n ]\n : []\n---\n\n\n
\n \n
\n \n {title}\n \n {\n description && (\n \n {description}\n \n )\n }\n
\n
\n {\n showCopyButton && (\n \n \n
\n \n\n \n \n \n\n {\n showPagination && (\n \n {previousPage ? (\n \n \n \n {previousPage.title}\n \n \n ) : (\n
\n )}\n\n {nextPage ? (\n \n {nextPage.title}\n \n \n ) : (\n
\n )}\n \n )\n }\n
\n\n\n\n", + "content": "---\nimport ArrowLeft from \"@lucide/astro/icons/arrow-left\"\nimport ArrowRight from \"@lucide/astro/icons/arrow-right\"\nimport Check from \"@lucide/astro/icons/check\"\nimport ChevronDown from \"@lucide/astro/icons/chevron-down\"\nimport Copy from \"@lucide/astro/icons/copy\"\nimport ExternalLink from \"@lucide/astro/icons/external-link\"\nimport Claude from \"simple-icons-astro/Claude\"\nimport Cursor from \"simple-icons-astro/Cursor\"\nimport Markdown from \"simple-icons-astro/Markdown\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { buttonVariants } from \"@/components/ui/button/button-variants\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { SectionContainer } from \"@/components/ui/section\"\nimport {\n Typography,\n TypographyH1,\n TypographyLead,\n} from \"@/components/ui/typography\"\n\ntype Props = {\n class?: string\n title: string\n description?: string\n copyButton?: {\n id: string\n source: string\n }\n markdownUrl?: string\n previousPage?: {\n href: string\n title: string\n }\n nextPage?: {\n href: string\n title: string\n }\n labels: {\n copyMarkdown: string\n openIn: string\n openInMarkdown: string\n openInChatGPT: string\n openInClaude: string\n openInCursor: string\n pagination: {\n previous: string\n next: string\n ariaLabel: string\n }\n }\n}\n\nconst {\n class: className,\n title,\n description,\n copyButton,\n markdownUrl,\n previousPage,\n nextPage,\n labels,\n} = Astro.props\nconst showCopyButton = Boolean(copyButton)\nconst showOpenButton = Boolean(markdownUrl)\nconst showPagination = Boolean(previousPage || nextPage)\nconst assistantPrompt = markdownUrl\n ? `Read ${new URL(markdownUrl, Astro.site ?? Astro.url.origin).href}, I want to ask questions about it.`\n : \"\"\nconst openLinks = markdownUrl\n ? [\n {\n label: labels.openInMarkdown,\n href: markdownUrl,\n icon: \"markdown\",\n },\n {\n label: labels.openInChatGPT,\n href: `https://chatgpt.com/?hints=search&q=${encodeURIComponent(assistantPrompt)}`,\n icon: \"chatgpt\",\n },\n {\n label: labels.openInClaude,\n href: `https://claude.ai/new?q=${encodeURIComponent(assistantPrompt)}`,\n icon: \"claude\",\n },\n {\n label: labels.openInCursor,\n href: `https://cursor.com/link/prompt?text=${encodeURIComponent(assistantPrompt)}`,\n icon: \"cursor\",\n },\n ]\n : []\n---\n\n\n
\n \n
\n \n {title}\n \n {\n description && (\n \n {description}\n \n )\n }\n
\n
\n {\n showCopyButton && (\n \n \n
\n \n\n \n \n \n\n {\n showPagination && (\n \n {previousPage ? (\n \n \n \n {previousPage.title}\n \n \n ) : (\n
\n )}\n\n {nextPage ? (\n \n {nextPage.title}\n \n \n ) : (\n
\n )}\n \n )\n }\n
\n\n\n\n", "type": "registry:block" } ], diff --git a/public/r/button.json b/public/r/button.json index 91ea3f16b..e763548de 100644 --- a/public/r/button.json +++ b/public/r/button.json @@ -11,7 +11,7 @@ }, { "path": "src/components/ui/button/button.astro", - "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,\n size,\n ...props\n} = Astro.props\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,\n size,\n ...props\n} = Astro.props\n\nconst attributes: Record = { ...props }\nif (Tag === \"button\") attributes.type ??= \"button\"\n---\n\n\n \n\n", "type": "registry:ui" }, { diff --git a/public/r/collapsible.json b/public/r/collapsible.json index 499610926..e1cc26faf 100644 --- a/public/r/collapsible.json +++ b/public/r/collapsible.json @@ -4,12 +4,12 @@ "title": "Collapsible", "description": "An interactive component which expands/collapses a panel.", "dependencies": [ - "@data-slot/collapsible" + "@data-slot/collapsible@^1.0.1" ], "files": [ { "path": "src/components/ui/collapsible/collapsible.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n hiddenUntilFound?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n hiddenUntilFound,\n ...props\n} = Astro.props\n---\n\n\n \n
\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n hiddenUntilFound?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n hiddenUntilFound,\n ...props\n} = Astro.props\n---\n\n\n \n
\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/combobox.json b/public/r/combobox.json index dd913b851..779c7f22c 100644 --- a/public/r/combobox.json +++ b/public/r/combobox.json @@ -4,7 +4,8 @@ "title": "Combobox", "description": "Autocomplete input with a list of suggestions.", "dependencies": [ - "@data-slot/combobox", + "@data-slot/combobox@^1.0.1", + "@data-slot/core@^1.0.1", "@lucide/astro" ], "registryDependencies": [ @@ -13,12 +14,12 @@ "files": [ { "path": "src/components/ui/combobox/combobox.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type {\n Align as ComboboxAlign,\n Side as ComboboxSide,\n} from \"@data-slot/combobox\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n defaultOpen?: boolean\n placeholder?: string\n disabled?: boolean\n required?: boolean\n name?: string\n openOnFocus?: boolean\n autoHighlight?: boolean\n side?: ComboboxSide\n align?: ComboboxAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n defaultValue,\n defaultOpen,\n placeholder,\n disabled,\n required,\n name,\n openOnFocus,\n autoHighlight,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n\n \n
\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type {\n Align as ComboboxAlign,\n Side as ComboboxSide,\n} from \"@data-slot/combobox\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n defaultOpen?: boolean\n placeholder?: string\n disabled?: boolean\n required?: boolean\n name?: string\n openOnFocus?: boolean\n autoHighlight?: boolean\n side?: ComboboxSide\n align?: ComboboxAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n defaultValue,\n defaultOpen,\n placeholder,\n disabled,\n required,\n name,\n openOnFocus,\n autoHighlight,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n\n \n
\n\n\n", "type": "registry:ui" }, { "path": "src/components/ui/combobox/combobox-content.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type {\n Align as ComboboxAlign,\n Side as ComboboxSide,\n} from \"@data-slot/combobox\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: ComboboxSide\n align?: ComboboxAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n hidden = true,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type {\n Align as ComboboxAlign,\n Side as ComboboxSide,\n} from \"@data-slot/combobox\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: ComboboxSide\n align?: ComboboxAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n hidden = true,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n\n", "type": "registry:ui" }, { diff --git a/public/r/command.json b/public/r/command.json index fc464541d..7c998ba23 100644 --- a/public/r/command.json +++ b/public/r/command.json @@ -4,8 +4,9 @@ "title": "Command", "description": "Command menu for search and quick actions.", "dependencies": [ - "@data-slot/command", - "@lucide/astro" + "@data-slot/command@^1.0.1", + "@lucide/astro", + "@data-slot/core@^1.0.1" ], "registryDependencies": [ "@fulldev/dialog" @@ -13,12 +14,12 @@ "files": [ { "path": "src/components/ui/command/command.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n label?: string\n defaultValue?: string\n defaultSearch?: string\n shouldFilter?: boolean\n loop?: boolean\n disablePointerSelection?: boolean\n vimBindings?: boolean\n}\n\nconst {\n class: className,\n label,\n defaultValue,\n defaultSearch,\n shouldFilter,\n loop,\n disablePointerSelection,\n vimBindings,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n label?: string\n defaultValue?: string\n defaultSearch?: string\n shouldFilter?: boolean\n loop?: boolean\n disablePointerSelection?: boolean\n vimBindings?: boolean\n}\n\nconst {\n class: className,\n label,\n defaultValue,\n defaultSearch,\n shouldFilter,\n loop,\n disablePointerSelection,\n vimBindings,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { "path": "src/components/ui/command/command-dialog.astro", - "content": "---\nimport type { ComponentProps } from \"astro/types\"\n\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogTitle,\n} from \"@/components/ui/dialog\"\n\ntype Props = ComponentProps & {\n title?: string\n description?: string\n contentClass?: string\n showCloseButton?: boolean\n}\n\nconst {\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n contentClass,\n showCloseButton = false,\n ...props\n} = Astro.props\n---\n\n\n \n
\n {title}\n {description}\n
\n \n \n
\n", + "content": "---\nimport type { ComponentProps } from \"astro/types\"\n\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogTitle,\n} from \"@/components/ui/dialog\"\n\ntype Props = ComponentProps & {\n title?: string\n description?: string\n contentClass?: string\n showCloseButton?: boolean\n}\n\nconst {\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n contentClass,\n showCloseButton = false,\n ...props\n} = Astro.props\n---\n\n\n \n \n
\n {title}\n {description}\n
\n \n \n
\n", "type": "registry:ui" }, { diff --git a/public/r/dialog.json b/public/r/dialog.json index 73fce0fd3..7efc1928a 100644 --- a/public/r/dialog.json +++ b/public/r/dialog.json @@ -4,7 +4,7 @@ "title": "Dialog", "description": "A window overlaid on either the primary window or another dialog window, rendering the content underneath inert.", "dependencies": [ - "@data-slot/dialog", + "@data-slot/dialog@^1.0.1", "@lucide/astro" ], "registryDependencies": [ @@ -13,7 +13,7 @@ "files": [ { "path": "src/components/ui/dialog/dialog.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n lockScroll?: boolean\n alertDialog?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n closeOnClickOutside,\n closeOnEscape,\n lockScroll,\n alertDialog,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n lockScroll?: boolean\n alertDialog?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n closeOnClickOutside,\n closeOnEscape,\n lockScroll,\n alertDialog,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/doc-1.json b/public/r/doc-1.json index 9a98563c3..c83d79bea 100644 --- a/public/r/doc-1.json +++ b/public/r/doc-1.json @@ -18,7 +18,7 @@ "files": [ { "path": "src/components/blocks/doc-1.astro", - "content": "---\nimport ArrowLeft from \"@lucide/astro/icons/arrow-left\"\nimport ArrowRight from \"@lucide/astro/icons/arrow-right\"\nimport Check from \"@lucide/astro/icons/check\"\nimport ChevronDown from \"@lucide/astro/icons/chevron-down\"\nimport Copy from \"@lucide/astro/icons/copy\"\nimport ExternalLink from \"@lucide/astro/icons/external-link\"\nimport Claude from \"simple-icons-astro/Claude\"\nimport Cursor from \"simple-icons-astro/Cursor\"\nimport Markdown from \"simple-icons-astro/Markdown\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { buttonVariants } from \"@/components/ui/button/button-variants\"\nimport {\n Card,\n CardDescription,\n CardFooter,\n CardHeader,\n} from \"@/components/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { SectionContainer } from \"@/components/ui/section\"\nimport {\n Toc,\n TocMenu,\n TocMenuItem,\n TocMenuLink,\n TocTitle,\n} from \"@/components/ui/toc\"\nimport {\n Typography,\n TypographyH1,\n TypographyLead,\n} from \"@/components/ui/typography\"\n\ntype Props = {\n class?: string\n title: string\n description?: string\n copyButton?: {\n id: string\n source: string\n }\n markdownUrl?: string\n tocItems: {\n depth: number\n href: string\n label: string\n }[]\n callout?: {\n description: string\n button: {\n label: string\n href: string\n variant?: \"default\" | \"outline\" | \"secondary\" | \"ghost\"\n }\n }\n previousPage?: {\n href: string\n title: string\n }\n nextPage?: {\n href: string\n title: string\n }\n labels: {\n copyMarkdown: string\n openIn: string\n openInMarkdown: string\n openInChatGPT: string\n openInClaude: string\n openInCursor: string\n pagination: {\n previous: string\n next: string\n ariaLabel: string\n }\n toc: string\n }\n}\n\nconst {\n class: className,\n title,\n description,\n copyButton,\n markdownUrl,\n tocItems,\n callout,\n previousPage,\n nextPage,\n labels,\n} = Astro.props\nconst showCopyButton = Boolean(copyButton)\nconst showOpenButton = Boolean(markdownUrl)\nconst showPagination = Boolean(previousPage || nextPage)\nconst assistantPrompt = markdownUrl\n ? `Read ${new URL(markdownUrl, Astro.site ?? Astro.url.origin).href}, I want to ask questions about it.`\n : \"\"\nconst openLinks = markdownUrl\n ? [\n {\n label: labels.openInMarkdown,\n href: markdownUrl,\n icon: \"markdown\",\n },\n {\n label: labels.openInChatGPT,\n href: `https://chatgpt.com/?hints=search&q=${encodeURIComponent(assistantPrompt)}`,\n icon: \"chatgpt\",\n },\n {\n label: labels.openInClaude,\n href: `https://claude.ai/new?q=${encodeURIComponent(assistantPrompt)}`,\n icon: \"claude\",\n },\n {\n label: labels.openInCursor,\n href: `https://cursor.com/link/prompt?text=${encodeURIComponent(assistantPrompt)}`,\n icon: \"cursor\",\n },\n ]\n : []\n---\n\n\n
\n \n
\n \n {title}\n \n {\n description && (\n \n {description}\n \n )\n }\n
\n
\n {\n showCopyButton && (\n \n \n
\n \n\n \n \n \n\n {\n showPagination && (\n \n {previousPage ? (\n \n \n \n {previousPage.title}\n \n \n ) : (\n
\n )}\n\n {nextPage ? (\n \n {nextPage.title}\n \n \n ) : (\n
\n )}\n \n )\n }\n
\n\n {\n (tocItems.length > 0 || callout) && (\n \n )\n }\n\n\n\n", + "content": "---\nimport ArrowLeft from \"@lucide/astro/icons/arrow-left\"\nimport ArrowRight from \"@lucide/astro/icons/arrow-right\"\nimport Check from \"@lucide/astro/icons/check\"\nimport ChevronDown from \"@lucide/astro/icons/chevron-down\"\nimport Copy from \"@lucide/astro/icons/copy\"\nimport ExternalLink from \"@lucide/astro/icons/external-link\"\nimport Claude from \"simple-icons-astro/Claude\"\nimport Cursor from \"simple-icons-astro/Cursor\"\nimport Markdown from \"simple-icons-astro/Markdown\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { buttonVariants } from \"@/components/ui/button/button-variants\"\nimport {\n Card,\n CardDescription,\n CardFooter,\n CardHeader,\n} from \"@/components/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { SectionContainer } from \"@/components/ui/section\"\nimport {\n Toc,\n TocMenu,\n TocMenuItem,\n TocMenuLink,\n TocTitle,\n} from \"@/components/ui/toc\"\nimport {\n Typography,\n TypographyH1,\n TypographyLead,\n} from \"@/components/ui/typography\"\n\ntype Props = {\n class?: string\n title: string\n description?: string\n copyButton?: {\n id: string\n source: string\n }\n markdownUrl?: string\n tocItems: {\n depth: number\n href: string\n label: string\n }[]\n callout?: {\n description: string\n button: {\n label: string\n href: string\n variant?: \"default\" | \"outline\" | \"secondary\" | \"ghost\"\n }\n }\n previousPage?: {\n href: string\n title: string\n }\n nextPage?: {\n href: string\n title: string\n }\n labels: {\n copyMarkdown: string\n openIn: string\n openInMarkdown: string\n openInChatGPT: string\n openInClaude: string\n openInCursor: string\n pagination: {\n previous: string\n next: string\n ariaLabel: string\n }\n toc: string\n }\n}\n\nconst {\n class: className,\n title,\n description,\n copyButton,\n markdownUrl,\n tocItems,\n callout,\n previousPage,\n nextPage,\n labels,\n} = Astro.props\nconst showCopyButton = Boolean(copyButton)\nconst showOpenButton = Boolean(markdownUrl)\nconst showPagination = Boolean(previousPage || nextPage)\nconst assistantPrompt = markdownUrl\n ? `Read ${new URL(markdownUrl, Astro.site ?? Astro.url.origin).href}, I want to ask questions about it.`\n : \"\"\nconst openLinks = markdownUrl\n ? [\n {\n label: labels.openInMarkdown,\n href: markdownUrl,\n icon: \"markdown\",\n },\n {\n label: labels.openInChatGPT,\n href: `https://chatgpt.com/?hints=search&q=${encodeURIComponent(assistantPrompt)}`,\n icon: \"chatgpt\",\n },\n {\n label: labels.openInClaude,\n href: `https://claude.ai/new?q=${encodeURIComponent(assistantPrompt)}`,\n icon: \"claude\",\n },\n {\n label: labels.openInCursor,\n href: `https://cursor.com/link/prompt?text=${encodeURIComponent(assistantPrompt)}`,\n icon: \"cursor\",\n },\n ]\n : []\n---\n\n\n
\n \n
\n \n {title}\n \n {\n description && (\n \n {description}\n \n )\n }\n
\n
\n {\n showCopyButton && (\n \n \n
\n \n\n \n \n \n\n {\n showPagination && (\n \n {previousPage ? (\n \n \n \n {previousPage.title}\n \n \n ) : (\n
\n )}\n\n {nextPage ? (\n \n {nextPage.title}\n \n \n ) : (\n
\n )}\n \n )\n }\n
\n\n {\n (tocItems.length > 0 || callout) && (\n \n )\n }\n\n\n\n", "type": "registry:block" } ], diff --git a/public/r/dropdown-menu.json b/public/r/dropdown-menu.json index 3d80de76e..58bba60c2 100644 --- a/public/r/dropdown-menu.json +++ b/public/r/dropdown-menu.json @@ -4,13 +4,13 @@ "title": "Dropdown Menu", "description": "Displays a menu to the user, such as a set of actions or functions, triggered by a button.", "dependencies": [ - "@data-slot/dropdown-menu", + "@data-slot/dropdown-menu@^1.0.1", "@lucide/astro" ], "files": [ { "path": "src/components/ui/dropdown-menu/dropdown-menu.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Side } from \"@data-slot/dropdown-menu\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n defaultValue?: string | null\n defaultValues?: string[]\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n closeOnSelect?: boolean\n highlightItemOnHover?: boolean\n side?: Side\n align?: Align\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n defaultValue,\n defaultValues,\n closeOnClickOutside,\n closeOnEscape,\n closeOnSelect,\n highlightItemOnHover,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n lockScroll,\n ...props\n} = Astro.props\n\nconst defaultValuesAttr =\n defaultValues === undefined ? undefined : JSON.stringify(defaultValues)\n---\n\n\n \n
\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Side } from \"@data-slot/dropdown-menu\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n defaultValue?: string | null\n defaultValues?: string[]\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n closeOnSelect?: boolean\n highlightItemOnHover?: boolean\n side?: Side\n align?: Align\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n defaultValue,\n defaultValues,\n closeOnClickOutside,\n closeOnEscape,\n closeOnSelect,\n highlightItemOnHover,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n lockScroll,\n ...props\n} = Astro.props\n\nconst defaultValuesAttr =\n defaultValues === undefined ? undefined : JSON.stringify(defaultValues)\n---\n\n\n \n
\n\n\n", "type": "registry:ui" }, { @@ -20,12 +20,12 @@ }, { "path": "src/components/ui/dropdown-menu/dropdown-menu-content.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Side } from \"@data-slot/dropdown-menu\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: Side\n align?: Align\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n hidden = true,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n
\n
\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Side } from \"@data-slot/dropdown-menu\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: Side\n align?: Align\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n hidden = true,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n\n", "type": "registry:ui" }, { "path": "src/components/ui/dropdown-menu/dropdown-menu-item.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"button\"> & {\n disabled?: boolean\n variant?: \"default\" | \"destructive\"\n inset?: boolean\n}\n\nconst {\n class: className,\n type = \"button\",\n disabled,\n variant,\n inset,\n ...props\n} = Astro.props\n---\n\n\n \n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"button\"> &\n HTMLAttributes<\"a\"> & {\n as?: \"button\" | \"a\"\n disabled?: boolean\n variant?: \"default\" | \"destructive\"\n inset?: boolean\n }\n\nconst {\n as: Tag = \"href\" in Astro.props ? \"a\" : \"button\",\n class: className,\n type = \"button\",\n disabled,\n variant,\n inset,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/hover-card.json b/public/r/hover-card.json index 67dc7099e..e17759b5e 100644 --- a/public/r/hover-card.json +++ b/public/r/hover-card.json @@ -4,18 +4,18 @@ "title": "Hover Card", "description": "For sighted users to preview content available behind a link.", "dependencies": [ - "@data-slot/hover-card", - "@data-slot/core" + "@data-slot/hover-card@^1.0.1", + "@data-slot/core@^1.0.1" ], "files": [ { "path": "src/components/ui/hover-card/hover-card.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n delay?: number\n skipDelayDuration?: number\n closeDelay?: number\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n align?: \"start\" | \"center\" | \"end\"\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n portal?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n open,\n delay = 700,\n skipDelayDuration = 300,\n closeDelay = 300,\n side = \"bottom\",\n align = \"center\",\n sideOffset = 4,\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = 8,\n portal = true,\n closeOnClickOutside = true,\n closeOnEscape = true,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n mountStrategy?: \"lazy\" | \"eager\"\n defaultOpen?: boolean\n open?: boolean\n delay?: number\n skipDelayDuration?: number\n closeDelay?: number\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n align?: \"start\" | \"center\" | \"end\"\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n portal?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n}\n\nconst {\n mountStrategy,\n class: className,\n defaultOpen,\n open,\n delay = 700,\n skipDelayDuration = 300,\n closeDelay = 300,\n side = \"bottom\",\n align = \"center\",\n sideOffset = 4,\n alignOffset = 0,\n avoidCollisions = true,\n collisionPadding = 8,\n portal = true,\n closeOnClickOutside = true,\n closeOnEscape = true,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { "path": "src/components/ui/hover-card/hover-card-content.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n align?: \"start\" | \"center\" | \"end\"\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n hidden = true,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n align?: \"start\" | \"center\" | \"end\"\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n hidden = true,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n\n", "type": "registry:ui" }, { diff --git a/public/r/input-group.json b/public/r/input-group.json index 7de218bd8..45d73590f 100644 --- a/public/r/input-group.json +++ b/public/r/input-group.json @@ -5,7 +5,6 @@ "description": "Add addons, buttons, and helper content to inputs.", "registryDependencies": [ "@fulldev/button", - "@fulldev/dropdown-menu", "@fulldev/input", "@fulldev/textarea" ], diff --git a/public/r/layout.json b/public/r/layout.json index f5717dda0..17c0bfa73 100644 --- a/public/r/layout.json +++ b/public/r/layout.json @@ -3,6 +3,9 @@ "name": "layout", "title": "Layout", "description": "Page-shell primitives for the root html, head, body, and main structure.", + "dependencies": [ + "@lexingtonthemes/seo@^0.2.0" + ], "files": [ { "path": "src/components/ui/layout/layout.astro", diff --git a/public/r/navigation-menu.json b/public/r/navigation-menu.json index a41039a40..145ea44f9 100644 --- a/public/r/navigation-menu.json +++ b/public/r/navigation-menu.json @@ -4,13 +4,13 @@ "title": "Navigation Menu", "description": "A collection of links for navigating websites.", "dependencies": [ - "@data-slot/navigation-menu", + "@data-slot/navigation-menu@^1.0.1", "@lucide/astro" ], "files": [ { "path": "src/components/ui/navigation-menu/navigation-menu.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport NavigationMenuPositioner from \"./navigation-menu-positioner.astro\"\n\ntype Props = HTMLAttributes<\"nav\"> & {\n delayOpen?: number\n delayClose?: number\n openOnFocus?: boolean\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n align?: \"start\" | \"center\" | \"end\"\n sideOffset?: number\n alignOffset?: number\n positionMethod?: \"absolute\" | \"fixed\"\n safeTriangle?: boolean\n debugSafeTriangle?: boolean\n}\n\nconst {\n class: className = \"\",\n delayOpen = 0,\n delayClose = 0,\n openOnFocus,\n side = \"bottom\",\n align = \"start\",\n sideOffset = 0,\n alignOffset = 0,\n positionMethod = \"absolute\",\n safeTriangle,\n debugSafeTriangle,\n ...props\n} = Astro.props\n---\n\n\n \n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport NavigationMenuPositioner from \"./navigation-menu-positioner.astro\"\n\ntype Props = HTMLAttributes<\"nav\"> & {\n mountStrategy?: \"lazy\" | \"eager\"\n delayOpen?: number\n delayClose?: number\n openOnFocus?: boolean\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n align?: \"start\" | \"center\" | \"end\"\n sideOffset?: number\n alignOffset?: number\n positionMethod?: \"absolute\" | \"fixed\"\n safeTriangle?: boolean\n debugSafeTriangle?: boolean\n}\n\nconst {\n mountStrategy,\n class: className = \"\",\n delayOpen = 0,\n delayClose = 0,\n openOnFocus,\n side = \"bottom\",\n align = \"start\",\n sideOffset = 0,\n alignOffset = 0,\n positionMethod = \"absolute\",\n safeTriangle,\n debugSafeTriangle,\n ...props\n} = Astro.props\n---\n\n\n \n \n\n\n\n", "type": "registry:ui" }, { @@ -50,7 +50,7 @@ }, { "path": "src/components/ui/navigation-menu/navigation-menu-positioner.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n sideOffset?: number\n align?: \"start\" | \"center\" | \"end\"\n alignOffset?: number\n}\n\nconst {\n class: className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n ...props\n} = Astro.props\n---\n\n
\n \n \n \n
\n \n \n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n sideOffset?: number\n align?: \"start\" | \"center\" | \"end\"\n alignOffset?: number\n}\n\nconst {\n class: className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n ...props\n} = Astro.props\n---\n\n
\n \n \n \n
\n \n \n\n", "type": "registry:ui" }, { diff --git a/public/r/popover.json b/public/r/popover.json index f63bdd151..935120c9c 100644 --- a/public/r/popover.json +++ b/public/r/popover.json @@ -4,12 +4,12 @@ "title": "Popover", "description": "Displays rich content in a floating layer, triggered by a button.", "dependencies": [ - "@data-slot/popover" + "@data-slot/popover@^1.0.1" ], "files": [ { "path": "src/components/ui/popover/popover.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { PopoverAlign, PopoverSide } from \"@data-slot/popover\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n side?: PopoverSide\n align?: PopoverAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n portal?: boolean\n position?: PopoverSide\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n portal,\n position,\n closeOnClickOutside,\n closeOnEscape,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { PopoverAlign, PopoverSide } from \"@data-slot/popover\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n side?: PopoverSide\n align?: PopoverAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n portal?: boolean\n /** Compatibility alias. Prefer `side`. */\n position?: PopoverSide\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n portal,\n position,\n closeOnClickOutside,\n closeOnEscape,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { @@ -19,7 +19,7 @@ }, { "path": "src/components/ui/popover/popover-content.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { PopoverAlign, PopoverSide } from \"@data-slot/popover\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: PopoverSide\n align?: PopoverAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n position?: PopoverSide\n}\n\nconst {\n class: className,\n hidden = true,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n position,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { PopoverAlign, PopoverSide } from \"@data-slot/popover\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n side?: PopoverSide\n align?: PopoverAlign\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n /** Compatibility alias. Prefer `side`. */\n position?: PopoverSide\n}\n\nconst {\n class: className,\n hidden = true,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n position,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n\n", "type": "registry:ui" }, { diff --git a/public/r/radio-group.json b/public/r/radio-group.json index ef137f733..1f2625f85 100644 --- a/public/r/radio-group.json +++ b/public/r/radio-group.json @@ -4,12 +4,12 @@ "title": "Radio Group", "description": "A set of checkable buttons, known as radio buttons, where no more than one of the buttons can be checked at a time.", "dependencies": [ - "@data-slot/radio-group" + "@data-slot/radio-group@^1.0.1" ], "files": [ { "path": "src/components/ui/radio-group/radio-group.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n name?: string\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n name,\n disabled,\n readOnly,\n required,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n name?: string\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n name,\n disabled,\n readOnly,\n required,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/registry.json b/public/r/registry.json index e01ccf999..15d80d9e6 100644 --- a/public/r/registry.json +++ b/public/r/registry.json @@ -13,7 +13,7 @@ ], "docs": "https://ui.full.dev/components/accordion/", "dependencies": [ - "@data-slot/accordion", + "@data-slot/accordion@^1.0.1", "@lucide/astro" ], "files": [ @@ -77,7 +77,7 @@ ], "docs": "https://ui.full.dev/components/alert-dialog/", "dependencies": [ - "@data-slot/alert-dialog" + "@data-slot/alert-dialog@^1.0.1" ], "registryDependencies": [ "@fulldev/button" @@ -201,10 +201,6 @@ "dependencies": [ "@lucide/astro" ], - "registryDependencies": [ - "@fulldev/button", - "@fulldev/dropdown-menu" - ], "files": [ { "path": "src/components/ui/banner/banner.astro", @@ -365,7 +361,7 @@ ], "docs": "https://ui.full.dev/components/collapsible/", "dependencies": [ - "@data-slot/collapsible" + "@data-slot/collapsible@^1.0.1" ], "files": [ { @@ -396,7 +392,8 @@ ], "docs": "https://ui.full.dev/components/combobox/", "dependencies": [ - "@data-slot/combobox", + "@data-slot/combobox@^1.0.1", + "@data-slot/core@^1.0.1", "@lucide/astro" ], "registryDependencies": [ @@ -463,8 +460,9 @@ ], "docs": "https://ui.full.dev/components/command/", "dependencies": [ - "@data-slot/command", - "@lucide/astro" + "@data-slot/command@^1.0.1", + "@lucide/astro", + "@data-slot/core@^1.0.1" ], "registryDependencies": [ "@fulldev/dialog" @@ -522,7 +520,7 @@ ], "docs": "https://ui.full.dev/components/dialog/", "dependencies": [ - "@data-slot/dialog", + "@data-slot/dialog@^1.0.1", "@lucide/astro" ], "registryDependencies": [ @@ -585,7 +583,7 @@ ], "docs": "https://ui.full.dev/components/dropdown-menu/", "dependencies": [ - "@data-slot/dropdown-menu", + "@data-slot/dropdown-menu@^1.0.1", "@lucide/astro" ], "files": [ @@ -800,8 +798,8 @@ ], "docs": "https://ui.full.dev/components/hover-card/", "dependencies": [ - "@data-slot/hover-card", - "@data-slot/core" + "@data-slot/hover-card@^1.0.1", + "@data-slot/core@^1.0.1" ], "files": [ { @@ -877,7 +875,6 @@ "docs": "https://ui.full.dev/components/input-group/", "registryDependencies": [ "@fulldev/button", - "@fulldev/dropdown-menu", "@fulldev/input", "@fulldev/textarea" ], @@ -1131,7 +1128,7 @@ ], "docs": "https://ui.full.dev/components/navigation-menu/", "dependencies": [ - "@data-slot/navigation-menu", + "@data-slot/navigation-menu@^1.0.1", "@lucide/astro" ], "files": [ @@ -1218,7 +1215,7 @@ ], "docs": "https://ui.full.dev/components/popover/", "dependencies": [ - "@data-slot/popover" + "@data-slot/popover@^1.0.1" ], "files": [ { @@ -1293,7 +1290,7 @@ ], "docs": "https://ui.full.dev/components/radio-group/", "dependencies": [ - "@data-slot/radio-group" + "@data-slot/radio-group@^1.0.1" ], "files": [ { @@ -1343,7 +1340,7 @@ ], "docs": "https://ui.full.dev/components/select/", "dependencies": [ - "@data-slot/select", + "@data-slot/select@^1.0.1", "@lucide/astro" ], "files": [ @@ -1447,7 +1444,7 @@ ], "docs": "https://ui.full.dev/components/sheet/", "dependencies": [ - "@data-slot/dialog", + "@data-slot/dialog@^1.0.1", "@lucide/astro" ], "registryDependencies": [ @@ -1503,7 +1500,7 @@ ], "docs": "https://ui.full.dev/components/sidebar/", "dependencies": [ - "@data-slot/tooltip", + "@data-slot/tooltip@^1.0.1", "@lucide/astro" ], "registryDependencies": [ @@ -1624,7 +1621,7 @@ ], "docs": "https://ui.full.dev/components/slider/", "dependencies": [ - "@data-slot/slider" + "@data-slot/slider@^1.0.1" ], "files": [ { @@ -1690,7 +1687,7 @@ ], "docs": "https://ui.full.dev/components/switch/", "dependencies": [ - "@data-slot/switch" + "@data-slot/switch@^1.0.1" ], "files": [ { @@ -1761,7 +1758,7 @@ ], "docs": "https://ui.full.dev/components/tabs/", "dependencies": [ - "@data-slot/tabs" + "@data-slot/tabs@^1.0.1" ], "files": [ { @@ -1836,7 +1833,7 @@ ], "docs": "https://ui.full.dev/components/toggle/", "dependencies": [ - "@data-slot/toggle" + "@data-slot/toggle@^1.0.1" ], "files": [ { @@ -1883,7 +1880,7 @@ ], "docs": "https://ui.full.dev/components/tooltip/", "dependencies": [ - "@data-slot/tooltip" + "@data-slot/tooltip@^1.0.1" ], "files": [ { @@ -2076,6 +2073,9 @@ "ui" ], "docs": "https://ui.full.dev/components/layout/", + "dependencies": [ + "@lexingtonthemes/seo@^0.2.0" + ], "files": [ { "path": "src/components/ui/layout/layout.astro", diff --git a/public/r/select.json b/public/r/select.json index 38e9cb3d5..10b5ca1c3 100644 --- a/public/r/select.json +++ b/public/r/select.json @@ -4,13 +4,13 @@ "title": "Select", "description": "Displays a list of options for the user to pick from, triggered by a button.", "dependencies": [ - "@data-slot/select", + "@data-slot/select@^1.0.1", "@lucide/astro" ], "files": [ { "path": "src/components/ui/select/select.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Position, Side } from \"@data-slot/select\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: string\n defaultOpen?: boolean\n placeholder?: string\n disabled?: boolean\n required?: boolean\n name?: string\n position?: Position\n side?: Side\n align?: Align\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n highlightItemOnHover?: boolean\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n defaultOpen,\n placeholder,\n disabled,\n required,\n name,\n position,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n highlightItemOnHover,\n lockScroll,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Position, Side } from \"@data-slot/select\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n mountStrategy?: \"lazy\" | \"eager\"\n defaultValue?: string\n defaultOpen?: boolean\n placeholder?: string\n disabled?: boolean\n required?: boolean\n name?: string\n position?: Position\n side?: Side\n align?: Align\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n highlightItemOnHover?: boolean\n lockScroll?: boolean\n}\n\nconst {\n mountStrategy,\n class: className,\n defaultValue,\n defaultOpen,\n placeholder,\n disabled,\n required,\n name,\n position,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n highlightItemOnHover,\n lockScroll,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { @@ -25,7 +25,7 @@ }, { "path": "src/components/ui/select/select-content.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Position, Side } from \"@data-slot/select\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n position?: Position\n side?: Side\n align?: Align\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n hidden = true,\n position,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n \n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Position, Side } from \"@data-slot/select\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n position?: Position\n side?: Side\n align?: Align\n sideOffset?: number\n alignOffset?: number\n avoidCollisions?: boolean\n collisionPadding?: number\n}\n\nconst {\n class: className,\n hidden = true,\n position,\n side,\n align,\n sideOffset,\n alignOffset,\n avoidCollisions,\n collisionPadding,\n ...props\n} = Astro.props\n---\n\n
\n \n
\n \n \n\n", "type": "registry:ui" }, { diff --git a/public/r/sheet.json b/public/r/sheet.json index ecf90e06e..9759879c3 100644 --- a/public/r/sheet.json +++ b/public/r/sheet.json @@ -4,7 +4,7 @@ "title": "Sheet", "description": "A sliding panel component that appears from the edge of the screen.", "dependencies": [ - "@data-slot/dialog", + "@data-slot/dialog@^1.0.1", "@lucide/astro" ], "registryDependencies": [ @@ -14,7 +14,7 @@ "files": [ { "path": "src/components/ui/sheet/sheet.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n closeOnClickOutside,\n closeOnEscape,\n lockScroll,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultOpen?: boolean\n closeOnClickOutside?: boolean\n closeOnEscape?: boolean\n lockScroll?: boolean\n}\n\nconst {\n class: className,\n defaultOpen,\n closeOnClickOutside,\n closeOnEscape,\n lockScroll,\n ...props\n} = Astro.props\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/sidebar-1.json b/public/r/sidebar-1.json index db9d030f2..daba5086c 100644 --- a/public/r/sidebar-1.json +++ b/public/r/sidebar-1.json @@ -23,7 +23,7 @@ "files": [ { "path": "src/components/blocks/sidebar-1.astro", - "content": "---\nimport ChevronDownIcon from \"@lucide/astro/icons/chevron-down\"\nimport SearchIcon from \"@lucide/astro/icons/search\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandShortcut,\n} from \"@/components/ui/command\"\nimport { Dialog, DialogTrigger } from \"@/components/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { Header, HeaderContainer, HeaderGroup } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Kbd } from \"@/components/ui/kbd\"\nimport { LogoImage, LogoText } from \"@/components/ui/logo\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\nimport { ThemeToggle } from \"@/components/ui/theme-toggle\"\n\ntype Props = {\n class?: string\n logo: {\n label: string\n href: string\n src?: any\n srcLight?: any\n srcDark?: any\n alt?: string\n }\n search: {\n label: string\n empty: string\n items: {\n label: string\n href: string\n title: string\n path: string\n description: string\n group: string\n }[]\n }\n breadcrumb: {\n items: {\n label: string\n href: string\n }[]\n menu: {\n label: string\n href: string\n }[]\n }\n navigation: {\n label: string\n href: string\n links?: {\n label: string\n href: string\n }[]\n }[]\n githubRepo: string\n}\n\nconst {\n class: className,\n logo,\n search,\n breadcrumb,\n navigation,\n githubRepo,\n}: Props = Astro.props\n\nconst normalizePath = (path: string) => {\n if (path === \"/\") return path\n\n return path.replace(/\\/$/, \"\")\n}\nconst currentPath = normalizePath(Astro.url.pathname)\nconst searchGroups = search.items.reduce<\n { label: string; items: typeof search.items }[]\n>((groups, item) => {\n const group = groups.find((entry) => entry.label === item.group)\n\n if (group) {\n group.items.push(item)\n } else {\n groups.push({ label: item.group, items: [item] })\n }\n\n return groups\n}, [])\n\nlet githubStars = \"Stars\"\n\ntry {\n const response = await fetch(`https://api.github.com/repos/${githubRepo}`)\n const data = await response.json()\n\n if (response.ok && typeof data.stargazers_count === \"number\") {\n githubStars = new Intl.NumberFormat().format(data.stargazers_count)\n }\n} catch {\n // Keep the fallback label when GitHub is unavailable.\n}\n---\n\n\n \n \n \n \n {logo.label}\n \n \n \n \n {search.label}\n \n ⌘ + K\n \n \n\n \n \n \n \n {search.empty}\n\n {\n searchGroups.map((group) => (\n \n {group.items.map((item) => (\n \n {item.label}\n {item.href}\n \n ))}\n \n ))\n }\n \n \n \n \n \n \n {\n navigation.map((group) => (\n \n {group.label}\n \n {(group.links ?? [group]).map((item) => (\n \n \n {item.label}\n \n \n ))}\n \n \n ))\n }\n \n \n \n
\n \n \n \n \n \n \n {\n breadcrumb.items.map((item, index) => {\n const isLast = index === breadcrumb.items.length - 1\n const isHome = item.href === \"/\"\n const hasMenu =\n !isHome &&\n breadcrumb.menu.some(\n (menuItem) =>\n normalizePath(menuItem.href) ===\n normalizePath(item.href)\n )\n\n return (\n <>\n {index > 0 && (\n /\n )}\n \n {hasMenu ? (\n \n \n {item.label}\n \n \n \n \n {breadcrumb.menu.map((menuItem) => (\n \n {menuItem.label}\n \n ))}\n \n \n \n ) : isLast ? (\n {item.label}\n ) : (\n \n {item.label}\n \n )}\n \n \n )\n })\n }\n {\n breadcrumb.menu.length > 0 && currentPath === \"/\" && (\n <>\n /\n \n \n \n \n \n \n \n {breadcrumb.menu.map((item) => (\n \n {item.label}\n \n ))}\n \n \n \n \n \n )\n }\n \n \n \n \n \n \n {githubStars}\n \n \n \n \n
\n \n
\n
\n\n\n", + "content": "---\nimport ChevronDownIcon from \"@lucide/astro/icons/chevron-down\"\nimport SearchIcon from \"@lucide/astro/icons/search\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandShortcut,\n} from \"@/components/ui/command\"\nimport { DialogTrigger } from \"@/components/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { Header, HeaderContainer, HeaderGroup } from \"@/components/ui/header\"\nimport { Icon } from \"@/components/ui/icon\"\nimport { Kbd } from \"@/components/ui/kbd\"\nimport { LogoImage, LogoText } from \"@/components/ui/logo\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\nimport { ThemeToggle } from \"@/components/ui/theme-toggle\"\n\ntype Props = {\n class?: string\n logo: {\n label: string\n href: string\n src?: any\n srcLight?: any\n srcDark?: any\n alt?: string\n }\n search: {\n label: string\n empty: string\n items: {\n label: string\n href: string\n title: string\n path: string\n description: string\n group: string\n }[]\n }\n breadcrumb: {\n items: {\n label: string\n href: string\n }[]\n menu: {\n label: string\n href: string\n }[]\n }\n navigation: {\n label: string\n href: string\n links?: {\n label: string\n href: string\n }[]\n }[]\n githubRepo: string\n}\n\nconst {\n class: className,\n logo,\n search,\n breadcrumb,\n navigation,\n githubRepo,\n}: Props = Astro.props\n\nconst normalizePath = (path: string) => {\n if (path === \"/\") return path\n\n return path.replace(/\\/$/, \"\")\n}\nconst currentPath = normalizePath(Astro.url.pathname)\nconst searchGroups = search.items.reduce<\n { label: string; items: typeof search.items }[]\n>((groups, item) => {\n const group = groups.find((entry) => entry.label === item.group)\n\n if (group) {\n group.items.push(item)\n } else {\n groups.push({ label: item.group, items: [item] })\n }\n\n return groups\n}, [])\n\nlet githubStars = \"Stars\"\n\ntry {\n const response = await fetch(`https://api.github.com/repos/${githubRepo}`)\n const data = await response.json()\n\n if (response.ok && typeof data.stargazers_count === \"number\") {\n githubStars = new Intl.NumberFormat().format(data.stargazers_count)\n }\n} catch {\n // Keep the fallback label when GitHub is unavailable.\n}\n---\n\n\n \n \n \n \n {logo.label}\n \n \n \n \n {search.label}\n \n ⌘ + K\n \n \n\n \n \n \n {search.empty}\n\n {\n searchGroups.map((group) => (\n \n {group.items.map((item) => (\n \n {item.label}\n {item.href}\n \n ))}\n \n ))\n }\n \n \n \n \n \n {\n navigation.map((group) => (\n \n {group.label}\n \n {(group.links ?? [group]).map((item) => (\n \n \n {item.label}\n \n \n ))}\n \n \n ))\n }\n \n \n \n
\n \n \n \n \n \n \n {\n breadcrumb.items.map((item, index) => {\n const isLast = index === breadcrumb.items.length - 1\n const isHome = item.href === \"/\"\n const hasMenu =\n !isHome &&\n breadcrumb.menu.some(\n (menuItem) =>\n normalizePath(menuItem.href) ===\n normalizePath(item.href)\n )\n\n return (\n <>\n {index > 0 && (\n /\n )}\n \n {hasMenu ? (\n \n \n {item.label}\n \n \n \n \n {breadcrumb.menu.map((menuItem) => (\n \n {menuItem.label}\n \n ))}\n \n \n \n ) : isLast ? (\n {item.label}\n ) : (\n \n {item.label}\n \n )}\n \n \n )\n })\n }\n {\n breadcrumb.menu.length > 0 && currentPath === \"/\" && (\n <>\n /\n \n \n \n \n \n \n \n {breadcrumb.menu.map((item) => (\n \n {item.label}\n \n ))}\n \n \n \n \n \n )\n }\n \n \n \n \n \n \n {githubStars}\n \n \n \n \n
\n \n
\n
\n\n\n", "type": "registry:block" } ], diff --git a/public/r/sidebar.json b/public/r/sidebar.json index e7827aefb..45669fa49 100644 --- a/public/r/sidebar.json +++ b/public/r/sidebar.json @@ -4,7 +4,7 @@ "title": "Sidebar", "description": "A composable, themeable, and customizable Astro sidebar component.", "dependencies": [ - "@data-slot/tooltip", + "@data-slot/tooltip@^1.0.1", "@lucide/astro" ], "registryDependencies": [ diff --git a/public/r/slider.json b/public/r/slider.json index 3daffe9e0..a12da5a16 100644 --- a/public/r/slider.json +++ b/public/r/slider.json @@ -4,12 +4,12 @@ "title": "Slider", "description": "An input where the user selects a value from within a given range.", "dependencies": [ - "@data-slot/slider" + "@data-slot/slider@^1.0.1" ], "files": [ { "path": "src/components/ui/slider/slider.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype SliderValue = number | [number, number] | string\ntype ThumbAlignment = \"center\" | \"edge\" | \"edge-client-only\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: SliderValue\n min?: number\n max?: number\n step?: number\n largeStep?: number\n orientation?: \"horizontal\" | \"vertical\"\n thumbAlignment?: ThumbAlignment\n disabled?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n min,\n max,\n step,\n largeStep,\n orientation = \"horizontal\",\n thumbAlignment = \"edge\",\n disabled,\n ...props\n} = Astro.props\n\nconst serializedDefaultValue = Array.isArray(defaultValue)\n ? defaultValue.join(\",\")\n : defaultValue\nconst thumbCount = String(serializedDefaultValue ?? \"\").includes(\",\") ? 2 : 1\n---\n\n\n \n \n \n \n \n {\n Array.from({ length: thumbCount }).map(() => (\n \n ))\n }\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype SliderValue = number | [number, number]\ntype ThumbAlignment = \"center\" | \"edge\" | \"edge-client-only\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n defaultValue?: SliderValue\n min?: number\n max?: number\n step?: number\n largeStep?: number\n orientation?: \"horizontal\" | \"vertical\"\n thumbAlignment?: ThumbAlignment\n disabled?: boolean\n}\n\nconst {\n class: className,\n defaultValue,\n min,\n max,\n step,\n largeStep,\n orientation = \"horizontal\",\n thumbAlignment = \"center\",\n disabled,\n ...props\n} = Astro.props\n\nconst serializedDefaultValue = Array.isArray(defaultValue)\n ? defaultValue.join(\",\")\n : defaultValue\nconst thumbCount = String(serializedDefaultValue ?? \"\").includes(\",\") ? 2 : 1\n---\n\n\n \n \n \n \n \n {\n Array.from({ length: thumbCount }).map(() => (\n \n ))\n }\n \n\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/switch.json b/public/r/switch.json index 91c66ac23..413b52ac5 100644 --- a/public/r/switch.json +++ b/public/r/switch.json @@ -4,12 +4,12 @@ "title": "Switch", "description": "A control that allows the user to toggle between checked and not checked.", "dependencies": [ - "@data-slot/switch" + "@data-slot/switch@^1.0.1" ], "files": [ { "path": "src/components/ui/switch/switch.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"span\"> & {\n defaultChecked?: boolean\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n name?: string\n size?: \"default\" | \"sm\"\n value?: string\n uncheckedValue?: string\n}\n\nconst {\n class: className,\n defaultChecked,\n disabled,\n readOnly,\n required,\n name,\n size = \"default\",\n value,\n uncheckedValue,\n ...props\n} = Astro.props\n\nconst initialChecked = defaultChecked === true\nconst switchStyle =\n \"peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 relative inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-readonly:cursor-default\"\nconst switchSizeStyle = {\n sm: \"h-[14px] w-[24px]\",\n default: \"h-[18.4px] w-[32px]\",\n}\n---\n\n\n \n\n\n\n", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"span\"> & {\n defaultChecked?: boolean\n disabled?: boolean\n readOnly?: boolean\n required?: boolean\n name?: string\n size?: \"default\" | \"sm\"\n value?: string\n uncheckedValue?: string\n}\n\nconst {\n class: className,\n defaultChecked,\n disabled,\n readOnly,\n required,\n name,\n size = \"default\",\n value,\n uncheckedValue,\n ...props\n} = Astro.props\n\nconst initialChecked = defaultChecked === true\nconst switchStyle =\n \"peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 relative inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-3 aria-invalid:ring-3 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-readonly:cursor-default\"\nconst switchSizeStyle = {\n sm: \"h-[14px] w-[24px]\",\n default: \"h-[18.4px] w-[32px]\",\n}\n---\n\n\n \n\n\n\n", "type": "registry:ui" }, { diff --git a/public/r/tabs.json b/public/r/tabs.json index 432876983..de8867333 100644 --- a/public/r/tabs.json +++ b/public/r/tabs.json @@ -4,17 +4,17 @@ "title": "Tabs", "description": "A set of layered sections of content, known as tabs, that display one panel of content at a time.", "dependencies": [ - "@data-slot/tabs" + "@data-slot/tabs@^1.0.1" ], "files": [ { "path": "src/components/ui/tabs/tabs.astro", - "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = 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", + "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = 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\ntype Props = HTMLAttributes<\"div\"> & {\n value?: string\n}\n\nconst { class: className, hidden = true, value, ...props } = Astro.props\n---\n\n