Loading the record
Reading the stored /api/items response for this item.
Reading the stored /api/items response for this item.
npx shadcn@latest add makes, so the answer cannot drift from reality without the install drifting too.GET https://shadcn-vue.com/r/styles/new-york/carousel.json<script setup lang="ts">
import type { CarouselEmits, CarouselProps, WithClassAsProps } from "./interface"
import { cn } from "@/lib/utils"
import { useProvideCarousel } from "./useCarousel"
const props = withDefaults(defineProps<CarouselProps & WithClassAsProps>(), {
orientation: "horizontal",
})
const emits = defineEmits<CarouselEmits>()
const { canScrollNext, canScrollPrev, carouselApi, carouselRef, orientation, scrollNext, scrollPrev } = useProvideCarousel(props, emits)
defineExpose({
canScrollNext,
canScrollPrev,
carouselApi,
carouselRef,
orientation,
scrollNext,
scrollPrev,
})
function onKeyDown(event: KeyboardEvent) {
const prevKey = props.orientation === "vertical" ? "ArrowUp" : "ArrowLeft"
const nextKey = props.orientation === "vertical" ? "ArrowDown" : "ArrowRight"
if (event.key === prevKey) {
event.preventDefault()
scrollPrev()
return
}
if (event.key === nextKey) {
event.preventDefault()
scrollNext()
}
}
</script>
<template>
<div
:class="cn('relative', props.class)"
role="region"
aria-roledescription="carousel"
tabindex="0"
@keydown="onKeyDown"
>
<slot :can-scroll-next :can-scroll-prev :carousel-api :carousel-ref :orientation :scroll-next :scroll-prev />
</div>
</template>
Read from https://shadcn-vue.com/r/styles/new-york/carousel.json. Source is read for the first 150 items per registry, which is a size decision, not a coverage one. Nothing is served from this origin: the install command fetches the registry's own endpoint.
This registry's own demo page permits framing, so the component can be watched running where its authors maintain it.
https://shadcn-vue.com/docs/components/carousel
This record is the /api/items/shadcn-vue/carousel response blockdex.thecompound.tech served on 2026-09-13, from the crawl of 2026-09-13.