fulldev-ui 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/package.json +24 -20
  3. package/public/r/accordion.json +1 -1
  4. package/public/r/alert-dialog.json +1 -1
  5. package/public/r/aspect-ratio.json +23 -0
  6. package/public/r/attachment.json +66 -0
  7. package/public/r/button-group.json +41 -0
  8. package/public/r/carousel.json +8 -8
  9. package/public/r/collapsible.json +1 -1
  10. package/public/r/combobox.json +4 -4
  11. package/public/r/command.json +2 -2
  12. package/public/r/components.json +8 -0
  13. package/public/r/dialog.json +1 -1
  14. package/public/r/doc-1.json +1 -1
  15. package/public/r/drawer.json +109 -0
  16. package/public/r/dropdown-menu.json +1 -1
  17. package/public/r/hover-card.json +2 -2
  18. package/public/r/init.json +1 -1
  19. package/public/r/navigation-menu.json +2 -2
  20. package/public/r/pagination.json +59 -0
  21. package/public/r/popover.json +1 -1
  22. package/public/r/radio-group.json +1 -1
  23. package/public/r/registry.json +414 -24
  24. package/public/r/resizable.json +36 -0
  25. package/public/r/reviews-3.json +1 -1
  26. package/public/r/select.json +1 -1
  27. package/public/r/sheet.json +1 -1
  28. package/public/r/sidebar.json +1 -1
  29. package/public/r/slider.json +2 -2
  30. package/public/r/switch.json +1 -1
  31. package/public/r/tabs.json +1 -1
  32. package/public/r/toast.json +80 -0
  33. package/public/r/toggle-group.json +34 -0
  34. package/public/r/toggle.json +1 -1
  35. package/public/r/tooltip.json +1 -1
  36. package/public/r/typography.json +21 -16
  37. package/registry/init/global.css +2 -0
  38. package/registry.json +375 -24
  39. package/src/components/blocks/doc-1.astro +76 -0
  40. package/src/components/blocks/reviews-3.astro +1 -1
  41. package/src/components/ui/aspect-ratio/aspect-ratio.astro +25 -0
  42. package/src/components/ui/aspect-ratio/index.ts +1 -0
  43. package/src/components/ui/attachment/attachment-action.astro +20 -0
  44. package/src/components/ui/attachment/attachment-actions.astro +20 -0
  45. package/src/components/ui/attachment/attachment-content.astro +20 -0
  46. package/src/components/ui/attachment/attachment-description.astro +20 -0
  47. package/src/components/ui/attachment/attachment-group.astro +20 -0
  48. package/src/components/ui/attachment/attachment-media.astro +36 -0
  49. package/src/components/ui/attachment/attachment-title.astro +20 -0
  50. package/src/components/ui/attachment/attachment-trigger.astro +24 -0
  51. package/src/components/ui/attachment/attachment.astro +52 -0
  52. package/src/components/ui/attachment/index.ts +9 -0
  53. package/src/components/ui/button-group/button-group-separator.astro +29 -0
  54. package/src/components/ui/button-group/button-group-text.astro +20 -0
  55. package/src/components/ui/button-group/button-group-variants.ts +20 -0
  56. package/src/components/ui/button-group/button-group.astro +30 -0
  57. package/src/components/ui/button-group/index.ts +7 -0
  58. package/src/components/ui/carousel/carousel-content.astro +11 -13
  59. package/src/components/ui/carousel/carousel-item.astro +2 -5
  60. package/src/components/ui/carousel/carousel-next.astro +0 -3
  61. package/src/components/ui/carousel/carousel-previous.astro +0 -3
  62. package/src/components/ui/carousel/carousel.astro +19 -219
  63. package/src/components/ui/carousel/index.ts +1 -5
  64. package/src/components/ui/combobox/combobox-input.astro +11 -4
  65. package/src/components/ui/combobox/combobox-trigger.astro +7 -7
  66. package/src/components/ui/drawer/drawer-close.astro +13 -0
  67. package/src/components/ui/drawer/drawer-content.astro +43 -0
  68. package/src/components/ui/drawer/drawer-description.astro +17 -0
  69. package/src/components/ui/drawer/drawer-footer.astro +17 -0
  70. package/src/components/ui/drawer/drawer-header.astro +17 -0
  71. package/src/components/ui/drawer/drawer-indent-background.astro +11 -0
  72. package/src/components/ui/drawer/drawer-indent.astro +11 -0
  73. package/src/components/ui/drawer/drawer-overlay.astro +21 -0
  74. package/src/components/ui/drawer/drawer-popup.astro +36 -0
  75. package/src/components/ui/drawer/drawer-portal.astro +27 -0
  76. package/src/components/ui/drawer/drawer-provider.astro +11 -0
  77. package/src/components/ui/drawer/drawer-swipe-handle.astro +20 -0
  78. package/src/components/ui/drawer/drawer-title.astro +17 -0
  79. package/src/components/ui/drawer/drawer-trigger.astro +21 -0
  80. package/src/components/ui/drawer/drawer-viewport.astro +21 -0
  81. package/src/components/ui/drawer/drawer-virtual-keyboard-provider.astro +11 -0
  82. package/src/components/ui/drawer/drawer.astro +60 -0
  83. package/src/components/ui/drawer/index.ts +28 -0
  84. package/src/components/ui/navigation-menu/navigation-menu.astro +2 -2
  85. package/src/components/ui/pagination/index.ts +7 -0
  86. package/src/components/ui/pagination/pagination-content.astro +17 -0
  87. package/src/components/ui/pagination/pagination-ellipsis.astro +22 -0
  88. package/src/components/ui/pagination/pagination-item.astro +11 -0
  89. package/src/components/ui/pagination/pagination-link.astro +41 -0
  90. package/src/components/ui/pagination/pagination-next.astro +27 -0
  91. package/src/components/ui/pagination/pagination-previous.astro +27 -0
  92. package/src/components/ui/pagination/pagination.astro +19 -0
  93. package/src/components/ui/resizable/index.ts +4 -0
  94. package/src/components/ui/resizable/resizable-handle.astro +32 -0
  95. package/src/components/ui/resizable/resizable-panel.astro +36 -0
  96. package/src/components/ui/resizable/resizable.astro +43 -0
  97. package/src/components/ui/slider/slider.astro +1 -1
  98. package/src/components/ui/toast/index.ts +26 -0
  99. package/src/components/ui/toast/toast-action.astro +25 -0
  100. package/src/components/ui/toast/toast-close.astro +27 -0
  101. package/src/components/ui/toast/toast-content.astro +20 -0
  102. package/src/components/ui/toast/toast-description.astro +18 -0
  103. package/src/components/ui/toast/toast-icon.astro +37 -0
  104. package/src/components/ui/toast/toast-item.astro +28 -0
  105. package/src/components/ui/toast/toast-template.astro +11 -0
  106. package/src/components/ui/toast/toast-title.astro +17 -0
  107. package/src/components/ui/toast/toast-viewport.astro +20 -0
  108. package/src/components/ui/toast/toast.astro +51 -0
  109. package/src/components/ui/toast/toaster.astro +37 -0
  110. package/src/components/ui/toggle-group/index.ts +2 -0
  111. package/src/components/ui/toggle-group/toggle-group-item.astro +44 -0
  112. package/src/components/ui/toggle-group/toggle-group.astro +74 -0
  113. package/src/components/ui/typography/typeset.css +441 -0
  114. package/src/components/ui/typography/typography-a.astro +13 -22
  115. package/src/components/ui/typography/typography-blockquote.astro +4 -23
  116. package/src/components/ui/typography/typography-h1.astro +13 -26
  117. package/src/components/ui/typography/typography-h2.astro +13 -31
  118. package/src/components/ui/typography/typography-h3.astro +9 -26
  119. package/src/components/ui/typography/typography-h4.astro +9 -26
  120. package/src/components/ui/typography/typography-inline-code.astro +8 -27
  121. package/src/components/ui/typography/typography-lead.astro +4 -26
  122. package/src/components/ui/typography/typography-list-item.astro +4 -24
  123. package/src/components/ui/typography/typography-list.astro +10 -40
  124. package/src/components/ui/typography/typography-p.astro +9 -28
  125. package/src/components/ui/typography/typography-table-cell.astro +9 -40
  126. package/src/components/ui/typography/typography-table-head.astro +9 -35
  127. package/src/components/ui/typography/typography-table-row.astro +4 -23
  128. package/src/components/ui/typography/typography-table.astro +8 -28
  129. package/src/components/ui/typography/typography.astro +10 -283
  130. package/src/styles/global.css +2 -0
@@ -50,7 +50,7 @@ const { class: className, title, description, reviews, ...props } = Astro.props
50
50
  )
51
51
  }
52
52
  <SectionContainer>
53
- <Carousel opts={{ loop: true, align: "center" }} class="mx-auto max-w-3xl">
53
+ <Carousel loop drag class="mx-auto w-[calc(100%-6rem)] max-w-3xl">
54
54
  <CarouselContent>
55
55
  {
56
56
  reviews.map((item) => (
@@ -0,0 +1,25 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ type Props = HTMLAttributes<"div"> & {
7
+ ratio: number
8
+ }
9
+
10
+ const { class: className, ratio, style, ...props } = Astro.props
11
+
12
+ const resolvedStyle =
13
+ typeof style === "string"
14
+ ? `--ratio: ${ratio}; ${style}`
15
+ : { "--ratio": ratio, ...(style ?? {}) }
16
+ ---
17
+
18
+ <div
19
+ data-slot="aspect-ratio"
20
+ style={resolvedStyle}
21
+ class={cn("relative aspect-(--ratio)", className)}
22
+ {...props}
23
+ >
24
+ <slot />
25
+ </div>
@@ -0,0 +1 @@
1
+ export { default as AspectRatio } from "./aspect-ratio.astro"
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { HTMLTag, Polymorphic } from "astro/types"
3
+
4
+ import { Button, type ButtonVariantProps } from "@/components/ui/button"
5
+
6
+ type Props<Tag extends HTMLTag = "button"> = Polymorphic<{ as: Tag }> &
7
+ ButtonVariantProps
8
+
9
+ const { as, variant = "ghost", size = "icon-xs", ...props } = Astro.props
10
+ ---
11
+
12
+ <Button
13
+ as={as}
14
+ data-slot="attachment-action"
15
+ variant={variant}
16
+ size={size}
17
+ {...props}
18
+ >
19
+ <slot />
20
+ </Button>
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ type Props = HTMLAttributes<"div">
7
+
8
+ const { class: className, ...props } = Astro.props
9
+ ---
10
+
11
+ <div
12
+ data-slot="attachment-actions"
13
+ class={cn(
14
+ "relative z-20 flex shrink-0 items-center group-data-[orientation=vertical]/attachment:absolute group-data-[orientation=vertical]/attachment:top-3 group-data-[orientation=vertical]/attachment:right-3 group-data-[orientation=vertical]/attachment:gap-1",
15
+ className
16
+ )}
17
+ {...props}
18
+ >
19
+ <slot />
20
+ </div>
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ type Props = HTMLAttributes<"div">
7
+
8
+ const { class: className, ...props } = Astro.props
9
+ ---
10
+
11
+ <div
12
+ data-slot="attachment-content"
13
+ class={cn(
14
+ "max-w-full min-w-0 flex-1 leading-tight group-data-[orientation=vertical]/attachment:px-1",
15
+ className
16
+ )}
17
+ {...props}
18
+ >
19
+ <slot />
20
+ </div>
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ type Props = HTMLAttributes<"span">
7
+
8
+ const { class: className, ...props } = Astro.props
9
+ ---
10
+
11
+ <span
12
+ data-slot="attachment-description"
13
+ class={cn(
14
+ "text-muted-foreground group-data-[state=error]/attachment:text-destructive/80 mt-0.5 block max-w-full min-w-0 truncate text-xs",
15
+ className
16
+ )}
17
+ {...props}
18
+ >
19
+ <slot />
20
+ </span>
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ type Props = HTMLAttributes<"div">
7
+
8
+ const { class: className, ...props } = Astro.props
9
+ ---
10
+
11
+ <div
12
+ data-slot="attachment-group"
13
+ class={cn(
14
+ "flex min-w-0 snap-x snap-mandatory scroll-px-1 gap-3 overflow-x-auto overscroll-x-contain py-1 *:data-[slot=attachment]:flex-none *:data-[slot=attachment]:snap-start",
15
+ className
16
+ )}
17
+ {...props}
18
+ >
19
+ <slot />
20
+ </div>
@@ -0,0 +1,36 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+ import { cva, type VariantProps } from "class-variance-authority"
4
+
5
+ import { cn } from "@/lib/utils"
6
+
7
+ const attachmentMediaVariants = cva(
8
+ "bg-muted text-foreground group-data-[state=error]/attachment:bg-destructive/10 group-data-[state=error]/attachment:text-destructive relative flex aspect-square w-10 shrink-0 items-center justify-center overflow-hidden rounded-lg group-data-[orientation=vertical]/attachment:w-full group-data-[size=sm]/attachment:w-8 group-data-[size=xs]/attachment:w-7 group-data-[size=xs]/attachment:rounded-md group-data-[orientation=vertical]/attachment:*:data-[slot=spinner]:size-6! [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 group-data-[orientation=vertical]/attachment:[&_svg:not([class*='size-'])]:size-6 group-data-[size=xs]/attachment:[&_svg:not([class*='size-'])]:size-3.5",
9
+ {
10
+ variants: {
11
+ variant: {
12
+ icon: "",
13
+ image:
14
+ "opacity-60 group-data-[state=done]/attachment:opacity-100 group-data-[state=idle]/attachment:opacity-100 *:[img]:aspect-square *:[img]:w-full *:[img]:object-cover",
15
+ },
16
+ },
17
+ defaultVariants: {
18
+ variant: "icon",
19
+ },
20
+ }
21
+ )
22
+
23
+ type Props = HTMLAttributes<"div"> &
24
+ VariantProps<typeof attachmentMediaVariants>
25
+
26
+ const { class: className, variant = "icon", ...props } = Astro.props
27
+ ---
28
+
29
+ <div
30
+ data-slot="attachment-media"
31
+ data-variant={variant}
32
+ class={cn(attachmentMediaVariants({ variant }), className)}
33
+ {...props}
34
+ >
35
+ <slot />
36
+ </div>
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ type Props = HTMLAttributes<"span">
7
+
8
+ const { class: className, ...props } = Astro.props
9
+ ---
10
+
11
+ <span
12
+ data-slot="attachment-title"
13
+ class={cn(
14
+ "block max-w-full min-w-0 truncate font-medium group-data-[state=processing]/attachment:animate-pulse group-data-[state=uploading]/attachment:animate-pulse",
15
+ className
16
+ )}
17
+ {...props}
18
+ >
19
+ <slot />
20
+ </span>
@@ -0,0 +1,24 @@
1
+ ---
2
+ import type { HTMLTag, Polymorphic } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ type Props<Tag extends HTMLTag = "button"> = Polymorphic<{ as: Tag }>
7
+
8
+ const {
9
+ as: Tag = "href" in Astro.props ? "a" : "button",
10
+ class: className,
11
+ ...props
12
+ } = Astro.props
13
+
14
+ const attributes: Record<string, unknown> = { ...props }
15
+ if (Tag === "button") attributes.type ??= "button"
16
+ ---
17
+
18
+ <Tag
19
+ data-slot="attachment-trigger"
20
+ class={cn("absolute inset-0 z-10 outline-none", className)}
21
+ {...attributes}
22
+ >
23
+ <slot />
24
+ </Tag>
@@ -0,0 +1,52 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+ import { cva, type VariantProps } from "class-variance-authority"
4
+
5
+ import { cn } from "@/lib/utils"
6
+
7
+ const attachmentVariants = cva(
8
+ "group/attachment bg-card text-card-foreground focus-within:ring-ring/50 has-[>a,>button]:hover:bg-muted/50 data-[state=error]:border-destructive/30 relative flex w-fit max-w-full min-w-0 shrink-0 flex-wrap rounded-xl border transition-colors focus-within:ring-1 data-[state=idle]:border-dashed",
9
+ {
10
+ variants: {
11
+ size: {
12
+ default:
13
+ "gap-2 text-sm has-data-[slot=attachment-content]:px-2.5 has-data-[slot=attachment-content]:py-2 has-data-[slot=attachment-media]:p-2",
14
+ sm: "gap-2.5 text-xs has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5",
15
+ xs: "gap-1.5 rounded-lg text-xs has-data-[slot=attachment-content]:px-1.5 has-data-[slot=attachment-content]:py-1 has-data-[slot=attachment-media]:p-1",
16
+ },
17
+ orientation: {
18
+ horizontal: "min-w-40 items-center",
19
+ vertical: "w-24 flex-col has-data-[slot=attachment-content]:w-30",
20
+ },
21
+ },
22
+ defaultVariants: {
23
+ size: "default",
24
+ orientation: "horizontal",
25
+ },
26
+ }
27
+ )
28
+
29
+ type Props = HTMLAttributes<"div"> &
30
+ VariantProps<typeof attachmentVariants> & {
31
+ state?: "idle" | "uploading" | "processing" | "error" | "done"
32
+ }
33
+
34
+ const {
35
+ class: className,
36
+ state = "done",
37
+ size = "default",
38
+ orientation = "horizontal",
39
+ ...props
40
+ } = Astro.props
41
+ ---
42
+
43
+ <div
44
+ data-slot="attachment"
45
+ data-state={state}
46
+ data-size={size}
47
+ data-orientation={orientation}
48
+ class={cn(attachmentVariants({ size, orientation }), className)}
49
+ {...props}
50
+ >
51
+ <slot />
52
+ </div>
@@ -0,0 +1,9 @@
1
+ export { default as Attachment } from "./attachment.astro"
2
+ export { default as AttachmentAction } from "./attachment-action.astro"
3
+ export { default as AttachmentActions } from "./attachment-actions.astro"
4
+ export { default as AttachmentContent } from "./attachment-content.astro"
5
+ export { default as AttachmentDescription } from "./attachment-description.astro"
6
+ export { default as AttachmentGroup } from "./attachment-group.astro"
7
+ export { default as AttachmentMedia } from "./attachment-media.astro"
8
+ export { default as AttachmentTitle } from "./attachment-title.astro"
9
+ export { default as AttachmentTrigger } from "./attachment-trigger.astro"
@@ -0,0 +1,29 @@
1
+ ---
2
+ import type { HTMLAttributes } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+ import { Separator } from "@/components/ui/separator"
6
+
7
+ type Props = HTMLAttributes<"div"> & {
8
+ orientation?: "horizontal" | "vertical"
9
+ decorative?: boolean
10
+ }
11
+
12
+ const {
13
+ class: className,
14
+ orientation = "vertical",
15
+ decorative = true,
16
+ ...props
17
+ } = Astro.props
18
+ ---
19
+
20
+ <Separator
21
+ data-slot="button-group-separator"
22
+ orientation={orientation}
23
+ decorative={decorative}
24
+ class={cn(
25
+ "bg-input relative self-stretch data-horizontal:mx-px data-horizontal:w-auto data-vertical:my-px data-vertical:h-auto",
26
+ className
27
+ )}
28
+ {...props}
29
+ />
@@ -0,0 +1,20 @@
1
+ ---
2
+ import type { HTMLTag, Polymorphic } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ type Props<Tag extends HTMLTag = "div"> = Polymorphic<{ as: Tag }>
7
+
8
+ const { as: Tag = "div", class: className, ...props } = Astro.props
9
+ ---
10
+
11
+ <Tag
12
+ data-slot="button-group-text"
13
+ class={cn(
14
+ "bg-muted flex items-center gap-2 rounded-md border px-2.5 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",
15
+ className
16
+ )}
17
+ {...props}
18
+ >
19
+ <slot />
20
+ </Tag>
@@ -0,0 +1,20 @@
1
+ import { cva, type VariantProps } from "class-variance-authority"
2
+
3
+ export const buttonGroupVariants = cva(
4
+ "flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1",
5
+ {
6
+ variants: {
7
+ orientation: {
8
+ horizontal:
9
+ "*:data-slot:rounded-r-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-md! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0",
10
+ vertical:
11
+ "flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0",
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ orientation: "horizontal",
16
+ },
17
+ }
18
+ )
19
+
20
+ export type ButtonGroupVariantProps = VariantProps<typeof buttonGroupVariants>
@@ -0,0 +1,30 @@
1
+ ---
2
+ import type { HTMLTag, Polymorphic } from "astro/types"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ import {
7
+ buttonGroupVariants,
8
+ type ButtonGroupVariantProps,
9
+ } from "./button-group-variants"
10
+
11
+ type Props<Tag extends HTMLTag = "div"> = Polymorphic<{ as: Tag }> &
12
+ ButtonGroupVariantProps
13
+
14
+ const {
15
+ as: Tag = "div",
16
+ class: className,
17
+ orientation = "horizontal",
18
+ ...props
19
+ } = Astro.props
20
+ ---
21
+
22
+ <Tag
23
+ role="group"
24
+ data-slot="button-group"
25
+ data-orientation={orientation}
26
+ class={cn(buttonGroupVariants({ orientation }), className)}
27
+ {...props}
28
+ >
29
+ <slot />
30
+ </Tag>
@@ -0,0 +1,7 @@
1
+ export { default as ButtonGroup } from "./button-group.astro"
2
+ export { default as ButtonGroupSeparator } from "./button-group-separator.astro"
3
+ export { default as ButtonGroupText } from "./button-group-text.astro"
4
+ export {
5
+ buttonGroupVariants,
6
+ type ButtonGroupVariantProps,
7
+ } from "./button-group-variants"
@@ -8,17 +8,15 @@ type Props = HTMLAttributes<"div">
8
8
  const { class: className, ...props } = Astro.props
9
9
  ---
10
10
 
11
- <div class="overflow-hidden" data-slot="carousel-content">
12
- <div
13
- data-slot="carousel-container"
14
- class={cn(
15
- "flex [touch-action:pan-y_pinch-zoom]",
16
- "group-data-[orientation=vertical]/carousel:-mt-4 group-data-[orientation=vertical]/carousel:[touch-action:pan-x_pinch-zoom] group-data-[orientation=vertical]/carousel:flex-col",
17
- "group-data-[orientation=horizontal]/carousel:-ml-4",
18
- className
19
- )}
20
- {...props}
21
- >
22
- <slot />
23
- </div>
11
+ <div
12
+ data-slot="carousel-content"
13
+ class={cn(
14
+ "no-scrollbar flex snap-x snap-mandatory overflow-x-auto overscroll-x-contain",
15
+ "group-data-[dragging=true]/carousel:cursor-grabbing",
16
+ "group-data-[orientation=vertical]/carousel:snap-y group-data-[orientation=vertical]/carousel:flex-col group-data-[orientation=vertical]/carousel:overflow-x-hidden group-data-[orientation=vertical]/carousel:overflow-y-auto group-data-[orientation=vertical]/carousel:overscroll-y-contain",
17
+ className
18
+ )}
19
+ {...props}
20
+ >
21
+ <slot />
24
22
  </div>
@@ -10,12 +10,9 @@ const { class: className, ...props } = Astro.props
10
10
 
11
11
  <div
12
12
  data-slot="carousel-item"
13
- role="group"
14
- aria-roledescription="slide"
15
13
  class={cn(
16
- "min-w-0 shrink-0 grow-0 basis-full",
17
- "group-data-[orientation=horizontal]/carousel:pl-4",
18
- "group-data-[orientation=vertical]/carousel:pt-4",
14
+ "min-w-0 shrink-0 grow-0 basis-full snap-start",
15
+ "group-data-[orientation=vertical]/carousel:min-h-0",
19
16
  className
20
17
  )}
21
18
  {...props}
@@ -11,7 +11,6 @@ const {
11
11
  class: className,
12
12
  variant = "outline",
13
13
  size = "icon-sm",
14
- disabled,
15
14
  ...props
16
15
  } = Astro.props
17
16
  ---
@@ -19,8 +18,6 @@ const {
19
18
  <button
20
19
  type="button"
21
20
  data-slot="carousel-next"
22
- data-manual-disabled={disabled ? "true" : undefined}
23
- disabled={disabled}
24
21
  class={cn(
25
22
  buttonVariants({ variant, size }),
26
23
  "absolute touch-manipulation rounded-full group-data-[orientation=horizontal]/carousel:inset-y-0 group-data-[orientation=horizontal]/carousel:-right-12 group-data-[orientation=horizontal]/carousel:my-auto",
@@ -11,7 +11,6 @@ const {
11
11
  class: className,
12
12
  variant = "outline",
13
13
  size = "icon-sm",
14
- disabled,
15
14
  ...props
16
15
  } = Astro.props
17
16
  ---
@@ -19,8 +18,6 @@ const {
19
18
  <button
20
19
  type="button"
21
20
  data-slot="carousel-previous"
22
- data-manual-disabled={disabled ? "true" : undefined}
23
- disabled={disabled}
24
21
  class={cn(
25
22
  buttonVariants({ variant, size }),
26
23
  "absolute touch-manipulation rounded-full group-data-[orientation=horizontal]/carousel:inset-y-0 group-data-[orientation=horizontal]/carousel:-left-12 group-data-[orientation=horizontal]/carousel:my-auto",