@getgreenline/blaze-ui 1.0.2 → 1.0.3-3.0-beta

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 (240) hide show
  1. package/dist/components/accordion.d.ts +8 -0
  2. package/dist/components/accordion.d.ts.map +1 -0
  3. package/dist/components/accordion.js +19 -0
  4. package/dist/components/alert-dialog.d.ts +18 -0
  5. package/dist/components/alert-dialog.d.ts.map +1 -0
  6. package/dist/components/alert-dialog.js +41 -0
  7. package/dist/components/alert.d.ts +10 -0
  8. package/dist/components/alert.d.ts.map +1 -0
  9. package/dist/components/alert.js +26 -0
  10. package/dist/components/aspect-ratio.d.ts +4 -0
  11. package/dist/components/aspect-ratio.d.ts.map +1 -0
  12. package/dist/components/aspect-ratio.js +8 -0
  13. package/dist/components/avatar.d.ts +7 -0
  14. package/dist/components/avatar.d.ts.map +1 -0
  15. package/dist/components/avatar.js +15 -0
  16. package/dist/components/badge.d.ts +10 -0
  17. package/dist/components/badge.d.ts.map +1 -0
  18. package/dist/components/badge.js +24 -0
  19. package/dist/components/breadcrumb.d.ts +12 -0
  20. package/dist/components/breadcrumb.d.ts.map +1 -0
  21. package/dist/components/breadcrumb.js +29 -0
  22. package/dist/components/button-group.d.ts +12 -0
  23. package/dist/components/button-group.d.ts.map +1 -0
  24. package/dist/components/button-group.js +29 -0
  25. package/dist/components/button.d.ts +16 -0
  26. package/dist/components/button.d.ts.map +1 -0
  27. package/dist/components/button.js +37 -0
  28. package/dist/components/card.d.ts +10 -0
  29. package/dist/components/card.d.ts.map +1 -0
  30. package/dist/components/card.js +26 -0
  31. package/dist/components/carousel.d.ts +20 -0
  32. package/dist/components/carousel.d.ts.map +1 -0
  33. package/dist/components/carousel.js +92 -0
  34. package/dist/components/chart.d.ts +41 -0
  35. package/dist/components/chart.d.ts.map +1 -0
  36. package/dist/components/chart.js +133 -0
  37. package/dist/components/checkbox.d.ts +5 -0
  38. package/dist/components/checkbox.d.ts.map +1 -0
  39. package/dist/components/checkbox.js +10 -0
  40. package/dist/components/collapsible.d.ts +6 -0
  41. package/dist/components/collapsible.d.ts.map +1 -0
  42. package/dist/components/collapsible.js +14 -0
  43. package/dist/components/command.d.ts +19 -0
  44. package/dist/components/command.d.ts.map +1 -0
  45. package/dist/components/command.js +35 -0
  46. package/dist/components/context-menu.d.ts +26 -0
  47. package/dist/components/context-menu.d.ts.map +1 -0
  48. package/dist/components/context-menu.js +52 -0
  49. package/dist/components/data-table.d.ts +83 -0
  50. package/dist/components/data-table.d.ts.map +1 -0
  51. package/dist/components/data-table.js +357 -0
  52. package/dist/components/dialog.d.ts +16 -0
  53. package/dist/components/dialog.d.ts.map +1 -0
  54. package/dist/components/dialog.js +37 -0
  55. package/dist/components/drawer.d.ts +14 -0
  56. package/dist/components/drawer.d.ts.map +1 -0
  57. package/dist/components/drawer.js +36 -0
  58. package/dist/components/dropdown-menu.d.ts +26 -0
  59. package/dist/components/dropdown-menu.d.ts.map +1 -0
  60. package/dist/components/dropdown-menu.js +52 -0
  61. package/dist/components/empty.d.ts +12 -0
  62. package/dist/components/empty.d.ts.map +1 -0
  63. package/dist/components/empty.js +35 -0
  64. package/dist/components/field.d.ts +25 -0
  65. package/dist/components/field.d.ts.map +1 -0
  66. package/dist/components/field.js +74 -0
  67. package/dist/components/form.d.ts +25 -0
  68. package/dist/components/form.d.ts.map +1 -0
  69. package/dist/components/form.js +60 -0
  70. package/dist/components/header-app-switcher.d.ts +50 -0
  71. package/dist/components/header-app-switcher.d.ts.map +1 -0
  72. package/dist/components/header-app-switcher.js +154 -0
  73. package/dist/components/hierarchical-select.d.ts +21 -0
  74. package/dist/components/hierarchical-select.d.ts.map +1 -0
  75. package/dist/components/hierarchical-select.js +96 -0
  76. package/dist/components/hover-card.d.ts +7 -0
  77. package/dist/components/hover-card.d.ts.map +1 -0
  78. package/dist/components/hover-card.js +15 -0
  79. package/dist/components/input-group.d.ts +17 -0
  80. package/dist/components/input-group.d.ts.map +1 -0
  81. package/dist/components/input-group.js +64 -0
  82. package/dist/components/input-otp.d.ts +12 -0
  83. package/dist/components/input-otp.d.ts.map +1 -0
  84. package/dist/components/input-otp.js +22 -0
  85. package/dist/components/input.d.ts +4 -0
  86. package/dist/components/input.d.ts.map +1 -0
  87. package/dist/components/input.js +8 -0
  88. package/dist/components/item.d.ts +24 -0
  89. package/dist/components/item.d.ts.map +1 -0
  90. package/dist/components/item.js +68 -0
  91. package/dist/components/kbd.d.ts +4 -0
  92. package/dist/components/kbd.d.ts.map +1 -0
  93. package/dist/components/kbd.js +11 -0
  94. package/dist/components/label.d.ts +8 -0
  95. package/dist/components/label.d.ts.map +1 -0
  96. package/dist/components/label.js +9 -0
  97. package/dist/components/login-screen.d.ts +4 -0
  98. package/dist/components/login-screen.d.ts.map +1 -0
  99. package/dist/components/login-screen.js +300 -0
  100. package/dist/components/login-screen.types.d.ts +82 -0
  101. package/dist/components/login-screen.types.d.ts.map +1 -0
  102. package/dist/components/login-screen.views.d.ts +114 -0
  103. package/dist/components/login-screen.views.d.ts.map +1 -0
  104. package/dist/components/login-screen.views.js +53 -0
  105. package/dist/components/menubar.d.ts +27 -0
  106. package/dist/components/menubar.d.ts.map +1 -0
  107. package/dist/components/menubar.js +55 -0
  108. package/dist/components/navigation-menu.d.ts +15 -0
  109. package/dist/components/navigation-menu.d.ts.map +1 -0
  110. package/dist/components/navigation-menu.js +33 -0
  111. package/dist/components/pagination.d.ts +14 -0
  112. package/dist/components/pagination.d.ts.map +1 -0
  113. package/dist/components/pagination.js +31 -0
  114. package/dist/components/popover.d.ts +8 -0
  115. package/dist/components/popover.d.ts.map +1 -0
  116. package/dist/components/popover.js +18 -0
  117. package/dist/components/progress.d.ts +5 -0
  118. package/dist/components/progress.d.ts.map +1 -0
  119. package/dist/components/progress.js +9 -0
  120. package/dist/components/radio-group.d.ts +6 -0
  121. package/dist/components/radio-group.d.ts.map +1 -0
  122. package/dist/components/radio-group.js +13 -0
  123. package/dist/components/resizable.d.ts +9 -0
  124. package/dist/components/resizable.d.ts.map +1 -0
  125. package/dist/components/resizable.js +16 -0
  126. package/dist/components/scroll-area.d.ts +6 -0
  127. package/dist/components/scroll-area.d.ts.map +1 -0
  128. package/dist/components/scroll-area.js +14 -0
  129. package/dist/components/search-bar.d.ts +15 -0
  130. package/dist/components/search-bar.d.ts.map +1 -0
  131. package/dist/components/search-bar.js +25 -0
  132. package/dist/components/segmented-control.d.ts +24 -0
  133. package/dist/components/segmented-control.d.ts.map +1 -0
  134. package/dist/components/segmented-control.js +88 -0
  135. package/dist/components/select.d.ts +16 -0
  136. package/dist/components/select.d.ts.map +1 -0
  137. package/dist/components/select.js +39 -0
  138. package/dist/components/selection-panel.d.ts +29 -0
  139. package/dist/components/selection-panel.d.ts.map +1 -0
  140. package/dist/components/selection-panel.js +255 -0
  141. package/dist/components/separator.d.ts +5 -0
  142. package/dist/components/separator.d.ts.map +1 -0
  143. package/dist/components/separator.js +9 -0
  144. package/dist/components/sheet.d.ts +17 -0
  145. package/dist/components/sheet.d.ts.map +1 -0
  146. package/dist/components/sheet.js +42 -0
  147. package/dist/components/sidebar.d.ts +70 -0
  148. package/dist/components/sidebar.d.ts.map +1 -0
  149. package/dist/components/sidebar.js +213 -0
  150. package/dist/components/skeleton.d.ts +3 -0
  151. package/dist/components/skeleton.d.ts.map +1 -0
  152. package/dist/components/skeleton.js +8 -0
  153. package/dist/components/slider.d.ts +5 -0
  154. package/dist/components/slider.d.ts.map +1 -0
  155. package/dist/components/slider.js +15 -0
  156. package/dist/components/sonner.d.ts +4 -0
  157. package/dist/components/sonner.d.ts.map +1 -0
  158. package/dist/components/sonner.js +22 -0
  159. package/dist/components/spinner.d.ts +3 -0
  160. package/dist/components/spinner.d.ts.map +1 -0
  161. package/dist/components/spinner.js +9 -0
  162. package/dist/components/switch.d.ts +5 -0
  163. package/dist/components/switch.d.ts.map +1 -0
  164. package/dist/components/switch.js +9 -0
  165. package/dist/components/table.d.ts +11 -0
  166. package/dist/components/table.d.ts.map +1 -0
  167. package/dist/components/table.js +29 -0
  168. package/dist/components/tabs.d.ts +8 -0
  169. package/dist/components/tabs.d.ts.map +1 -0
  170. package/dist/components/tabs.js +18 -0
  171. package/dist/components/textarea.d.ts +4 -0
  172. package/dist/components/textarea.d.ts.map +1 -0
  173. package/dist/components/textarea.js +8 -0
  174. package/dist/components/toggle-group.d.ts +8 -0
  175. package/dist/components/toggle-group.d.ts.map +1 -0
  176. package/dist/components/toggle-group.js +22 -0
  177. package/dist/components/toggle.d.ts +10 -0
  178. package/dist/components/toggle.d.ts.map +1 -0
  179. package/dist/components/toggle.js +27 -0
  180. package/dist/components/tooltip.d.ts +8 -0
  181. package/dist/components/tooltip.d.ts.map +1 -0
  182. package/dist/components/tooltip.js +18 -0
  183. package/dist/components/visually-hidden.d.ts +16 -0
  184. package/dist/components/visually-hidden.d.ts.map +1 -0
  185. package/dist/components/visually-hidden.js +22 -0
  186. package/dist/globals.css +646 -0
  187. package/dist/hooks/use-mobile.d.ts +2 -0
  188. package/dist/hooks/use-mobile.d.ts.map +1 -0
  189. package/dist/hooks/use-mobile.js +18 -0
  190. package/dist/index.d.ts +64 -0
  191. package/dist/index.d.ts.map +1 -0
  192. package/dist/index.js +64 -0
  193. package/dist/lib/portal-wrapper.d.ts +32 -0
  194. package/dist/lib/portal-wrapper.d.ts.map +1 -0
  195. package/dist/lib/portal-wrapper.js +34 -0
  196. package/dist/lib/utils.js +8 -0
  197. package/dist/svgs/blaze-dispatch-logo.d.ts +5 -0
  198. package/dist/svgs/blaze-dispatch-logo.d.ts.map +1 -0
  199. package/dist/svgs/blaze-dispatch-logo.js +7 -0
  200. package/dist/svgs/blaze-ecom-logo.d.ts +7 -0
  201. package/dist/svgs/blaze-ecom-logo.d.ts.map +1 -0
  202. package/dist/svgs/blaze-ecom-logo.js +7 -0
  203. package/dist/svgs/blaze-insights-logo.d.ts +5 -0
  204. package/dist/svgs/blaze-insights-logo.d.ts.map +1 -0
  205. package/dist/svgs/blaze-insights-logo.js +7 -0
  206. package/dist/svgs/blaze-lighthouse-logo.d.ts +6 -0
  207. package/dist/svgs/blaze-lighthouse-logo.d.ts.map +1 -0
  208. package/dist/svgs/blaze-lighthouse-logo.js +7 -0
  209. package/dist/svgs/blaze-pay-logo.d.ts +5 -0
  210. package/dist/svgs/blaze-pay-logo.d.ts.map +1 -0
  211. package/dist/svgs/blaze-pay-logo.js +7 -0
  212. package/dist/svgs/blaze-pos-logo.d.ts +5 -0
  213. package/dist/svgs/blaze-pos-logo.d.ts.map +1 -0
  214. package/dist/svgs/blaze-pos-logo.js +7 -0
  215. package/dist/svgs/blaze-retail-logo.d.ts +7 -0
  216. package/dist/svgs/blaze-retail-logo.d.ts.map +1 -0
  217. package/dist/svgs/blaze-retail-logo.js +7 -0
  218. package/dist/svgs/blaze-sites-logo.d.ts +5 -0
  219. package/dist/svgs/blaze-sites-logo.d.ts.map +1 -0
  220. package/dist/svgs/blaze-sites-logo.js +7 -0
  221. package/package.json +86 -21
  222. package/build/components/button.d.ts +0 -12
  223. package/build/components/button.d.ts.map +0 -1
  224. package/build/components/button.js +0 -106
  225. package/build/components/button.js.map +0 -1
  226. package/build/index.d.ts +0 -4
  227. package/build/index.d.ts.map +0 -1
  228. package/build/index.js +0 -11
  229. package/build/index.js.map +0 -1
  230. package/build/lib/utils.js +0 -9
  231. package/build/lib/utils.js.map +0 -1
  232. package/build/styles/blaze-ui.css +0 -157
  233. package/build/styles/styles.d.ts +0 -3
  234. package/build/styles/styles.d.ts.map +0 -1
  235. package/build/styles/styles.js +0 -8
  236. package/build/styles/styles.js.map +0 -1
  237. package/src/styles/blaze-ui.css +0 -157
  238. package/src/styles/styles.ts +0 -5
  239. /package/{build → dist}/lib/utils.d.ts +0 -0
  240. /package/{build → dist}/lib/utils.d.ts.map +0 -0
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
3
+ declare function Accordion({ ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
5
+ declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
+ declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
8
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/components/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAA;AAK/D,iBAAS,SAAS,CAAC,EACjB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAEtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,2CAQtD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAgBzD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,2CAUzD;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
3
+ import { ChevronDownIcon } from 'lucide-react';
4
+ import { cn } from '../lib/utils.js';
5
+
6
+ function Accordion({ ...props }) {
7
+ return jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
8
+ }
9
+ function AccordionItem({ className, ...props }) {
10
+ return (jsx(AccordionPrimitive.Item, { "data-slot": "accordion-item", className: cn("tw:border-b tw:last:border-b-0", className), ...props }));
11
+ }
12
+ function AccordionTrigger({ className, children, ...props }) {
13
+ return (jsx(AccordionPrimitive.Header, { className: "tw:flex", children: jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn("tw:focus-visible:border-ring tw:focus-visible:ring-ring/50 tw:flex tw:flex-1 tw:items-start tw:justify-between tw:gap-4 tw:rounded-md tw:py-4 tw:text-left tw:text-sm tw:font-medium tw:transition-all tw:outline-none tw:hover:underline tw:focus-visible:ring-[3px] tw:disabled:pointer-events-none tw:disabled:opacity-50 tw:[&[data-state=open]>svg]:rotate-180", className), ...props, children: [children, jsx(ChevronDownIcon, { className: "tw:text-muted-foreground tw:pointer-events-none tw:size-4 tw:shrink-0 tw:translate-y-0.5 tw:transition-transform tw:duration-200" })] }) }));
14
+ }
15
+ function AccordionContent({ className, children, ...props }) {
16
+ return (jsx(AccordionPrimitive.Content, { "data-slot": "accordion-content", className: "tw:data-[state=closed]:animate-accordion-up tw:data-[state=open]:animate-accordion-down tw:overflow-hidden tw:text-sm", ...props, children: jsx("div", { className: cn("tw:pt-0 tw:pb-4", className), children: children }) }));
17
+ }
18
+
19
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
3
+ declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
6
+ declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): import("react/jsx-runtime").JSX.Element;
7
+ interface AlertDialogContentProps extends React.ComponentProps<typeof AlertDialogPrimitive.Content> {
8
+ overlayClassName?: string;
9
+ }
10
+ declare function AlertDialogContent({ className, overlayClassName, ...props }: AlertDialogContentProps): import("react/jsx-runtime").JSX.Element;
11
+ declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
12
+ declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
13
+ declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
14
+ declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
15
+ declare function AlertDialogAction({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action>): import("react/jsx-runtime").JSX.Element;
16
+ declare function AlertDialogCancel({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>): import("react/jsx-runtime").JSX.Element;
17
+ export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
18
+ //# sourceMappingURL=alert-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../../src/components/alert-dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAMpE,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,2CAExD;AAED,iBAAS,kBAAkB,CAAC,EAC1B,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,OAAO,CAAC,2CAI3D;AAED,iBAAS,iBAAiB,CAAC,EACzB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,MAAM,CAAC,2CAI1D;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,OAAO,CAAC,2CAW3D;AAED,UAAU,uBACR,SAAQ,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,OAAO,CAAC;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,uBAAuB,2CAgBzB;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAW7B;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAW7B;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,KAAK,CAAC,2CAQzD;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,WAAW,CAAC,2CAQ/D;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,MAAM,CAAC,2CAO1D;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,MAAM,CAAC,2CAO1D;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,CAAA"}
@@ -0,0 +1,41 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
3
+ import { cn } from '../lib/utils.js';
4
+ import { buttonVariants } from './button.js';
5
+ import { PortalWrapper } from '../lib/portal-wrapper.js';
6
+
7
+ function AlertDialog({ ...props }) {
8
+ return jsx(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
9
+ }
10
+ function AlertDialogTrigger({ ...props }) {
11
+ return (jsx(AlertDialogPrimitive.Trigger, { "data-slot": "alert-dialog-trigger", ...props }));
12
+ }
13
+ function AlertDialogPortal({ ...props }) {
14
+ return (jsx(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", ...props }));
15
+ }
16
+ function AlertDialogOverlay({ className, ...props }) {
17
+ return (jsx(AlertDialogPrimitive.Overlay, { "data-slot": "alert-dialog-overlay", className: cn("tw:data-[state=open]:animate-in tw:data-[state=closed]:animate-out tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:fixed tw:inset-0 tw:z-50 tw:bg-black/50", className), ...props }));
18
+ }
19
+ function AlertDialogContent({ className, overlayClassName, ...props }) {
20
+ return (jsxs(AlertDialogPortal, { children: [jsx(AlertDialogOverlay, { className: overlayClassName }), jsx(AlertDialogPrimitive.Content, { "data-slot": "alert-dialog-content", className: cn("tw:bg-background tw:data-[state=open]:animate-in tw:data-[state=closed]:animate-out tw:data-[state=closed]:fade-out-0 tw:data-[state=open]:fade-in-0 tw:data-[state=closed]:zoom-out-95 tw:data-[state=open]:zoom-in-95 tw:fixed tw:top-1/2 tw:left-1/2 tw:z-50 tw:grid tw:w-full tw:max-w-[calc(100%-2rem)] tw:-translate-x-1/2 tw:-translate-y-1/2 tw:gap-4 tw:rounded-lg tw:border tw:p-6 tw:shadow-lg tw:duration-200 tw:sm:max-w-lg", className), ...props, children: jsx(PortalWrapper, { children: props.children }) })] }));
21
+ }
22
+ function AlertDialogHeader({ className, ...props }) {
23
+ return (jsx("div", { "data-slot": "alert-dialog-header", className: cn("tw:flex tw:flex-col tw:gap-2 tw:text-center tw:sm:text-left", className), ...props }));
24
+ }
25
+ function AlertDialogFooter({ className, ...props }) {
26
+ return (jsx("div", { "data-slot": "alert-dialog-footer", className: cn("tw:flex tw:flex-col-reverse tw:gap-2 tw:sm:flex-row tw:sm:justify-end", className), ...props }));
27
+ }
28
+ function AlertDialogTitle({ className, ...props }) {
29
+ return (jsx(AlertDialogPrimitive.Title, { "data-slot": "alert-dialog-title", className: cn("tw:text-lg tw:font-semibold", className), ...props }));
30
+ }
31
+ function AlertDialogDescription({ className, ...props }) {
32
+ return (jsx(AlertDialogPrimitive.Description, { "data-slot": "alert-dialog-description", className: cn("tw:text-muted-foreground tw:text-sm", className), ...props }));
33
+ }
34
+ function AlertDialogAction({ className, ...props }) {
35
+ return (jsx(AlertDialogPrimitive.Action, { className: cn(buttonVariants(), className), ...props }));
36
+ }
37
+ function AlertDialogCancel({ className, ...props }) {
38
+ return (jsx(AlertDialogPrimitive.Cancel, { className: cn(buttonVariants({ variant: "outline" }), className), ...props }));
39
+ }
40
+
41
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const alertVariants: (props?: ({
4
+ variant?: "default" | "destructive" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ declare function Alert({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof alertVariants>): import("react/jsx-runtime").JSX.Element;
7
+ declare function AlertTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
8
+ declare function AlertDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
9
+ export { Alert, AlertTitle, AlertDescription };
10
+ //# sourceMappingURL=alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/components/alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;8EAclB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,2CASlE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWvE;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAW7B;AAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { cva } from 'class-variance-authority';
3
+ import { cn } from '../lib/utils.js';
4
+
5
+ const alertVariants = cva("tw:relative tw:w-full tw:rounded-lg tw:border tw:px-4 tw:py-3 tw:text-sm tw:grid tw:has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] tw:grid-cols-[0_1fr] tw:has-[>svg]:gap-x-3 tw:gap-y-0.5 tw:items-start tw:[&>svg]:size-4 tw:[&>svg]:translate-y-0.5 tw:[&>svg]:text-current", {
6
+ variants: {
7
+ variant: {
8
+ default: "tw:bg-card tw:text-card-foreground",
9
+ destructive: "tw:text-destructive tw:bg-card tw:[&>svg]:text-current tw:*:data-[slot=alert-description]:text-destructive/90",
10
+ },
11
+ },
12
+ defaultVariants: {
13
+ variant: "default",
14
+ },
15
+ });
16
+ function Alert({ className, variant, ...props }) {
17
+ return (jsx("div", { "data-slot": "alert", role: "alert", className: cn(alertVariants({ variant }), className), ...props }));
18
+ }
19
+ function AlertTitle({ className, ...props }) {
20
+ return (jsx("div", { "data-slot": "alert-title", className: cn("tw:col-start-2 tw:line-clamp-1 tw:min-h-4 tw:font-medium tw:tracking-tight", className), ...props }));
21
+ }
22
+ function AlertDescription({ className, ...props }) {
23
+ return (jsx("div", { "data-slot": "alert-description", className: cn("tw:text-muted-foreground tw:col-start-2 tw:grid tw:justify-items-start tw:gap-1 tw:text-sm tw:[&_p]:leading-relaxed", className), ...props }));
24
+ }
25
+
26
+ export { Alert, AlertDescription, AlertTitle };
@@ -0,0 +1,4 @@
1
+ import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio";
2
+ declare function AspectRatio({ ...props }: React.ComponentProps<typeof AspectRatioPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
3
+ export { AspectRatio };
4
+ //# sourceMappingURL=aspect-ratio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aspect-ratio.d.ts","sourceRoot":"","sources":["../../src/components/aspect-ratio.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAEpE,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,2CAExD;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
3
+
4
+ function AspectRatio({ ...props }) {
5
+ return jsx(AspectRatioPrimitive.Root, { "data-slot": "aspect-ratio", ...props });
6
+ }
7
+
8
+ export { AspectRatio };
@@ -0,0 +1,7 @@
1
+ import * as React from "react";
2
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
3
+ declare function Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>): import("react/jsx-runtime").JSX.Element;
5
+ declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>): import("react/jsx-runtime").JSX.Element;
6
+ export { Avatar, AvatarImage, AvatarFallback };
7
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/components/avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAIzD,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAWnD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,2CAWvD;AAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as AvatarPrimitive from '@radix-ui/react-avatar';
3
+ import { cn } from '../lib/utils.js';
4
+
5
+ function Avatar({ className, ...props }) {
6
+ return (jsx(AvatarPrimitive.Root, { "data-slot": "avatar", className: cn("tw:relative tw:flex tw:size-8 tw:shrink-0 tw:overflow-hidden tw:rounded-full", className), ...props }));
7
+ }
8
+ function AvatarImage({ className, ...props }) {
9
+ return (jsx(AvatarPrimitive.Image, { "data-slot": "avatar-image", className: cn("tw:aspect-square tw:size-full", className), ...props }));
10
+ }
11
+ function AvatarFallback({ className, ...props }) {
12
+ return (jsx(AvatarPrimitive.Fallback, { "data-slot": "avatar-fallback", className: cn("tw:bg-muted tw:flex tw:size-full tw:items-center tw:justify-center tw:rounded-full", className), ...props }));
13
+ }
14
+
15
+ export { Avatar, AvatarFallback, AvatarImage };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
7
+ asChild?: boolean;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export { Badge, badgeVariants };
10
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;8EAmBlB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,EACP,OAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAC7B,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,2CAU3D;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '../lib/utils.js';
5
+
6
+ const badgeVariants = cva("tw:!inline-flex tw:!items-center tw:!justify-center tw:!rounded-md tw:!border tw:!px-2 tw:!py-0.5 tw:!text-[12px] tw:!font-medium tw:!w-fit tw:!whitespace-nowrap tw:!shrink-0 [&>svg]:tw:!size-3 tw:!gap-1 [&>svg]:tw:!pointer-events-none focus-visible:tw:!border-ring focus-visible:tw:!ring-ring/50 focus-visible:tw:!ring-[3px] aria-invalid:tw:!ring-destructive/20 dark:aria-invalid:tw:!ring-destructive/40 aria-invalid:tw:!border-destructive tw:!transition-[color,box-shadow] tw:!overflow-hidden", {
7
+ variants: {
8
+ variant: {
9
+ default: "tw:!border-transparent tw:!bg-primary tw:!text-primary-foreground [a&]:hover:tw:!bg-primary/90",
10
+ secondary: "tw:!border-transparent tw:!bg-secondary tw:!text-secondary-foreground [a&]:hover:tw:!bg-secondary/90",
11
+ destructive: "tw:!border-transparent tw:!bg-destructive tw:!text-white [a&]:hover:tw:!bg-destructive/90 focus-visible:tw:!ring-destructive/20 dark:focus-visible:tw:!ring-destructive/40 dark:tw:!bg-destructive/60",
12
+ outline: "tw:!text-foreground [a&]:hover:tw:!bg-accent [a&]:hover:tw:!text-accent-foreground",
13
+ },
14
+ },
15
+ defaultVariants: {
16
+ variant: "default",
17
+ },
18
+ });
19
+ function Badge({ className, variant, asChild = false, ...props }) {
20
+ const Comp = asChild ? Slot : "span";
21
+ return (jsx(Comp, { "data-slot": "badge", className: cn(badgeVariants({ variant }), className), ...props }));
22
+ }
23
+
24
+ export { Badge, badgeVariants };
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ declare function Breadcrumb({ ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
3
+ declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): import("react/jsx-runtime").JSX.Element;
4
+ declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
5
+ declare function BreadcrumbLink({ asChild, className, ...props }: React.ComponentProps<"a"> & {
6
+ asChild?: boolean;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
9
+ declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
10
+ declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
11
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, };
12
+ //# sourceMappingURL=breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/components/breadcrumb.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,iBAAS,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAE5D;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAW1E;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAQ1E;AAED,iBAAS,cAAc,CAAC,EACtB,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,2CAaA;AAED,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAW5E;AAED,iBAAS,mBAAmB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAY5B;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAgB9B;AAED,OAAO,EACL,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,GACnB,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { ChevronRight, MoreHorizontal } from 'lucide-react';
4
+ import { cn } from '../lib/utils.js';
5
+
6
+ function Breadcrumb({ ...props }) {
7
+ return jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
8
+ }
9
+ function BreadcrumbList({ className, ...props }) {
10
+ return (jsx("ol", { "data-slot": "breadcrumb-list", className: cn("tw:text-muted-foreground tw:flex tw:flex-wrap tw:items-center tw:gap-1.5 tw:text-sm tw:break-words tw:sm:gap-2.5", className), ...props }));
11
+ }
12
+ function BreadcrumbItem({ className, ...props }) {
13
+ return (jsx("li", { "data-slot": "breadcrumb-item", className: cn("tw:inline-flex tw:items-center tw:gap-1.5", className), ...props }));
14
+ }
15
+ function BreadcrumbLink({ asChild, className, ...props }) {
16
+ const Comp = asChild ? Slot : "a";
17
+ return (jsx(Comp, { "data-slot": "breadcrumb-link", className: cn("tw:text-muted-foreground tw:opacity-70 tw:hover:text-foreground tw:hover:opacity-100 tw:transition-[color,opacity]", className), ...props }));
18
+ }
19
+ function BreadcrumbPage({ className, ...props }) {
20
+ return (jsx("span", { "data-slot": "breadcrumb-page", role: "link", "aria-disabled": "true", "aria-current": "page", className: cn("tw:text-foreground tw:font-medium", className), ...props }));
21
+ }
22
+ function BreadcrumbSeparator({ children, className, ...props }) {
23
+ return (jsx("li", { "data-slot": "breadcrumb-separator", role: "presentation", "aria-hidden": "true", className: cn("tw:[&>svg]:size-3.5", className), ...props, children: children ?? jsx(ChevronRight, {}) }));
24
+ }
25
+ function BreadcrumbEllipsis({ className, ...props }) {
26
+ return (jsxs("span", { "data-slot": "breadcrumb-ellipsis", role: "presentation", "aria-hidden": "true", className: cn("tw:flex tw:size-9 tw:items-center tw:justify-center", className), ...props, children: [jsx(MoreHorizontal, { className: "tw:size-4" }), jsx("span", { className: "tw:sr-only", children: "More" })] }));
27
+ }
28
+
29
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
@@ -0,0 +1,12 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { Separator } from "../components/separator";
3
+ declare const buttonGroupVariants: (props?: ({
4
+ orientation?: "horizontal" | "vertical" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ declare function ButtonGroup({ className, orientation, ...props }: React.ComponentProps<"div"> & VariantProps<typeof buttonGroupVariants>): import("react/jsx-runtime").JSX.Element;
7
+ declare function ButtonGroupText({ className, asChild, ...props }: React.ComponentProps<"div"> & {
8
+ asChild?: boolean;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ declare function ButtonGroupSeparator({ className, orientation, ...props }: React.ComponentProps<typeof Separator>): import("react/jsx-runtime").JSX.Element;
11
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants, };
12
+ //# sourceMappingURL=button-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../src/components/button-group.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,QAAA,MAAM,mBAAmB;;8EAexB,CAAA;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,WAAW,EACX,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,2CAUxE;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,OAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,2CAYA;AAED,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,2CAYxC;AAED,OAAO,EACL,WAAW,EACX,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GACpB,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '../lib/utils.js';
5
+ import { Separator } from './separator.js';
6
+
7
+ const buttonGroupVariants = cva("tw:flex tw:w-fit tw:items-stretch [&>*]:focus-visible:tw:z-10 [&>*]:focus-visible:tw:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:tw:w-fit [&>input]:tw:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:tw:rounded-r-md has-[>[data-slot=button-group]]:tw:gap-2", {
8
+ variants: {
9
+ orientation: {
10
+ horizontal: "[&>*:not(:first-child)]:tw:rounded-l-none [&>*:not(:first-child)]:tw:border-l-0 [&>*:not(:last-child)]:tw:rounded-r-none",
11
+ vertical: "tw:flex-col [&>*:not(:first-child)]:tw:rounded-t-none [&>*:not(:first-child)]:tw:border-t-0 [&>*:not(:last-child)]:tw:rounded-b-none",
12
+ },
13
+ },
14
+ defaultVariants: {
15
+ orientation: "horizontal",
16
+ },
17
+ });
18
+ function ButtonGroup({ className, orientation, ...props }) {
19
+ return (jsx("div", { role: "group", "data-slot": "button-group", "data-orientation": orientation, className: cn(buttonGroupVariants({ orientation }), className), ...props }));
20
+ }
21
+ function ButtonGroupText({ className, asChild = false, ...props }) {
22
+ const Comp = asChild ? Slot : "div";
23
+ return (jsx(Comp, { className: cn("tw:bg-muted tw:flex tw:items-center tw:gap-2 tw:rounded-md tw:border tw:px-4 tw:text-sm tw:font-medium tw:shadow-xs [&_svg]:tw:pointer-events-none [&_svg:not([class*='size-'])]:tw:size-4", className), ...props }));
24
+ }
25
+ function ButtonGroupSeparator({ className, orientation = "vertical", ...props }) {
26
+ return (jsx(Separator, { "data-slot": "button-group-separator", orientation: orientation, className: cn("tw:bg-input tw:relative !tw:m-0 tw:self-stretch data-[orientation=vertical]:tw:h-auto", className), ...props }));
27
+ }
28
+
29
+ export { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare const Button: React.ForwardRefExoticComponent<Omit<React.ClassAttributes<HTMLButtonElement> & React.ButtonHTMLAttributes<HTMLButtonElement> & VariantProps<(props?: ({
8
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
9
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
10
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
11
+ asChild?: boolean;
12
+ loading?: boolean;
13
+ loadingText?: string;
14
+ }, "ref"> & React.RefAttributes<HTMLButtonElement>>;
15
+ export { Button, buttonVariants };
16
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKjE,QAAA,MAAM,cAAc;;;8EA6BnB,CAAA;AAED,QAAA,MAAM,MAAM;;;;cAII,OAAO;cACP,OAAO;kBACH,MAAM;mDA4DzB,CAAA;AAGD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,37 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Slot } from '@radix-ui/react-slot';
4
+ import { cva } from 'class-variance-authority';
5
+ import { LoaderCircleIcon } from 'lucide-react';
6
+ import { cn } from '../lib/utils.js';
7
+
8
+ const buttonVariants = cva("tw:!relative tw:!inline-flex tw:!items-center tw:!justify-center tw:!gap-2 tw:!whitespace-nowrap tw:rounded-md tw:text-sm tw:!font-medium tw:!transition-all tw:!cursor-pointer disabled:tw:!cursor-not-allowed disabled:tw:!pointer-events-none data-[disabled]:tw:!pointer-events-none data-[loading]:tw:!pointer-events-none disabled:tw:!opacity-50 data-[disabled]:tw:!opacity-50 [&_svg]:tw:!pointer-events-none [&_svg:not([class*='size-'])]:tw:!size-4 tw:!shrink-0 [&_svg]:tw:!shrink-0 tw:!outline-none focus-visible:tw:!border-ring focus-visible:tw:!ring-ring/50 focus-visible:tw:!ring-[3px] aria-invalid:tw:!ring-destructive/20 dark:aria-invalid:tw:!ring-destructive/40 aria-invalid:tw:!border-destructive", {
9
+ variants: {
10
+ variant: {
11
+ default: "tw:!bg-primary tw:!text-primary-foreground tw:!shadow-xs hover:tw:!bg-primary/90",
12
+ destructive: "tw:!bg-destructive tw:!text-white tw:!shadow-xs hover:tw:!bg-destructive/90 focus-visible:tw:!ring-destructive/20 dark:focus-visible:tw:!ring-destructive/40 dark:tw:!bg-destructive/60",
13
+ outline: "tw:!border tw:!bg-background tw:!shadow-xs hover:tw:!bg-accent hover:tw:!text-accent-foreground dark:tw:!bg-input/30 dark:tw:!border-input dark:hover:tw:!bg-input/50",
14
+ secondary: "tw:!bg-secondary tw:!text-secondary-foreground tw:!shadow-xs hover:tw:!bg-secondary/80",
15
+ ghost: "hover:tw:!bg-accent hover:tw:!text-accent-foreground dark:hover:tw:!bg-accent/50",
16
+ link: "tw:!text-primary tw:!underline-offset-4 hover:tw:!underline",
17
+ },
18
+ size: {
19
+ default: "tw:!h-9 tw:!px-4 tw:!py-2 has-[>svg]:tw:!px-3",
20
+ sm: "tw:!h-8 tw:!rounded-md tw:!gap-1.5 tw:!px-3 has-[>svg]:tw:!px-2.5",
21
+ lg: "tw:!h-10 tw:!rounded-md tw:!px-6 has-[>svg]:tw:!px-4",
22
+ icon: "tw:!size-9",
23
+ },
24
+ },
25
+ defaultVariants: {
26
+ variant: "default",
27
+ size: "default",
28
+ },
29
+ });
30
+ const Button = React.forwardRef(({ className, variant, size, asChild = false, loading = false, loadingText = "Loading", children, disabled: buttonDisabled, ...rest }, ref) => {
31
+ const Comp = asChild ? Slot : "button";
32
+ const isDisabled = Boolean(buttonDisabled || loading);
33
+ return (jsxs(Comp, { "data-slot": "button", "data-loading": loading ? "" : undefined, "data-disabled": isDisabled ? "" : undefined, className: cn(buttonVariants({ variant, size, className }), loading && "tw:cursor-progress"), disabled: !asChild ? isDisabled : undefined, "aria-disabled": isDisabled ? true : undefined, "aria-busy": loading || undefined, ref: ref, ...rest, children: [jsx("span", { className: cn("tw:inline-flex tw:items-center tw:justify-center tw:gap-[inherit] tw:transition-opacity", loading && "tw:opacity-0"), children: children }), loading ? (jsxs("span", { "data-slot": "button-spinner", className: "tw:absolute tw:inset-0 tw:flex tw:items-center tw:justify-center", role: "status", "aria-live": "polite", children: [jsx(LoaderCircleIcon, { className: "tw:size-4 tw:animate-spin", "aria-hidden": "true" }), jsx("span", { className: "tw:sr-only", children: loadingText })] })) : null] }));
34
+ });
35
+ Button.displayName = "Button";
36
+
37
+ export { Button, buttonVariants };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ declare function Card({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
3
+ declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
4
+ declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
5
+ declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
6
+ declare function CardAction({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
7
+ declare function CardContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
8
+ declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
9
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
10
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,iBAAS,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWjE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWvE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQtE;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQ5E;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWvE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQxE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWvE;AAED,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,GACZ,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { cn } from '../lib/utils.js';
3
+
4
+ function Card({ className, ...props }) {
5
+ return (jsx("div", { "data-slot": "card", className: cn("tw:bg-card tw:text-card-foreground tw:flex tw:flex-col tw:gap-6 tw:rounded-xl tw:border tw:py-6 tw:shadow-sm", className), ...props }));
6
+ }
7
+ function CardHeader({ className, ...props }) {
8
+ return (jsx("div", { "data-slot": "card-header", className: cn("tw:@container/card-header tw:grid tw:auto-rows-min tw:grid-rows-[auto_auto] tw:items-start tw:gap-1.5 tw:px-6 tw:has-data-[slot=card-action]:grid-cols-[1fr_auto] tw:[.border-b]:pb-6", className), ...props }));
9
+ }
10
+ function CardTitle({ className, ...props }) {
11
+ return (jsx("div", { "data-slot": "card-title", className: cn("tw:leading-none tw:font-semibold", className), ...props }));
12
+ }
13
+ function CardDescription({ className, ...props }) {
14
+ return (jsx("div", { "data-slot": "card-description", className: cn("tw:text-muted-foreground tw:text-sm", className), ...props }));
15
+ }
16
+ function CardAction({ className, ...props }) {
17
+ return (jsx("div", { "data-slot": "card-action", className: cn("tw:col-start-2 tw:row-span-2 tw:row-start-1 tw:self-start tw:justify-self-end", className), ...props }));
18
+ }
19
+ function CardContent({ className, ...props }) {
20
+ return (jsx("div", { "data-slot": "card-content", className: cn("tw:px-6", className), ...props }));
21
+ }
22
+ function CardFooter({ className, ...props }) {
23
+ return (jsx("div", { "data-slot": "card-footer", className: cn("tw:flex tw:items-center tw:px-6 tw:[.border-t]:pt-6", className), ...props }));
24
+ }
25
+
26
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ import useEmblaCarousel, { type UseEmblaCarouselType } from "embla-carousel-react";
3
+ import { Button } from "../components/button";
4
+ type CarouselApi = UseEmblaCarouselType[1];
5
+ type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
6
+ type CarouselOptions = UseCarouselParameters[0];
7
+ type CarouselPlugin = UseCarouselParameters[1];
8
+ type CarouselProps = {
9
+ opts?: CarouselOptions;
10
+ plugins?: CarouselPlugin;
11
+ orientation?: "horizontal" | "vertical";
12
+ setApi?: (api: CarouselApi) => void;
13
+ };
14
+ declare function Carousel({ orientation, opts, setApi, plugins, className, children, ...props }: React.ComponentProps<"div"> & CarouselProps): import("react/jsx-runtime").JSX.Element;
15
+ declare function CarouselContent({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
16
+ declare function CarouselItem({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
17
+ declare function CarouselPrevious({ className, variant, size, ...props }: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
18
+ declare function CarouselNext({ className, variant, size, ...props }: React.ComponentProps<typeof Button>): import("react/jsx-runtime").JSX.Element;
19
+ export { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, };
20
+ //# sourceMappingURL=carousel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../src/components/carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,gBAAgB,EAAE,EACvB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAE7C,KAAK,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;AAC1C,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAChE,KAAK,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAC/C,KAAK,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAE9C,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;CACpC,CAAA;AAuBD,iBAAS,QAAQ,CAAC,EAChB,WAA0B,EAC1B,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,aAAa,2CAgF7C;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAmB5E;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAgBzE;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,OAAmB,EACnB,IAAa,EACb,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAuBrC;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,OAAmB,EACnB,IAAa,EACb,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,2CAuBrC;AAED,OAAO,EACL,KAAK,WAAW,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,CAAA"}
@@ -0,0 +1,92 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import useEmblaCarousel from 'embla-carousel-react';
4
+ import { ArrowLeft, ArrowRight } from 'lucide-react';
5
+ import { cn } from '../lib/utils.js';
6
+ import { Button } from './button.js';
7
+
8
+ const CarouselContext = React.createContext(null);
9
+ function useCarousel() {
10
+ const context = React.useContext(CarouselContext);
11
+ if (!context) {
12
+ throw new Error("useCarousel must be used within a <Carousel />");
13
+ }
14
+ return context;
15
+ }
16
+ function Carousel({ orientation = "horizontal", opts, setApi, plugins, className, children, ...props }) {
17
+ const [carouselRef, api] = useEmblaCarousel({
18
+ ...opts,
19
+ axis: orientation === "horizontal" ? "x" : "y",
20
+ }, plugins);
21
+ const [canScrollPrev, setCanScrollPrev] = React.useState(false);
22
+ const [canScrollNext, setCanScrollNext] = React.useState(false);
23
+ const onSelect = React.useCallback((api) => {
24
+ if (!api)
25
+ return;
26
+ setCanScrollPrev(api.canScrollPrev());
27
+ setCanScrollNext(api.canScrollNext());
28
+ }, []);
29
+ const scrollPrev = React.useCallback(() => {
30
+ api?.scrollPrev();
31
+ }, [api]);
32
+ const scrollNext = React.useCallback(() => {
33
+ api?.scrollNext();
34
+ }, [api]);
35
+ const handleKeyDown = React.useCallback((event) => {
36
+ if (event.key === "ArrowLeft") {
37
+ event.preventDefault();
38
+ scrollPrev();
39
+ }
40
+ else if (event.key === "ArrowRight") {
41
+ event.preventDefault();
42
+ scrollNext();
43
+ }
44
+ }, [scrollPrev, scrollNext]);
45
+ React.useEffect(() => {
46
+ if (!api || !setApi)
47
+ return;
48
+ setApi(api);
49
+ }, [api, setApi]);
50
+ React.useEffect(() => {
51
+ if (!api)
52
+ return;
53
+ onSelect(api);
54
+ api.on("reInit", onSelect);
55
+ api.on("select", onSelect);
56
+ return () => {
57
+ api?.off("select", onSelect);
58
+ };
59
+ }, [api, onSelect]);
60
+ return (jsx(CarouselContext.Provider, { value: {
61
+ carouselRef,
62
+ api: api,
63
+ opts,
64
+ orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
65
+ scrollPrev,
66
+ scrollNext,
67
+ canScrollPrev,
68
+ canScrollNext,
69
+ }, children: jsx("div", { onKeyDownCapture: handleKeyDown, className: cn("tw:relative", className), role: "region", "aria-roledescription": "carousel", "data-slot": "carousel", ...props, children: children }) }));
70
+ }
71
+ function CarouselContent({ className, ...props }) {
72
+ const { carouselRef, orientation } = useCarousel();
73
+ return (jsx("div", { ref: carouselRef, className: "tw:overflow-hidden", "data-slot": "carousel-content", children: jsx("div", { className: cn("tw:flex", orientation === "horizontal" ? "tw:-ml-4" : "tw:-mt-4 tw:flex-col", className), ...props }) }));
74
+ }
75
+ function CarouselItem({ className, ...props }) {
76
+ const { orientation } = useCarousel();
77
+ return (jsx("div", { role: "group", "aria-roledescription": "slide", "data-slot": "carousel-item", className: cn("tw:min-w-0 tw:shrink-0 tw:grow-0 tw:basis-full", orientation === "horizontal" ? "tw:pl-4" : "tw:pt-4", className), ...props }));
78
+ }
79
+ function CarouselPrevious({ className, variant = "outline", size = "icon", ...props }) {
80
+ const { orientation, scrollPrev, canScrollPrev } = useCarousel();
81
+ return (jsxs(Button, { "data-slot": "carousel-previous", variant: variant, size: size, className: cn("tw:absolute tw:size-8 tw:rounded-full", orientation === "horizontal"
82
+ ? "tw:top-1/2 tw:-left-12 tw:-translate-y-1/2"
83
+ : "tw:-top-12 tw:left-1/2 tw:-translate-x-1/2 tw:rotate-90", className), disabled: !canScrollPrev, onClick: scrollPrev, ...props, children: [jsx(ArrowLeft, {}), jsx("span", { className: "tw:sr-only", children: "Previous slide" })] }));
84
+ }
85
+ function CarouselNext({ className, variant = "outline", size = "icon", ...props }) {
86
+ const { orientation, scrollNext, canScrollNext } = useCarousel();
87
+ return (jsxs(Button, { "data-slot": "carousel-next", variant: variant, size: size, className: cn("tw:absolute tw:size-8 tw:rounded-full", orientation === "horizontal"
88
+ ? "tw:top-1/2 tw:-right-12 tw:-translate-y-1/2"
89
+ : "tw:-bottom-12 tw:left-1/2 tw:-translate-x-1/2 tw:rotate-90", className), disabled: !canScrollNext, onClick: scrollNext, ...props, children: [jsx(ArrowRight, {}), jsx("span", { className: "tw:sr-only", children: "Next slide" })] }));
90
+ }
91
+
92
+ export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious };