diff --git a/apps/www/package.json b/apps/www/package.json index c8e7e0c6..a26c1909 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -29,9 +29,8 @@ "clsx": "^2.1.1", "codesandbox": "^2.2.3", "date-fns": "^3.6.0", - "embla-carousel": "^8.1.3", - "embla-carousel-autoplay": "^8.1.3", - "embla-carousel-vue": "^8.1.3", + "embla-carousel-autoplay": "^8.1.5", + "embla-carousel-vue": "^8.1.5", "lucide-vue-next": "^0.383.0", "magic-string": "^0.30.10", "radix-vue": "^1.8.3", diff --git a/apps/www/src/lib/registry/default/ui/carousel/index.ts b/apps/www/src/lib/registry/default/ui/carousel/index.ts index addfe036..5ccaad27 100644 --- a/apps/www/src/lib/registry/default/ui/carousel/index.ts +++ b/apps/www/src/lib/registry/default/ui/carousel/index.ts @@ -6,5 +6,5 @@ export { default as CarouselNext } from './CarouselNext.vue' export { useCarousel } from './useCarousel' export type { - EmblaCarouselType as CarouselApi, -} from 'embla-carousel' + UnwrapRefCarouselApi as CarouselApi, +} from './interface' 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 99c4f1a8..195ff811 100644 --- a/apps/www/src/lib/registry/default/ui/carousel/interface.ts +++ b/apps/www/src/lib/registry/default/ui/carousel/interface.ts @@ -1,18 +1,24 @@ +import type { HTMLAttributes, UnwrapRef } from 'vue' +import type useEmblaCarousel from 'embla-carousel-vue' import type { - EmblaCarouselType as CarouselApi, - EmblaOptionsType as CarouselOptions, - EmblaPluginType as CarouselPlugin, -} from 'embla-carousel' -import type { HTMLAttributes, Ref } from 'vue' + EmblaCarouselVueType, +} from 'embla-carousel-vue' + +type CarouselApi = EmblaCarouselVueType[1] +type UseCarouselParameters = Parameters +type CarouselOptions = UseCarouselParameters[0] +type CarouselPlugin = UseCarouselParameters[1] + +export type UnwrapRefCarouselApi = UnwrapRef export interface CarouselProps { - opts?: CarouselOptions | Ref - plugins?: CarouselPlugin[] | Ref + opts?: CarouselOptions + plugins?: CarouselPlugin orientation?: 'horizontal' | 'vertical' } export interface CarouselEmits { - (e: 'init-api', payload: CarouselApi): void + (e: 'init-api', payload: UnwrapRefCarouselApi): void } export interface WithClassAsProps { diff --git a/apps/www/src/lib/registry/default/ui/carousel/useCarousel.ts b/apps/www/src/lib/registry/default/ui/carousel/useCarousel.ts index 16be25c8..012d9434 100644 --- a/apps/www/src/lib/registry/default/ui/carousel/useCarousel.ts +++ b/apps/www/src/lib/registry/default/ui/carousel/useCarousel.ts @@ -1,10 +1,7 @@ import { createInjectionState } from '@vueuse/core' import emblaCarouselVue from 'embla-carousel-vue' import { onMounted, ref } from 'vue' -import type { - EmblaCarouselType as CarouselApi, -} from 'embla-carousel' -import type { CarouselEmits, CarouselProps } from './interface' +import type { UnwrapRefCarouselApi as CarouselApi, CarouselEmits, CarouselProps } from './interface' const [useProvideCarousel, useInjectCarousel] = createInjectionState( ({ @@ -24,12 +21,12 @@ const [useProvideCarousel, useInjectCarousel] = createInjectionState( emblaApi.value?.scrollNext() } - const canScrollNext = ref(true) - const canScrollPrev = ref(true) + const canScrollNext = ref(false) + const canScrollPrev = ref(false) function onSelect(api: CarouselApi) { - canScrollNext.value = api.canScrollNext() - canScrollPrev.value = api.canScrollPrev() + canScrollNext.value = api?.canScrollNext() || false + canScrollPrev.value = api?.canScrollPrev() || false } onMounted(() => { diff --git a/apps/www/src/lib/registry/new-york/ui/carousel/index.ts b/apps/www/src/lib/registry/new-york/ui/carousel/index.ts index addfe036..5ccaad27 100644 --- a/apps/www/src/lib/registry/new-york/ui/carousel/index.ts +++ b/apps/www/src/lib/registry/new-york/ui/carousel/index.ts @@ -6,5 +6,5 @@ export { default as CarouselNext } from './CarouselNext.vue' export { useCarousel } from './useCarousel' export type { - EmblaCarouselType as CarouselApi, -} from 'embla-carousel' + UnwrapRefCarouselApi as CarouselApi, +} from './interface' 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 99c4f1a8..195ff811 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 @@ -1,18 +1,24 @@ +import type { HTMLAttributes, UnwrapRef } from 'vue' +import type useEmblaCarousel from 'embla-carousel-vue' import type { - EmblaCarouselType as CarouselApi, - EmblaOptionsType as CarouselOptions, - EmblaPluginType as CarouselPlugin, -} from 'embla-carousel' -import type { HTMLAttributes, Ref } from 'vue' + EmblaCarouselVueType, +} from 'embla-carousel-vue' + +type CarouselApi = EmblaCarouselVueType[1] +type UseCarouselParameters = Parameters +type CarouselOptions = UseCarouselParameters[0] +type CarouselPlugin = UseCarouselParameters[1] + +export type UnwrapRefCarouselApi = UnwrapRef export interface CarouselProps { - opts?: CarouselOptions | Ref - plugins?: CarouselPlugin[] | Ref + opts?: CarouselOptions + plugins?: CarouselPlugin orientation?: 'horizontal' | 'vertical' } export interface CarouselEmits { - (e: 'init-api', payload: CarouselApi): void + (e: 'init-api', payload: UnwrapRefCarouselApi): void } export interface WithClassAsProps { diff --git a/apps/www/src/lib/registry/new-york/ui/carousel/useCarousel.ts b/apps/www/src/lib/registry/new-york/ui/carousel/useCarousel.ts index 16be25c8..012d9434 100644 --- a/apps/www/src/lib/registry/new-york/ui/carousel/useCarousel.ts +++ b/apps/www/src/lib/registry/new-york/ui/carousel/useCarousel.ts @@ -1,10 +1,7 @@ import { createInjectionState } from '@vueuse/core' import emblaCarouselVue from 'embla-carousel-vue' import { onMounted, ref } from 'vue' -import type { - EmblaCarouselType as CarouselApi, -} from 'embla-carousel' -import type { CarouselEmits, CarouselProps } from './interface' +import type { UnwrapRefCarouselApi as CarouselApi, CarouselEmits, CarouselProps } from './interface' const [useProvideCarousel, useInjectCarousel] = createInjectionState( ({ @@ -24,12 +21,12 @@ const [useProvideCarousel, useInjectCarousel] = createInjectionState( emblaApi.value?.scrollNext() } - const canScrollNext = ref(true) - const canScrollPrev = ref(true) + const canScrollNext = ref(false) + const canScrollPrev = ref(false) function onSelect(api: CarouselApi) { - canScrollNext.value = api.canScrollNext() - canScrollPrev.value = api.canScrollPrev() + canScrollNext.value = api?.canScrollNext() || false + canScrollPrev.value = api?.canScrollPrev() || false } onMounted(() => { diff --git a/apps/www/src/lib/registry/registry.ts b/apps/www/src/lib/registry/registry.ts index cbe19276..424c34d9 100644 --- a/apps/www/src/lib/registry/registry.ts +++ b/apps/www/src/lib/registry/registry.ts @@ -12,7 +12,7 @@ const DEPENDENCIES = new Map([ ['v-calendar', []], ['@tanstack/vue-table', []], ['@unovis/vue', ['@unovis/ts']], - ['embla-carousel-vue', ['embla-carousel']], + ['embla-carousel-vue', []], ['vee-validate', ['@vee-validate/zod', 'zod']], ]) // Some dependencies latest tag were not compatible with Vue3. diff --git a/apps/www/src/public/registry/index.json b/apps/www/src/public/registry/index.json index 3decb47c..91874765 100644 --- a/apps/www/src/public/registry/index.json +++ b/apps/www/src/public/registry/index.json @@ -202,9 +202,8 @@ { "name": "carousel", "dependencies": [ - "@vueuse/core", "embla-carousel-vue", - "embla-carousel" + "@vueuse/core" ], "registryDependencies": [ "utils", diff --git a/apps/www/src/public/registry/styles/default/carousel.json b/apps/www/src/public/registry/styles/default/carousel.json index 5ca5575d..16dee8df 100644 --- a/apps/www/src/public/registry/styles/default/carousel.json +++ b/apps/www/src/public/registry/styles/default/carousel.json @@ -1,9 +1,8 @@ { "name": "carousel", "dependencies": [ - "@vueuse/core", "embla-carousel-vue", - "embla-carousel" + "@vueuse/core" ], "registryDependencies": [ "utils", @@ -32,15 +31,15 @@ }, { "name": "index.ts", - "content": "export { default as Carousel } from './Carousel.vue'\nexport { default as CarouselContent } from './CarouselContent.vue'\nexport { default as CarouselItem } from './CarouselItem.vue'\nexport { default as CarouselPrevious } from './CarouselPrevious.vue'\nexport { default as CarouselNext } from './CarouselNext.vue'\nexport { useCarousel } from './useCarousel'\n\nexport type {\n EmblaCarouselType as CarouselApi,\n} from 'embla-carousel'\n" + "content": "export { default as Carousel } from './Carousel.vue'\nexport { default as CarouselContent } from './CarouselContent.vue'\nexport { default as CarouselItem } from './CarouselItem.vue'\nexport { default as CarouselPrevious } from './CarouselPrevious.vue'\nexport { default as CarouselNext } from './CarouselNext.vue'\nexport { useCarousel } from './useCarousel'\n\nexport type {\n UnwrapRefCarouselApi as CarouselApi,\n} from './interface'\n" }, { "name": "interface.ts", - "content": "import type {\n EmblaCarouselType as CarouselApi,\n EmblaOptionsType as CarouselOptions,\n EmblaPluginType as CarouselPlugin,\n} from 'embla-carousel'\nimport type { HTMLAttributes, Ref } from 'vue'\n\nexport interface CarouselProps {\n opts?: CarouselOptions | Ref\n plugins?: CarouselPlugin[] | Ref\n orientation?: 'horizontal' | 'vertical'\n}\n\nexport interface CarouselEmits {\n (e: 'init-api', payload: CarouselApi): void\n}\n\nexport interface WithClassAsProps {\n class?: HTMLAttributes['class']\n}\n" + "content": "import type { HTMLAttributes, UnwrapRef } from 'vue'\nimport type useEmblaCarousel from 'embla-carousel-vue'\nimport type {\n EmblaCarouselVueType,\n} from 'embla-carousel-vue'\n\ntype CarouselApi = EmblaCarouselVueType[1]\ntype UseCarouselParameters = Parameters\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\nexport type UnwrapRefCarouselApi = UnwrapRef\n\nexport interface CarouselProps {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: 'horizontal' | 'vertical'\n}\n\nexport interface CarouselEmits {\n (e: 'init-api', payload: UnwrapRefCarouselApi): void\n}\n\nexport interface WithClassAsProps {\n class?: HTMLAttributes['class']\n}\n" }, { "name": "useCarousel.ts", - "content": "import { createInjectionState } from '@vueuse/core'\nimport emblaCarouselVue from 'embla-carousel-vue'\nimport { onMounted, ref } from 'vue'\nimport type {\n EmblaCarouselType as CarouselApi,\n} from 'embla-carousel'\nimport type { CarouselEmits, CarouselProps } from './interface'\n\nconst [useProvideCarousel, useInjectCarousel] = createInjectionState(\n ({\n opts,\n orientation,\n plugins,\n }: CarouselProps, emits: CarouselEmits) => {\n const [emblaNode, emblaApi] = emblaCarouselVue({\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n }, plugins)\n\n function scrollPrev() {\n emblaApi.value?.scrollPrev()\n }\n function scrollNext() {\n emblaApi.value?.scrollNext()\n }\n\n const canScrollNext = ref(true)\n const canScrollPrev = ref(true)\n\n function onSelect(api: CarouselApi) {\n canScrollNext.value = api.canScrollNext()\n canScrollPrev.value = api.canScrollPrev()\n }\n\n onMounted(() => {\n if (!emblaApi.value)\n return\n\n emblaApi.value?.on('init', onSelect)\n emblaApi.value?.on('reInit', onSelect)\n emblaApi.value?.on('select', onSelect)\n\n emits('init-api', emblaApi.value)\n })\n\n return { carouselRef: emblaNode, carouselApi: emblaApi, canScrollPrev, canScrollNext, scrollPrev, scrollNext, orientation }\n },\n)\n\nfunction useCarousel() {\n const carouselState = useInjectCarousel()\n\n if (!carouselState)\n throw new Error('useCarousel must be used within a ')\n\n return carouselState\n}\n\nexport { useCarousel, useProvideCarousel }\n" + "content": "import { createInjectionState } from '@vueuse/core'\nimport emblaCarouselVue from 'embla-carousel-vue'\nimport { onMounted, ref } from 'vue'\nimport type { UnwrapRefCarouselApi as CarouselApi, CarouselEmits, CarouselProps } from './interface'\n\nconst [useProvideCarousel, useInjectCarousel] = createInjectionState(\n ({\n opts,\n orientation,\n plugins,\n }: CarouselProps, emits: CarouselEmits) => {\n const [emblaNode, emblaApi] = emblaCarouselVue({\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n }, plugins)\n\n function scrollPrev() {\n emblaApi.value?.scrollPrev()\n }\n function scrollNext() {\n emblaApi.value?.scrollNext()\n }\n\n const canScrollNext = ref(false)\n const canScrollPrev = ref(false)\n\n function onSelect(api: CarouselApi) {\n canScrollNext.value = api?.canScrollNext() || false\n canScrollPrev.value = api?.canScrollPrev() || false\n }\n\n onMounted(() => {\n if (!emblaApi.value)\n return\n\n emblaApi.value?.on('init', onSelect)\n emblaApi.value?.on('reInit', onSelect)\n emblaApi.value?.on('select', onSelect)\n\n emits('init-api', emblaApi.value)\n })\n\n return { carouselRef: emblaNode, carouselApi: emblaApi, canScrollPrev, canScrollNext, scrollPrev, scrollNext, orientation }\n },\n)\n\nfunction useCarousel() {\n const carouselState = useInjectCarousel()\n\n if (!carouselState)\n throw new Error('useCarousel must be used within a ')\n\n return carouselState\n}\n\nexport { useCarousel, useProvideCarousel }\n" } ], "type": "components:ui" diff --git a/apps/www/src/public/registry/styles/new-york/carousel.json b/apps/www/src/public/registry/styles/new-york/carousel.json index e3c0edd3..2627661c 100644 --- a/apps/www/src/public/registry/styles/new-york/carousel.json +++ b/apps/www/src/public/registry/styles/new-york/carousel.json @@ -1,9 +1,8 @@ { "name": "carousel", "dependencies": [ - "@vueuse/core", "embla-carousel-vue", - "embla-carousel" + "@vueuse/core" ], "registryDependencies": [ "utils", @@ -32,15 +31,15 @@ }, { "name": "index.ts", - "content": "export { default as Carousel } from './Carousel.vue'\nexport { default as CarouselContent } from './CarouselContent.vue'\nexport { default as CarouselItem } from './CarouselItem.vue'\nexport { default as CarouselPrevious } from './CarouselPrevious.vue'\nexport { default as CarouselNext } from './CarouselNext.vue'\nexport { useCarousel } from './useCarousel'\n\nexport type {\n EmblaCarouselType as CarouselApi,\n} from 'embla-carousel'\n" + "content": "export { default as Carousel } from './Carousel.vue'\nexport { default as CarouselContent } from './CarouselContent.vue'\nexport { default as CarouselItem } from './CarouselItem.vue'\nexport { default as CarouselPrevious } from './CarouselPrevious.vue'\nexport { default as CarouselNext } from './CarouselNext.vue'\nexport { useCarousel } from './useCarousel'\n\nexport type {\n UnwrapRefCarouselApi as CarouselApi,\n} from './interface'\n" }, { "name": "interface.ts", - "content": "import type {\n EmblaCarouselType as CarouselApi,\n EmblaOptionsType as CarouselOptions,\n EmblaPluginType as CarouselPlugin,\n} from 'embla-carousel'\nimport type { HTMLAttributes, Ref } from 'vue'\n\nexport interface CarouselProps {\n opts?: CarouselOptions | Ref\n plugins?: CarouselPlugin[] | Ref\n orientation?: 'horizontal' | 'vertical'\n}\n\nexport interface CarouselEmits {\n (e: 'init-api', payload: CarouselApi): void\n}\n\nexport interface WithClassAsProps {\n class?: HTMLAttributes['class']\n}\n" + "content": "import type { HTMLAttributes, UnwrapRef } from 'vue'\nimport type useEmblaCarousel from 'embla-carousel-vue'\nimport type {\n EmblaCarouselVueType,\n} from 'embla-carousel-vue'\n\ntype CarouselApi = EmblaCarouselVueType[1]\ntype UseCarouselParameters = Parameters\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\nexport type UnwrapRefCarouselApi = UnwrapRef\n\nexport interface CarouselProps {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: 'horizontal' | 'vertical'\n}\n\nexport interface CarouselEmits {\n (e: 'init-api', payload: UnwrapRefCarouselApi): void\n}\n\nexport interface WithClassAsProps {\n class?: HTMLAttributes['class']\n}\n" }, { "name": "useCarousel.ts", - "content": "import { createInjectionState } from '@vueuse/core'\nimport emblaCarouselVue from 'embla-carousel-vue'\nimport { onMounted, ref } from 'vue'\nimport type {\n EmblaCarouselType as CarouselApi,\n} from 'embla-carousel'\nimport type { CarouselEmits, CarouselProps } from './interface'\n\nconst [useProvideCarousel, useInjectCarousel] = createInjectionState(\n ({\n opts,\n orientation,\n plugins,\n }: CarouselProps, emits: CarouselEmits) => {\n const [emblaNode, emblaApi] = emblaCarouselVue({\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n }, plugins)\n\n function scrollPrev() {\n emblaApi.value?.scrollPrev()\n }\n function scrollNext() {\n emblaApi.value?.scrollNext()\n }\n\n const canScrollNext = ref(true)\n const canScrollPrev = ref(true)\n\n function onSelect(api: CarouselApi) {\n canScrollNext.value = api.canScrollNext()\n canScrollPrev.value = api.canScrollPrev()\n }\n\n onMounted(() => {\n if (!emblaApi.value)\n return\n\n emblaApi.value?.on('init', onSelect)\n emblaApi.value?.on('reInit', onSelect)\n emblaApi.value?.on('select', onSelect)\n\n emits('init-api', emblaApi.value)\n })\n\n return { carouselRef: emblaNode, carouselApi: emblaApi, canScrollPrev, canScrollNext, scrollPrev, scrollNext, orientation }\n },\n)\n\nfunction useCarousel() {\n const carouselState = useInjectCarousel()\n\n if (!carouselState)\n throw new Error('useCarousel must be used within a ')\n\n return carouselState\n}\n\nexport { useCarousel, useProvideCarousel }\n" + "content": "import { createInjectionState } from '@vueuse/core'\nimport emblaCarouselVue from 'embla-carousel-vue'\nimport { onMounted, ref } from 'vue'\nimport type { UnwrapRefCarouselApi as CarouselApi, CarouselEmits, CarouselProps } from './interface'\n\nconst [useProvideCarousel, useInjectCarousel] = createInjectionState(\n ({\n opts,\n orientation,\n plugins,\n }: CarouselProps, emits: CarouselEmits) => {\n const [emblaNode, emblaApi] = emblaCarouselVue({\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n }, plugins)\n\n function scrollPrev() {\n emblaApi.value?.scrollPrev()\n }\n function scrollNext() {\n emblaApi.value?.scrollNext()\n }\n\n const canScrollNext = ref(false)\n const canScrollPrev = ref(false)\n\n function onSelect(api: CarouselApi) {\n canScrollNext.value = api?.canScrollNext() || false\n canScrollPrev.value = api?.canScrollPrev() || false\n }\n\n onMounted(() => {\n if (!emblaApi.value)\n return\n\n emblaApi.value?.on('init', onSelect)\n emblaApi.value?.on('reInit', onSelect)\n emblaApi.value?.on('select', onSelect)\n\n emits('init-api', emblaApi.value)\n })\n\n return { carouselRef: emblaNode, carouselApi: emblaApi, canScrollPrev, canScrollNext, scrollPrev, scrollNext, orientation }\n },\n)\n\nfunction useCarousel() {\n const carouselState = useInjectCarousel()\n\n if (!carouselState)\n throw new Error('useCarousel must be used within a ')\n\n return carouselState\n}\n\nexport { useCarousel, useProvideCarousel }\n" } ], "type": "components:ui" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cbf2956..9512458a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -88,15 +88,12 @@ importers: date-fns: specifier: ^3.6.0 version: 3.6.0 - embla-carousel: - specifier: ^8.1.3 - version: 8.1.3 embla-carousel-autoplay: - specifier: ^8.1.3 - version: 8.1.3(embla-carousel@8.1.3) + specifier: ^8.1.5 + version: 8.1.5(embla-carousel@8.1.5) embla-carousel-vue: - specifier: ^8.1.3 - version: 8.1.3(vue@3.4.27(typescript@5.4.5)) + specifier: ^8.1.5 + version: 8.1.5(vue@3.4.27(typescript@5.4.5)) lucide-vue-next: specifier: ^0.383.0 version: 0.383.0(vue@3.4.27(typescript@5.4.5)) @@ -3746,23 +3743,23 @@ packages: elkjs@0.8.2: resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==} - embla-carousel-autoplay@8.1.3: - resolution: {integrity: sha512-nMPuOZ+f3yp/RzUEYDOWjO7EkhdNHfdxEoRxfwqIvTGdSQ04LAFAnMLiLWSetAXzB1bP30L391mZb9keZXRcWQ==} + embla-carousel-autoplay@8.1.5: + resolution: {integrity: sha512-9pHIezRqiO9yism7wRFwmM1j/W9c9hBNX4hq3F4aTPbK84M0M57ryG8QUwhbsTGJbDoBBVTm//YEd0T6i/5YgA==} peerDependencies: - embla-carousel: 8.1.3 + embla-carousel: 8.1.5 - embla-carousel-reactive-utils@8.1.3: - resolution: {integrity: sha512-D8tAK6NRQVEubMWb+b/BJ3VvGPsbEeEFOBM6cCCwfiyfLzNlacOAt0q2dtUEA9DbGxeWkB8ExgXzFRxhGV2Hig==} + embla-carousel-reactive-utils@8.1.5: + resolution: {integrity: sha512-76uZTrSaEGGta+qpiGkMFlLK0I7N04TdjZ2obrBhyggYIFDWlxk1CriIEmt2lisLNsa1IYXM85kr863JoCMSyg==} peerDependencies: - embla-carousel: 8.1.3 + embla-carousel: 8.1.5 - embla-carousel-vue@8.1.3: - resolution: {integrity: sha512-29JuRyLGIOu3RQ5jTF35Za3EDBT3XRdjPHlmJKnhsqpqWoiZghQSepw1CAgC1WwaBc/z4XgWNzV3u02HmqMeiA==} + embla-carousel-vue@8.1.5: + resolution: {integrity: sha512-7R1gQoAy4xwTxE2hNd9yjHWWWDfUDBBcwljX2pP+uh6MnyVp8fUtMUBeQsXfxA1a9lJqKbPVvJTeHiOlfcednA==} peerDependencies: vue: ^3.2.37 - embla-carousel@8.1.3: - resolution: {integrity: sha512-GiRpKtzidV3v50oVMly8S+D7iE1r96ttt7fSlvtyKHoSkzrAnVcu8fX3c4j8Ol2hZSQlVfDqDIqdrFPs0u5TWQ==} + embla-carousel@8.1.5: + resolution: {integrity: sha512-R6xTf7cNdR2UTNM6/yUPZlJFRmZSogMiRjJ5vXHO65II5MoUlrVYUAP0fHQei/py82Vf15lj+WI+QdhnzBxA2g==} emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -11725,21 +11722,21 @@ snapshots: elkjs@0.8.2: {} - embla-carousel-autoplay@8.1.3(embla-carousel@8.1.3): + embla-carousel-autoplay@8.1.5(embla-carousel@8.1.5): dependencies: - embla-carousel: 8.1.3 + embla-carousel: 8.1.5 - embla-carousel-reactive-utils@8.1.3(embla-carousel@8.1.3): + embla-carousel-reactive-utils@8.1.5(embla-carousel@8.1.5): dependencies: - embla-carousel: 8.1.3 + embla-carousel: 8.1.5 - embla-carousel-vue@8.1.3(vue@3.4.27(typescript@5.4.5)): + embla-carousel-vue@8.1.5(vue@3.4.27(typescript@5.4.5)): dependencies: - embla-carousel: 8.1.3 - embla-carousel-reactive-utils: 8.1.3(embla-carousel@8.1.3) + embla-carousel: 8.1.5 + embla-carousel-reactive-utils: 8.1.5(embla-carousel@8.1.5) vue: 3.4.27(typescript@5.4.5) - embla-carousel@8.1.3: {} + embla-carousel@8.1.5: {} emoji-regex@10.3.0: {}