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 969ae969..b6147c27 100644 --- a/apps/www/src/lib/registry/default/ui/carousel/Carousel.vue +++ b/apps/www/src/lib/registry/default/ui/carousel/Carousel.vue @@ -1,9 +1,9 @@ @@ -12,7 +15,7 @@ const { carouselRef, orientation } = useCarousel() cn( 'flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', - $attrs.class ?? '', + props.class, )" > diff --git a/apps/www/src/lib/registry/default/ui/carousel/CarouselItem.vue b/apps/www/src/lib/registry/default/ui/carousel/CarouselItem.vue index 5ff44c57..53ea50da 100644 --- a/apps/www/src/lib/registry/default/ui/carousel/CarouselItem.vue +++ b/apps/www/src/lib/registry/default/ui/carousel/CarouselItem.vue @@ -1,7 +1,10 @@ @@ -12,7 +15,7 @@ const { orientation } = useCarousel() :class="cn( 'min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', - $attrs.class ?? '', + props.class, )" > diff --git a/apps/www/src/lib/registry/default/ui/carousel/CarouselNext.vue b/apps/www/src/lib/registry/default/ui/carousel/CarouselNext.vue index 2c4c34b7..67faba07 100644 --- a/apps/www/src/lib/registry/default/ui/carousel/CarouselNext.vue +++ b/apps/www/src/lib/registry/default/ui/carousel/CarouselNext.vue @@ -1,9 +1,12 @@ @@ -15,7 +18,7 @@ const { orientation, canScrollNext, scrollNext } = useCarousel() orientation === 'horizontal' ? '-right-12 top-1/2 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90', - $attrs.class ?? '', + props.class, )" variant="outline" @click="scrollNext" diff --git a/apps/www/src/lib/registry/default/ui/carousel/CarouselPrevious.vue b/apps/www/src/lib/registry/default/ui/carousel/CarouselPrevious.vue index 0e99d96b..c64b3d92 100644 --- a/apps/www/src/lib/registry/default/ui/carousel/CarouselPrevious.vue +++ b/apps/www/src/lib/registry/default/ui/carousel/CarouselPrevious.vue @@ -1,9 +1,12 @@ @@ -15,7 +18,7 @@ const { orientation, canScrollPrev, scrollPrev } = useCarousel() orientation === 'horizontal' ? '-left-12 top-1/2 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90', - $attrs.class ?? '', + props.class, )" variant="outline" @click="scrollPrev" diff --git a/apps/www/src/lib/registry/default/ui/carousel/interface.ts b/apps/www/src/lib/registry/default/ui/carousel/interface.ts index 3cc55714..68521ddb 100644 --- a/apps/www/src/lib/registry/default/ui/carousel/interface.ts +++ b/apps/www/src/lib/registry/default/ui/carousel/interface.ts @@ -3,6 +3,7 @@ import type { EmblaOptionsType as CarouselOptions, EmblaPluginType as CarouselPlugin, } from 'embla-carousel' +import type { HTMLAttributes } from 'vue' export interface CarouselProps { opts?: CarouselOptions @@ -13,3 +14,7 @@ export interface CarouselProps { export interface CarouselEmits { (e: 'init-api', payload: CarouselApi): void } + +export interface WithClassAsProps { + class?: HTMLAttributes['class'] +} 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 969ae969..b6147c27 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,9 +1,9 @@ @@ -12,7 +15,7 @@ const { carouselRef, orientation } = useCarousel() cn( 'flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', - $attrs.class ?? '', + props.class, )" > diff --git a/apps/www/src/lib/registry/new-york/ui/carousel/CarouselItem.vue b/apps/www/src/lib/registry/new-york/ui/carousel/CarouselItem.vue index 5ff44c57..801e5c16 100644 --- a/apps/www/src/lib/registry/new-york/ui/carousel/CarouselItem.vue +++ b/apps/www/src/lib/registry/new-york/ui/carousel/CarouselItem.vue @@ -1,7 +1,10 @@ @@ -12,7 +15,7 @@ const { orientation } = useCarousel() :class="cn( 'min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', - $attrs.class ?? '', + props.class, )" > diff --git a/apps/www/src/lib/registry/new-york/ui/carousel/CarouselNext.vue b/apps/www/src/lib/registry/new-york/ui/carousel/CarouselNext.vue index 37ca9f24..d237434b 100644 --- a/apps/www/src/lib/registry/new-york/ui/carousel/CarouselNext.vue +++ b/apps/www/src/lib/registry/new-york/ui/carousel/CarouselNext.vue @@ -1,9 +1,12 @@ @@ -15,7 +18,7 @@ const { orientation, canScrollNext, scrollNext } = useCarousel() orientation === 'horizontal' ? '-right-12 top-1/2 -translate-y-1/2' : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90', - $attrs.class ?? '', + props.class, )" variant="outline" @click="scrollNext" diff --git a/apps/www/src/lib/registry/new-york/ui/carousel/CarouselPrevious.vue b/apps/www/src/lib/registry/new-york/ui/carousel/CarouselPrevious.vue index 91c8389b..2018027a 100644 --- a/apps/www/src/lib/registry/new-york/ui/carousel/CarouselPrevious.vue +++ b/apps/www/src/lib/registry/new-york/ui/carousel/CarouselPrevious.vue @@ -1,9 +1,12 @@ @@ -15,7 +18,7 @@ const { orientation, canScrollPrev, scrollPrev } = useCarousel() orientation === 'horizontal' ? '-left-12 top-1/2 -translate-y-1/2' : '-top-12 left-1/2 -translate-x-1/2 rotate-90', - $attrs.class ?? '', + props.class, )" variant="outline" @click="scrollPrev" diff --git a/apps/www/src/lib/registry/new-york/ui/carousel/interface.ts b/apps/www/src/lib/registry/new-york/ui/carousel/interface.ts index 3cc55714..68521ddb 100644 --- a/apps/www/src/lib/registry/new-york/ui/carousel/interface.ts +++ b/apps/www/src/lib/registry/new-york/ui/carousel/interface.ts @@ -3,6 +3,7 @@ import type { EmblaOptionsType as CarouselOptions, EmblaPluginType as CarouselPlugin, } from 'embla-carousel' +import type { HTMLAttributes } from 'vue' export interface CarouselProps { opts?: CarouselOptions @@ -13,3 +14,7 @@ export interface CarouselProps { export interface CarouselEmits { (e: 'init-api', payload: CarouselApi): void } + +export interface WithClassAsProps { + class?: HTMLAttributes['class'] +}