@hex-core/components 1.3.1 → 1.5.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 (222) hide show
  1. package/README.md +183 -9
  2. package/dist/_tsup-dts-rollup.d.ts +3105 -0
  3. package/dist/accordion.d.ts +4 -0
  4. package/dist/accordion.js +62 -0
  5. package/dist/accordion.js.map +1 -0
  6. package/dist/alert-dialog.d.ts +11 -0
  7. package/dist/alert-dialog.js +125 -0
  8. package/dist/alert-dialog.js.map +1 -0
  9. package/dist/alert.d.ts +4 -0
  10. package/dist/alert.js +54 -0
  11. package/dist/alert.js.map +1 -0
  12. package/dist/aspect-ratio.d.ts +1 -0
  13. package/dist/aspect-ratio.js +8 -0
  14. package/dist/aspect-ratio.js.map +1 -0
  15. package/dist/avatar.d.ts +3 -0
  16. package/dist/avatar.js +44 -0
  17. package/dist/avatar.js.map +1 -0
  18. package/dist/badge.d.ts +3 -0
  19. package/dist/badge.js +36 -0
  20. package/dist/badge.js.map +1 -0
  21. package/dist/breadcrumb.d.ts +7 -0
  22. package/dist/breadcrumb.js +120 -0
  23. package/dist/breadcrumb.js.map +1 -0
  24. package/dist/button.d.ts +3 -0
  25. package/dist/button.js +113 -0
  26. package/dist/button.js.map +1 -0
  27. package/dist/calendar.d.ts +1 -0
  28. package/dist/calendar.js +126 -0
  29. package/dist/calendar.js.map +1 -0
  30. package/dist/card.d.ts +6 -0
  31. package/dist/card.js +68 -0
  32. package/dist/card.js.map +1 -0
  33. package/dist/checkbox.d.ts +2 -0
  34. package/dist/checkbox.js +65 -0
  35. package/dist/checkbox.js.map +1 -0
  36. package/dist/citation.d.ts +2 -0
  37. package/dist/citation.js +70 -0
  38. package/dist/citation.js.map +1 -0
  39. package/dist/cluster.d.ts +3 -0
  40. package/dist/cluster.js +50 -0
  41. package/dist/cluster.js.map +1 -0
  42. package/dist/code-block-copy.d.ts +2 -0
  43. package/dist/code-block-copy.js +108 -0
  44. package/dist/code-block-copy.js.map +1 -0
  45. package/dist/code-block.d.ts +3 -0
  46. package/dist/code-block.js +90 -0
  47. package/dist/code-block.js.map +1 -0
  48. package/dist/collapsible.d.ts +3 -0
  49. package/dist/collapsible.js +10 -0
  50. package/dist/collapsible.js.map +1 -0
  51. package/dist/color-picker.d.ts +2 -0
  52. package/dist/color-picker.js +321 -0
  53. package/dist/color-picker.js.map +1 -0
  54. package/dist/combobox.d.ts +3 -0
  55. package/dist/combobox.js +226 -0
  56. package/dist/combobox.js.map +1 -0
  57. package/dist/command.d.ts +9 -0
  58. package/dist/command.js +232 -0
  59. package/dist/command.js.map +1 -0
  60. package/dist/composer.d.ts +2 -0
  61. package/dist/composer.js +75 -0
  62. package/dist/composer.js.map +1 -0
  63. package/dist/container.d.ts +3 -0
  64. package/dist/container.js +39 -0
  65. package/dist/container.js.map +1 -0
  66. package/dist/context-menu.d.ts +12 -0
  67. package/dist/context-menu.js +130 -0
  68. package/dist/context-menu.js.map +1 -0
  69. package/dist/data-table.d.ts +2 -0
  70. package/dist/data-table.js +103 -0
  71. package/dist/data-table.js.map +1 -0
  72. package/dist/date-picker.d.ts +2 -0
  73. package/dist/date-picker.js +221 -0
  74. package/dist/date-picker.js.map +1 -0
  75. package/dist/dialog.d.ts +11 -0
  76. package/dist/dialog.js +125 -0
  77. package/dist/dialog.js.map +1 -0
  78. package/dist/drawer.d.ts +10 -0
  79. package/dist/drawer.js +82 -0
  80. package/dist/drawer.js.map +1 -0
  81. package/dist/dropdown-menu.d.ts +13 -0
  82. package/dist/dropdown-menu.js +133 -0
  83. package/dist/dropdown-menu.js.map +1 -0
  84. package/dist/dropzone.d.ts +3 -0
  85. package/dist/dropzone.js +194 -0
  86. package/dist/dropzone.js.map +1 -0
  87. package/dist/file-tree.d.ts +3 -0
  88. package/dist/file-tree.js +322 -0
  89. package/dist/file-tree.js.map +1 -0
  90. package/dist/form.d.ts +8 -0
  91. package/dist/form.js +114 -0
  92. package/dist/form.js.map +1 -0
  93. package/dist/grid.d.ts +3 -0
  94. package/dist/grid.js +58 -0
  95. package/dist/grid.js.map +1 -0
  96. package/dist/hover-card.d.ts +3 -0
  97. package/dist/hover-card.js +34 -0
  98. package/dist/hover-card.js.map +1 -0
  99. package/dist/index.d.ts +298 -1652
  100. package/dist/index.js +1157 -5493
  101. package/dist/index.js.map +1 -1
  102. package/dist/input-otp.d.ts +5 -0
  103. package/dist/input-otp.js +71 -0
  104. package/dist/input-otp.js.map +1 -0
  105. package/dist/input.d.ts +2 -0
  106. package/dist/input.js +40 -0
  107. package/dist/input.js.map +1 -0
  108. package/dist/label.d.ts +2 -0
  109. package/dist/label.js +22 -0
  110. package/dist/label.js.map +1 -0
  111. package/dist/loading-indicator.d.ts +3 -0
  112. package/dist/loading-indicator.js +64 -0
  113. package/dist/loading-indicator.js.map +1 -0
  114. package/dist/markdown.d.ts +2 -0
  115. package/dist/markdown.js +28 -0
  116. package/dist/markdown.js.map +1 -0
  117. package/dist/menubar.d.ts +11 -0
  118. package/dist/menubar.js +106 -0
  119. package/dist/menubar.js.map +1 -0
  120. package/dist/message-actions.d.ts +2 -0
  121. package/dist/message-actions.js +28 -0
  122. package/dist/message-actions.js.map +1 -0
  123. package/dist/message-list.d.ts +2 -0
  124. package/dist/message-list.js +49 -0
  125. package/dist/message-list.js.map +1 -0
  126. package/dist/message.d.ts +3 -0
  127. package/dist/message.js +35 -0
  128. package/dist/message.js.map +1 -0
  129. package/dist/multi-combobox.d.ts +3 -0
  130. package/dist/multi-combobox.js +258 -0
  131. package/dist/multi-combobox.js.map +1 -0
  132. package/dist/navigation-menu.d.ts +9 -0
  133. package/dist/navigation-menu.js +108 -0
  134. package/dist/navigation-menu.js.map +1 -0
  135. package/dist/pagination.d.ts +7 -0
  136. package/dist/pagination.js +195 -0
  137. package/dist/pagination.js.map +1 -0
  138. package/dist/popover.d.ts +4 -0
  139. package/dist/popover.js +35 -0
  140. package/dist/popover.js.map +1 -0
  141. package/dist/progress.d.ts +1 -0
  142. package/dist/progress.js +38 -0
  143. package/dist/progress.js.map +1 -0
  144. package/dist/radio-group.d.ts +2 -0
  145. package/dist/radio-group.js +44 -0
  146. package/dist/radio-group.js.map +1 -0
  147. package/dist/reasoning.d.ts +2 -0
  148. package/dist/reasoning.js +90 -0
  149. package/dist/reasoning.js.map +1 -0
  150. package/dist/resizable.d.ts +3 -0
  151. package/dist/resizable.js +66 -0
  152. package/dist/resizable.js.map +1 -0
  153. package/dist/schemas.d.ts +72 -0
  154. package/dist/schemas.js +5491 -0
  155. package/dist/schemas.js.map +1 -0
  156. package/dist/scroll-area.d.ts +3 -0
  157. package/dist/scroll-area.js +55 -0
  158. package/dist/scroll-area.js.map +1 -0
  159. package/dist/select.d.ts +8 -0
  160. package/dist/select.js +136 -0
  161. package/dist/select.js.map +1 -0
  162. package/dist/separator.d.ts +2 -0
  163. package/dist/separator.js +29 -0
  164. package/dist/separator.js.map +1 -0
  165. package/dist/sheet.d.ts +10 -0
  166. package/dist/sheet.js +140 -0
  167. package/dist/sheet.js.map +1 -0
  168. package/dist/sidebar.d.ts +8 -0
  169. package/dist/sidebar.js +201 -0
  170. package/dist/sidebar.js.map +1 -0
  171. package/dist/skeleton.d.ts +1 -0
  172. package/dist/skeleton.js +21 -0
  173. package/dist/skeleton.js.map +1 -0
  174. package/dist/slider.d.ts +2 -0
  175. package/dist/slider.js +55 -0
  176. package/dist/slider.js.map +1 -0
  177. package/dist/sonner.d.ts +2 -0
  178. package/dist/sonner.js +27 -0
  179. package/dist/sonner.js.map +1 -0
  180. package/dist/spacer.d.ts +3 -0
  181. package/dist/spacer.js +43 -0
  182. package/dist/spacer.js.map +1 -0
  183. package/dist/stack.d.ts +3 -0
  184. package/dist/stack.js +49 -0
  185. package/dist/stack.js.map +1 -0
  186. package/dist/stepper.d.ts +4 -0
  187. package/dist/stepper.js +226 -0
  188. package/dist/stepper.js.map +1 -0
  189. package/dist/suggestion.d.ts +2 -0
  190. package/dist/suggestion.js +55 -0
  191. package/dist/suggestion.js.map +1 -0
  192. package/dist/switch.d.ts +2 -0
  193. package/dist/switch.js +47 -0
  194. package/dist/switch.js.map +1 -0
  195. package/dist/table.d.ts +8 -0
  196. package/dist/table.js +85 -0
  197. package/dist/table.js.map +1 -0
  198. package/dist/tabs.d.ts +4 -0
  199. package/dist/tabs.js +57 -0
  200. package/dist/tabs.js.map +1 -0
  201. package/dist/textarea.d.ts +2 -0
  202. package/dist/textarea.js +36 -0
  203. package/dist/textarea.js.map +1 -0
  204. package/dist/time-picker.d.ts +2 -0
  205. package/dist/time-picker.js +50 -0
  206. package/dist/time-picker.js.map +1 -0
  207. package/dist/timeline.d.ts +4 -0
  208. package/dist/timeline.js +84 -0
  209. package/dist/timeline.js.map +1 -0
  210. package/dist/toggle-group.d.ts +2 -0
  211. package/dist/toggle-group.js +83 -0
  212. package/dist/toggle-group.js.map +1 -0
  213. package/dist/toggle.d.ts +2 -0
  214. package/dist/toggle.js +49 -0
  215. package/dist/toggle.js.map +1 -0
  216. package/dist/tool-call.d.ts +2 -0
  217. package/dist/tool-call.js +133 -0
  218. package/dist/tool-call.js.map +1 -0
  219. package/dist/tooltip.d.ts +4 -0
  220. package/dist/tooltip.js +33 -0
  221. package/dist/tooltip.js.map +1 -0
  222. package/package.json +71 -16
@@ -0,0 +1,3 @@
1
+ export { ScrollArea_alias_1 as ScrollArea } from './_tsup-dts-rollup.js';
2
+ export { ScrollBar_alias_1 as ScrollBar } from './_tsup-dts-rollup.js';
3
+ export { ScrollAreaProps } from './_tsup-dts-rollup.js';
@@ -0,0 +1,55 @@
1
+ "use client";
2
+ import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
3
+ import * as React from 'react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+ var ScrollArea = React.forwardRef(({ className, children, viewportTabIndex = 0, ...props }, ref) => /* @__PURE__ */ jsxs(
12
+ ScrollAreaPrimitive.Root,
13
+ {
14
+ ref,
15
+ className: cn("relative overflow-hidden", className),
16
+ ...props,
17
+ children: [
18
+ /* @__PURE__ */ jsx(
19
+ ScrollAreaPrimitive.Viewport,
20
+ {
21
+ tabIndex: viewportTabIndex,
22
+ className: cn(
23
+ "h-full w-full rounded-[inherit]",
24
+ viewportTabIndex >= 0 && "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
25
+ ),
26
+ children
27
+ }
28
+ ),
29
+ /* @__PURE__ */ jsx(ScrollBar, { orientation: "vertical" }),
30
+ /* @__PURE__ */ jsx(ScrollBar, { orientation: "horizontal" }),
31
+ /* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, {})
32
+ ]
33
+ }
34
+ ));
35
+ ScrollArea.displayName = "ScrollArea";
36
+ var ScrollBar = React.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx(
37
+ ScrollAreaPrimitive.ScrollAreaScrollbar,
38
+ {
39
+ ref,
40
+ orientation,
41
+ className: cn(
42
+ "flex touch-none select-none transition-all duration-[var(--duration-normal,200ms)] ease-out",
43
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
44
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
45
+ className
46
+ ),
47
+ ...props,
48
+ children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-foreground/[0.18]" })
49
+ }
50
+ ));
51
+ ScrollBar.displayName = "ScrollBar";
52
+
53
+ export { ScrollArea, ScrollBar };
54
+ //# sourceMappingURL=scroll-area.js.map
55
+ //# sourceMappingURL=scroll-area.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/primitives/scroll-area/scroll-area.tsx"],"names":[],"mappings":";;;;;;AAQO,SAAS,MAAM,MAAA,EAAsB;AAC3C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC5B;ACQA,IAAM,UAAA,GAAmB,KAAA,CAAA,UAAA,CAGvB,CAAC,EAAE,SAAA,EAAW,QAAA,EAAU,gBAAA,GAAmB,CAAA,EAAG,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC3D,IAAA;AAAA,EAAqB,mBAAA,CAAA,IAAA;AAAA,EAApB;AAAA,IACA,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAClD,GAAG,KAAA;AAAA,IAEJ,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAqB,mBAAA,CAAA,QAAA;AAAA,QAApB;AAAA,UACA,QAAA,EAAU,gBAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACV,iCAAA;AAAA,YACA,oBAAoB,CAAA,IACnB;AAAA,WACF;AAAA,UAEC;AAAA;AAAA,OACF;AAAA,sBAGA,GAAA,CAAC,SAAA,EAAA,EAAU,WAAA,EAAY,UAAA,EAAW,CAAA;AAAA,sBAClC,GAAA,CAAC,SAAA,EAAA,EAAU,WAAA,EAAY,YAAA,EAAa,CAAA;AAAA,sBACpC,GAAA,CAAqB,4BAApB,EAA2B;AAAA;AAAA;AAC7B,CACA;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAGzB,IAAM,SAAA,GAAkB,KAAA,CAAA,UAAA,CAGtB,CAAC,EAAE,SAAA,EAAW,cAAc,UAAA,EAAY,GAAG,KAAA,EAAM,EAAG,GAAA,qBACrD,GAAA;AAAA,EAAqB,mBAAA,CAAA,mBAAA;AAAA,EAApB;AAAA,IACA,GAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACV,6FAAA;AAAA,MACA,gBAAgB,UAAA,IACf,oDAAA;AAAA,MACD,gBAAgB,YAAA,IACf,sDAAA;AAAA,MACD;AAAA,KACD;AAAA,IACC,GAAG,KAAA;AAAA,IAEJ,QAAA,kBAAA,GAAA,CAAqB,mBAAA,CAAA,eAAA,EAApB,EAAoC,SAAA,EAAU,mDAAA,EAAoD;AAAA;AACpG,CACA;AACD,SAAA,CAAU,WAAA,GAAc,WAAA","file":"scroll-area.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge class names with Tailwind CSS conflict resolution.\n * @param inputs - Class values (strings, arrays, objects) to merge\n * @returns A single merged class string with Tailwind conflicts resolved\n */\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils.js\";\n\ninterface ScrollAreaProps\n\textends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {\n\t/**\n\t * tabIndex applied to the scroll viewport so keyboard users can scroll\n\t * without a pointer. Defaults to `0` (focusable) — pass `-1` to skip the\n\t * viewport in the tab order when ScrollArea wraps purely decorative or\n\t * already-keyboard-reachable content.\n\t */\n\tviewportTabIndex?: number;\n}\n\n/** A scrollable area with custom-styled scrollbars. Content must be explicitly sized. */\nconst ScrollArea = React.forwardRef<\n\tReact.ComponentRef<typeof ScrollAreaPrimitive.Root>,\n\tScrollAreaProps\n>(({ className, children, viewportTabIndex = 0, ...props }, ref) => (\n\t<ScrollAreaPrimitive.Root\n\t\tref={ref}\n\t\tclassName={cn(\"relative overflow-hidden\", className)}\n\t\t{...props}\n\t>\n\t\t<ScrollAreaPrimitive.Viewport\n\t\t\ttabIndex={viewportTabIndex}\n\t\t\tclassName={cn(\n\t\t\t\t\"h-full w-full rounded-[inherit]\",\n\t\t\t\tviewportTabIndex >= 0 &&\n\t\t\t\t\t\"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</ScrollAreaPrimitive.Viewport>\n\t\t{/* Both orientations mount unconditionally; Radix paints each only when content\n\t\t overflows on that axis, so there's no cost for single-axis content. */}\n\t\t<ScrollBar orientation=\"vertical\" />\n\t\t<ScrollBar orientation=\"horizontal\" />\n\t\t<ScrollAreaPrimitive.Corner />\n\t</ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = \"ScrollArea\";\n\n/** Styled scrollbar track + thumb. Rendered inside ScrollArea automatically. */\nconst ScrollBar = React.forwardRef<\n\tReact.ComponentRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n\tReact.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n\t<ScrollAreaPrimitive.ScrollAreaScrollbar\n\t\tref={ref}\n\t\torientation={orientation}\n\t\tclassName={cn(\n\t\t\t\"flex touch-none select-none transition-all duration-[var(--duration-normal,200ms)] ease-out\",\n\t\t\torientation === \"vertical\" &&\n\t\t\t\t\"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n\t\t\torientation === \"horizontal\" &&\n\t\t\t\t\"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t>\n\t\t<ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-foreground/[0.18]\" />\n\t</ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = \"ScrollBar\";\n\nexport { ScrollArea, ScrollBar };\nexport type { ScrollAreaProps };\n"]}
@@ -0,0 +1,8 @@
1
+ export { Select_alias_1 as Select } from './_tsup-dts-rollup.js';
2
+ export { SelectGroup_alias_1 as SelectGroup } from './_tsup-dts-rollup.js';
3
+ export { SelectValue_alias_1 as SelectValue } from './_tsup-dts-rollup.js';
4
+ export { SelectTrigger_alias_1 as SelectTrigger } from './_tsup-dts-rollup.js';
5
+ export { SelectContent_alias_1 as SelectContent } from './_tsup-dts-rollup.js';
6
+ export { SelectLabel_alias_1 as SelectLabel } from './_tsup-dts-rollup.js';
7
+ export { SelectItem_alias_1 as SelectItem } from './_tsup-dts-rollup.js';
8
+ export { SelectSeparator_alias_1 as SelectSeparator } from './_tsup-dts-rollup.js';
package/dist/select.js ADDED
@@ -0,0 +1,136 @@
1
+ "use client";
2
+ import * as SelectPrimitive from '@radix-ui/react-select';
3
+ import * as React from 'react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+ var Select = SelectPrimitive.Root;
12
+ var SelectGroup = SelectPrimitive.Group;
13
+ var SelectValue = SelectPrimitive.Value;
14
+ var SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
15
+ SelectPrimitive.Trigger,
16
+ {
17
+ ref,
18
+ className: cn(
19
+ "flex h-[var(--control-height-md,2.5rem)] w-full items-center justify-between rounded-md border border-input bg-background px-[var(--space-3,0.75rem)] py-[var(--space-2,0.5rem)] text-sm",
20
+ "transition-all duration-[var(--duration-normal,200ms)] ease-out shadow-sm inset-ring-1 inset-ring-foreground/[0.06]",
21
+ "placeholder:text-muted-foreground",
22
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
23
+ "focus-visible:shadow-md focus-visible:border-ring/50",
24
+ "hover:border-ring/30 hover:shadow-md",
25
+ "disabled:cursor-not-allowed disabled:opacity-50",
26
+ "[&>span]:line-clamp-1",
27
+ className
28
+ ),
29
+ ...props,
30
+ children: [
31
+ children,
32
+ /* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsxs(
33
+ "svg",
34
+ {
35
+ xmlns: "http://www.w3.org/2000/svg",
36
+ viewBox: "0 0 24 24",
37
+ fill: "none",
38
+ stroke: "currentColor",
39
+ strokeWidth: "2",
40
+ strokeLinecap: "round",
41
+ strokeLinejoin: "round",
42
+ className: "h-4 w-4 opacity-50",
43
+ "aria-hidden": "true",
44
+ children: [
45
+ /* @__PURE__ */ jsx("path", { d: "m7 15 5 5 5-5" }),
46
+ /* @__PURE__ */ jsx("path", { d: "m7 9 5-5 5 5" })
47
+ ]
48
+ }
49
+ ) })
50
+ ]
51
+ }
52
+ ));
53
+ SelectTrigger.displayName = "SelectTrigger";
54
+ var SelectContent = React.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsx(
55
+ SelectPrimitive.Content,
56
+ {
57
+ ref,
58
+ position,
59
+ className: cn(
60
+ "relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-foreground/[0.08] bg-popover text-popover-foreground shadow-md",
61
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
62
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
63
+ "data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
64
+ "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
65
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
66
+ className
67
+ ),
68
+ ...props,
69
+ children: /* @__PURE__ */ jsx(
70
+ SelectPrimitive.Viewport,
71
+ {
72
+ className: cn(
73
+ "p-[var(--space-1,0.25rem)]",
74
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
75
+ ),
76
+ children
77
+ }
78
+ )
79
+ }
80
+ ) }));
81
+ SelectContent.displayName = "SelectContent";
82
+ var SelectLabel = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
83
+ SelectPrimitive.Label,
84
+ {
85
+ ref,
86
+ className: cn("py-1.5 pl-[var(--space-8,2rem)] pr-[var(--space-2,0.5rem)] text-sm font-semibold", className),
87
+ ...props
88
+ }
89
+ ));
90
+ SelectLabel.displayName = "SelectLabel";
91
+ var SelectItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
92
+ SelectPrimitive.Item,
93
+ {
94
+ ref,
95
+ className: cn(
96
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-[var(--space-8,2rem)] pr-[var(--space-2,0.5rem)] text-sm outline-none",
97
+ "transition-all duration-[var(--duration-normal,200ms)] ease-out",
98
+ "focus:bg-accent focus:text-accent-foreground",
99
+ "data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
100
+ className
101
+ ),
102
+ ...props,
103
+ children: [
104
+ /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(
105
+ "svg",
106
+ {
107
+ xmlns: "http://www.w3.org/2000/svg",
108
+ viewBox: "0 0 24 24",
109
+ fill: "none",
110
+ stroke: "currentColor",
111
+ strokeWidth: "3",
112
+ strokeLinecap: "round",
113
+ strokeLinejoin: "round",
114
+ className: "h-3.5 w-3.5",
115
+ "aria-hidden": "true",
116
+ children: /* @__PURE__ */ jsx("polyline", { points: "20 6 9 17 4 12" })
117
+ }
118
+ ) }) }),
119
+ /* @__PURE__ */ jsx(SelectPrimitive.ItemText, { children })
120
+ ]
121
+ }
122
+ ));
123
+ SelectItem.displayName = "SelectItem";
124
+ var SelectSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
125
+ SelectPrimitive.Separator,
126
+ {
127
+ ref,
128
+ className: cn("-mx-[var(--space-1,0.25rem)] my-[var(--space-1,0.25rem)] h-px bg-foreground/[0.12]", className),
129
+ ...props
130
+ }
131
+ ));
132
+ SelectSeparator.displayName = "SelectSeparator";
133
+
134
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue };
135
+ //# sourceMappingURL=select.js.map
136
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/primitives/select/select.tsx"],"names":[],"mappings":"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","file":"select.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge class names with Tailwind CSS conflict resolution.\n * @param inputs - Class values (strings, arrays, objects) to merge\n * @returns A single merged class string with Tailwind conflicts resolved\n */\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils.js\";\n\n/** Root container controlling the select's state. */\nconst Select = SelectPrimitive.Root;\n\n/** Groups a set of related SelectItem elements. */\nconst SelectGroup = SelectPrimitive.Group;\n\n/** Renders the selected value (or placeholder) inside the trigger. */\nconst SelectValue = SelectPrimitive.Value;\n\n/** The button users click to open the dropdown. */\nconst SelectTrigger = React.forwardRef<\n\tReact.ComponentRef<typeof SelectPrimitive.Trigger>,\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n\t<SelectPrimitive.Trigger\n\t\tref={ref}\n\t\tclassName={cn(\n\t\t\t\"flex h-[var(--control-height-md,2.5rem)] w-full items-center justify-between rounded-md border border-input bg-background px-[var(--space-3,0.75rem)] py-[var(--space-2,0.5rem)] text-sm\",\n\t\t\t\"transition-all duration-[var(--duration-normal,200ms)] ease-out shadow-sm inset-ring-1 inset-ring-foreground/[0.06]\",\n\t\t\t\"placeholder:text-muted-foreground\",\n\t\t\t\"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n\t\t\t\"focus-visible:shadow-md focus-visible:border-ring/50\",\n\t\t\t\"hover:border-ring/30 hover:shadow-md\",\n\t\t\t\"disabled:cursor-not-allowed disabled:opacity-50\",\n\t\t\t\"[&>span]:line-clamp-1\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t>\n\t\t{children}\n\t\t<SelectPrimitive.Icon asChild>\n\t\t\t<svg\n\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\tfill=\"none\"\n\t\t\t\tstroke=\"currentColor\"\n\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\tclassName=\"h-4 w-4 opacity-50\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t>\n\t\t\t\t<path d=\"m7 15 5 5 5-5\" />\n\t\t\t\t<path d=\"m7 9 5-5 5 5\" />\n\t\t\t</svg>\n\t\t</SelectPrimitive.Icon>\n\t</SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = \"SelectTrigger\";\n\n/** The dropdown panel containing selectable options. */\nconst SelectContent = React.forwardRef<\n\tReact.ComponentRef<typeof SelectPrimitive.Content>,\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n\t<SelectPrimitive.Portal>\n\t\t<SelectPrimitive.Content\n\t\t\tref={ref}\n\t\t\tposition={position}\n\t\t\tclassName={cn(\n\t\t\t\t\"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-foreground/[0.08] bg-popover text-popover-foreground shadow-md\",\n\t\t\t\t\"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n\t\t\t\t\"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n\t\t\t\t\"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n\t\t\t\t\"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<SelectPrimitive.Viewport\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"p-[var(--space-1,0.25rem)]\",\n\t\t\t\t\tposition === \"popper\" &&\n\t\t\t\t\t\t\"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</SelectPrimitive.Viewport>\n\t\t</SelectPrimitive.Content>\n\t</SelectPrimitive.Portal>\n));\nSelectContent.displayName = \"SelectContent\";\n\n/** A non-interactive label within a SelectGroup. */\nconst SelectLabel = React.forwardRef<\n\tReact.ComponentRef<typeof SelectPrimitive.Label>,\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n\t<SelectPrimitive.Label\n\t\tref={ref}\n\t\tclassName={cn(\"py-1.5 pl-[var(--space-8,2rem)] pr-[var(--space-2,0.5rem)] text-sm font-semibold\", className)}\n\t\t{...props}\n\t/>\n));\nSelectLabel.displayName = \"SelectLabel\";\n\n/** A selectable option. */\nconst SelectItem = React.forwardRef<\n\tReact.ComponentRef<typeof SelectPrimitive.Item>,\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n\t<SelectPrimitive.Item\n\t\tref={ref}\n\t\tclassName={cn(\n\t\t\t\"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-[var(--space-8,2rem)] pr-[var(--space-2,0.5rem)] text-sm outline-none\",\n\t\t\t\"transition-all duration-[var(--duration-normal,200ms)] ease-out\",\n\t\t\t\"focus:bg-accent focus:text-accent-foreground\",\n\t\t\t\"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t>\n\t\t<span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n\t\t\t<SelectPrimitive.ItemIndicator>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"3\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\tclassName=\"h-3.5 w-3.5\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t>\n\t\t\t\t\t<polyline points=\"20 6 9 17 4 12\" />\n\t\t\t\t</svg>\n\t\t\t</SelectPrimitive.ItemIndicator>\n\t\t</span>\n\t\t<SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n\t</SelectPrimitive.Item>\n));\nSelectItem.displayName = \"SelectItem\";\n\n/** Horizontal divider between groups inside SelectContent. */\nconst SelectSeparator = React.forwardRef<\n\tReact.ComponentRef<typeof SelectPrimitive.Separator>,\n\tReact.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n\t<SelectPrimitive.Separator\n\t\tref={ref}\n\t\tclassName={cn(\"-mx-[var(--space-1,0.25rem)] my-[var(--space-1,0.25rem)] h-px bg-foreground/[0.12]\", className)}\n\t\t{...props}\n\t/>\n));\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport {\n\tSelect,\n\tSelectGroup,\n\tSelectValue,\n\tSelectTrigger,\n\tSelectContent,\n\tSelectLabel,\n\tSelectItem,\n\tSelectSeparator,\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export { SeparatorProps_alias_1 as SeparatorProps } from './_tsup-dts-rollup.js';
2
+ export { Separator_alias_1 as Separator } from './_tsup-dts-rollup.js';
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import * as React from 'react';
3
+ import * as SeparatorPrimitive from '@radix-ui/react-separator';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+ var Separator = React.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx(
12
+ SeparatorPrimitive.Root,
13
+ {
14
+ ref,
15
+ decorative,
16
+ orientation,
17
+ className: cn(
18
+ "shrink-0 bg-foreground/[0.12]",
19
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
20
+ className
21
+ ),
22
+ ...props
23
+ }
24
+ ));
25
+ Separator.displayName = "Separator";
26
+
27
+ export { Separator };
28
+ //# sourceMappingURL=separator.js.map
29
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/primitives/separator/separator.tsx"],"names":[],"mappings":";;;;;;AAQO,SAAS,MAAM,MAAA,EAAsB;AAC3C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC5B;ACEA,IAAM,SAAA,GAAkB,KAAA,CAAA,UAAA,CAGtB,CAAC,EAAE,SAAA,EAAW,WAAA,GAAc,YAAA,EAAc,UAAA,GAAa,IAAA,EAAM,GAAG,KAAA,EAAM,EAAG,GAAA,qBAC1E,GAAA;AAAA,EAAoB,kBAAA,CAAA,IAAA;AAAA,EAAnB;AAAA,IACA,GAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,SAAA,EAAW,EAAA;AAAA,MACV,+BAAA;AAAA,MACA,WAAA,KAAgB,eAAe,gBAAA,GAAmB,gBAAA;AAAA,MAClD;AAAA,KACD;AAAA,IACC,GAAG;AAAA;AACL,CACA;AACD,SAAA,CAAU,WAAA,GAAc,WAAA","file":"separator.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge class names with Tailwind CSS conflict resolution.\n * @param inputs - Class values (strings, arrays, objects) to merge\n * @returns A single merged class string with Tailwind conflicts resolved\n */\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../../lib/utils.js\";\n\n/**\n * A visual divider between content sections.\n * Built on Radix UI Separator for proper accessibility semantics.\n */\nexport type SeparatorProps = React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>;\n\nconst Separator = React.forwardRef<\n\tReact.ComponentRef<typeof SeparatorPrimitive.Root>,\n\tSeparatorProps\n>(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (\n\t<SeparatorPrimitive.Root\n\t\tref={ref}\n\t\tdecorative={decorative}\n\t\torientation={orientation}\n\t\tclassName={cn(\n\t\t\t\"shrink-0 bg-foreground/[0.12]\",\n\t\t\torientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n));\nSeparator.displayName = \"Separator\";\n\nexport { Separator };\n"]}
@@ -0,0 +1,10 @@
1
+ export { Sheet_alias_1 as Sheet } from './_tsup-dts-rollup.js';
2
+ export { SheetPortal_alias_1 as SheetPortal } from './_tsup-dts-rollup.js';
3
+ export { SheetOverlay_alias_1 as SheetOverlay } from './_tsup-dts-rollup.js';
4
+ export { SheetTrigger_alias_1 as SheetTrigger } from './_tsup-dts-rollup.js';
5
+ export { SheetClose_alias_1 as SheetClose } from './_tsup-dts-rollup.js';
6
+ export { SheetContent_alias_1 as SheetContent } from './_tsup-dts-rollup.js';
7
+ export { SheetHeader_alias_1 as SheetHeader } from './_tsup-dts-rollup.js';
8
+ export { SheetFooter_alias_1 as SheetFooter } from './_tsup-dts-rollup.js';
9
+ export { SheetTitle_alias_1 as SheetTitle } from './_tsup-dts-rollup.js';
10
+ export { SheetDescription_alias_1 as SheetDescription } from './_tsup-dts-rollup.js';
package/dist/sheet.js ADDED
@@ -0,0 +1,140 @@
1
+ "use client";
2
+ import * as SheetPrimitive from '@radix-ui/react-dialog';
3
+ import { cva } from 'class-variance-authority';
4
+ import * as React from 'react';
5
+ import { clsx } from 'clsx';
6
+ import { twMerge } from 'tailwind-merge';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+
9
+ function cn(...inputs) {
10
+ return twMerge(clsx(inputs));
11
+ }
12
+ var Sheet = SheetPrimitive.Root;
13
+ var SheetTrigger = SheetPrimitive.Trigger;
14
+ var SheetClose = SheetPrimitive.Close;
15
+ var SheetPortal = SheetPrimitive.Portal;
16
+ var SheetOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
17
+ SheetPrimitive.Overlay,
18
+ {
19
+ ref,
20
+ className: cn(
21
+ "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",
22
+ "data-[state=open]:animate-in data-[state=closed]:animate-out",
23
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
24
+ className
25
+ ),
26
+ ...props
27
+ }
28
+ ));
29
+ SheetOverlay.displayName = "SheetOverlay";
30
+ var sheetVariants = cva(
31
+ cn(
32
+ "fixed z-50 gap-[var(--gap-md,1rem)] bg-background p-[var(--space-6,1.5rem)] shadow-lg",
33
+ "border-foreground/[0.08]",
34
+ "transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out",
35
+ "data-[state=closed]:duration-[var(--duration-slow,300ms)] data-[state=open]:duration-500"
36
+ ),
37
+ {
38
+ variants: {
39
+ side: {
40
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
41
+ bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
42
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
43
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"
44
+ }
45
+ },
46
+ defaultVariants: {
47
+ side: "right"
48
+ }
49
+ }
50
+ );
51
+ var SheetContent = React.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs(SheetPortal, { children: [
52
+ /* @__PURE__ */ jsx(SheetOverlay, {}),
53
+ /* @__PURE__ */ jsxs(
54
+ SheetPrimitive.Content,
55
+ {
56
+ ref,
57
+ className: cn(sheetVariants({ side }), className),
58
+ ...props,
59
+ children: [
60
+ children,
61
+ /* @__PURE__ */ jsxs(
62
+ SheetPrimitive.Close,
63
+ {
64
+ className: cn(
65
+ "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background",
66
+ "transition-all duration-[var(--duration-normal,200ms)] ease-out hover:opacity-100",
67
+ "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
68
+ "disabled:pointer-events-none"
69
+ ),
70
+ children: [
71
+ /* @__PURE__ */ jsxs(
72
+ "svg",
73
+ {
74
+ xmlns: "http://www.w3.org/2000/svg",
75
+ viewBox: "0 0 24 24",
76
+ fill: "none",
77
+ stroke: "currentColor",
78
+ strokeWidth: "2",
79
+ strokeLinecap: "round",
80
+ strokeLinejoin: "round",
81
+ className: "h-4 w-4",
82
+ "aria-hidden": "true",
83
+ children: [
84
+ /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }),
85
+ /* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })
86
+ ]
87
+ }
88
+ ),
89
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
90
+ ]
91
+ }
92
+ )
93
+ ]
94
+ }
95
+ )
96
+ ] }));
97
+ SheetContent.displayName = "SheetContent";
98
+ function SheetHeader({ className, ...props }) {
99
+ return /* @__PURE__ */ jsx(
100
+ "div",
101
+ {
102
+ className: cn("flex flex-col space-y-2 text-center sm:text-left", className),
103
+ ...props
104
+ }
105
+ );
106
+ }
107
+ function SheetFooter({ className, ...props }) {
108
+ return /* @__PURE__ */ jsx(
109
+ "div",
110
+ {
111
+ className: cn(
112
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
113
+ className
114
+ ),
115
+ ...props
116
+ }
117
+ );
118
+ }
119
+ var SheetTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
120
+ SheetPrimitive.Title,
121
+ {
122
+ ref,
123
+ className: cn("text-lg font-semibold text-foreground", className),
124
+ ...props
125
+ }
126
+ ));
127
+ SheetTitle.displayName = "SheetTitle";
128
+ var SheetDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
129
+ SheetPrimitive.Description,
130
+ {
131
+ ref,
132
+ className: cn("text-sm text-muted-foreground", className),
133
+ ...props
134
+ }
135
+ ));
136
+ SheetDescription.displayName = "SheetDescription";
137
+
138
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger };
139
+ //# sourceMappingURL=sheet.js.map
140
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/components/sheet/sheet.tsx"],"names":[],"mappings":"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","file":"sheet.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge class names with Tailwind CSS conflict resolution.\n * @param inputs - Class values (strings, arrays, objects) to merge\n * @returns A single merged class string with Tailwind conflicts resolved\n */\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils.js\";\n\n/** Root container controlling open state of a side sheet. */\nconst Sheet = SheetPrimitive.Root;\n\n/** The element (usually a button) that opens the sheet. */\nconst SheetTrigger = SheetPrimitive.Trigger;\n\n/** Closes the sheet when rendered inside SheetContent. */\nconst SheetClose = SheetPrimitive.Close;\n\n/** Portals the sheet overlay and content into the body. */\nconst SheetPortal = SheetPrimitive.Portal;\n\n/** Dimmed backdrop rendered behind the sheet content. */\nconst SheetOverlay = React.forwardRef<\n\tReact.ComponentRef<typeof SheetPrimitive.Overlay>,\n\tReact.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n\t<SheetPrimitive.Overlay\n\t\tref={ref}\n\t\tclassName={cn(\n\t\t\t\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\",\n\t\t\t\"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n\t\t\t\"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n));\nSheetOverlay.displayName = \"SheetOverlay\";\n\nconst sheetVariants = cva(\n\tcn(\n\t\t\"fixed z-50 gap-[var(--gap-md,1rem)] bg-background p-[var(--space-6,1.5rem)] shadow-lg\",\n\t\t\"border-foreground/[0.08]\",\n\t\t\"transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out\",\n\t\t\"data-[state=closed]:duration-[var(--duration-slow,300ms)] data-[state=open]:duration-500\",\n\t),\n\t{\n\t\tvariants: {\n\t\t\tside: {\n\t\t\t\ttop: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n\t\t\t\tbottom:\n\t\t\t\t\t\"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n\t\t\t\tleft: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n\t\t\t\tright:\n\t\t\t\t\t\"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tside: \"right\",\n\t\t},\n\t},\n);\n\ninterface SheetContentProps\n\textends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n\t\tVariantProps<typeof sheetVariants> {}\n\n/** The sheet content panel that slides in from a side of the viewport. */\nconst SheetContent = React.forwardRef<\n\tReact.ComponentRef<typeof SheetPrimitive.Content>,\n\tSheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n\t<SheetPortal>\n\t\t<SheetOverlay />\n\t\t<SheetPrimitive.Content\n\t\t\tref={ref}\n\t\t\tclassName={cn(sheetVariants({ side }), className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<SheetPrimitive.Close\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background\",\n\t\t\t\t\t\"transition-all duration-[var(--duration-normal,200ms)] ease-out hover:opacity-100\",\n\t\t\t\t\t\"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n\t\t\t\t\t\"disabled:pointer-events-none\",\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\tclassName=\"h-4 w-4\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t>\n\t\t\t\t\t<path d=\"M18 6 6 18\" />\n\t\t\t\t\t<path d=\"m6 6 12 12\" />\n\t\t\t\t</svg>\n\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t</SheetPrimitive.Close>\n\t\t</SheetPrimitive.Content>\n\t</SheetPortal>\n));\nSheetContent.displayName = \"SheetContent\";\n\n/**\n * Header container inside SheetContent; stacks title and description.\n * @returns A div with vertical rhythm.\n */\nfunction SheetHeader({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n/**\n * Footer container inside SheetContent; aligns action buttons.\n * @returns A div that stacks buttons on mobile and right-aligns on desktop.\n */\nfunction SheetFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n/** Accessible sheet title; Radix wires it to aria-labelledby automatically. */\nconst SheetTitle = React.forwardRef<\n\tReact.ComponentRef<typeof SheetPrimitive.Title>,\n\tReact.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n\t<SheetPrimitive.Title\n\t\tref={ref}\n\t\tclassName={cn(\"text-lg font-semibold text-foreground\", className)}\n\t\t{...props}\n\t/>\n));\nSheetTitle.displayName = \"SheetTitle\";\n\n/** Accessible sheet description; Radix wires it to aria-describedby automatically. */\nconst SheetDescription = React.forwardRef<\n\tReact.ComponentRef<typeof SheetPrimitive.Description>,\n\tReact.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n\t<SheetPrimitive.Description\n\t\tref={ref}\n\t\tclassName={cn(\"text-sm text-muted-foreground\", className)}\n\t\t{...props}\n\t/>\n));\nSheetDescription.displayName = \"SheetDescription\";\n\nexport {\n\tSheet,\n\tSheetPortal,\n\tSheetOverlay,\n\tSheetTrigger,\n\tSheetClose,\n\tSheetContent,\n\tSheetHeader,\n\tSheetFooter,\n\tSheetTitle,\n\tSheetDescription,\n};\n"]}
@@ -0,0 +1,8 @@
1
+ export { SidebarProvider_alias_1 as SidebarProvider } from './_tsup-dts-rollup.js';
2
+ export { Sidebar_alias_1 as Sidebar } from './_tsup-dts-rollup.js';
3
+ export { SidebarTrigger_alias_1 as SidebarTrigger } from './_tsup-dts-rollup.js';
4
+ export { SidebarHeader_alias_1 as SidebarHeader } from './_tsup-dts-rollup.js';
5
+ export { SidebarContent_alias_1 as SidebarContent } from './_tsup-dts-rollup.js';
6
+ export { SidebarFooter_alias_1 as SidebarFooter } from './_tsup-dts-rollup.js';
7
+ export { SidebarItem_alias_1 as SidebarItem } from './_tsup-dts-rollup.js';
8
+ export { useSidebar_alias_1 as useSidebar } from './_tsup-dts-rollup.js';