@definable/ui 0.1.6 → 0.1.8

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 (322) hide show
  1. package/README.md +6 -6
  2. package/dist/alert-dialog.d.ts +18 -0
  3. package/dist/alert.d.ts +18 -0
  4. package/dist/avatar.d.ts +9 -0
  5. package/dist/badge.d.ts +15 -0
  6. package/dist/button.d.ts +16 -0
  7. package/dist/calendar.d.ts +21 -0
  8. package/dist/card.d.ts +15 -0
  9. package/dist/carousel.d.ts +18 -0
  10. package/dist/charts.d.ts +26 -0
  11. package/dist/checkbox.d.ts +6 -0
  12. package/dist/collapse.d.ts +15 -0
  13. package/dist/command-menu.d.ts +12 -0
  14. package/dist/command.d.ts +89 -0
  15. package/dist/components/alert-dialog.d.ts +15 -0
  16. package/dist/components/alert-dialog.esm.js +59 -0
  17. package/dist/components/alert-dialog.esm.js.map +1 -0
  18. package/dist/components/alert-dialog.js +2 -0
  19. package/dist/components/alert-dialog.js.map +1 -0
  20. package/dist/components/alert.d.ts +11 -0
  21. package/dist/components/alert.esm.js +51 -0
  22. package/dist/components/alert.esm.js.map +1 -0
  23. package/dist/components/alert.js +2 -0
  24. package/dist/components/alert.js.map +1 -0
  25. package/dist/components/avatar.d.ts +5 -0
  26. package/dist/components/avatar.esm.js +42 -0
  27. package/dist/components/avatar.esm.js.map +1 -0
  28. package/dist/components/avatar.js +2 -0
  29. package/dist/components/avatar.js.map +1 -0
  30. package/dist/components/badge.d.ts +9 -0
  31. package/dist/components/badge.esm.js +27 -0
  32. package/dist/components/badge.esm.js.map +1 -0
  33. package/dist/components/badge.js +2 -0
  34. package/dist/components/badge.js.map +1 -0
  35. package/dist/components/button.d.ts +13 -0
  36. package/dist/components/button.esm.js +48 -0
  37. package/dist/components/button.esm.js.map +1 -0
  38. package/dist/components/button.js +2 -0
  39. package/dist/components/button.js.map +1 -0
  40. package/dist/components/calendar.d.ts +18 -0
  41. package/dist/components/calendar.esm.js +5562 -0
  42. package/dist/components/calendar.esm.js.map +1 -0
  43. package/dist/components/calendar.js +2 -0
  44. package/dist/components/calendar.js.map +1 -0
  45. package/dist/components/card.d.ts +8 -0
  46. package/dist/components/card.esm.js +62 -0
  47. package/dist/components/card.esm.js.map +1 -0
  48. package/dist/components/card.js +2 -0
  49. package/dist/components/card.js.map +1 -0
  50. package/dist/components/carousel.d.ts +13 -0
  51. package/dist/components/carousel.esm.js +101 -0
  52. package/dist/components/carousel.esm.js.map +1 -0
  53. package/dist/components/carousel.js +2 -0
  54. package/dist/components/carousel.js.map +1 -0
  55. package/dist/components/charts.d.ts +17 -0
  56. package/dist/components/charts.esm.js +48 -0
  57. package/dist/components/charts.esm.js.map +1 -0
  58. package/dist/components/charts.js +2 -0
  59. package/dist/components/charts.js.map +1 -0
  60. package/dist/components/checkbox.d.ts +4 -0
  61. package/dist/components/checkbox.esm.js +32 -0
  62. package/dist/components/checkbox.esm.js.map +1 -0
  63. package/dist/components/checkbox.js +2 -0
  64. package/dist/components/checkbox.js.map +1 -0
  65. package/dist/components/collapse.d.ts +11 -0
  66. package/dist/components/collapse.esm.js +50 -0
  67. package/dist/components/collapse.esm.js.map +1 -0
  68. package/dist/components/collapse.js +2 -0
  69. package/dist/components/collapse.js.map +1 -0
  70. package/dist/components/command-menu.d.ts +7 -0
  71. package/dist/components/command-menu.esm.js +90 -0
  72. package/dist/components/command-menu.esm.js.map +1 -0
  73. package/dist/components/command-menu.js +2 -0
  74. package/dist/components/command-menu.js.map +1 -0
  75. package/dist/components/command.d.ts +79 -0
  76. package/dist/components/command.esm.js +425 -0
  77. package/dist/components/command.esm.js.map +1 -0
  78. package/dist/components/command.js +2 -0
  79. package/dist/components/command.js.map +1 -0
  80. package/dist/components/confirmation-modal.d.ts +12 -0
  81. package/dist/components/confirmation-modal.esm.js +46 -0
  82. package/dist/components/confirmation-modal.esm.js.map +1 -0
  83. package/dist/components/confirmation-modal.js +2 -0
  84. package/dist/components/confirmation-modal.js.map +1 -0
  85. package/dist/components/context-menu.d.ts +26 -0
  86. package/dist/components/context-menu.esm.js +186 -0
  87. package/dist/components/context-menu.esm.js.map +1 -0
  88. package/dist/components/context-menu.js +2 -0
  89. package/dist/components/context-menu.js.map +1 -0
  90. package/dist/components/dialog.d.ts +21 -0
  91. package/dist/components/dialog.esm.js +122 -0
  92. package/dist/components/dialog.esm.js.map +1 -0
  93. package/dist/components/dialog.js +2 -0
  94. package/dist/components/dialog.js.map +1 -0
  95. package/dist/components/dropdown-menu.d.ts +9 -0
  96. package/dist/components/dropdown-menu.esm.js +49 -0
  97. package/dist/components/dropdown-menu.esm.js.map +1 -0
  98. package/dist/components/dropdown-menu.js +2 -0
  99. package/dist/components/dropdown-menu.js.map +1 -0
  100. package/dist/components/dropzone.d.ts +12 -0
  101. package/dist/components/dropzone.esm.js +45 -0
  102. package/dist/components/dropzone.esm.js.map +1 -0
  103. package/dist/components/dropzone.js +2 -0
  104. package/dist/components/dropzone.js.map +1 -0
  105. package/dist/components/image-cropper-modal.d.ts +10 -0
  106. package/dist/components/image-cropper-modal.esm.js +251 -0
  107. package/dist/components/image-cropper-modal.esm.js.map +1 -0
  108. package/dist/components/image-cropper-modal.js +2 -0
  109. package/dist/components/image-cropper-modal.js.map +1 -0
  110. package/dist/components/image-cropper.d.ts +11 -0
  111. package/dist/components/image-cropper.esm.js +131 -0
  112. package/dist/components/image-cropper.esm.js.map +1 -0
  113. package/dist/components/image-cropper.js +2 -0
  114. package/dist/components/image-cropper.js.map +1 -0
  115. package/dist/components/input.d.ts +5 -0
  116. package/dist/components/input.esm.js +22 -0
  117. package/dist/components/input.esm.js.map +1 -0
  118. package/dist/components/input.js +2 -0
  119. package/dist/components/input.js.map +1 -0
  120. package/dist/components/label.d.ts +4 -0
  121. package/dist/components/label.esm.js +20 -0
  122. package/dist/components/label.esm.js.map +1 -0
  123. package/dist/components/label.js +2 -0
  124. package/dist/components/label.js.map +1 -0
  125. package/dist/components/loader.d.ts +10 -0
  126. package/dist/components/loader.esm.js +70 -0
  127. package/dist/components/loader.esm.js.map +1 -0
  128. package/dist/components/loader.js +2 -0
  129. package/dist/components/loader.js.map +1 -0
  130. package/dist/components/loading-placeholder.d.ts +8 -0
  131. package/dist/components/loading-placeholder.esm.js +25 -0
  132. package/dist/components/loading-placeholder.esm.js.map +1 -0
  133. package/dist/components/loading-placeholder.js +2 -0
  134. package/dist/components/loading-placeholder.js.map +1 -0
  135. package/dist/components/markdown.d.ts +2 -0
  136. package/dist/components/markdown.esm.js +12066 -0
  137. package/dist/components/markdown.esm.js.map +1 -0
  138. package/dist/components/markdown.js +18 -0
  139. package/dist/components/markdown.js.map +1 -0
  140. package/dist/components/mention.d.ts +25 -0
  141. package/dist/components/mention.esm.js +154 -0
  142. package/dist/components/mention.esm.js.map +1 -0
  143. package/dist/components/mention.js +2 -0
  144. package/dist/components/mention.js.map +1 -0
  145. package/dist/components/modal.d.ts +19 -0
  146. package/dist/components/modal.esm.js +92 -0
  147. package/dist/components/modal.esm.js.map +1 -0
  148. package/dist/components/modal.js +2 -0
  149. package/dist/components/modal.js.map +1 -0
  150. package/dist/components/monaco-editor.d.ts +2 -0
  151. package/dist/components/monaco-editor.esm.js +295 -0
  152. package/dist/components/monaco-editor.esm.js.map +1 -0
  153. package/dist/components/monaco-editor.js +8 -0
  154. package/dist/components/monaco-editor.js.map +1 -0
  155. package/dist/components/notification.d.ts +5 -0
  156. package/dist/components/notification.esm.js +26 -0
  157. package/dist/components/notification.esm.js.map +1 -0
  158. package/dist/components/notification.js +2 -0
  159. package/dist/components/notification.js.map +1 -0
  160. package/dist/components/popover.d.ts +6 -0
  161. package/dist/components/popover.esm.js +24 -0
  162. package/dist/components/popover.esm.js.map +1 -0
  163. package/dist/components/popover.js +2 -0
  164. package/dist/components/popover.js.map +1 -0
  165. package/dist/components/progress.d.ts +4 -0
  166. package/dist/components/progress.esm.js +35 -0
  167. package/dist/components/progress.esm.js.map +1 -0
  168. package/dist/components/progress.js +2 -0
  169. package/dist/components/progress.js.map +1 -0
  170. package/dist/components/radio-group.d.ts +5 -0
  171. package/dist/components/radio-group.esm.js +48 -0
  172. package/dist/components/radio-group.esm.js.map +1 -0
  173. package/dist/components/radio-group.js +2 -0
  174. package/dist/components/radio-group.js.map +1 -0
  175. package/dist/components/scroll-area.d.ts +5 -0
  176. package/dist/components/scroll-area.esm.js +47 -0
  177. package/dist/components/scroll-area.esm.js.map +1 -0
  178. package/dist/components/scroll-area.js +2 -0
  179. package/dist/components/scroll-area.js.map +1 -0
  180. package/dist/components/select.d.ts +20 -0
  181. package/dist/components/select.esm.js +131 -0
  182. package/dist/components/select.esm.js.map +1 -0
  183. package/dist/components/select.js +2 -0
  184. package/dist/components/select.js.map +1 -0
  185. package/dist/components/selection-bar.d.ts +11 -0
  186. package/dist/components/selection-bar.esm.js +54 -0
  187. package/dist/components/selection-bar.esm.js.map +1 -0
  188. package/dist/components/selection-bar.js +2 -0
  189. package/dist/components/selection-bar.js.map +1 -0
  190. package/dist/components/separator.d.ts +4 -0
  191. package/dist/components/separator.esm.js +25 -0
  192. package/dist/components/separator.esm.js.map +1 -0
  193. package/dist/components/separator.js +2 -0
  194. package/dist/components/separator.js.map +1 -0
  195. package/dist/components/sheet.d.ts +13 -0
  196. package/dist/components/sheet.esm.js +129 -0
  197. package/dist/components/sheet.esm.js.map +1 -0
  198. package/dist/components/sheet.js +2 -0
  199. package/dist/components/sheet.js.map +1 -0
  200. package/dist/components/skeleton.d.ts +2 -0
  201. package/dist/components/skeleton.esm.js +18 -0
  202. package/dist/components/skeleton.esm.js.map +1 -0
  203. package/dist/components/skeleton.js +2 -0
  204. package/dist/components/skeleton.js.map +1 -0
  205. package/dist/components/slider.d.ts +4 -0
  206. package/dist/components/slider.esm.js +33 -0
  207. package/dist/components/slider.esm.js.map +1 -0
  208. package/dist/components/slider.js +2 -0
  209. package/dist/components/slider.js.map +1 -0
  210. package/dist/components/stepper.d.ts +2 -0
  211. package/dist/components/stepper.esm.js +214 -0
  212. package/dist/components/stepper.esm.js.map +1 -0
  213. package/dist/components/stepper.js +2 -0
  214. package/dist/components/stepper.js.map +1 -0
  215. package/dist/components/switch.d.ts +4 -0
  216. package/dist/components/switch.esm.js +36 -0
  217. package/dist/components/switch.esm.js.map +1 -0
  218. package/dist/components/switch.js +2 -0
  219. package/dist/components/switch.js.map +1 -0
  220. package/dist/components/table-empty.d.ts +9 -0
  221. package/dist/components/table-empty.esm.js +23 -0
  222. package/dist/components/table-empty.esm.js.map +1 -0
  223. package/dist/components/table-empty.js +2 -0
  224. package/dist/components/table-empty.js.map +1 -0
  225. package/dist/components/table-mobile.d.ts +4 -0
  226. package/dist/components/table-mobile.esm.js +92 -0
  227. package/dist/components/table-mobile.esm.js.map +1 -0
  228. package/dist/components/table-mobile.js +2 -0
  229. package/dist/components/table-mobile.js.map +1 -0
  230. package/dist/components/table.d.ts +31 -0
  231. package/dist/components/table.esm.js +143 -0
  232. package/dist/components/table.esm.js.map +1 -0
  233. package/dist/components/table.js +2 -0
  234. package/dist/components/table.js.map +1 -0
  235. package/dist/components/tabs.d.ts +7 -0
  236. package/dist/components/tabs.esm.js +47 -0
  237. package/dist/components/tabs.esm.js.map +1 -0
  238. package/dist/components/tabs.js +2 -0
  239. package/dist/components/tabs.js.map +1 -0
  240. package/dist/components/terminal.d.ts +43 -0
  241. package/dist/components/terminal.esm.js +50 -0
  242. package/dist/components/terminal.esm.js.map +1 -0
  243. package/dist/components/terminal.js +2 -0
  244. package/dist/components/terminal.js.map +1 -0
  245. package/dist/components/textarea.d.ts +5 -0
  246. package/dist/components/textarea.esm.js +21 -0
  247. package/dist/components/textarea.esm.js.map +1 -0
  248. package/dist/components/textarea.js +2 -0
  249. package/dist/components/textarea.js.map +1 -0
  250. package/dist/components/tooltip.d.ts +8 -0
  251. package/dist/components/tooltip.esm.js +100 -0
  252. package/dist/components/tooltip.esm.js.map +1 -0
  253. package/dist/components/tooltip.js +2 -0
  254. package/dist/components/tooltip.js.map +1 -0
  255. package/dist/components/use-toast.d.ts +21 -0
  256. package/dist/components/use-toast.esm.js +65 -0
  257. package/dist/components/use-toast.esm.js.map +1 -0
  258. package/dist/components/use-toast.js +2 -0
  259. package/dist/components/use-toast.js.map +1 -0
  260. package/dist/confirmation-modal.d.ts +16 -0
  261. package/dist/context-menu.d.ts +41 -0
  262. package/dist/dialog.d.ts +33 -0
  263. package/dist/dropdown-menu.d.ts +16 -0
  264. package/dist/dropzone.d.ts +16 -0
  265. package/dist/image-cropper-modal.d.ts +14 -0
  266. package/dist/image-cropper.d.ts +15 -0
  267. package/dist/index-DACAHwoB.js +35 -0
  268. package/dist/index-DACAHwoB.js.map +1 -0
  269. package/dist/index-Deooizx8.cjs +2 -0
  270. package/dist/index-Deooizx8.cjs.map +1 -0
  271. package/dist/index.d.ts +8 -2
  272. package/dist/index.esm.js +111 -75430
  273. package/dist/index.esm.js.map +1 -1
  274. package/dist/index.js +2 -0
  275. package/dist/index.js.map +1 -0
  276. package/dist/input.d.ts +8 -0
  277. package/dist/jsx-runtime-BYECrxsp.cjs +31 -0
  278. package/dist/jsx-runtime-BYECrxsp.cjs.map +1 -0
  279. package/dist/jsx-runtime-DGlMoOmv.js +631 -0
  280. package/dist/jsx-runtime-DGlMoOmv.js.map +1 -0
  281. package/dist/label.d.ts +6 -0
  282. package/dist/lib/utils.d.ts +2 -0
  283. package/dist/lib/utils.esm.js +5 -0
  284. package/dist/lib/utils.esm.js.map +1 -0
  285. package/dist/lib/utils.js +2 -0
  286. package/dist/lib/utils.js.map +1 -0
  287. package/dist/loader.d.ts +14 -0
  288. package/dist/loading-placeholder.d.ts +12 -0
  289. package/dist/markdown.d.ts +122 -0
  290. package/dist/mention.d.ts +29 -0
  291. package/dist/modal.d.ts +24 -0
  292. package/dist/monaco-editor.d.ts +76 -0
  293. package/dist/notification.d.ts +9 -0
  294. package/dist/popover.d.ts +10 -0
  295. package/dist/progress.d.ts +6 -0
  296. package/dist/radio-group.d.ts +8 -0
  297. package/dist/scroll-area.d.ts +8 -0
  298. package/dist/select.d.ts +31 -0
  299. package/dist/selection-bar.d.ts +15 -0
  300. package/dist/separator.d.ts +6 -0
  301. package/dist/sheet.d.ts +17 -0
  302. package/dist/skeleton.d.ts +5 -0
  303. package/dist/slider.d.ts +6 -0
  304. package/dist/stepper.d.ts +71 -0
  305. package/dist/styles.css +1 -1
  306. package/dist/switch.d.ts +6 -0
  307. package/dist/table-empty.d.ts +13 -0
  308. package/dist/table-mobile.d.ts +37 -0
  309. package/dist/table.d.ts +37 -0
  310. package/dist/tabs.d.ts +12 -0
  311. package/dist/terminal.d.ts +47 -0
  312. package/dist/textarea.d.ts +8 -0
  313. package/dist/tooltip.d.ts +12 -0
  314. package/dist/use-toast.d.ts +28 -0
  315. package/dist/utils-DSKoFOjv.cjs +2 -0
  316. package/dist/utils-DSKoFOjv.cjs.map +1 -0
  317. package/dist/utils-qaFjX9_3.js +2279 -0
  318. package/dist/utils-qaFjX9_3.js.map +1 -0
  319. package/dist/utils.d.ts +5 -0
  320. package/package.json +259 -1
  321. package/dist/index.cjs.js +0 -315
  322. package/dist/index.cjs.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3
+ declare const RadioGroup: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const RadioGroupItem: React.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
5
+ export { RadioGroup, RadioGroupItem };
@@ -0,0 +1,48 @@
1
+ import { j as r } from "../jsx-runtime-DGlMoOmv.js";
2
+ import * as t from "react";
3
+ import * as e from "@radix-ui/react-radio-group";
4
+ import { c as l } from "../utils-qaFjX9_3.js";
5
+ import { Circle as m } from "lucide-react";
6
+ import { motion as o } from "framer-motion";
7
+ const n = t.forwardRef(({ className: i, ...s }, a) => /* @__PURE__ */ r.jsx(
8
+ e.Root,
9
+ {
10
+ className: l("grid gap-2", i),
11
+ ...s,
12
+ ref: a
13
+ }
14
+ ));
15
+ n.displayName = e.Root.displayName;
16
+ const c = t.forwardRef(({ className: i, ...s }, a) => /* @__PURE__ */ r.jsx(
17
+ o.div,
18
+ {
19
+ whileHover: { scale: 1.05 },
20
+ whileTap: { scale: 0.95 },
21
+ children: /* @__PURE__ */ r.jsx(
22
+ e.Item,
23
+ {
24
+ ref: a,
25
+ className: l(
26
+ "aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
27
+ i
28
+ ),
29
+ ...s,
30
+ children: /* @__PURE__ */ r.jsx(e.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ r.jsx(
31
+ o.div,
32
+ {
33
+ initial: { scale: 0 },
34
+ animate: { scale: 1 },
35
+ transition: { type: "spring", stiffness: 300, damping: 20 },
36
+ children: /* @__PURE__ */ r.jsx(m, { className: "h-2.5 w-2.5 fill-current text-current" })
37
+ }
38
+ ) })
39
+ }
40
+ )
41
+ }
42
+ ));
43
+ c.displayName = e.Item.displayName;
44
+ export {
45
+ n as RadioGroup,
46
+ c as RadioGroupItem
47
+ };
48
+ //# sourceMappingURL=radio-group.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.esm.js","sources":["../../src/components/radio-group.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { cn } from \"@/lib/utils\"\nimport { Circle } from \"lucide-react\"\nimport { motion } from \"framer-motion\"\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <motion.div\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n >\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <motion.div\n initial={{ scale: 0 }}\n animate={{ scale: 1 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 20 }}\n >\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </motion.div>\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n </motion.div>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem } "],"names":["RadioGroup","React","className","props","ref","jsx","RadioGroupPrimitive","cn","RadioGroupItem","motion","Circle"],"mappings":";;;;;;AAMA,MAAMA,IAAaC,EAAM,WAGvB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAExBC,gBAAAA,EAAAA;AAAAA,EAACC,EAAoB;AAAA,EAApB;AAAA,IACC,WAAWC,EAAG,cAAcL,CAAS;AAAA,IACpC,GAAGC;AAAA,IACJ,KAAAC;AAAA,EAAA;AAAA,CAGL;AACDJ,EAAW,cAAcM,EAAoB,KAAK;AAElD,MAAME,IAAiBP,EAAM,WAG3B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAExBC,gBAAAA,EAAAA;AAAAA,EAACI,EAAO;AAAA,EAAP;AAAA,IACC,YAAY,EAAE,OAAO,KAAA;AAAA,IACrB,UAAU,EAAE,OAAO,KAAA;AAAA,IAEnB,UAAAJ,gBAAAA,EAAAA;AAAAA,MAACC,EAAoB;AAAA,MAApB;AAAA,QACC,KAAAF;AAAA,QACA,WAAWG;AAAA,UACT;AAAA,UACAL;AAAA,QAAA;AAAA,QAED,GAAGC;AAAA,QAEJ,UAAAE,gBAAAA,EAAAA,IAACC,EAAoB,WAApB,EAA8B,WAAU,oCACvC,UAAAD,gBAAAA,EAAAA;AAAAA,UAACI,EAAO;AAAA,UAAP;AAAA,YACC,SAAS,EAAE,OAAO,EAAA;AAAA,YAClB,SAAS,EAAE,OAAO,EAAA;AAAA,YAClB,YAAY,EAAE,MAAM,UAAU,WAAW,KAAK,SAAS,GAAA;AAAA,YAEvD,UAAAJ,gBAAAA,EAAAA,IAACK,GAAA,EAAO,WAAU,wCAAA,CAAwC;AAAA,UAAA;AAAA,QAAA,EAC5D,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAAA,CAGL;AACDF,EAAe,cAAcF,EAAoB,KAAK;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../jsx-runtime-BYECrxsp.cjs"),m=require("react"),p=require("@radix-ui/react-radio-group"),a=require("../utils-DSKoFOjv.cjs"),f=require("lucide-react"),n=require("framer-motion");function c(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const l=c(m),s=c(p),u=l.forwardRef(({className:e,...r},t)=>i.jsxRuntimeExports.jsx(s.Root,{className:a.cn("grid gap-2",e),...r,ref:t}));u.displayName=s.Root.displayName;const d=l.forwardRef(({className:e,...r},t)=>i.jsxRuntimeExports.jsx(n.motion.div,{whileHover:{scale:1.05},whileTap:{scale:.95},children:i.jsxRuntimeExports.jsx(s.Item,{ref:t,className:a.cn("aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",e),...r,children:i.jsxRuntimeExports.jsx(s.Indicator,{className:"flex items-center justify-center",children:i.jsxRuntimeExports.jsx(n.motion.div,{initial:{scale:0},animate:{scale:1},transition:{type:"spring",stiffness:300,damping:20},children:i.jsxRuntimeExports.jsx(f.Circle,{className:"h-2.5 w-2.5 fill-current text-current"})})})})}));d.displayName=s.Item.displayName;exports.RadioGroup=u;exports.RadioGroupItem=d;
2
+ //# sourceMappingURL=radio-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.js","sources":["../../src/components/radio-group.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { cn } from \"@/lib/utils\"\nimport { Circle } from \"lucide-react\"\nimport { motion } from \"framer-motion\"\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <motion.div\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n >\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <motion.div\n initial={{ scale: 0 }}\n animate={{ scale: 1 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 20 }}\n >\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </motion.div>\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n </motion.div>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem } "],"names":["RadioGroup","React","className","props","ref","jsx","RadioGroupPrimitive","cn","RadioGroupItem","motion","Circle"],"mappings":"ojBAMMA,EAAaC,EAAM,WAGvB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAExBC,EAAAA,kBAAAA,IAACC,EAAoB,KAApB,CACC,UAAWC,EAAAA,GAAG,aAAcL,CAAS,EACpC,GAAGC,EACJ,IAAAC,CAAA,CAAA,CAGL,EACDJ,EAAW,YAAcM,EAAoB,KAAK,YAElD,MAAME,EAAiBP,EAAM,WAG3B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAExBC,EAAAA,kBAAAA,IAACI,EAAAA,OAAO,IAAP,CACC,WAAY,CAAE,MAAO,IAAA,EACrB,SAAU,CAAE,MAAO,GAAA,EAEnB,SAAAJ,EAAAA,kBAAAA,IAACC,EAAoB,KAApB,CACC,IAAAF,EACA,UAAWG,EAAAA,GACT,+LACAL,CAAA,EAED,GAAGC,EAEJ,SAAAE,EAAAA,kBAAAA,IAACC,EAAoB,UAApB,CAA8B,UAAU,mCACvC,SAAAD,EAAAA,kBAAAA,IAACI,EAAAA,OAAO,IAAP,CACC,QAAS,CAAE,MAAO,CAAA,EAClB,QAAS,CAAE,MAAO,CAAA,EAClB,WAAY,CAAE,KAAM,SAAU,UAAW,IAAK,QAAS,EAAA,EAEvD,SAAAJ,EAAAA,kBAAAA,IAACK,EAAAA,OAAA,CAAO,UAAU,uCAAA,CAAwC,CAAA,CAAA,CAC5D,CACF,CAAA,CAAA,CACF,CAAA,CAGL,EACDF,EAAe,YAAcF,EAAoB,KAAK"}
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3
+ declare const ScrollArea: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ declare const ScrollBar: React.ForwardRefExoticComponent<Omit<ScrollAreaPrimitive.ScrollAreaScrollbarProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
+ export { ScrollArea, ScrollBar };
@@ -0,0 +1,47 @@
1
+ import { j as e } from "../jsx-runtime-DGlMoOmv.js";
2
+ import * as c from "react";
3
+ import * as r from "@radix-ui/react-scroll-area";
4
+ import { c as t } from "../utils-qaFjX9_3.js";
5
+ const d = c.forwardRef(({ className: o, children: l, ...a }, s) => /* @__PURE__ */ e.jsxs(
6
+ r.Root,
7
+ {
8
+ ref: s,
9
+ className: t("relative overflow-hidden", o),
10
+ ...a,
11
+ children: [
12
+ /* @__PURE__ */ e.jsx(r.Viewport, { className: "h-full w-full rounded-[inherit]", children: l }),
13
+ /* @__PURE__ */ e.jsx(i, {}),
14
+ /* @__PURE__ */ e.jsx(r.Corner, {})
15
+ ]
16
+ }
17
+ ));
18
+ d.displayName = r.Root.displayName;
19
+ const i = c.forwardRef(({ className: o, orientation: l = "vertical", ...a }, s) => /* @__PURE__ */ e.jsx(
20
+ r.ScrollAreaScrollbar,
21
+ {
22
+ ref: s,
23
+ orientation: l,
24
+ className: t(
25
+ "flex touch-none select-none transition-colors",
26
+ l === "vertical" && "h-full w-1.5 border-l border-l-transparent p-[1px] hover:w-2",
27
+ l === "horizontal" && "h-1.5 flex-col border-t border-t-transparent p-[1px] hover:h-2",
28
+ o
29
+ ),
30
+ ...a,
31
+ children: /* @__PURE__ */ e.jsx(
32
+ r.ScrollAreaThumb,
33
+ {
34
+ className: t(
35
+ "relative flex-1 rounded-full bg-border/40 hover:bg-border/70 transition-all duration-150",
36
+ "data-[state=dragging]:bg-border/70"
37
+ )
38
+ }
39
+ )
40
+ }
41
+ ));
42
+ i.displayName = r.ScrollAreaScrollbar.displayName;
43
+ export {
44
+ d as ScrollArea,
45
+ i as ScrollBar
46
+ };
47
+ //# sourceMappingURL=scroll-area.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-area.esm.js","sources":["../../src/components/scroll-area.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\nimport { cn } from \"@/lib/utils\"\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-1.5 border-l border-l-transparent p-[1px] hover:w-2\",\n orientation === \"horizontal\" &&\n \"h-1.5 flex-col border-t border-t-transparent p-[1px] hover:h-2\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb \n className={cn(\n \"relative flex-1 rounded-full bg-border/40 hover:bg-border/70 transition-all duration-150\",\n \"data-[state=dragging]:bg-border/70\"\n )} \n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar } "],"names":["ScrollArea","React","className","children","props","ref","jsxs","ScrollAreaPrimitive","cn","jsx","ScrollBar","orientation"],"mappings":";;;;AAIA,MAAMA,IAAaC,EAAM,WAGvB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,KAASC,MACpCC,gBAAAA,EAAAA;AAAAA,EAACC,EAAoB;AAAA,EAApB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG,EAAG,4BAA4BN,CAAS;AAAA,IAClD,GAAGE;AAAA,IAEJ,UAAA;AAAA,MAAAK,gBAAAA,EAAAA,IAACF,EAAoB,UAApB,EAA6B,WAAU,mCACrC,UAAAJ,GACH;AAAA,4BACCO,GAAA,EAAU;AAAA,MACXD,gBAAAA,MAACF,EAAoB,QAApB,CAAA,CAA2B;AAAA,IAAA;AAAA,EAAA;AAC9B,CACD;AACDP,EAAW,cAAcO,EAAoB,KAAK;AAElD,MAAMG,IAAYT,EAAM,WAGtB,CAAC,EAAE,WAAAC,GAAW,aAAAS,IAAc,YAAY,GAAGP,KAASC,MACpDI,gBAAAA,EAAAA;AAAAA,EAACF,EAAoB;AAAA,EAApB;AAAA,IACC,KAAAF;AAAA,IACA,aAAAM;AAAA,IACA,WAAWH;AAAA,MACT;AAAA,MACAG,MAAgB,cACd;AAAA,MACFA,MAAgB,gBACd;AAAA,MACFT;AAAA,IAAA;AAAA,IAED,GAAGE;AAAA,IAEJ,UAAAK,gBAAAA,EAAAA;AAAAA,MAACF,EAAoB;AAAA,MAApB;AAAA,QACC,WAAWC;AAAA,UACT;AAAA,UACA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EACF;AACF,CACD;AACDE,EAAU,cAAcH,EAAoB,oBAAoB;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../jsx-runtime-BYECrxsp.cjs"),d=require("react"),p=require("@radix-ui/react-scroll-area"),s=require("../utils-DSKoFOjv.cjs");function c(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const i=c(d),l=c(p),u=i.forwardRef(({className:e,children:r,...t},o)=>a.jsxRuntimeExports.jsxs(l.Root,{ref:o,className:s.cn("relative overflow-hidden",e),...t,children:[a.jsxRuntimeExports.jsx(l.Viewport,{className:"h-full w-full rounded-[inherit]",children:r}),a.jsxRuntimeExports.jsx(n,{}),a.jsxRuntimeExports.jsx(l.Corner,{})]}));u.displayName=l.Root.displayName;const n=i.forwardRef(({className:e,orientation:r="vertical",...t},o)=>a.jsxRuntimeExports.jsx(l.ScrollAreaScrollbar,{ref:o,orientation:r,className:s.cn("flex touch-none select-none transition-colors",r==="vertical"&&"h-full w-1.5 border-l border-l-transparent p-[1px] hover:w-2",r==="horizontal"&&"h-1.5 flex-col border-t border-t-transparent p-[1px] hover:h-2",e),...t,children:a.jsxRuntimeExports.jsx(l.ScrollAreaThumb,{className:s.cn("relative flex-1 rounded-full bg-border/40 hover:bg-border/70 transition-all duration-150","data-[state=dragging]:bg-border/70")})}));n.displayName=l.ScrollAreaScrollbar.displayName;exports.ScrollArea=u;exports.ScrollBar=n;
2
+ //# sourceMappingURL=scroll-area.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-area.js","sources":["../../src/components/scroll-area.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\nimport { cn } from \"@/lib/utils\"\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-1.5 border-l border-l-transparent p-[1px] hover:w-2\",\n orientation === \"horizontal\" &&\n \"h-1.5 flex-col border-t border-t-transparent p-[1px] hover:h-2\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb \n className={cn(\n \"relative flex-1 rounded-full bg-border/40 hover:bg-border/70 transition-all duration-150\",\n \"data-[state=dragging]:bg-border/70\"\n )} \n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar } "],"names":["ScrollArea","React","className","children","props","ref","jsxs","ScrollAreaPrimitive","cn","jsx","ScrollBar","orientation"],"mappings":"+fAIMA,EAAaC,EAAM,WAGvB,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAASC,IACpCC,EAAAA,kBAAAA,KAACC,EAAoB,KAApB,CACC,IAAAF,EACA,UAAWG,EAAAA,GAAG,2BAA4BN,CAAS,EAClD,GAAGE,EAEJ,SAAA,CAAAK,EAAAA,kBAAAA,IAACF,EAAoB,SAApB,CAA6B,UAAU,kCACrC,SAAAJ,EACH,0BACCO,EAAA,EAAU,EACXD,wBAACF,EAAoB,OAApB,CAAA,CAA2B,CAAA,CAAA,CAC9B,CACD,EACDP,EAAW,YAAcO,EAAoB,KAAK,YAElD,MAAMG,EAAYT,EAAM,WAGtB,CAAC,CAAE,UAAAC,EAAW,YAAAS,EAAc,WAAY,GAAGP,GAASC,IACpDI,EAAAA,kBAAAA,IAACF,EAAoB,oBAApB,CACC,IAAAF,EACA,YAAAM,EACA,UAAWH,EAAAA,GACT,gDACAG,IAAgB,YACd,+DACFA,IAAgB,cACd,iEACFT,CAAA,EAED,GAAGE,EAEJ,SAAAK,EAAAA,kBAAAA,IAACF,EAAoB,gBAApB,CACC,UAAWC,EAAAA,GACT,2FACA,oCAAA,CACF,CAAA,CACF,CACF,CACD,EACDE,EAAU,YAAcH,EAAoB,oBAAoB"}
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ import * as SelectPrimitive from "@radix-ui/react-select";
3
+ declare const Select: React.FC<SelectPrimitive.SelectProps>;
4
+ declare const SelectGroup: React.ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & React.RefAttributes<HTMLDivElement>>;
5
+ declare const SelectValue: React.ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & React.RefAttributes<HTMLSpanElement>>;
6
+ declare const SelectTrigger: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
7
+ interface SelectContentProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> {
8
+ searchable?: boolean;
9
+ onSearch?: (value: string) => void;
10
+ searchPlaceholder?: string;
11
+ }
12
+ declare const SelectContent: React.ForwardRefExoticComponent<SelectContentProps & React.RefAttributes<HTMLDivElement>>;
13
+ declare const SelectLabel: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectLabelProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
+ declare const SelectItem: React.ForwardRefExoticComponent<Omit<SelectPrimitive.SelectItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
15
+ interface SearchableSelectProps extends React.ComponentPropsWithoutRef<typeof Select> {
16
+ children: React.ReactNode;
17
+ searchPlaceholder?: string;
18
+ }
19
+ declare const SearchableSelect: React.ForwardRefExoticComponent<SearchableSelectProps & React.RefAttributes<never>>;
20
+ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue, SearchableSelect, };
@@ -0,0 +1,131 @@
1
+ import { j as e } from "../jsx-runtime-DGlMoOmv.js";
2
+ import * as a from "react";
3
+ import * as t from "@radix-ui/react-select";
4
+ import { ChevronDown as w, Search as j, Check as N } from "lucide-react";
5
+ import { c as i } from "../utils-qaFjX9_3.js";
6
+ import { Input as S } from "./input.esm.js";
7
+ const v = t.Root, P = t.Group, D = t.Value, C = a.forwardRef(({ className: s, children: o, ...r }, n) => /* @__PURE__ */ e.jsxs(
8
+ t.Trigger,
9
+ {
10
+ ref: n,
11
+ className: i(
12
+ "flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
13
+ s
14
+ ),
15
+ ...r,
16
+ children: [
17
+ o,
18
+ /* @__PURE__ */ e.jsx(t.Icon, { asChild: !0, children: /* @__PURE__ */ e.jsx(w, { className: "h-4 w-4 opacity-50" }) })
19
+ ]
20
+ }
21
+ ));
22
+ C.displayName = t.Trigger.displayName;
23
+ const h = a.forwardRef(({ className: s, children: o, position: r = "popper", searchable: n, onSearch: c, searchPlaceholder: m = "Search...", ...p }, d) => {
24
+ const [x, g] = a.useState(""), f = a.useRef(null);
25
+ a.useEffect(() => {
26
+ n && f.current && setTimeout(() => {
27
+ var l;
28
+ (l = f.current) == null || l.focus();
29
+ }, 50);
30
+ }, [n]);
31
+ const b = (l) => {
32
+ g(l.target.value), c && c(l.target.value);
33
+ }, u = (l) => {
34
+ l.stopPropagation();
35
+ }, y = (l) => {
36
+ l.stopPropagation();
37
+ };
38
+ return /* @__PURE__ */ e.jsx(t.Portal, { children: /* @__PURE__ */ e.jsxs(
39
+ t.Content,
40
+ {
41
+ ref: d,
42
+ className: i(
43
+ "relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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",
44
+ r === "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",
45
+ s
46
+ ),
47
+ position: r,
48
+ ...p,
49
+ children: [
50
+ n && /* @__PURE__ */ e.jsx(
51
+ "div",
52
+ {
53
+ className: "px-2 py-1.5 sticky top-0 bg-popover z-10 border-b",
54
+ onClick: u,
55
+ children: /* @__PURE__ */ e.jsxs("div", { className: "relative", children: [
56
+ /* @__PURE__ */ e.jsx(j, { className: "absolute left-2 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground" }),
57
+ /* @__PURE__ */ e.jsx(
58
+ S,
59
+ {
60
+ ref: f,
61
+ value: x,
62
+ onChange: b,
63
+ onClick: u,
64
+ onKeyDown: y,
65
+ placeholder: m,
66
+ className: "h-7 text-xs pl-7"
67
+ }
68
+ )
69
+ ] })
70
+ }
71
+ ),
72
+ /* @__PURE__ */ e.jsx(
73
+ t.Viewport,
74
+ {
75
+ className: i(
76
+ "p-1",
77
+ r === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
78
+ ),
79
+ children: o
80
+ }
81
+ )
82
+ ]
83
+ }
84
+ ) });
85
+ });
86
+ h.displayName = t.Content.displayName;
87
+ const R = a.forwardRef(({ className: s, ...o }, r) => /* @__PURE__ */ e.jsx(
88
+ t.Label,
89
+ {
90
+ ref: r,
91
+ className: i("py-1.5 pl-8 pr-2 text-sm font-semibold", s),
92
+ ...o
93
+ }
94
+ ));
95
+ R.displayName = t.Label.displayName;
96
+ const I = a.forwardRef(({ className: s, children: o, ...r }, n) => /* @__PURE__ */ e.jsxs(
97
+ t.Item,
98
+ {
99
+ ref: n,
100
+ className: i(
101
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
102
+ s
103
+ ),
104
+ ...r,
105
+ children: [
106
+ /* @__PURE__ */ e.jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ e.jsx(t.ItemIndicator, { children: /* @__PURE__ */ e.jsx(N, { className: "h-4 w-4" }) }) }),
107
+ /* @__PURE__ */ e.jsx(t.ItemText, { children: o })
108
+ ]
109
+ }
110
+ ));
111
+ I.displayName = t.Item.displayName;
112
+ const V = a.forwardRef(({ children: s, searchPlaceholder: o, ...r }, n) => {
113
+ const [c, m] = a.useState(""), p = a.Children.map(s, (d) => a.isValidElement(d) && d.type === h ? a.cloneElement(d, {
114
+ searchable: !0,
115
+ onSearch: m,
116
+ searchPlaceholder: o
117
+ }) : d);
118
+ return /* @__PURE__ */ e.jsx(v, { ...r, children: p });
119
+ });
120
+ V.displayName = "SearchableSelect";
121
+ export {
122
+ V as SearchableSelect,
123
+ v as Select,
124
+ h as SelectContent,
125
+ P as SelectGroup,
126
+ I as SelectItem,
127
+ R as SelectLabel,
128
+ C as SelectTrigger,
129
+ D as SelectValue
130
+ };
131
+ //# sourceMappingURL=select.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.esm.js","sources":["../../src/components/select.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, Search } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { Input } from \"./input\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\ninterface SelectContentProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> {\n searchable?: boolean;\n onSearch?: (value: string) => void;\n searchPlaceholder?: string;\n}\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(({ className, children, position = \"popper\", searchable, onSearch, searchPlaceholder = \"Search...\", ...props }, ref) => {\n const [searchValue, setSearchValue] = React.useState(\"\")\n const searchInputRef = React.useRef<HTMLInputElement>(null)\n \n // Focus search input when content opens\n React.useEffect(() => {\n if (searchable && searchInputRef.current) {\n setTimeout(() => {\n searchInputRef.current?.focus()\n }, 50)\n }\n }, [searchable])\n \n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchValue(e.target.value)\n if (onSearch) {\n onSearch(e.target.value)\n }\n }\n \n const handleSearchClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n }\n \n const handleSearchKeyDown = (e: React.KeyboardEvent) => {\n // Prevent select keyboard navigation from interfering with search input\n e.stopPropagation()\n }\n \n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 position === \"popper\" &&\n \"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 className\n )}\n position={position}\n {...props}\n >\n {searchable && (\n <div \n className=\"px-2 py-1.5 sticky top-0 bg-popover z-10 border-b\"\n onClick={handleSearchClick}\n >\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground\" />\n <Input\n ref={searchInputRef}\n value={searchValue}\n onChange={handleSearchChange}\n onClick={handleSearchClick}\n onKeyDown={handleSearchKeyDown}\n placeholder={searchPlaceholder}\n className=\"h-7 text-xs pl-7\"\n />\n </div>\n </div>\n )}\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n})\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\n// Create a searchable select component that filters items based on search input\ninterface SearchableSelectProps extends React.ComponentPropsWithoutRef<typeof Select> {\n children: React.ReactNode;\n searchPlaceholder?: string;\n}\n\nconst SearchableSelect = React.forwardRef<\n React.ElementRef<typeof Select>,\n SearchableSelectProps\n>(({ children, searchPlaceholder, ...props }, ref) => {\n const [searchValue, setSearchValue] = React.useState(\"\")\n \n // Clone children and filter based on search value\n const filteredChildren = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === SelectContent) {\n return React.cloneElement(child as React.ReactElement<SelectContentProps>, {\n searchable: true,\n onSearch: setSearchValue,\n searchPlaceholder,\n })\n }\n return child\n })\n \n return (\n <Select {...props}>\n {filteredChildren}\n </Select>\n )\n})\nSearchableSelect.displayName = \"SearchableSelect\"\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue,\n SearchableSelect,\n} "],"names":["Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","React","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectContent","position","searchable","onSearch","searchPlaceholder","searchValue","setSearchValue","searchInputRef","_a","handleSearchChange","e","handleSearchClick","handleSearchKeyDown","Search","Input","SelectLabel","SelectItem","Check","SearchableSelect","filteredChildren","child"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../jsx-runtime-BYECrxsp.cjs"),C=require("react"),I=require("@radix-ui/react-select"),x=require("lucide-react"),i=require("../utils-DSKoFOjv.cjs"),V=require("./input.js");function g(a){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const t in a)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(a,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>a[t]})}}return r.default=a,Object.freeze(r)}const o=g(C),s=g(I),j=s.Root,k=s.Group,P=s.Value,b=o.forwardRef(({className:a,children:r,...t},n)=>e.jsxRuntimeExports.jsxs(s.Trigger,{ref:n,className:i.cn("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",a),...t,children:[r,e.jsxRuntimeExports.jsx(s.Icon,{asChild:!0,children:e.jsxRuntimeExports.jsx(x.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));b.displayName=s.Trigger.displayName;const f=o.forwardRef(({className:a,children:r,position:t="popper",searchable:n,onSearch:d,searchPlaceholder:u="Search...",...p},c)=>{const[w,N]=o.useState(""),m=o.useRef(null);o.useEffect(()=>{n&&m.current&&setTimeout(()=>{var l;(l=m.current)==null||l.focus()},50)},[n]);const v=l=>{N(l.target.value),d&&d(l.target.value)},h=l=>{l.stopPropagation()},E=l=>{l.stopPropagation()};return e.jsxRuntimeExports.jsx(s.Portal,{children:e.jsxRuntimeExports.jsxs(s.Content,{ref:c,className:i.cn("relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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",t==="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",a),position:t,...p,children:[n&&e.jsxRuntimeExports.jsx("div",{className:"px-2 py-1.5 sticky top-0 bg-popover z-10 border-b",onClick:h,children:e.jsxRuntimeExports.jsxs("div",{className:"relative",children:[e.jsxRuntimeExports.jsx(x.Search,{className:"absolute left-2 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),e.jsxRuntimeExports.jsx(V.Input,{ref:m,value:w,onChange:v,onClick:h,onKeyDown:E,placeholder:u,className:"h-7 text-xs pl-7"})]})}),e.jsxRuntimeExports.jsx(s.Viewport,{className:i.cn("p-1",t==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:r})]})})});f.displayName=s.Content.displayName;const S=o.forwardRef(({className:a,...r},t)=>e.jsxRuntimeExports.jsx(s.Label,{ref:t,className:i.cn("py-1.5 pl-8 pr-2 text-sm font-semibold",a),...r}));S.displayName=s.Label.displayName;const y=o.forwardRef(({className:a,children:r,...t},n)=>e.jsxRuntimeExports.jsxs(s.Item,{ref:n,className:i.cn("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...t,children:[e.jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsxRuntimeExports.jsx(s.ItemIndicator,{children:e.jsxRuntimeExports.jsx(x.Check,{className:"h-4 w-4"})})}),e.jsxRuntimeExports.jsx(s.ItemText,{children:r})]}));y.displayName=s.Item.displayName;const R=o.forwardRef(({children:a,searchPlaceholder:r,...t},n)=>{const[d,u]=o.useState(""),p=o.Children.map(a,c=>o.isValidElement(c)&&c.type===f?o.cloneElement(c,{searchable:!0,onSearch:u,searchPlaceholder:r}):c);return e.jsxRuntimeExports.jsx(j,{...t,children:p})});R.displayName="SearchableSelect";exports.SearchableSelect=R;exports.Select=j;exports.SelectContent=f;exports.SelectGroup=k;exports.SelectItem=y;exports.SelectLabel=S;exports.SelectTrigger=b;exports.SelectValue=P;
2
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","sources":["../../src/components/select.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, Search } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport { Input } from \"./input\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\ninterface SelectContentProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> {\n searchable?: boolean;\n onSearch?: (value: string) => void;\n searchPlaceholder?: string;\n}\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(({ className, children, position = \"popper\", searchable, onSearch, searchPlaceholder = \"Search...\", ...props }, ref) => {\n const [searchValue, setSearchValue] = React.useState(\"\")\n const searchInputRef = React.useRef<HTMLInputElement>(null)\n \n // Focus search input when content opens\n React.useEffect(() => {\n if (searchable && searchInputRef.current) {\n setTimeout(() => {\n searchInputRef.current?.focus()\n }, 50)\n }\n }, [searchable])\n \n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchValue(e.target.value)\n if (onSearch) {\n onSearch(e.target.value)\n }\n }\n \n const handleSearchClick = (e: React.MouseEvent) => {\n e.stopPropagation()\n }\n \n const handleSearchKeyDown = (e: React.KeyboardEvent) => {\n // Prevent select keyboard navigation from interfering with search input\n e.stopPropagation()\n }\n \n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 position === \"popper\" &&\n \"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 className\n )}\n position={position}\n {...props}\n >\n {searchable && (\n <div \n className=\"px-2 py-1.5 sticky top-0 bg-popover z-10 border-b\"\n onClick={handleSearchClick}\n >\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-1/2 transform -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground\" />\n <Input\n ref={searchInputRef}\n value={searchValue}\n onChange={handleSearchChange}\n onClick={handleSearchClick}\n onKeyDown={handleSearchKeyDown}\n placeholder={searchPlaceholder}\n className=\"h-7 text-xs pl-7\"\n />\n </div>\n </div>\n )}\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n})\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\n// Create a searchable select component that filters items based on search input\ninterface SearchableSelectProps extends React.ComponentPropsWithoutRef<typeof Select> {\n children: React.ReactNode;\n searchPlaceholder?: string;\n}\n\nconst SearchableSelect = React.forwardRef<\n React.ElementRef<typeof Select>,\n SearchableSelectProps\n>(({ children, searchPlaceholder, ...props }, ref) => {\n const [searchValue, setSearchValue] = React.useState(\"\")\n \n // Clone children and filter based on search value\n const filteredChildren = React.Children.map(children, (child) => {\n if (React.isValidElement(child) && child.type === SelectContent) {\n return React.cloneElement(child as React.ReactElement<SelectContentProps>, {\n searchable: true,\n onSearch: setSearchValue,\n searchPlaceholder,\n })\n }\n return child\n })\n \n return (\n <Select {...props}>\n {filteredChildren}\n </Select>\n )\n})\nSearchableSelect.displayName = \"SearchableSelect\"\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue,\n SearchableSelect,\n} "],"names":["Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","React","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectContent","position","searchable","onSearch","searchPlaceholder","searchValue","setSearchValue","searchInputRef","_a","handleSearchChange","e","handleSearchClick","handleSearchKeyDown","Search","Input","SelectLabel","SelectItem","Check","SearchableSelect","filteredChildren","child"],"mappings":"4iBAQMA,EAASC,EAAgB,KAEzBC,EAAcD,EAAgB,MAE9BE,EAAcF,EAAgB,MAE9BG,EAAgBC,EAAM,WAG1B,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAASC,IACpCC,EAAAA,kBAAAA,KAACT,EAAgB,QAAhB,CACC,IAAAQ,EACA,UAAWE,EAAAA,GACT,4RACAL,CAAA,EAED,GAAGE,EAEH,SAAA,CAAAD,EACDK,EAAAA,kBAAAA,IAACX,EAAgB,KAAhB,CAAqB,QAAO,GAC3B,SAAAW,EAAAA,kBAAAA,IAACC,EAAAA,YAAA,CAAY,UAAU,oBAAA,CAAqB,CAAA,CAC9C,CAAA,CAAA,CACF,CACD,EACDT,EAAc,YAAcH,EAAgB,QAAQ,YAQpD,MAAMa,EAAgBT,EAAM,WAG1B,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,SAAAQ,EAAW,SAAU,WAAAC,EAAY,SAAAC,EAAU,kBAAAC,EAAoB,YAAa,GAAGV,CAAA,EAASC,IAAQ,CACxH,KAAM,CAACU,EAAaC,CAAc,EAAIf,EAAM,SAAS,EAAE,EACjDgB,EAAiBhB,EAAM,OAAyB,IAAI,EAG1DA,EAAM,UAAU,IAAM,CAChBW,GAAcK,EAAe,SAC/B,WAAW,IAAM,QACfC,EAAAD,EAAe,UAAf,MAAAC,EAAwB,OAC1B,EAAG,EAAE,CAET,EAAG,CAACN,CAAU,CAAC,EAEf,MAAMO,EAAsBC,GAA2C,CACrEJ,EAAeI,EAAE,OAAO,KAAK,EACzBP,GACFA,EAASO,EAAE,OAAO,KAAK,CAE3B,EAEMC,EAAqBD,GAAwB,CACjDA,EAAE,gBAAA,CACJ,EAEME,EAAuBF,GAA2B,CAEtDA,EAAE,gBAAA,CACJ,EAEA,OACEZ,EAAAA,kBAAAA,IAACX,EAAgB,OAAhB,CACC,SAAAS,EAAAA,kBAAAA,KAACT,EAAgB,QAAhB,CACC,IAAAQ,EACA,UAAWE,EAAAA,GACT,6bACAI,IAAa,UACX,kIACFT,CAAA,EAEF,SAAAS,EACC,GAAGP,EAEH,SAAA,CAAAQ,GACCJ,EAAAA,kBAAAA,IAAC,MAAA,CACC,UAAU,oDACV,QAASa,EAET,SAAAf,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,WACb,SAAA,CAAAE,EAAAA,kBAAAA,IAACe,EAAAA,OAAA,CAAO,UAAU,sFAAA,CAAuF,EACzGf,EAAAA,kBAAAA,IAACgB,EAAAA,MAAA,CACC,IAAKP,EACL,MAAOF,EACP,SAAUI,EACV,QAASE,EACT,UAAWC,EACX,YAAaR,EACb,UAAU,kBAAA,CAAA,CACZ,CAAA,CACF,CAAA,CAAA,EAGJN,EAAAA,kBAAAA,IAACX,EAAgB,SAAhB,CACC,UAAWU,EAAAA,GACT,MACAI,IAAa,UACX,yFAAA,EAGH,SAAAR,CAAA,CAAA,CACH,CAAA,CAAA,EAEJ,CAEJ,CAAC,EACDO,EAAc,YAAcb,EAAgB,QAAQ,YAEpD,MAAM4B,EAAcxB,EAAM,WAGxB,CAAC,CAAE,UAAAC,EAAW,GAAGE,CAAA,EAASC,IAC1BG,EAAAA,kBAAAA,IAACX,EAAgB,MAAhB,CACC,IAAAQ,EACA,UAAWE,EAAAA,GAAG,yCAA0CL,CAAS,EAChE,GAAGE,CAAA,CACN,CACD,EACDqB,EAAY,YAAc5B,EAAgB,MAAM,YAEhD,MAAM6B,EAAazB,EAAM,WAGvB,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAASC,IACpCC,EAAAA,kBAAAA,KAACT,EAAgB,KAAhB,CACC,IAAAQ,EACA,UAAWE,EAAAA,GACT,4NACAL,CAAA,EAED,GAAGE,EAEJ,SAAA,CAAAI,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,+DACd,SAAAA,EAAAA,kBAAAA,IAACX,EAAgB,cAAhB,CACC,SAAAW,EAAAA,kBAAAA,IAACmB,QAAA,CAAM,UAAU,SAAA,CAAU,CAAA,CAC7B,EACF,EACAnB,EAAAA,kBAAAA,IAACX,EAAgB,SAAhB,CAA0B,SAAAM,CAAA,CAAS,CAAA,CAAA,CACtC,CACD,EACDuB,EAAW,YAAc7B,EAAgB,KAAK,YAQ9C,MAAM+B,EAAmB3B,EAAM,WAG7B,CAAC,CAAE,SAAAE,EAAU,kBAAAW,EAAmB,GAAGV,CAAA,EAASC,IAAQ,CACpD,KAAM,CAACU,EAAaC,CAAc,EAAIf,EAAM,SAAS,EAAE,EAGjD4B,EAAmB5B,EAAM,SAAS,IAAIE,EAAW2B,GACjD7B,EAAM,eAAe6B,CAAK,GAAKA,EAAM,OAASpB,EACzCT,EAAM,aAAa6B,EAAiD,CACzE,WAAY,GACZ,SAAUd,EACV,kBAAAF,CAAA,CACD,EAEIgB,CACR,EAED,OACEtB,EAAAA,kBAAAA,IAACZ,EAAA,CAAQ,GAAGQ,EACT,SAAAyB,EACH,CAEJ,CAAC,EACDD,EAAiB,YAAc"}
@@ -0,0 +1,11 @@
1
+ interface SelectionBarProps {
2
+ selectedCount: number;
3
+ onEnable?: () => void;
4
+ onDisable?: () => void;
5
+ onDelete?: () => void;
6
+ onDownload?: () => void;
7
+ onCancel: () => void;
8
+ show: boolean;
9
+ }
10
+ export declare function SelectionBar({ selectedCount, onEnable, onDisable, onDelete, onDownload, onCancel, show }: SelectionBarProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,54 @@
1
+ import { j as s } from "../jsx-runtime-DGlMoOmv.js";
2
+ import { AnimatePresence as n, motion as o } from "framer-motion";
3
+ import { Check as x, X as d, Download as h, Trash as j } from "lucide-react";
4
+ import { Button as e } from "./button.esm.js";
5
+ function v({
6
+ selectedCount: m,
7
+ onEnable: i,
8
+ onDisable: r,
9
+ onDelete: a,
10
+ onDownload: t,
11
+ onCancel: c,
12
+ show: l
13
+ }) {
14
+ return /* @__PURE__ */ s.jsx(n, { children: l && /* @__PURE__ */ s.jsx(
15
+ o.div,
16
+ {
17
+ initial: { y: 100, opacity: 0 },
18
+ animate: { y: 0, opacity: 1 },
19
+ exit: { y: 100, opacity: 0 },
20
+ className: "fixed bottom-4 left-0 right-0 mx-auto max-w-fit bg-background rounded-lg border shadow-lg z-50",
21
+ children: /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-6 px-4 py-2", children: [
22
+ /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-2 text-sm font-medium", children: [
23
+ /* @__PURE__ */ s.jsx("span", { className: "bg-primary text-primary-foreground w-8 h-8 rounded-lg flex items-center justify-center", children: m }),
24
+ "Selected"
25
+ ] }),
26
+ /* @__PURE__ */ s.jsx("div", { className: "h-4 w-px bg-border" }),
27
+ /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-2", children: [
28
+ i && /* @__PURE__ */ s.jsxs(e, { variant: "ghost", size: "sm", onClick: i, children: [
29
+ /* @__PURE__ */ s.jsx(x, { className: "mr-2 h-4 w-4" }),
30
+ "Enable"
31
+ ] }),
32
+ r && /* @__PURE__ */ s.jsxs(e, { variant: "ghost", size: "sm", onClick: r, children: [
33
+ /* @__PURE__ */ s.jsx(d, { className: "mr-2 h-4 w-4" }),
34
+ "Disable"
35
+ ] }),
36
+ t && /* @__PURE__ */ s.jsxs(e, { variant: "ghost", size: "sm", onClick: t, children: [
37
+ /* @__PURE__ */ s.jsx(h, { className: "mr-2 h-4 w-4" }),
38
+ "Download"
39
+ ] }),
40
+ a && /* @__PURE__ */ s.jsxs(e, { variant: "ghost", size: "sm", className: "text-destructive", onClick: a, children: [
41
+ /* @__PURE__ */ s.jsx(j, { className: "mr-2 h-4 w-4" }),
42
+ "Delete"
43
+ ] })
44
+ ] }),
45
+ /* @__PURE__ */ s.jsx("div", { className: "h-4 w-px bg-border" }),
46
+ /* @__PURE__ */ s.jsx(e, { variant: "ghost", size: "sm", onClick: c, children: "Cancel" })
47
+ ] })
48
+ }
49
+ ) });
50
+ }
51
+ export {
52
+ v as SelectionBar
53
+ };
54
+ //# sourceMappingURL=selection-bar.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-bar.esm.js","sources":["../../src/components/selection-bar.tsx"],"sourcesContent":["import { motion, AnimatePresence } from \"framer-motion\"\nimport { Check, X, Trash, Download } from \"lucide-react\"\nimport { Button } from \"./button\"\n\ninterface SelectionBarProps {\n selectedCount: number\n onEnable?: () => void\n onDisable?: () => void\n onDelete?: () => void\n onDownload?: () => void\n onCancel: () => void\n show: boolean\n}\n\nexport function SelectionBar({ \n selectedCount, \n onEnable,\n onDisable,\n onDelete,\n onDownload,\n onCancel,\n show \n}: SelectionBarProps) {\n return (\n <AnimatePresence>\n {show && (\n <motion.div\n initial={{ y: 100, opacity: 0 }}\n animate={{ y: 0, opacity: 1 }}\n exit={{ y: 100, opacity: 0 }}\n className=\"fixed bottom-4 left-0 right-0 mx-auto max-w-fit bg-background rounded-lg border shadow-lg z-50\"\n >\n <div className=\"flex items-center gap-6 px-4 py-2\">\n <div className=\"flex items-center gap-2 text-sm font-medium\">\n <span className=\"bg-primary text-primary-foreground w-8 h-8 rounded-lg flex items-center justify-center\">\n {selectedCount}\n </span>\n Selected\n </div>\n \n <div className=\"h-4 w-px bg-border\" />\n \n <div className=\"flex items-center gap-2\">\n {onEnable && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onEnable}>\n <Check className=\"mr-2 h-4 w-4\" />\n Enable\n </Button>\n )}\n {onDisable && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onDisable}>\n <X className=\"mr-2 h-4 w-4\" />\n Disable\n </Button>\n )}\n {onDownload && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onDownload}>\n <Download className=\"mr-2 h-4 w-4\" />\n Download\n </Button>\n )}\n {onDelete && (\n <Button variant=\"ghost\" size=\"sm\" className=\"text-destructive\" onClick={onDelete}>\n <Trash className=\"mr-2 h-4 w-4\" />\n Delete\n </Button>\n )}\n </div>\n \n <div className=\"h-4 w-px bg-border\" />\n \n <Button variant=\"ghost\" size=\"sm\" onClick={onCancel}>\n Cancel\n </Button>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n )\n} "],"names":["SelectionBar","selectedCount","onEnable","onDisable","onDelete","onDownload","onCancel","show","jsx","AnimatePresence","motion","jsxs","Button","Check","X","Download","Trash"],"mappings":";;;;AAcO,SAASA,EAAa;AAAA,EAC3B,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AACF,GAAsB;AACpB,SACEC,gBAAAA,EAAAA,IAACC,KACE,UAAAF,KACCC,gBAAAA,EAAAA;AAAAA,IAACE,EAAO;AAAA,IAAP;AAAA,MACC,SAAS,EAAE,GAAG,KAAK,SAAS,EAAA;AAAA,MAC5B,SAAS,EAAE,GAAG,GAAG,SAAS,EAAA;AAAA,MAC1B,MAAM,EAAE,GAAG,KAAK,SAAS,EAAA;AAAA,MACzB,WAAU;AAAA,MAEV,UAAAC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,QAAAA,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,UAAAH,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,0FACb,UAAAP,GACH;AAAA,UAAO;AAAA,QAAA,GAET;AAAA,QAEAO,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,qBAAA,CAAqB;AAAA,QAEpCG,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,2BACZ,UAAA;AAAA,UAAAT,4BACEU,GAAA,EAAO,SAAQ,SAAQ,MAAK,MAAK,SAASV,GACzC,UAAA;AAAA,YAAAM,gBAAAA,EAAAA,IAACK,GAAA,EAAM,WAAU,eAAA,CAAe;AAAA,YAAE;AAAA,UAAA,GAEpC;AAAA,UAEDV,4BACES,GAAA,EAAO,SAAQ,SAAQ,MAAK,MAAK,SAAST,GACzC,UAAA;AAAA,YAAAK,gBAAAA,EAAAA,IAACM,GAAA,EAAE,WAAU,eAAA,CAAe;AAAA,YAAE;AAAA,UAAA,GAEhC;AAAA,UAEDT,4BACEO,GAAA,EAAO,SAAQ,SAAQ,MAAK,MAAK,SAASP,GACzC,UAAA;AAAA,YAAAG,gBAAAA,EAAAA,IAACO,GAAA,EAAS,WAAU,eAAA,CAAe;AAAA,YAAE;AAAA,UAAA,GAEvC;AAAA,UAEDX,KACCO,gBAAAA,EAAAA,KAACC,GAAA,EAAO,SAAQ,SAAQ,MAAK,MAAK,WAAU,oBAAmB,SAASR,GACtE,UAAA;AAAA,YAAAI,gBAAAA,EAAAA,IAACQ,GAAA,EAAM,WAAU,eAAA,CAAe;AAAA,YAAE;AAAA,UAAA,EAAA,CAEpC;AAAA,QAAA,GAEJ;AAAA,QAEAR,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,qBAAA,CAAqB;AAAA,QAEpCA,gBAAAA,EAAAA,IAACI,KAAO,SAAQ,SAAQ,MAAK,MAAK,SAASN,GAAU,UAAA,SAAA,CAErD;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA,GAGN;AAEJ;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../jsx-runtime-BYECrxsp.cjs"),o=require("framer-motion"),t=require("lucide-react"),e=require("./button.js");function l({selectedCount:a,onEnable:i,onDisable:r,onDelete:n,onDownload:x,onCancel:m,show:c}){return s.jsxRuntimeExports.jsx(o.AnimatePresence,{children:c&&s.jsxRuntimeExports.jsx(o.motion.div,{initial:{y:100,opacity:0},animate:{y:0,opacity:1},exit:{y:100,opacity:0},className:"fixed bottom-4 left-0 right-0 mx-auto max-w-fit bg-background rounded-lg border shadow-lg z-50",children:s.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-6 px-4 py-2",children:[s.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium",children:[s.jsxRuntimeExports.jsx("span",{className:"bg-primary text-primary-foreground w-8 h-8 rounded-lg flex items-center justify-center",children:a}),"Selected"]}),s.jsxRuntimeExports.jsx("div",{className:"h-4 w-px bg-border"}),s.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-2",children:[i&&s.jsxRuntimeExports.jsxs(e.Button,{variant:"ghost",size:"sm",onClick:i,children:[s.jsxRuntimeExports.jsx(t.Check,{className:"mr-2 h-4 w-4"}),"Enable"]}),r&&s.jsxRuntimeExports.jsxs(e.Button,{variant:"ghost",size:"sm",onClick:r,children:[s.jsxRuntimeExports.jsx(t.X,{className:"mr-2 h-4 w-4"}),"Disable"]}),x&&s.jsxRuntimeExports.jsxs(e.Button,{variant:"ghost",size:"sm",onClick:x,children:[s.jsxRuntimeExports.jsx(t.Download,{className:"mr-2 h-4 w-4"}),"Download"]}),n&&s.jsxRuntimeExports.jsxs(e.Button,{variant:"ghost",size:"sm",className:"text-destructive",onClick:n,children:[s.jsxRuntimeExports.jsx(t.Trash,{className:"mr-2 h-4 w-4"}),"Delete"]})]}),s.jsxRuntimeExports.jsx("div",{className:"h-4 w-px bg-border"}),s.jsxRuntimeExports.jsx(e.Button,{variant:"ghost",size:"sm",onClick:m,children:"Cancel"})]})})})}exports.SelectionBar=l;
2
+ //# sourceMappingURL=selection-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-bar.js","sources":["../../src/components/selection-bar.tsx"],"sourcesContent":["import { motion, AnimatePresence } from \"framer-motion\"\nimport { Check, X, Trash, Download } from \"lucide-react\"\nimport { Button } from \"./button\"\n\ninterface SelectionBarProps {\n selectedCount: number\n onEnable?: () => void\n onDisable?: () => void\n onDelete?: () => void\n onDownload?: () => void\n onCancel: () => void\n show: boolean\n}\n\nexport function SelectionBar({ \n selectedCount, \n onEnable,\n onDisable,\n onDelete,\n onDownload,\n onCancel,\n show \n}: SelectionBarProps) {\n return (\n <AnimatePresence>\n {show && (\n <motion.div\n initial={{ y: 100, opacity: 0 }}\n animate={{ y: 0, opacity: 1 }}\n exit={{ y: 100, opacity: 0 }}\n className=\"fixed bottom-4 left-0 right-0 mx-auto max-w-fit bg-background rounded-lg border shadow-lg z-50\"\n >\n <div className=\"flex items-center gap-6 px-4 py-2\">\n <div className=\"flex items-center gap-2 text-sm font-medium\">\n <span className=\"bg-primary text-primary-foreground w-8 h-8 rounded-lg flex items-center justify-center\">\n {selectedCount}\n </span>\n Selected\n </div>\n \n <div className=\"h-4 w-px bg-border\" />\n \n <div className=\"flex items-center gap-2\">\n {onEnable && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onEnable}>\n <Check className=\"mr-2 h-4 w-4\" />\n Enable\n </Button>\n )}\n {onDisable && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onDisable}>\n <X className=\"mr-2 h-4 w-4\" />\n Disable\n </Button>\n )}\n {onDownload && (\n <Button variant=\"ghost\" size=\"sm\" onClick={onDownload}>\n <Download className=\"mr-2 h-4 w-4\" />\n Download\n </Button>\n )}\n {onDelete && (\n <Button variant=\"ghost\" size=\"sm\" className=\"text-destructive\" onClick={onDelete}>\n <Trash className=\"mr-2 h-4 w-4\" />\n Delete\n </Button>\n )}\n </div>\n \n <div className=\"h-4 w-px bg-border\" />\n \n <Button variant=\"ghost\" size=\"sm\" onClick={onCancel}>\n Cancel\n </Button>\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n )\n} "],"names":["SelectionBar","selectedCount","onEnable","onDisable","onDelete","onDownload","onCancel","show","jsx","AnimatePresence","motion","jsxs","Button","Check","X","Download","Trash"],"mappings":"6MAcO,SAASA,EAAa,CAC3B,cAAAC,EACA,SAAAC,EACA,UAAAC,EACA,SAAAC,EACA,WAAAC,EACA,SAAAC,EACA,KAAAC,CACF,EAAsB,CACpB,OACEC,EAAAA,kBAAAA,IAACC,EAAAA,iBACE,SAAAF,GACCC,EAAAA,kBAAAA,IAACE,EAAAA,OAAO,IAAP,CACC,QAAS,CAAE,EAAG,IAAK,QAAS,CAAA,EAC5B,QAAS,CAAE,EAAG,EAAG,QAAS,CAAA,EAC1B,KAAM,CAAE,EAAG,IAAK,QAAS,CAAA,EACzB,UAAU,iGAEV,SAAAC,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAA,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,8CACb,SAAA,CAAAH,EAAAA,kBAAAA,IAAC,OAAA,CAAK,UAAU,yFACb,SAAAP,EACH,EAAO,UAAA,EAET,EAEAO,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,oBAAA,CAAqB,EAEpCG,EAAAA,kBAAAA,KAAC,MAAA,CAAI,UAAU,0BACZ,SAAA,CAAAT,4BACEU,SAAA,CAAO,QAAQ,QAAQ,KAAK,KAAK,QAASV,EACzC,SAAA,CAAAM,EAAAA,kBAAAA,IAACK,EAAAA,MAAA,CAAM,UAAU,cAAA,CAAe,EAAE,QAAA,EAEpC,EAEDV,4BACES,SAAA,CAAO,QAAQ,QAAQ,KAAK,KAAK,QAAST,EACzC,SAAA,CAAAK,EAAAA,kBAAAA,IAACM,EAAAA,EAAA,CAAE,UAAU,cAAA,CAAe,EAAE,SAAA,EAEhC,EAEDT,4BACEO,SAAA,CAAO,QAAQ,QAAQ,KAAK,KAAK,QAASP,EACzC,SAAA,CAAAG,EAAAA,kBAAAA,IAACO,EAAAA,SAAA,CAAS,UAAU,cAAA,CAAe,EAAE,UAAA,EAEvC,EAEDX,GACCO,EAAAA,kBAAAA,KAACC,EAAAA,OAAA,CAAO,QAAQ,QAAQ,KAAK,KAAK,UAAU,mBAAmB,QAASR,EACtE,SAAA,CAAAI,EAAAA,kBAAAA,IAACQ,EAAAA,MAAA,CAAM,UAAU,cAAA,CAAe,EAAE,QAAA,CAAA,CAEpC,CAAA,EAEJ,EAEAR,EAAAA,kBAAAA,IAAC,MAAA,CAAI,UAAU,oBAAA,CAAqB,EAEpCA,EAAAA,kBAAAA,IAACI,EAAAA,QAAO,QAAQ,QAAQ,KAAK,KAAK,QAASN,EAAU,SAAA,QAAA,CAErD,CAAA,CAAA,CACF,CAAA,CAAA,EAGN,CAEJ"}
@@ -0,0 +1,4 @@
1
+ import * as React from "react";
2
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
3
+ declare const Separator: React.ForwardRefExoticComponent<Omit<SeparatorPrimitive.SeparatorProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
4
+ export { Separator };
@@ -0,0 +1,25 @@
1
+ import { j as p } from "../jsx-runtime-DGlMoOmv.js";
2
+ import * as e from "react";
3
+ import * as o from "@radix-ui/react-separator";
4
+ import { c as i } from "../utils-qaFjX9_3.js";
5
+ const l = e.forwardRef(
6
+ ({ className: a, orientation: r = "horizontal", decorative: t = !0, ...m }, s) => /* @__PURE__ */ p.jsx(
7
+ o.Root,
8
+ {
9
+ ref: s,
10
+ decorative: t,
11
+ orientation: r,
12
+ className: i(
13
+ "shrink-0 bg-border",
14
+ r === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
15
+ a
16
+ ),
17
+ ...m
18
+ }
19
+ )
20
+ );
21
+ l.displayName = o.Root.displayName;
22
+ export {
23
+ l as Separator
24
+ };
25
+ //# sourceMappingURL=separator.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.esm.js","sources":["../../src/components/separator.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\nimport { cn } from \"@/lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator } "],"names":["Separator","React","className","orientation","decorative","props","ref","jsx","SeparatorPrimitive","cn"],"mappings":";;;;AAIA,MAAMA,IAAYC,EAAM;AAAA,EAItB,CACE,EAAE,WAAAC,GAAW,aAAAC,IAAc,cAAc,YAAAC,IAAa,IAAM,GAAGC,KAC/DC,MAEAC,gBAAAA,EAAAA;AAAAA,IAACC,EAAmB;AAAA,IAAnB;AAAA,MACC,KAAAF;AAAA,MACA,YAAAF;AAAA,MACA,aAAAD;AAAA,MACA,WAAWM;AAAA,QACT;AAAA,QACAN,MAAgB,eAAe,mBAAmB;AAAA,QAClDD;AAAA,MAAA;AAAA,MAED,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGV;AACAL,EAAU,cAAcQ,EAAmB,KAAK;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../jsx-runtime-BYECrxsp.cjs"),l=require("react"),u=require("@radix-ui/react-separator"),p=require("../utils-DSKoFOjv.cjs");function a(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const f=a(l),n=a(u),i=f.forwardRef(({className:e,orientation:t="horizontal",decorative:r=!0,...o},c)=>s.jsxRuntimeExports.jsx(n.Root,{ref:c,decorative:r,orientation:t,className:p.cn("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...o}));i.displayName=n.Root.displayName;exports.Separator=i;
2
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.js","sources":["../../src/components/separator.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\nimport { cn } from \"@/lib/utils\"\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator } "],"names":["Separator","React","className","orientation","decorative","props","ref","jsx","SeparatorPrimitive","cn"],"mappings":"6fAIMA,EAAYC,EAAM,WAItB,CACE,CAAE,UAAAC,EAAW,YAAAC,EAAc,aAAc,WAAAC,EAAa,GAAM,GAAGC,GAC/DC,IAEAC,EAAAA,kBAAAA,IAACC,EAAmB,KAAnB,CACC,IAAAF,EACA,WAAAF,EACA,YAAAD,EACA,UAAWM,EAAAA,GACT,qBACAN,IAAgB,aAAe,iBAAmB,iBAClDD,CAAA,EAED,GAAGG,CAAA,CAAA,CAGV,EACAL,EAAU,YAAcQ,EAAmB,KAAK"}
@@ -0,0 +1,13 @@
1
+ interface SheetProps {
2
+ isOpen: boolean;
3
+ onClose: () => void;
4
+ children: React.ReactNode;
5
+ header?: React.ReactNode;
6
+ footer?: React.ReactNode;
7
+ className?: string;
8
+ enableFullscreen?: boolean;
9
+ position?: 'left' | 'right' | 'bottom';
10
+ headerClassName?: string;
11
+ }
12
+ export declare function Sheet({ isOpen, onClose, children, header, footer, className, enableFullscreen, position, headerClassName }: SheetProps): import('react').ReactPortal | null;
13
+ export {};