diff --git a/apps/www/.vitepress/config.mts b/apps/www/.vitepress/config.mts
index 48579d2bb..b6cf67bdf 100644
--- a/apps/www/.vitepress/config.mts
+++ b/apps/www/.vitepress/config.mts
@@ -3,9 +3,9 @@ import { defineConfig } from 'vitepress'
import Icons from 'unplugin-icons/vite'
import tailwind from 'tailwindcss'
import autoprefixer from 'autoprefixer'
-import { createCssVariablesTheme } from 'shikiji'
+import { createCssVariablesTheme } from 'shiki'
-// import { transformerMetaWordHighlight } from 'shikiji-transformers'
+// import { transformerMetaWordHighlight, transformerNotationWordHighlight } from '@shikijs/transformers'
import { siteConfig } from './theme/config/site'
import ComponentPreviewPlugin from './theme/plugins/previewer'
@@ -61,6 +61,7 @@ export default defineConfig({
theme: cssVariables,
codeTransformers: [
// transformerMetaWordHighlight(),
+ // transformerNotationWordHighlight(),
],
config(md) {
md.use(ComponentPreviewPlugin)
@@ -86,8 +87,5 @@ export default defineConfig({
'@': path.resolve(__dirname, '../src'),
},
},
- ssr: {
- noExternal: ['vue-sonner'],
- },
},
})
diff --git a/apps/www/.vitepress/theme/layout/DocsLayout.vue b/apps/www/.vitepress/theme/layout/DocsLayout.vue
index 388301e0d..1ab121425 100644
--- a/apps/www/.vitepress/theme/layout/DocsLayout.vue
+++ b/apps/www/.vitepress/theme/layout/DocsLayout.vue
@@ -46,9 +46,9 @@ const sourceLink = 'https://github.com/radix-vue/shadcn-vue/tree/dev/'
>
{{ doc.title }}
-
+
{{ doc.label }}
-
+
diff --git a/apps/www/.vitepress/theme/layout/MainLayout.vue b/apps/www/.vitepress/theme/layout/MainLayout.vue
index 3caf425db..946f26bb4 100644
--- a/apps/www/.vitepress/theme/layout/MainLayout.vue
+++ b/apps/www/.vitepress/theme/layout/MainLayout.vue
@@ -288,7 +288,9 @@ watch(() => $route.path, (n) => {
-
+
+
+
diff --git a/apps/www/.vitepress/theme/styles/shiki.css b/apps/www/.vitepress/theme/styles/shiki.css
index 9c0d7eda5..db0028290 100644
--- a/apps/www/.vitepress/theme/styles/shiki.css
+++ b/apps/www/.vitepress/theme/styles/shiki.css
@@ -10,4 +10,11 @@
--shiki-token-string-expression: #ebebeb;
--shiki-token-punctuation: #ffffff;
--shiki-token-link: #EE0000;
+}
+
+.shiki .highlighted-word {
+ border-radius: calc(var(--radius) - 2px);
+ border-color: rgba(63,63,70,.7);
+ background-color: rgba(63,63,70,.5);
+ padding: 0.25rem;
}
\ No newline at end of file
diff --git a/apps/www/package.json b/apps/www/package.json
index 186171f7e..b4cbca680 100644
--- a/apps/www/package.json
+++ b/apps/www/package.json
@@ -19,25 +19,25 @@
"@morev/vue-transitions": "^2.3.6",
"@radix-icons/vue": "^1.0.0",
"@stackblitz/sdk": "^1.9.0",
- "@tanstack/vue-table": "^8.11.7",
- "@unovis/ts": "^1.3.1",
- "@unovis/vue": "^1.3.1",
- "@vee-validate/zod": "^4.12.4",
+ "@tanstack/vue-table": "^8.11.8",
+ "@unovis/ts": "^1.3.3",
+ "@unovis/vue": "^1.3.3",
+ "@vee-validate/zod": "^4.12.5",
"@vueuse/core": "^10.7.2",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.0",
"codesandbox": "^2.2.3",
"date-fns": "^2.30.0",
- "embla-carousel": "8.0.0-rc19",
- "embla-carousel-autoplay": "8.0.0-rc19",
- "embla-carousel-vue": "8.0.0-rc19",
+ "embla-carousel": "^8.0.0-rc22",
+ "embla-carousel-autoplay": "^8.0.0-rc22",
+ "embla-carousel-vue": "^8.0.0-rc22",
"lucide-vue-next": "^0.276.0",
- "radix-vue": "^1.3.2",
+ "radix-vue": "^1.4.0",
"tailwindcss-animate": "^1.0.7",
"v-calendar": "^3.1.2",
- "vee-validate": "4.12.4",
+ "vee-validate": "4.12.5",
"vue": "^3.4.15",
- "vue-sonner": "^1.0.2",
+ "vue-sonner": "^1.0.3",
"vue-wrap-balancer": "^1.1.3",
"zod": "^3.22.4"
},
@@ -46,26 +46,26 @@
"@iconify-json/tabler": "^1.1.89",
"@iconify/json": "^2.2.108",
"@iconify/vue": "^4.1.1",
+ "@shikijs/transformers": "^1.0.0-beta.3",
"@types/lodash.template": "^4.5.2",
"@types/node": "^20.8.10",
"@vitejs/plugin-vue": "^5.0.3",
"@vitejs/plugin-vue-jsx": "^3.1.0",
- "@vue/compiler-core": "^3.4.14",
- "@vue/compiler-dom": "^3.4.14",
+ "@vue/compiler-core": "^3.4.15",
+ "@vue/compiler-dom": "^3.4.15",
"@vue/tsconfig": "^0.5.1",
- "autoprefixer": "^10.4.16",
+ "autoprefixer": "^10.4.17",
"lodash.template": "^4.5.0",
"pathe": "^1.1.2",
"rimraf": "^5.0.5",
- "shikiji": "^0.10.0-beta.9",
- "shikiji-transformers": "^0.10.0-beta.9",
- "tailwind-merge": "^2.2.0",
+ "shiki": "^1.0.0-beta.3",
+ "tailwind-merge": "^2.2.1",
"tailwindcss": "^3.4.1",
"tsx": "^4.7.0",
"typescript": "^5.3.3",
- "unplugin-icons": "^0.17.1",
+ "unplugin-icons": "^0.18.3",
"vite": "^5.0.12",
- "vitepress": "^1.0.0-rc.39",
+ "vitepress": "^1.0.0-rc.41",
"vue-tsc": "^1.8.27"
}
}
diff --git a/apps/www/src/content/docs/components/data-table.md b/apps/www/src/content/docs/components/data-table.md
index e479e4de3..1e8c7b3ce 100644
--- a/apps/www/src/content/docs/components/data-table.md
+++ b/apps/www/src/content/docs/components/data-table.md
@@ -25,7 +25,7 @@ We'll start with the basic `
` component and build a complex data table
## Table of Contents
-This guide will show you how to use [TanStack Table](https://tanstack.com/table/v8) and the component to build your own custom data table. We'll cover the following topics:
+This guide will show you how to use [TanStack Table](https://tanstack.com/table/v8) and the `` component to build your own custom data table. We'll cover the following topics:
- [Basic Table](#basic-table)
- [Row Actions](#row-actions)
@@ -109,31 +109,23 @@ Let's start by building a basic table.
First, we'll define our columns in the `columns.ts` file.
-```ts:line-numbers title="components/payments/columns.ts" {1,12-27}
-import type { ColumnDef } from '@tanstack/vue-table'
-
-// This type is used to define the shape of our data.
-// You can use a Zod schema here if you want.
-export interface Payment {
- id: string
- amount: number
- status: 'pending' | 'processing' | 'success' | 'failed'
- email: string
-}
+```ts:line-numbers {1,12-27}
+import { h } from 'vue'
export const columns: ColumnDef[] = [
- {
- accessorKey: 'status',
- header: 'Status',
- },
- {
- accessorKey: 'email',
- header: 'Email',
- },
{
accessorKey: 'amount',
- header: 'Amount',
- },
+ header: () => h('div', { class: 'text-right' }, 'Amount'),
+ cell: ({ row }) => {
+ const amount = Number.parseFloat(row.getValue('amount'))
+ const formatted = new Intl.NumberFormat('en-US', {
+ style: 'currency',
+ currency: 'USD',
+ }).format(amount)
+
+ return h('div', { class: 'text-right font-medium' }, formatted)
+ },
+ }
]
```
@@ -149,7 +141,7 @@ formatted, sorted and filtered.
Next, we'll create a ` ` component to render our table.
-```ts:line-numbers
+```vue:line-numbers
-
+
diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue
index 740f4e666..d8ec98895 100644
--- a/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue
+++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionContent.vue
@@ -1,21 +1,23 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue
index c78bf5aa2..9975c238f 100644
--- a/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue
+++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionItem.vue
@@ -1,14 +1,23 @@
diff --git a/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue b/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue
index 512a8fdf5..17c15ca2b 100644
--- a/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/accordion/AccordionTrigger.vue
@@ -1,4 +1,5 @@
-
+
-
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue
index 8ebf71578..cd87a927c 100644
--- a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogAction.vue
@@ -1,13 +1,20 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue
index fe3531b37..d42179c4a 100644
--- a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogCancel.vue
@@ -1,13 +1,20 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue
index 8af818b92..5a5dcdf71 100644
--- a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogContent.vue
@@ -1,30 +1,37 @@
+import { type HTMLAttributes, computed } from 'vue'
import {
AlertDialogDescription,
type AlertDialogDescriptionProps,
} from 'radix-vue'
import { cn } from '@/lib/utils'
-const props = defineProps()
+const props = defineProps()
+
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue
index de4af93b3..55d0a0eb8 100644
--- a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogFooter.vue
@@ -1,19 +1,17 @@
+import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
-const props = defineProps({
- class: {
- type: String,
- default: '',
- },
-})
+const props = defineProps<{
+ class?: HTMLAttributes['class']
+}>()
diff --git a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue
index 9b6491f2c..50c583d09 100644
--- a/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue
+++ b/apps/www/src/lib/registry/default/ui/alert-dialog/AlertDialogTitle.vue
@@ -1,14 +1,21 @@
diff --git a/apps/www/src/lib/registry/default/ui/alert/Alert.vue b/apps/www/src/lib/registry/default/ui/alert/Alert.vue
index b95d5c897..b3502d521 100644
--- a/apps/www/src/lib/registry/default/ui/alert/Alert.vue
+++ b/apps/www/src/lib/registry/default/ui/alert/Alert.vue
@@ -1,17 +1,16 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue b/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue
index a539b631d..2971a877b 100644
--- a/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue
+++ b/apps/www/src/lib/registry/default/ui/alert/AlertDescription.vue
@@ -1,9 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue b/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue
index c5dd22c27..e28dd37ea 100644
--- a/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue
+++ b/apps/www/src/lib/registry/default/ui/alert/AlertTitle.vue
@@ -1,9 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/alert/index.ts b/apps/www/src/lib/registry/default/ui/alert/index.ts
index 5ca03a7f7..765f704d0 100644
--- a/apps/www/src/lib/registry/default/ui/alert/index.ts
+++ b/apps/www/src/lib/registry/default/ui/alert/index.ts
@@ -1,4 +1,4 @@
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export { default as Alert } from './Alert.vue'
export { default as AlertTitle } from './AlertTitle.vue'
@@ -19,3 +19,5 @@ export const alertVariants = cva(
},
},
)
+
+export type AlertVariants = VariantProps
diff --git a/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue b/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue
index 39f71b65e..5b7b9fbf6 100644
--- a/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue
+++ b/apps/www/src/lib/registry/default/ui/avatar/Avatar.vue
@@ -1,15 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/badge/index.ts b/apps/www/src/lib/registry/default/ui/badge/index.ts
index 771c75f1a..d90c2ef42 100644
--- a/apps/www/src/lib/registry/default/ui/badge/index.ts
+++ b/apps/www/src/lib/registry/default/ui/badge/index.ts
@@ -1,4 +1,4 @@
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export { default as Badge } from './Badge.vue'
@@ -21,3 +21,5 @@ export const badgeVariants = cva(
},
},
)
+
+export type BadgeVariants = VariantProps
diff --git a/apps/www/src/lib/registry/default/ui/button/Button.vue b/apps/www/src/lib/registry/default/ui/button/Button.vue
index 8bd713642..a76410262 100644
--- a/apps/www/src/lib/registry/default/ui/button/Button.vue
+++ b/apps/www/src/lib/registry/default/ui/button/Button.vue
@@ -1,20 +1,17 @@
@@ -23,7 +20,7 @@ withDefaults(defineProps(), {
diff --git a/apps/www/src/lib/registry/default/ui/button/index.ts b/apps/www/src/lib/registry/default/ui/button/index.ts
index 93a070084..e18f26bb2 100644
--- a/apps/www/src/lib/registry/default/ui/button/index.ts
+++ b/apps/www/src/lib/registry/default/ui/button/index.ts
@@ -1,9 +1,9 @@
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export { default as Button } from './Button.vue'
export const buttonVariants = cva(
- 'inline-flex items-center justify-center rounded-md whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
+ 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',
{
variants: {
variant: {
@@ -30,3 +30,5 @@ export const buttonVariants = cva(
},
},
)
+
+export type ButtonVariants = VariantProps
diff --git a/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue b/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue
index c4dfa33b5..dd24b2469 100644
--- a/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue
+++ b/apps/www/src/lib/registry/default/ui/calendar/Calendar.vue
@@ -29,8 +29,7 @@ interface SimpleDateParts {
defineOptions({
inheritAttrs: false,
})
-
-const props = withDefaults(defineProps<{
+const props = withDefaults(defineProps< {
modelValue?: string | number | Date | DatePickerModel
modelModifiers?: object
columns?: number
@@ -90,8 +89,8 @@ const vCalendarSlots = computed(() => {
{
@apply rounded-md;
}
.calendar .vc-day-content {
- @apply text-center text-sm p-0 relative focus-within:relative focus-within:z-20 inline-flex items-center justify-center ring-offset-background hover:transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 w-9 font-normal aria-selected:opacity-100 select-none;
+ @apply text-center text-sm p-0 relative focus-within:relative focus-within:z-20 inline-flex items-center justify-center ring-offset-background hover:transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 hover:bg-accent hover:text-accent-foreground h-9 w-9 font-normal aria-selected:opacity-100 select-none;
}
.calendar .vc-day-content:not(.vc-highlight-content-light) {
@apply rounded-md;
@@ -178,6 +177,7 @@ const vCalendarSlots = computed(() => {
--vc-slide-duration: 0.15s;
--vc-slide-timing: ease;
}
+
.calendar .vc-fade-enter-active,
.calendar .vc-fade-leave-active,
.calendar .vc-slide-left-enter-active,
@@ -204,6 +204,7 @@ const vCalendarSlots = computed(() => {
backface-visibility: hidden;
pointer-events: none;
}
+
.calendar .vc-none-leave-active,
.calendar .vc-fade-leave-active,
.calendar .vc-slide-left-leave-active,
@@ -213,6 +214,7 @@ const vCalendarSlots = computed(() => {
position: absolute !important;
width: 100%;
}
+
.calendar .vc-none-enter-from,
.calendar .vc-none-leave-to,
.calendar .vc-fade-enter-from,
@@ -229,6 +231,7 @@ const vCalendarSlots = computed(() => {
.calendar .vc-slide-fade-leave-to {
opacity: 0;
}
+
.calendar .vc-slide-left-enter-from,
.calendar .vc-slide-right-leave-to,
.calendar .vc-slide-fade-enter-from.direction-left,
@@ -236,6 +239,7 @@ const vCalendarSlots = computed(() => {
-webkit-transform: translateX(var(--vc-slide-translate));
transform: translateX(var(--vc-slide-translate));
}
+
.calendar .vc-slide-right-enter-from,
.calendar .vc-slide-left-leave-to,
.calendar .vc-slide-fade-enter-from.direction-right,
@@ -243,6 +247,7 @@ const vCalendarSlots = computed(() => {
-webkit-transform: translateX(calc(-1 * var(--vc-slide-translate)));
transform: translateX(calc(-1 * var(--vc-slide-translate)));
}
+
.calendar .vc-slide-up-enter-from,
.calendar .vc-slide-down-leave-to,
.calendar .vc-slide-fade-enter-from.direction-top,
@@ -250,6 +255,7 @@ const vCalendarSlots = computed(() => {
-webkit-transform: translateY(var(--vc-slide-translate));
transform: translateY(var(--vc-slide-translate));
}
+
.calendar .vc-slide-down-enter-from,
.calendar .vc-slide-up-leave-to,
.calendar .vc-slide-fade-enter-from.direction-bottom,
diff --git a/apps/www/src/lib/registry/default/ui/card/Card.vue b/apps/www/src/lib/registry/default/ui/card/Card.vue
index 3f5e10c76..12dd5ec7d 100644
--- a/apps/www/src/lib/registry/default/ui/card/Card.vue
+++ b/apps/www/src/lib/registry/default/ui/card/Card.vue
@@ -1,12 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/card/CardContent.vue b/apps/www/src/lib/registry/default/ui/card/CardContent.vue
index 9dc5a6611..785913a19 100644
--- a/apps/www/src/lib/registry/default/ui/card/CardContent.vue
+++ b/apps/www/src/lib/registry/default/ui/card/CardContent.vue
@@ -1,12 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/card/CardDescription.vue b/apps/www/src/lib/registry/default/ui/card/CardDescription.vue
index 6f1fc0ee3..d5faedd5c 100644
--- a/apps/www/src/lib/registry/default/ui/card/CardDescription.vue
+++ b/apps/www/src/lib/registry/default/ui/card/CardDescription.vue
@@ -1,12 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/card/CardFooter.vue b/apps/www/src/lib/registry/default/ui/card/CardFooter.vue
index 9dc5a6611..1ed2efe57 100644
--- a/apps/www/src/lib/registry/default/ui/card/CardFooter.vue
+++ b/apps/www/src/lib/registry/default/ui/card/CardFooter.vue
@@ -1,16 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/card/CardHeader.vue b/apps/www/src/lib/registry/default/ui/card/CardHeader.vue
index 7422a5ad4..951d227e9 100644
--- a/apps/www/src/lib/registry/default/ui/card/CardHeader.vue
+++ b/apps/www/src/lib/registry/default/ui/card/CardHeader.vue
@@ -1,16 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/card/CardTitle.vue b/apps/www/src/lib/registry/default/ui/card/CardTitle.vue
index 34f898d6a..842e16899 100644
--- a/apps/www/src/lib/registry/default/ui/card/CardTitle.vue
+++ b/apps/www/src/lib/registry/default/ui/card/CardTitle.vue
@@ -1,18 +1,16 @@
diff --git a/apps/www/src/lib/registry/default/ui/carousel/Carousel.vue b/apps/www/src/lib/registry/default/ui/carousel/Carousel.vue
index c88d61ada..b6147c27a 100644
--- a/apps/www/src/lib/registry/default/ui/carousel/Carousel.vue
+++ b/apps/www/src/lib/registry/default/ui/carousel/Carousel.vue
@@ -1,5 +1,4 @@
@@ -15,10 +22,12 @@ const forwarded = useForwardPropsEmits(props, emits)
v-bind="forwarded"
:class="
cn('peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground',
- $attrs.class ?? '')"
+ props.class)"
>
-
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue b/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue
index a0fd96c48..52bff5f2d 100644
--- a/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue
+++ b/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue
@@ -1,13 +1,15 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/command/Command.vue b/apps/www/src/lib/registry/default/ui/command/Command.vue
index e72cd7ccc..fe7445c09 100644
--- a/apps/www/src/lib/registry/default/ui/command/Command.vue
+++ b/apps/www/src/lib/registry/default/ui/command/Command.vue
@@ -1,20 +1,29 @@
diff --git a/apps/www/src/lib/registry/default/ui/command/CommandDialog.vue b/apps/www/src/lib/registry/default/ui/command/CommandDialog.vue
index ff7747fef..37c8406a1 100644
--- a/apps/www/src/lib/registry/default/ui/command/CommandDialog.vue
+++ b/apps/www/src/lib/registry/default/ui/command/CommandDialog.vue
@@ -1,5 +1,5 @@
-
-
+
+
diff --git a/apps/www/src/lib/registry/default/ui/command/CommandEmpty.vue b/apps/www/src/lib/registry/default/ui/command/CommandEmpty.vue
index da609fc59..1295d2a00 100644
--- a/apps/www/src/lib/registry/default/ui/command/CommandEmpty.vue
+++ b/apps/www/src/lib/registry/default/ui/command/CommandEmpty.vue
@@ -1,13 +1,20 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/command/CommandGroup.vue b/apps/www/src/lib/registry/default/ui/command/CommandGroup.vue
index 1d994b9a2..ba6433e55 100644
--- a/apps/www/src/lib/registry/default/ui/command/CommandGroup.vue
+++ b/apps/www/src/lib/registry/default/ui/command/CommandGroup.vue
@@ -1,17 +1,25 @@
{{ heading }}
diff --git a/apps/www/src/lib/registry/default/ui/command/CommandInput.vue b/apps/www/src/lib/registry/default/ui/command/CommandInput.vue
index 9aef2ae72..669237338 100644
--- a/apps/www/src/lib/registry/default/ui/command/CommandInput.vue
+++ b/apps/www/src/lib/registry/default/ui/command/CommandInput.vue
@@ -1,24 +1,33 @@
-
-
diff --git a/apps/www/src/lib/registry/default/ui/command/CommandItem.vue b/apps/www/src/lib/registry/default/ui/command/CommandItem.vue
index 6d2167be8..29725b18f 100644
--- a/apps/www/src/lib/registry/default/ui/command/CommandItem.vue
+++ b/apps/www/src/lib/registry/default/ui/command/CommandItem.vue
@@ -1,18 +1,25 @@
diff --git a/apps/www/src/lib/registry/default/ui/command/CommandList.vue b/apps/www/src/lib/registry/default/ui/command/CommandList.vue
index be8a46f9e..710d0bc52 100644
--- a/apps/www/src/lib/registry/default/ui/command/CommandList.vue
+++ b/apps/www/src/lib/registry/default/ui/command/CommandList.vue
@@ -1,16 +1,23 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/command/CommandSeparator.vue b/apps/www/src/lib/registry/default/ui/command/CommandSeparator.vue
index 6219e5851..477799cce 100644
--- a/apps/www/src/lib/registry/default/ui/command/CommandSeparator.vue
+++ b/apps/www/src/lib/registry/default/ui/command/CommandSeparator.vue
@@ -1,15 +1,22 @@
diff --git a/apps/www/src/lib/registry/default/ui/command/CommandShortcut.vue b/apps/www/src/lib/registry/default/ui/command/CommandShortcut.vue
index e97f3c2b6..0d4da9218 100644
--- a/apps/www/src/lib/registry/default/ui/command/CommandShortcut.vue
+++ b/apps/www/src/lib/registry/default/ui/command/CommandShortcut.vue
@@ -1,9 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue
index 5ff539adc..3025e5aa9 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue
@@ -1,33 +1,38 @@
-
-
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue
index 4e201ff05..441c72eb8 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue
@@ -1,4 +1,5 @@
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue
index 0071251ca..0ac2f2533 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue
@@ -1,26 +1,33 @@
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue
index 3702f395f..a10aef122 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue
@@ -1,16 +1,23 @@
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue
index 67309f09d..37a39a4eb 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue
@@ -1,4 +1,5 @@
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue
index bf1eca8b0..ae55f3a4e 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue
@@ -1,13 +1,20 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue
index e97f3c2b6..0d4da9218 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue
@@ -1,9 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue
index bfdf27bfb..2cddc5ce6 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue
@@ -1,4 +1,5 @@
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue
index 258a6df7c..057ae675e 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue
@@ -1,24 +1,32 @@
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue
index 9747cc1aa..22e417b52 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuTrigger.vue
@@ -1,11 +1,13 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue b/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue
index 179f58416..a04c02626 100644
--- a/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue
+++ b/apps/www/src/lib/registry/default/ui/dialog/Dialog.vue
@@ -1,14 +1,14 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue
index c8b64caad..20981efa2 100644
--- a/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogContent.vue
@@ -1,4 +1,5 @@
Close
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue
index 05018228a..3637b7ec9 100644
--- a/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogDescription.vue
@@ -1,14 +1,23 @@
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue
index 734623f27..ac2d0c18b 100644
--- a/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogFooter.vue
@@ -1,18 +1,15 @@
+import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
-interface DialogHeaderProps {
- class?: string
-}
-
-const props = defineProps
()
+const props = defineProps<{
+ class?: HTMLAttributes['class']
+}>()
diff --git a/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue b/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue
index 5e748aae1..1bb40461a 100644
--- a/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue
+++ b/apps/www/src/lib/registry/default/ui/dialog/DialogTitle.vue
@@ -1,16 +1,25 @@
+import { type HTMLAttributes, computed } from 'vue'
import {
DropdownMenuCheckboxItem,
type DropdownMenuCheckboxItemEmits,
type DropdownMenuCheckboxItemProps,
DropdownMenuItemIndicator,
- useEmitAsProps,
+ useForwardPropsEmits,
} from 'radix-vue'
import { Check } from 'lucide-vue-next'
import { cn } from '@/lib/utils'
-const props = defineProps()
+const props = defineProps()
const emits = defineEmits()
+
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
+
+const forwarded = useForwardPropsEmits(delegatedProps, emits)
+import { type HTMLAttributes, computed } from 'vue'
import {
DropdownMenuContent,
type DropdownMenuContentEmits,
@@ -9,26 +10,27 @@ import {
import { cn } from '@/lib/utils'
const props = withDefaults(
- defineProps(),
+ defineProps(),
{
sideOffset: 4,
},
)
const emits = defineEmits()
-const forwarded = useForwardPropsEmits(props, emits)
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
+
+const forwarded = useForwardPropsEmits(delegatedProps, emits)
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue
index b632e09fb..3360e8721 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuItem.vue
@@ -1,20 +1,27 @@
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue
index c94782d79..ecf9b2fc6 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue
@@ -1,19 +1,23 @@
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue
index 5bdc41f79..4a727904c 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioGroup.vue
@@ -3,18 +3,17 @@ import {
DropdownMenuRadioGroup,
type DropdownMenuRadioGroupEmits,
type DropdownMenuRadioGroupProps,
+ useForwardPropsEmits,
} from 'radix-vue'
const props = defineProps()
-
const emits = defineEmits()
+
+const forwarded = useForwardPropsEmits(props, emits)
-
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue
index fa0318958..c8b9029ce 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue
@@ -1,29 +1,37 @@
-
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue
index 9cb171be5..fc51205b6 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue
@@ -1,12 +1,22 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue
index 008520cb2..abaeda649 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue
@@ -1,9 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue
index c5dc686c9..a730438c8 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue
@@ -1,4 +1,5 @@
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue
index e4a77f472..3474553db 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue
@@ -1,23 +1,31 @@
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue
index 73d886706..8efd5a926 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuTrigger.vue
@@ -1,11 +1,13 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/form/FormDescription.vue b/apps/www/src/lib/registry/default/ui/form/FormDescription.vue
index 070c90646..6085f76c5 100644
--- a/apps/www/src/lib/registry/default/ui/form/FormDescription.vue
+++ b/apps/www/src/lib/registry/default/ui/form/FormDescription.vue
@@ -1,21 +1,19 @@
diff --git a/apps/www/src/lib/registry/default/ui/form/FormItem.vue b/apps/www/src/lib/registry/default/ui/form/FormItem.vue
index 6bccf0274..ad120be9e 100644
--- a/apps/www/src/lib/registry/default/ui/form/FormItem.vue
+++ b/apps/www/src/lib/registry/default/ui/form/FormItem.vue
@@ -1,27 +1,25 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/form/FormLabel.vue b/apps/www/src/lib/registry/default/ui/form/FormLabel.vue
index a85dbc09b..5757aed91 100644
--- a/apps/www/src/lib/registry/default/ui/form/FormLabel.vue
+++ b/apps/www/src/lib/registry/default/ui/form/FormLabel.vue
@@ -1,27 +1,22 @@
diff --git a/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue b/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue
index b39d7d92f..5c6d9030b 100644
--- a/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue
+++ b/apps/www/src/lib/registry/default/ui/hover-card/HoverCard.vue
@@ -2,11 +2,12 @@
import { HoverCardRoot, type HoverCardRootProps, useForwardProps } from 'radix-vue'
const props = defineProps()
-const forwarded = useForwardProps(props)
+
+const forwardedProps = useForwardProps(props)
-
+
diff --git a/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue
index 2a109d6cc..8affac420 100644
--- a/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue
+++ b/apps/www/src/lib/registry/default/ui/hover-card/HoverCardContent.vue
@@ -1,4 +1,5 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/label/Label.vue b/apps/www/src/lib/registry/default/ui/label/Label.vue
index e44d139e9..8fba8db48 100644
--- a/apps/www/src/lib/registry/default/ui/label/Label.vue
+++ b/apps/www/src/lib/registry/default/ui/label/Label.vue
@@ -1,16 +1,23 @@
+import { type HTMLAttributes, computed } from 'vue'
import {
MenubarRoot,
type MenubarRootEmits,
type MenubarRootProps,
+ useForwardPropsEmits,
} from 'radix-vue'
import { cn } from '@/lib/utils'
-const props = defineProps()
-
+const props = defineProps()
const emits = defineEmits()
+
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
+
+const forwarded = useForwardPropsEmits(delegatedProps, emits)
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue
index b0274d9b9..1e7c3a9fb 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarCheckboxItem.vue
@@ -1,35 +1,40 @@
-
-
-
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue
index 8b0dab3cb..030610258 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarContent.vue
@@ -1,30 +1,35 @@
+import { type HTMLAttributes, computed } from 'vue'
import {
MenubarItem,
type MenubarItemEmits,
type MenubarItemProps,
+ useForwardPropsEmits,
} from 'radix-vue'
import { cn } from '@/lib/utils'
-const props = defineProps()
+const props = defineProps()
const emits = defineEmits()
+
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
+
+const forwarded = useForwardPropsEmits(delegatedProps, emits)
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue
index 04296b449..168df904e 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarLabel.vue
@@ -1,8 +1,9 @@
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue
index 29ec574a2..60a8cd1d9 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioGroup.vue
@@ -3,18 +3,18 @@ import {
MenubarRadioGroup,
type MenubarRadioGroupEmits,
type MenubarRadioGroupProps,
+ useForwardPropsEmits,
} from 'radix-vue'
const props = defineProps()
const emits = defineEmits()
+
+const forwarded = useForwardPropsEmits(props, emits)
-
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue
index 4619f96a6..c97b00db9 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarRadioItem.vue
@@ -1,35 +1,40 @@
-
-
-
-
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue
index 1198dd940..ed437697e 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSeparator.vue
@@ -1,10 +1,19 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue
index 192d88471..0d4da9218 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarShortcut.vue
@@ -1,9 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue
index cd52f2f04..028ed4c97 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarSubContent.vue
@@ -1,32 +1,31 @@
-import { MenubarSubTrigger, type MenubarSubTriggerProps } from 'radix-vue'
+import { type HTMLAttributes, computed } from 'vue'
+import { MenubarSubTrigger, type MenubarSubTriggerProps, useForwardProps } from 'radix-vue'
import { ChevronRight } from 'lucide-vue-next'
import { cn } from '@/lib/utils'
-const props = defineProps()
+const props = defineProps()
+
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
+
+const forwardedProps = useForwardProps(delegatedProps)
diff --git a/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue b/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue
index 5380c4267..895f1ba6f 100644
--- a/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/menubar/MenubarTrigger.vue
@@ -1,13 +1,22 @@
+import { type HTMLAttributes, computed } from 'vue'
import {
NavigationMenuRoot,
type NavigationMenuRootEmits,
type NavigationMenuRootProps,
+ useForwardPropsEmits,
} from 'radix-vue'
import NavigationMenuViewport from './NavigationMenuViewport.vue'
import { cn } from '@/lib/utils'
-const props = defineProps()
+const props = defineProps()
const emits = defineEmits()
+
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
+
+const forwarded = useForwardPropsEmits(delegatedProps, emits)
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue
index 87718859d..03d8fbbc8 100644
--- a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuContent.vue
@@ -1,26 +1,33 @@
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuIndicator.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuIndicator.vue
index 1a64e069c..1d53291e1 100644
--- a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuIndicator.vue
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuIndicator.vue
@@ -1,14 +1,23 @@
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue
index 598bde48e..30c91c61d 100644
--- a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuLink.vue
@@ -3,15 +3,17 @@ import {
NavigationMenuLink,
type NavigationMenuLinkEmits,
type NavigationMenuLinkProps,
- useEmitAsProps,
+ useForwardPropsEmits,
} from 'radix-vue'
const props = defineProps()
const emits = defineEmits()
+
+const forwarded = useForwardPropsEmits(props, emits)
-
+
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue
index c30dcde32..354365c56 100644
--- a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuList.vue
@@ -1,16 +1,25 @@
+import { type HTMLAttributes, computed } from 'vue'
import {
NavigationMenuTrigger,
type NavigationMenuTriggerProps,
+ useForwardProps,
} from 'radix-vue'
import { ChevronDown } from 'lucide-vue-next'
import { navigationMenuTriggerStyle } from '.'
import { cn } from '@/lib/utils'
-const props = defineProps()
+const props = defineProps()
+
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
+
+const forwardedProps = useForwardProps(delegatedProps)
diff --git a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuViewport.vue b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuViewport.vue
index 40f1f7b0c..20c57b9e2 100644
--- a/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuViewport.vue
+++ b/apps/www/src/lib/registry/default/ui/navigation-menu/NavigationMenuViewport.vue
@@ -1,21 +1,31 @@
diff --git a/apps/www/src/lib/registry/default/ui/pagination/PaginationEllipsis.vue b/apps/www/src/lib/registry/default/ui/pagination/PaginationEllipsis.vue
index 6d0174a74..09ffa359f 100644
--- a/apps/www/src/lib/registry/default/ui/pagination/PaginationEllipsis.vue
+++ b/apps/www/src/lib/registry/default/ui/pagination/PaginationEllipsis.vue
@@ -1,20 +1,20 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/pagination/PaginationFirst.vue b/apps/www/src/lib/registry/default/ui/pagination/PaginationFirst.vue
index 8820a7475..cd3a0d292 100644
--- a/apps/www/src/lib/registry/default/ui/pagination/PaginationFirst.vue
+++ b/apps/www/src/lib/registry/default/ui/pagination/PaginationFirst.vue
@@ -1,19 +1,26 @@
-
-
+
+
diff --git a/apps/www/src/lib/registry/default/ui/pagination/PaginationLast.vue b/apps/www/src/lib/registry/default/ui/pagination/PaginationLast.vue
index c92ad34b2..b155e12a6 100644
--- a/apps/www/src/lib/registry/default/ui/pagination/PaginationLast.vue
+++ b/apps/www/src/lib/registry/default/ui/pagination/PaginationLast.vue
@@ -1,19 +1,26 @@
-
-
+
+
diff --git a/apps/www/src/lib/registry/default/ui/pagination/PaginationNext.vue b/apps/www/src/lib/registry/default/ui/pagination/PaginationNext.vue
index c58986d95..360cb43d5 100644
--- a/apps/www/src/lib/registry/default/ui/pagination/PaginationNext.vue
+++ b/apps/www/src/lib/registry/default/ui/pagination/PaginationNext.vue
@@ -1,19 +1,26 @@
-
-
+
+
diff --git a/apps/www/src/lib/registry/default/ui/pagination/PaginationPrev.vue b/apps/www/src/lib/registry/default/ui/pagination/PaginationPrev.vue
index 018a17f87..e37aeb642 100644
--- a/apps/www/src/lib/registry/default/ui/pagination/PaginationPrev.vue
+++ b/apps/www/src/lib/registry/default/ui/pagination/PaginationPrev.vue
@@ -1,19 +1,26 @@
-
-
+
+
diff --git a/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue b/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue
index bfcf1980c..e691fe826 100644
--- a/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue
+++ b/apps/www/src/lib/registry/default/ui/popover/PopoverContent.vue
@@ -1,4 +1,5 @@
diff --git a/apps/www/src/lib/registry/default/ui/progress/Progress.vue b/apps/www/src/lib/registry/default/ui/progress/Progress.vue
index 37df7e6cb..6e006ffa7 100644
--- a/apps/www/src/lib/registry/default/ui/progress/Progress.vue
+++ b/apps/www/src/lib/registry/default/ui/progress/Progress.vue
@@ -1,4 +1,5 @@
diff --git a/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue
index 2835f72d5..9262656e8 100644
--- a/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue
+++ b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroup.vue
@@ -1,15 +1,25 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue
index 92ae3af9e..b147fd865 100644
--- a/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue
+++ b/apps/www/src/lib/registry/default/ui/radio-group/RadioGroupItem.vue
@@ -1,29 +1,39 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue b/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue
index c56cf87d3..8f501ccef 100644
--- a/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue
+++ b/apps/www/src/lib/registry/default/ui/scroll-area/ScrollArea.vue
@@ -1,4 +1,5 @@
-
-
+
+
diff --git a/apps/www/src/lib/registry/default/ui/scroll-area/ScrollBar.vue b/apps/www/src/lib/registry/default/ui/scroll-area/ScrollBar.vue
index 6171a593b..f5e366a60 100644
--- a/apps/www/src/lib/registry/default/ui/scroll-area/ScrollBar.vue
+++ b/apps/www/src/lib/registry/default/ui/scroll-area/ScrollBar.vue
@@ -1,22 +1,29 @@
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectContent.vue b/apps/www/src/lib/registry/default/ui/select/SelectContent.vue
index c3a0c0fa6..64809a284 100644
--- a/apps/www/src/lib/registry/default/ui/select/SelectContent.vue
+++ b/apps/www/src/lib/registry/default/ui/select/SelectContent.vue
@@ -1,4 +1,5 @@
-
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue b/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue
index e31301c7a..407d8ad3b 100644
--- a/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue
+++ b/apps/www/src/lib/registry/default/ui/select/SelectGroup.vue
@@ -1,12 +1,19 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectItem.vue b/apps/www/src/lib/registry/default/ui/select/SelectItem.vue
index cae5d6ec1..282c7cd39 100644
--- a/apps/www/src/lib/registry/default/ui/select/SelectItem.vue
+++ b/apps/www/src/lib/registry/default/ui/select/SelectItem.vue
@@ -1,19 +1,29 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue b/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue
index 9674ccb1f..3d45cdb6a 100644
--- a/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue
+++ b/apps/www/src/lib/registry/default/ui/select/SelectLabel.vue
@@ -1,8 +1,9 @@
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectScrollDownButton.vue b/apps/www/src/lib/registry/default/ui/select/SelectScrollDownButton.vue
new file mode 100644
index 000000000..54b6c6ac0
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectScrollDownButton.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectScrollUpButton.vue b/apps/www/src/lib/registry/default/ui/select/SelectScrollUpButton.vue
new file mode 100644
index 000000000..5535f1c77
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/select/SelectScrollUpButton.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue b/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue
index b1473cb4c..5ae593d22 100644
--- a/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue
+++ b/apps/www/src/lib/registry/default/ui/select/SelectSeparator.vue
@@ -1,10 +1,17 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue b/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue
index bb301915a..cfac8eb9b 100644
--- a/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/select/SelectTrigger.vue
@@ -1,29 +1,27 @@
diff --git a/apps/www/src/lib/registry/default/ui/select/index.ts b/apps/www/src/lib/registry/default/ui/select/index.ts
index f188cc49a..b1d89eedf 100644
--- a/apps/www/src/lib/registry/default/ui/select/index.ts
+++ b/apps/www/src/lib/registry/default/ui/select/index.ts
@@ -7,3 +7,5 @@ export { default as SelectItem } from './SelectItem.vue'
export { default as SelectItemText } from './SelectItemText.vue'
export { default as SelectLabel } from './SelectLabel.vue'
export { default as SelectSeparator } from './SelectSeparator.vue'
+export { default as SelectScrollUpButton } from './SelectScrollUpButton.vue'
+export { default as SelectScrollDownButton } from './SelectScrollDownButton.vue'
diff --git a/apps/www/src/lib/registry/default/ui/separator/Separator.vue b/apps/www/src/lib/registry/default/ui/separator/Separator.vue
index 2cc88b0c7..791626c21 100644
--- a/apps/www/src/lib/registry/default/ui/separator/Separator.vue
+++ b/apps/www/src/lib/registry/default/ui/separator/Separator.vue
@@ -1,15 +1,20 @@
diff --git a/apps/www/src/lib/registry/default/ui/sheet/Sheet.vue b/apps/www/src/lib/registry/default/ui/sheet/Sheet.vue
index 65d92c86e..a04c02626 100644
--- a/apps/www/src/lib/registry/default/ui/sheet/Sheet.vue
+++ b/apps/www/src/lib/registry/default/ui/sheet/Sheet.vue
@@ -1,9 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/sheet/SheetContent.vue b/apps/www/src/lib/registry/default/ui/sheet/SheetContent.vue
index c6d05b04c..796251823 100644
--- a/apps/www/src/lib/registry/default/ui/sheet/SheetContent.vue
+++ b/apps/www/src/lib/registry/default/ui/sheet/SheetContent.vue
@@ -1,4 +1,5 @@
diff --git a/apps/www/src/lib/registry/default/ui/sheet/SheetDescription.vue b/apps/www/src/lib/registry/default/ui/sheet/SheetDescription.vue
index 9f1666473..842cd08af 100644
--- a/apps/www/src/lib/registry/default/ui/sheet/SheetDescription.vue
+++ b/apps/www/src/lib/registry/default/ui/sheet/SheetDescription.vue
@@ -1,14 +1,21 @@
diff --git a/apps/www/src/lib/registry/default/ui/sheet/SheetFooter.vue b/apps/www/src/lib/registry/default/ui/sheet/SheetFooter.vue
index 72e1e2e73..ac2d0c18b 100644
--- a/apps/www/src/lib/registry/default/ui/sheet/SheetFooter.vue
+++ b/apps/www/src/lib/registry/default/ui/sheet/SheetFooter.vue
@@ -1,14 +1,15 @@
+import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
-const props = defineProps<{ class?: string }>()
+const props = defineProps<{ class?: HTMLAttributes['class'] }>()
diff --git a/apps/www/src/lib/registry/default/ui/sheet/SheetTitle.vue b/apps/www/src/lib/registry/default/ui/sheet/SheetTitle.vue
index 9a47c633c..2ca0c5433 100644
--- a/apps/www/src/lib/registry/default/ui/sheet/SheetTitle.vue
+++ b/apps/www/src/lib/registry/default/ui/sheet/SheetTitle.vue
@@ -1,14 +1,21 @@
diff --git a/apps/www/src/lib/registry/default/ui/sheet/index.ts b/apps/www/src/lib/registry/default/ui/sheet/index.ts
index 51c631e31..fae3f08c4 100644
--- a/apps/www/src/lib/registry/default/ui/sheet/index.ts
+++ b/apps/www/src/lib/registry/default/ui/sheet/index.ts
@@ -1,3 +1,5 @@
+import { type VariantProps, cva } from 'class-variance-authority'
+
export { default as Sheet } from './Sheet.vue'
export { default as SheetTrigger } from './SheetTrigger.vue'
export { default as SheetClose } from './SheetClose.vue'
@@ -6,3 +8,24 @@ export { default as SheetHeader } from './SheetHeader.vue'
export { default as SheetTitle } from './SheetTitle.vue'
export { default as SheetDescription } from './SheetDescription.vue'
export { default as SheetFooter } from './SheetFooter.vue'
+
+export const sheetVariants = cva(
+ 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',
+ {
+ variants: {
+ side: {
+ top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',
+ bottom:
+ 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',
+ left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',
+ right:
+ 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',
+ },
+ },
+ defaultVariants: {
+ side: 'right',
+ },
+ },
+)
+
+export type SheetVariants = VariantProps
diff --git a/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue b/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue
index bf3b943ac..b49e3d9b4 100644
--- a/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue
+++ b/apps/www/src/lib/registry/default/ui/skeleton/Skeleton.vue
@@ -1,13 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/slider/Slider.vue b/apps/www/src/lib/registry/default/ui/slider/Slider.vue
index 0f52ef046..c3dd6d780 100644
--- a/apps/www/src/lib/registry/default/ui/slider/Slider.vue
+++ b/apps/www/src/lib/registry/default/ui/slider/Slider.vue
@@ -1,21 +1,28 @@
diff --git a/apps/www/src/lib/registry/default/ui/switch/Switch.vue b/apps/www/src/lib/registry/default/ui/switch/Switch.vue
index 25dd554f3..f2ee993c3 100644
--- a/apps/www/src/lib/registry/default/ui/switch/Switch.vue
+++ b/apps/www/src/lib/registry/default/ui/switch/Switch.vue
@@ -1,4 +1,5 @@
diff --git a/apps/www/src/lib/registry/default/ui/table/Table.vue b/apps/www/src/lib/registry/default/ui/table/Table.vue
index e64c4516a..a42389182 100644
--- a/apps/www/src/lib/registry/default/ui/table/Table.vue
+++ b/apps/www/src/lib/registry/default/ui/table/Table.vue
@@ -1,11 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableBody.vue b/apps/www/src/lib/registry/default/ui/table/TableBody.vue
index eb0f663a6..ab7a937dc 100644
--- a/apps/www/src/lib/registry/default/ui/table/TableBody.vue
+++ b/apps/www/src/lib/registry/default/ui/table/TableBody.vue
@@ -1,7 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/table/TableCaption.vue b/apps/www/src/lib/registry/default/ui/table/TableCaption.vue
index 513caa7e0..3904c5636 100644
--- a/apps/www/src/lib/registry/default/ui/table/TableCaption.vue
+++ b/apps/www/src/lib/registry/default/ui/table/TableCaption.vue
@@ -1,7 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/table/TableCell.vue b/apps/www/src/lib/registry/default/ui/table/TableCell.vue
index af16c0a7f..4a4da4004 100644
--- a/apps/www/src/lib/registry/default/ui/table/TableCell.vue
+++ b/apps/www/src/lib/registry/default/ui/table/TableCell.vue
@@ -1,7 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue b/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue
index 7e60756fc..43fe7e0c9 100644
--- a/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue
+++ b/apps/www/src/lib/registry/default/ui/table/TableEmpty.vue
@@ -1,17 +1,21 @@
@@ -23,7 +27,7 @@ const props = withDefaults(defineProps(), {
props.class,
)
"
- :colspan="props.colspan"
+ v-bind="delegatedProps"
>
diff --git a/apps/www/src/lib/registry/default/ui/table/TableFooter.vue b/apps/www/src/lib/registry/default/ui/table/TableFooter.vue
index 6e34e4c63..693a4386e 100644
--- a/apps/www/src/lib/registry/default/ui/table/TableFooter.vue
+++ b/apps/www/src/lib/registry/default/ui/table/TableFooter.vue
@@ -1,11 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/table/TableHead.vue b/apps/www/src/lib/registry/default/ui/table/TableHead.vue
index 3f1aa5b26..e882b6084 100644
--- a/apps/www/src/lib/registry/default/ui/table/TableHead.vue
+++ b/apps/www/src/lib/registry/default/ui/table/TableHead.vue
@@ -1,7 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/table/TableHeader.vue b/apps/www/src/lib/registry/default/ui/table/TableHeader.vue
index 3af2117fe..220352f6d 100644
--- a/apps/www/src/lib/registry/default/ui/table/TableHeader.vue
+++ b/apps/www/src/lib/registry/default/ui/table/TableHeader.vue
@@ -1,7 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/table/TableRow.vue b/apps/www/src/lib/registry/default/ui/table/TableRow.vue
index f752f46f1..5b9e87498 100644
--- a/apps/www/src/lib/registry/default/ui/table/TableRow.vue
+++ b/apps/www/src/lib/registry/default/ui/table/TableRow.vue
@@ -1,7 +1,10 @@
diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue
index a39a666b1..c0aa0f357 100644
--- a/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue
+++ b/apps/www/src/lib/registry/default/ui/tabs/TabsContent.vue
@@ -1,14 +1,21 @@
diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue
index 36ee8625a..9644cdc37 100644
--- a/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue
+++ b/apps/www/src/lib/registry/default/ui/tabs/TabsList.vue
@@ -1,19 +1,24 @@
diff --git a/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue b/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue
index 5255c6210..5fa6748dd 100644
--- a/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/tabs/TabsTrigger.vue
@@ -1,19 +1,26 @@
diff --git a/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue b/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue
index 3f752587e..ddf8dd014 100644
--- a/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue
+++ b/apps/www/src/lib/registry/default/ui/textarea/Textarea.vue
@@ -1,8 +1,10 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/toast/Toast.vue b/apps/www/src/lib/registry/default/ui/toast/Toast.vue
index 980f2fb48..b74762cb4 100644
--- a/apps/www/src/lib/registry/default/ui/toast/Toast.vue
+++ b/apps/www/src/lib/registry/default/ui/toast/Toast.vue
@@ -1,30 +1,26 @@
-
-
diff --git a/apps/www/src/lib/registry/default/ui/toast/ToastAction.vue b/apps/www/src/lib/registry/default/ui/toast/ToastAction.vue
index b5ccbefe7..28ca8c8e5 100644
--- a/apps/www/src/lib/registry/default/ui/toast/ToastAction.vue
+++ b/apps/www/src/lib/registry/default/ui/toast/ToastAction.vue
@@ -1,12 +1,19 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/toast/ToastClose.vue b/apps/www/src/lib/registry/default/ui/toast/ToastClose.vue
index 766593cfb..ab685a51c 100644
--- a/apps/www/src/lib/registry/default/ui/toast/ToastClose.vue
+++ b/apps/www/src/lib/registry/default/ui/toast/ToastClose.vue
@@ -1,15 +1,22 @@
-
-
+
+
diff --git a/apps/www/src/lib/registry/default/ui/toast/ToastDescription.vue b/apps/www/src/lib/registry/default/ui/toast/ToastDescription.vue
index 5f71b1a86..58520378d 100644
--- a/apps/www/src/lib/registry/default/ui/toast/ToastDescription.vue
+++ b/apps/www/src/lib/registry/default/ui/toast/ToastDescription.vue
@@ -1,12 +1,19 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/toast/ToastTitle.vue b/apps/www/src/lib/registry/default/ui/toast/ToastTitle.vue
index b317850a1..0a1dffbe4 100644
--- a/apps/www/src/lib/registry/default/ui/toast/ToastTitle.vue
+++ b/apps/www/src/lib/registry/default/ui/toast/ToastTitle.vue
@@ -1,12 +1,19 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/toast/ToastViewport.vue b/apps/www/src/lib/registry/default/ui/toast/ToastViewport.vue
index 5f2f2b95a..57deec811 100644
--- a/apps/www/src/lib/registry/default/ui/toast/ToastViewport.vue
+++ b/apps/www/src/lib/registry/default/ui/toast/ToastViewport.vue
@@ -1,10 +1,17 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/toast/index.ts b/apps/www/src/lib/registry/default/ui/toast/index.ts
index 331bf98c0..ddfdfbf3f 100644
--- a/apps/www/src/lib/registry/default/ui/toast/index.ts
+++ b/apps/www/src/lib/registry/default/ui/toast/index.ts
@@ -1,3 +1,6 @@
+import type { ToastRootProps } from 'radix-vue'
+import type { HTMLAttributes } from 'vue'
+
export { default as Toaster } from './Toaster.vue'
export { default as Toast } from './Toast.vue'
export { default as ToastViewport } from './ToastViewport.vue'
@@ -8,7 +11,7 @@ export { default as ToastDescription } from './ToastDescription.vue'
export { default as ToastProvider } from './ToastProvider.vue'
export { toast, useToast } from './use-toast'
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export const toastVariants = cva(
'group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full',
@@ -25,3 +28,11 @@ export const toastVariants = cva(
},
},
)
+
+type ToastVariants = VariantProps
+
+export interface ToastProps extends ToastRootProps {
+ class?: HTMLAttributes['class']
+ variant?: ToastVariants['variant']
+ 'onOpenChange'?: ((value: boolean) => void) | undefined
+}
diff --git a/apps/www/src/lib/registry/default/ui/toast/use-toast.ts b/apps/www/src/lib/registry/default/ui/toast/use-toast.ts
index 02e6973b8..500e929e4 100644
--- a/apps/www/src/lib/registry/default/ui/toast/use-toast.ts
+++ b/apps/www/src/lib/registry/default/ui/toast/use-toast.ts
@@ -1,6 +1,6 @@
import { computed, ref } from 'vue'
import type { Component, VNode } from 'vue'
-import type { ToastProps } from './Toast.vue'
+import type { ToastProps } from '.'
const TOAST_LIMIT = 1
const TOAST_REMOVE_DELAY = 1000000
diff --git a/apps/www/src/lib/registry/default/ui/toggle-group/ToggleGroup.vue b/apps/www/src/lib/registry/default/ui/toggle-group/ToggleGroup.vue
index c182163e3..4e7251377 100644
--- a/apps/www/src/lib/registry/default/ui/toggle-group/ToggleGroup.vue
+++ b/apps/www/src/lib/registry/default/ui/toggle-group/ToggleGroup.vue
@@ -24,7 +24,7 @@ const delegatedProps = computed(() => {
return delegated
})
-const forwarded = useForwardPropsEmits(delegatedProps.value, emits)
+const forwarded = useForwardPropsEmits(delegatedProps, emits)
diff --git a/apps/www/src/lib/registry/default/ui/toggle-group/ToggleGroupItem.vue b/apps/www/src/lib/registry/default/ui/toggle-group/ToggleGroupItem.vue
index 17819b312..79cf4709f 100644
--- a/apps/www/src/lib/registry/default/ui/toggle-group/ToggleGroupItem.vue
+++ b/apps/www/src/lib/registry/default/ui/toggle-group/ToggleGroupItem.vue
@@ -20,7 +20,7 @@ const delegatedProps = computed(() => {
return delegated
})
-const forwardedProps = useForwardProps(delegatedProps.value)
+const forwardedProps = useForwardProps(delegatedProps)
diff --git a/apps/www/src/lib/registry/default/ui/toggle/Toggle.vue b/apps/www/src/lib/registry/default/ui/toggle/Toggle.vue
index bb15d6162..29a691022 100644
--- a/apps/www/src/lib/registry/default/ui/toggle/Toggle.vue
+++ b/apps/www/src/lib/registry/default/ui/toggle/Toggle.vue
@@ -1,48 +1,34 @@
diff --git a/apps/www/src/lib/registry/default/ui/toggle/index.ts b/apps/www/src/lib/registry/default/ui/toggle/index.ts
index ad34b6486..7e35be2f8 100644
--- a/apps/www/src/lib/registry/default/ui/toggle/index.ts
+++ b/apps/www/src/lib/registry/default/ui/toggle/index.ts
@@ -1,4 +1,4 @@
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export { default as Toggle } from './Toggle.vue'
@@ -23,3 +23,5 @@ export const toggleVariants = cva(
},
},
)
+
+export type ToggleVariants = VariantProps
diff --git a/apps/www/src/lib/registry/default/ui/tooltip/TooltipContent.vue b/apps/www/src/lib/registry/default/ui/tooltip/TooltipContent.vue
index c06b932f7..1f12009a6 100644
--- a/apps/www/src/lib/registry/default/ui/tooltip/TooltipContent.vue
+++ b/apps/www/src/lib/registry/default/ui/tooltip/TooltipContent.vue
@@ -1,18 +1,30 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/example/CardFormDemo.vue b/apps/www/src/lib/registry/new-york/example/CardFormDemo.vue
index cea8c9464..b8d0a9abf 100644
--- a/apps/www/src/lib/registry/new-york/example/CardFormDemo.vue
+++ b/apps/www/src/lib/registry/new-york/example/CardFormDemo.vue
@@ -1,5 +1,12 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/accordion/AccordionContent.vue b/apps/www/src/lib/registry/new-york/ui/accordion/AccordionContent.vue
index 10703dec0..68632ef4a 100644
--- a/apps/www/src/lib/registry/new-york/ui/accordion/AccordionContent.vue
+++ b/apps/www/src/lib/registry/new-york/ui/accordion/AccordionContent.vue
@@ -1,21 +1,23 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/accordion/AccordionItem.vue b/apps/www/src/lib/registry/new-york/ui/accordion/AccordionItem.vue
index c78bf5aa2..9975c238f 100644
--- a/apps/www/src/lib/registry/new-york/ui/accordion/AccordionItem.vue
+++ b/apps/www/src/lib/registry/new-york/ui/accordion/AccordionItem.vue
@@ -1,14 +1,23 @@
diff --git a/apps/www/src/lib/registry/new-york/ui/accordion/AccordionTrigger.vue b/apps/www/src/lib/registry/new-york/ui/accordion/AccordionTrigger.vue
index 264aa7f6f..6eef10a68 100644
--- a/apps/www/src/lib/registry/new-york/ui/accordion/AccordionTrigger.vue
+++ b/apps/www/src/lib/registry/new-york/ui/accordion/AccordionTrigger.vue
@@ -1,4 +1,5 @@
-
+
-
+
+
+
diff --git a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogAction.vue b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogAction.vue
index b7898320c..985f6447f 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogAction.vue
+++ b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogAction.vue
@@ -1,13 +1,20 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogCancel.vue b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogCancel.vue
index 33305f276..d3dbb8053 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogCancel.vue
+++ b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogCancel.vue
@@ -1,13 +1,20 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogContent.vue b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogContent.vue
index 54d1f4e04..962124d79 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogContent.vue
+++ b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogContent.vue
@@ -1,31 +1,37 @@
+import { type HTMLAttributes, computed } from 'vue'
import {
AlertDialogDescription,
type AlertDialogDescriptionProps,
} from 'radix-vue'
import { cn } from '@/lib/utils'
-const props = defineProps()
+const props = defineProps()
+
+const delegatedProps = computed(() => {
+ const { class: _, ...delegated } = props
+
+ return delegated
+})
diff --git a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogFooter.vue b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogFooter.vue
index de4af93b3..55d0a0eb8 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogFooter.vue
+++ b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogFooter.vue
@@ -1,19 +1,17 @@
+import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
-const props = defineProps({
- class: {
- type: String,
- default: '',
- },
-})
+const props = defineProps<{
+ class?: HTMLAttributes['class']
+}>()
diff --git a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogTitle.vue b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogTitle.vue
index 9b6491f2c..50c583d09 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogTitle.vue
+++ b/apps/www/src/lib/registry/new-york/ui/alert-dialog/AlertDialogTitle.vue
@@ -1,14 +1,21 @@
diff --git a/apps/www/src/lib/registry/new-york/ui/alert/Alert.vue b/apps/www/src/lib/registry/new-york/ui/alert/Alert.vue
index b95d5c897..b3502d521 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert/Alert.vue
+++ b/apps/www/src/lib/registry/new-york/ui/alert/Alert.vue
@@ -1,17 +1,16 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/alert/AlertDescription.vue b/apps/www/src/lib/registry/new-york/ui/alert/AlertDescription.vue
index a539b631d..2971a877b 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert/AlertDescription.vue
+++ b/apps/www/src/lib/registry/new-york/ui/alert/AlertDescription.vue
@@ -1,9 +1,10 @@
diff --git a/apps/www/src/lib/registry/new-york/ui/alert/AlertTitle.vue b/apps/www/src/lib/registry/new-york/ui/alert/AlertTitle.vue
index c5dd22c27..e28dd37ea 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert/AlertTitle.vue
+++ b/apps/www/src/lib/registry/new-york/ui/alert/AlertTitle.vue
@@ -1,9 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/alert/index.ts b/apps/www/src/lib/registry/new-york/ui/alert/index.ts
index 499ee68ab..1ef587234 100644
--- a/apps/www/src/lib/registry/new-york/ui/alert/index.ts
+++ b/apps/www/src/lib/registry/new-york/ui/alert/index.ts
@@ -1,4 +1,4 @@
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export { default as Alert } from './Alert.vue'
export { default as AlertTitle } from './AlertTitle.vue'
@@ -19,3 +19,5 @@ export const alertVariants = cva(
},
},
)
+
+export type AlertVariants = VariantProps
diff --git a/apps/www/src/lib/registry/new-york/ui/avatar/Avatar.vue b/apps/www/src/lib/registry/new-york/ui/avatar/Avatar.vue
index 39f71b65e..5b7b9fbf6 100644
--- a/apps/www/src/lib/registry/new-york/ui/avatar/Avatar.vue
+++ b/apps/www/src/lib/registry/new-york/ui/avatar/Avatar.vue
@@ -1,15 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/avatar/index.ts b/apps/www/src/lib/registry/new-york/ui/avatar/index.ts
index 147e9d2ae..c4af1a66c 100644
--- a/apps/www/src/lib/registry/new-york/ui/avatar/index.ts
+++ b/apps/www/src/lib/registry/new-york/ui/avatar/index.ts
@@ -1,11 +1,11 @@
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export { default as Avatar } from './Avatar.vue'
export { default as AvatarImage } from './AvatarImage.vue'
export { default as AvatarFallback } from './AvatarFallback.vue'
export const avatarVariant = cva(
- 'inline-flex items-center justify-center font-normal text-foreground select-none shrink-0 bg-muted overflow-hidden',
+ 'inline-flex items-center justify-center font-normal text-foreground select-none shrink-0 bg-secondary overflow-hidden',
{
variants: {
size: {
@@ -20,3 +20,5 @@ export const avatarVariant = cva(
},
},
)
+
+export type AvatarVariants = VariantProps
diff --git a/apps/www/src/lib/registry/new-york/ui/badge/Badge.vue b/apps/www/src/lib/registry/new-york/ui/badge/Badge.vue
index b459c1459..2e8bdffa5 100644
--- a/apps/www/src/lib/registry/new-york/ui/badge/Badge.vue
+++ b/apps/www/src/lib/registry/new-york/ui/badge/Badge.vue
@@ -1,18 +1,16 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/badge/index.ts b/apps/www/src/lib/registry/new-york/ui/badge/index.ts
index 6bcca9b19..20eda06ac 100644
--- a/apps/www/src/lib/registry/new-york/ui/badge/index.ts
+++ b/apps/www/src/lib/registry/new-york/ui/badge/index.ts
@@ -1,4 +1,4 @@
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export { default as Badge } from './Badge.vue'
@@ -21,3 +21,5 @@ export const badgeVariants = cva(
},
},
)
+
+export type BadgeVariants = VariantProps
diff --git a/apps/www/src/lib/registry/new-york/ui/button/Button.vue b/apps/www/src/lib/registry/new-york/ui/button/Button.vue
index 8bd713642..a76410262 100644
--- a/apps/www/src/lib/registry/new-york/ui/button/Button.vue
+++ b/apps/www/src/lib/registry/new-york/ui/button/Button.vue
@@ -1,20 +1,17 @@
@@ -23,7 +20,7 @@ withDefaults(defineProps(), {
diff --git a/apps/www/src/lib/registry/new-york/ui/button/index.ts b/apps/www/src/lib/registry/new-york/ui/button/index.ts
index be8da738b..4bb4bdb99 100644
--- a/apps/www/src/lib/registry/new-york/ui/button/index.ts
+++ b/apps/www/src/lib/registry/new-york/ui/button/index.ts
@@ -1,20 +1,19 @@
-import { cva } from 'class-variance-authority'
+import { type VariantProps, cva } from 'class-variance-authority'
export { default as Button } from './Button.vue'
export const buttonVariants = cva(
- 'inline-flex items-center justify-center rounded-md whitespace-nowrap text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',
+ 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',
{
variants: {
variant: {
- default:
- 'bg-primary text-primary-foreground shadow hover:bg-primary/90',
+ default: 'bg-primary text-primary-foreground shadow hover:bg-primary/90',
destructive:
- 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',
+ 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',
outline:
- 'border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground',
+ 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',
secondary:
- 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',
+ 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',
ghost: 'hover:bg-accent hover:text-accent-foreground',
link: 'text-primary underline-offset-4 hover:underline',
},
@@ -31,3 +30,5 @@ export const buttonVariants = cva(
},
},
)
+
+export type ButtonVariants = VariantProps
diff --git a/apps/www/src/lib/registry/new-york/ui/card/Card.vue b/apps/www/src/lib/registry/new-york/ui/card/Card.vue
index d39baad77..94b69033d 100644
--- a/apps/www/src/lib/registry/new-york/ui/card/Card.vue
+++ b/apps/www/src/lib/registry/new-york/ui/card/Card.vue
@@ -1,19 +1,17 @@
+import type { HTMLAttributes } from 'vue'
import { cn } from '@/lib/utils'
-const props = defineProps({
- class: {
- type: String,
- default: '',
- },
-})
+const props = defineProps<{
+ class?: HTMLAttributes['class']
+}>()
diff --git a/apps/www/src/lib/registry/new-york/ui/card/CardDescription.vue b/apps/www/src/lib/registry/new-york/ui/card/CardDescription.vue
index 6f1fc0ee3..d5faedd5c 100644
--- a/apps/www/src/lib/registry/new-york/ui/card/CardDescription.vue
+++ b/apps/www/src/lib/registry/new-york/ui/card/CardDescription.vue
@@ -1,12 +1,10 @@
diff --git a/apps/www/src/lib/registry/new-york/ui/card/CardFooter.vue b/apps/www/src/lib/registry/new-york/ui/card/CardFooter.vue
index fb1205b96..1ed2efe57 100644
--- a/apps/www/src/lib/registry/new-york/ui/card/CardFooter.vue
+++ b/apps/www/src/lib/registry/new-york/ui/card/CardFooter.vue
@@ -1,12 +1,10 @@
diff --git a/apps/www/src/lib/registry/new-york/ui/card/CardHeader.vue b/apps/www/src/lib/registry/new-york/ui/card/CardHeader.vue
index 7422a5ad4..951d227e9 100644
--- a/apps/www/src/lib/registry/new-york/ui/card/CardHeader.vue
+++ b/apps/www/src/lib/registry/new-york/ui/card/CardHeader.vue
@@ -1,16 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/new-york/ui/card/CardTitle.vue b/apps/www/src/lib/registry/new-york/ui/card/CardTitle.vue
index b5c27b347..fc302e255 100644
--- a/apps/www/src/lib/registry/new-york/ui/card/CardTitle.vue
+++ b/apps/www/src/lib/registry/new-york/ui/card/CardTitle.vue
@@ -1,12 +1,10 @@
diff --git a/apps/www/src/lib/registry/new-york/ui/carousel/Carousel.vue b/apps/www/src/lib/registry/new-york/ui/carousel/Carousel.vue
index c88d61ada..b6147c27a 100644
--- a/apps/www/src/lib/registry/new-york/ui/carousel/Carousel.vue
+++ b/apps/www/src/lib/registry/new-york/ui/carousel/Carousel.vue
@@ -1,5 +1,4 @@