@bigbinary/neeto-atoms 1.0.7 → 1.0.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 (302) hide show
  1. package/dist/ColorPicker-BPvxDGDM.js +276 -0
  2. package/dist/ColorPicker-BPvxDGDM.js.map +1 -0
  3. package/dist/{DataTable-Y4POx0WN.js → DataTable-BKe9K5XP.js} +136 -136
  4. package/dist/DataTable-BKe9K5XP.js.map +1 -0
  5. package/dist/cjs/ColorPicker-DN8aynGh.js +282 -0
  6. package/dist/cjs/ColorPicker-DN8aynGh.js.map +1 -0
  7. package/dist/cjs/{DataTable-DJw2SZ7b.js → DataTable-BQt_mXDX.js} +136 -136
  8. package/dist/cjs/DataTable-BQt_mXDX.js.map +1 -0
  9. package/dist/cjs/components/Accordion.js +49 -0
  10. package/dist/cjs/components/Accordion.js.map +1 -0
  11. package/dist/cjs/components/Alert.js +101 -0
  12. package/dist/cjs/components/Alert.js.map +1 -0
  13. package/dist/cjs/components/Badge.js +71 -0
  14. package/dist/cjs/components/Badge.js.map +1 -0
  15. package/dist/cjs/components/Button.js +121 -0
  16. package/dist/cjs/components/Button.js.map +1 -0
  17. package/dist/cjs/components/Checkbox.js +44 -0
  18. package/dist/cjs/components/Checkbox.js.map +1 -0
  19. package/dist/cjs/components/ColorPicker.js +34 -0
  20. package/dist/cjs/components/ColorPicker.js.map +1 -0
  21. package/dist/cjs/components/DataTable.js +3 -3
  22. package/dist/cjs/components/Dialog.js +88 -0
  23. package/dist/cjs/components/Dialog.js.map +1 -0
  24. package/dist/cjs/components/DropdownMenu.js +180 -0
  25. package/dist/cjs/components/DropdownMenu.js.map +1 -0
  26. package/dist/cjs/components/Input.js +167 -0
  27. package/dist/cjs/components/Input.js.map +1 -0
  28. package/dist/cjs/components/MultiSelect.js +13 -0
  29. package/dist/cjs/components/MultiSelect.js.map +1 -0
  30. package/dist/cjs/components/MultiSelectCombobox.js +3 -0
  31. package/dist/cjs/components/MultiSelectCombobox.js.map +1 -0
  32. package/dist/cjs/components/MultiSelectDropdown.js +37 -0
  33. package/dist/cjs/components/MultiSelectDropdown.js.map +1 -0
  34. package/dist/cjs/components/OptionItem.js +34 -0
  35. package/dist/cjs/components/OptionItem.js.map +1 -0
  36. package/dist/cjs/components/Popover.js +123 -0
  37. package/dist/cjs/components/Popover.js.map +1 -0
  38. package/dist/cjs/components/RadioGroup.js +63 -0
  39. package/dist/cjs/components/RadioGroup.js.map +1 -0
  40. package/dist/cjs/components/Select.js +3 -0
  41. package/dist/cjs/components/Select.js.map +1 -0
  42. package/dist/cjs/components/SelectFieldWrapper.js +33 -0
  43. package/dist/cjs/components/SelectFieldWrapper.js.map +1 -0
  44. package/dist/cjs/components/SelectOptions.js +43 -0
  45. package/dist/cjs/components/SelectOptions.js.map +1 -0
  46. package/dist/cjs/components/SelectTriggerContent.js +43 -0
  47. package/dist/cjs/components/SelectTriggerContent.js.map +1 -0
  48. package/dist/cjs/components/Sheet.js +90 -0
  49. package/dist/cjs/components/Sheet.js.map +1 -0
  50. package/dist/cjs/components/Switch.js +35 -0
  51. package/dist/cjs/components/Switch.js.map +1 -0
  52. package/dist/cjs/components/Tabs.js +74 -0
  53. package/dist/cjs/components/Tabs.js.map +1 -0
  54. package/dist/cjs/components/Textarea.js +89 -0
  55. package/dist/cjs/components/Textarea.js.map +1 -0
  56. package/dist/cjs/components/Toastr.js +133 -0
  57. package/dist/cjs/components/Toastr.js.map +1 -0
  58. package/dist/cjs/components/Tooltip.js +109 -0
  59. package/dist/cjs/components/Tooltip.js.map +1 -0
  60. package/dist/cjs/{primitives → components}/Typography.js +6 -6
  61. package/dist/cjs/components/Typography.js.map +1 -0
  62. package/dist/cjs/components/shared.js +8 -0
  63. package/dist/cjs/components/shared.js.map +1 -0
  64. package/dist/cjs/{dialog-DzNWLbJ6.js → dialog-CF2GBHOG.js} +2 -2
  65. package/dist/cjs/{dialog-DzNWLbJ6.js.map → dialog-CF2GBHOG.js.map} +1 -1
  66. package/dist/cjs/{index-DAds6mf_.js → index-BLGrl3PF.js} +31 -31
  67. package/dist/cjs/{index-DAds6mf_.js.map → index-BLGrl3PF.js.map} +1 -1
  68. package/dist/cjs/{index-BqCr1H3u.js → index-BiGm7NEA.js} +11 -11
  69. package/dist/cjs/{index-BqCr1H3u.js.map → index-BiGm7NEA.js.map} +1 -1
  70. package/dist/cjs/{index-CGet1HH4.js → index-PdtYHwPi.js} +66 -66
  71. package/dist/cjs/{index-CGet1HH4.js.map → index-PdtYHwPi.js.map} +1 -1
  72. package/dist/cjs/index-Vlwnyfvs.js +1145 -0
  73. package/dist/cjs/index-Vlwnyfvs.js.map +1 -0
  74. package/dist/cjs/{index-DR7GJU4J.js → index-hQmfI1O7.js} +17 -17
  75. package/dist/cjs/{index-DR7GJU4J.js.map → index-hQmfI1O7.js.map} +1 -1
  76. package/dist/cjs/index.js +463 -26
  77. package/dist/cjs/index.js.map +1 -1
  78. package/dist/cjs/primitives/Accordion.js +16 -16
  79. package/dist/cjs/primitives/Accordion.js.map +1 -1
  80. package/dist/cjs/primitives/AlertDialog.js +1 -1
  81. package/dist/cjs/primitives/Badge.js +58 -6
  82. package/dist/cjs/primitives/Badge.js.map +1 -1
  83. package/dist/cjs/primitives/Chart.js +137 -137
  84. package/dist/cjs/primitives/Chart.js.map +1 -1
  85. package/dist/cjs/primitives/Collapsible.js +1 -1
  86. package/dist/cjs/primitives/Combobox.js +4 -4
  87. package/dist/cjs/primitives/Combobox.js.map +1 -1
  88. package/dist/cjs/primitives/Command.js +2 -2
  89. package/dist/cjs/primitives/ContextMenu.js +2 -2
  90. package/dist/cjs/primitives/Dialog.js +10 -6
  91. package/dist/cjs/primitives/Dialog.js.map +1 -1
  92. package/dist/cjs/primitives/Drawer.js +1 -1
  93. package/dist/cjs/primitives/DropdownMenu.js +38 -38
  94. package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
  95. package/dist/cjs/primitives/HoverCard.js +16 -16
  96. package/dist/cjs/primitives/Menubar.js +2 -2
  97. package/dist/cjs/primitives/Popover.js +13 -13
  98. package/dist/cjs/primitives/RadioGroup.js +27 -26
  99. package/dist/cjs/primitives/RadioGroup.js.map +1 -1
  100. package/dist/cjs/primitives/Select.js +77 -77
  101. package/dist/cjs/primitives/Sheet.js +10 -6
  102. package/dist/cjs/primitives/Sheet.js.map +1 -1
  103. package/dist/cjs/primitives/Sidebar.js +3 -3
  104. package/dist/cjs/primitives/Sonner.js +12 -1138
  105. package/dist/cjs/primitives/Sonner.js.map +1 -1
  106. package/dist/cjs/primitives/Switch.js +4 -8
  107. package/dist/cjs/primitives/Switch.js.map +1 -1
  108. package/dist/cjs/primitives/Tabs.js +11 -11
  109. package/dist/cjs/primitives/ToggleGroup.js +1 -1
  110. package/dist/cjs/primitives/Tooltip.js +1 -1
  111. package/dist/cjs/primitives/index.js +9 -11
  112. package/dist/cjs/primitives/index.js.map +1 -1
  113. package/dist/cjs/renderIcon-fLF3odqg.js +26 -0
  114. package/dist/cjs/renderIcon-fLF3odqg.js.map +1 -0
  115. package/dist/cjs/{sheet-nHSYZxAA.js → sheet-CkCrHmVA.js} +2 -2
  116. package/dist/cjs/{sheet-nHSYZxAA.js.map → sheet-CkCrHmVA.js.map} +1 -1
  117. package/dist/cjs/{tooltip-CRkOMh1b.js → tooltip-C-568jEL.js} +17 -17
  118. package/dist/cjs/{tooltip-CRkOMh1b.js.map → tooltip-C-568jEL.js.map} +1 -1
  119. package/dist/cjs/useCreatableItems-BTHtd7uo.js +100 -0
  120. package/dist/cjs/useCreatableItems-BTHtd7uo.js.map +1 -0
  121. package/dist/cjs/{reselect-CeyIIDM-.js → with-selector-u4xTSzCv.js} +111 -111
  122. package/dist/cjs/with-selector-u4xTSzCv.js.map +1 -0
  123. package/dist/components/Accordion.d.ts +18 -0
  124. package/dist/components/Accordion.js +43 -0
  125. package/dist/components/Accordion.js.map +1 -0
  126. package/dist/components/Alert.d.ts +51 -0
  127. package/dist/components/Alert.js +99 -0
  128. package/dist/components/Alert.js.map +1 -0
  129. package/dist/components/Badge.d.ts +29 -0
  130. package/dist/components/Badge.js +69 -0
  131. package/dist/components/Badge.js.map +1 -0
  132. package/dist/components/Button.d.ts +47 -0
  133. package/dist/components/Button.js +119 -0
  134. package/dist/components/Button.js.map +1 -0
  135. package/dist/components/Checkbox.d.ts +16 -0
  136. package/dist/components/Checkbox.js +42 -0
  137. package/dist/components/Checkbox.js.map +1 -0
  138. package/dist/components/ColorPicker/ColorPicker.d.ts +4 -0
  139. package/dist/components/ColorPicker/Palette.d.ts +12 -0
  140. package/dist/components/ColorPicker/Target.d.ts +15 -0
  141. package/dist/components/ColorPicker/constants.d.ts +10 -0
  142. package/dist/components/ColorPicker/hooks/useEyeDropper.d.ts +15 -0
  143. package/dist/components/ColorPicker/hooks/useRecentlyUsedColors.d.ts +11 -0
  144. package/dist/components/ColorPicker/index.d.ts +2 -0
  145. package/dist/components/ColorPicker/types.d.ts +42 -0
  146. package/dist/components/ColorPicker/utils.d.ts +31 -0
  147. package/dist/components/ColorPicker.js +28 -0
  148. package/dist/components/ColorPicker.js.map +1 -0
  149. package/dist/components/DataTable.js +2 -2
  150. package/dist/components/Dialog.d.ts +56 -0
  151. package/dist/components/Dialog.js +86 -0
  152. package/dist/components/Dialog.js.map +1 -0
  153. package/dist/components/DropdownMenu/Divider.d.ts +3 -0
  154. package/dist/components/DropdownMenu/DropdownBase.d.ts +3 -0
  155. package/dist/components/DropdownMenu/Label.d.ts +7 -0
  156. package/dist/components/DropdownMenu/Menu.d.ts +7 -0
  157. package/dist/components/DropdownMenu/MenuItem.d.ts +10 -0
  158. package/dist/components/DropdownMenu/MenuItemButton.d.ts +4 -0
  159. package/dist/components/DropdownMenu/SplitTrigger.d.ts +13 -0
  160. package/dist/components/DropdownMenu/SubMenu.d.ts +10 -0
  161. package/dist/components/DropdownMenu/TriggerButton.d.ts +10 -0
  162. package/dist/components/DropdownMenu/constants.d.ts +7 -0
  163. package/dist/components/DropdownMenu/index.d.ts +16 -0
  164. package/dist/components/DropdownMenu/types.d.ts +88 -0
  165. package/dist/components/DropdownMenu.js +178 -0
  166. package/dist/components/DropdownMenu.js.map +1 -0
  167. package/dist/components/Input.d.ts +39 -0
  168. package/dist/components/Input.js +165 -0
  169. package/dist/components/Input.js.map +1 -0
  170. package/dist/components/MultiSelect.constants.d.ts +5 -0
  171. package/dist/components/MultiSelect.d.ts +4 -0
  172. package/dist/components/MultiSelect.js +4 -0
  173. package/dist/components/MultiSelect.js.map +1 -0
  174. package/dist/components/MultiSelect.types.d.ts +121 -0
  175. package/dist/components/MultiSelect.utils.d.ts +18 -0
  176. package/dist/components/MultiSelectCombobox.d.ts +3 -0
  177. package/dist/components/MultiSelectCombobox.js +2 -0
  178. package/dist/components/MultiSelectCombobox.js.map +1 -0
  179. package/dist/components/MultiSelectCombobox.types.d.ts +52 -0
  180. package/dist/components/MultiSelectDropdown.d.ts +9 -0
  181. package/dist/components/MultiSelectDropdown.js +35 -0
  182. package/dist/components/MultiSelectDropdown.js.map +1 -0
  183. package/dist/components/OptionItem.d.ts +9 -0
  184. package/dist/components/OptionItem.js +32 -0
  185. package/dist/components/OptionItem.js.map +1 -0
  186. package/dist/components/Popover.d.ts +47 -0
  187. package/dist/components/Popover.js +117 -0
  188. package/dist/components/Popover.js.map +1 -0
  189. package/dist/components/RadioGroup.d.ts +32 -0
  190. package/dist/components/RadioGroup.js +61 -0
  191. package/dist/components/RadioGroup.js.map +1 -0
  192. package/dist/components/Select.constants.d.ts +5 -0
  193. package/dist/components/Select.d.ts +4 -0
  194. package/dist/components/Select.js +2 -0
  195. package/dist/components/Select.js.map +1 -0
  196. package/dist/components/Select.types.d.ts +58 -0
  197. package/dist/components/SelectFieldWrapper.d.ts +18 -0
  198. package/dist/components/SelectFieldWrapper.js +31 -0
  199. package/dist/components/SelectFieldWrapper.js.map +1 -0
  200. package/dist/components/SelectOptions.d.ts +2 -0
  201. package/dist/components/SelectOptions.js +41 -0
  202. package/dist/components/SelectOptions.js.map +1 -0
  203. package/dist/components/SelectTriggerContent.d.ts +18 -0
  204. package/dist/components/SelectTriggerContent.js +41 -0
  205. package/dist/components/SelectTriggerContent.js.map +1 -0
  206. package/dist/components/Sheet.d.ts +54 -0
  207. package/dist/components/Sheet.js +88 -0
  208. package/dist/components/Sheet.js.map +1 -0
  209. package/dist/components/Switch.d.ts +18 -0
  210. package/dist/components/Switch.js +33 -0
  211. package/dist/components/Switch.js.map +1 -0
  212. package/dist/components/Tabs.d.ts +20 -0
  213. package/dist/components/Tabs.js +72 -0
  214. package/dist/components/Tabs.js.map +1 -0
  215. package/dist/components/Textarea.d.ts +36 -0
  216. package/dist/components/Textarea.js +87 -0
  217. package/dist/components/Textarea.js.map +1 -0
  218. package/dist/components/Toastr.d.ts +30 -0
  219. package/dist/components/Toastr.js +131 -0
  220. package/dist/components/Toastr.js.map +1 -0
  221. package/dist/components/Tooltip.d.ts +29 -0
  222. package/dist/components/Tooltip.js +103 -0
  223. package/dist/components/Tooltip.js.map +1 -0
  224. package/dist/{primitives → components}/Typography.d.ts +2 -2
  225. package/dist/{primitives → components}/Typography.js +6 -6
  226. package/dist/components/Typography.js.map +1 -0
  227. package/dist/components/shared.js +6 -0
  228. package/dist/components/shared.js.map +1 -0
  229. package/dist/components/shared.types.d.ts +16 -0
  230. package/dist/{dialog-C97DOTvO.js → dialog-Civ9r6wD.js} +3 -3
  231. package/dist/{dialog-C97DOTvO.js.map → dialog-Civ9r6wD.js.map} +1 -1
  232. package/dist/hooks/useAsyncOptions.d.ts +13 -0
  233. package/dist/hooks/useCreatableItems.d.ts +30 -0
  234. package/dist/hooks/useLazyLoadSentinel.d.ts +6 -0
  235. package/dist/hooks/useMultiSelectOptions.d.ts +15 -0
  236. package/dist/hooks/useMultiSelectState.d.ts +37 -0
  237. package/dist/hooks/useSelectState.d.ts +27 -0
  238. package/dist/{index-PF0ms7Xn.js → index-9HvIbmnI.js} +3 -3
  239. package/dist/{index-PF0ms7Xn.js.map → index-9HvIbmnI.js.map} +1 -1
  240. package/dist/index-D_roZz8G.js +1137 -0
  241. package/dist/index-D_roZz8G.js.map +1 -0
  242. package/dist/{index-BwxI_qgh.js → index-KzJfsx-e.js} +3 -3
  243. package/dist/{index-BwxI_qgh.js.map → index-KzJfsx-e.js.map} +1 -1
  244. package/dist/index.css +25 -1
  245. package/dist/index.d.ts +40 -0
  246. package/dist/index.js +440 -24
  247. package/dist/index.js.map +1 -1
  248. package/dist/{input-group-CDBpz6Pb.js → input-group-ytECR3Hw.js} +2 -2
  249. package/dist/{input-group-CDBpz6Pb.js.map → input-group-ytECR3Hw.js.map} +1 -1
  250. package/dist/lib/renderIcon.d.ts +5 -0
  251. package/dist/primitives/Accordion.js +1 -1
  252. package/dist/primitives/AlertDialog.js +1 -1
  253. package/dist/primitives/Badge.d.ts +13 -3
  254. package/dist/primitives/Badge.js +54 -2
  255. package/dist/primitives/Badge.js.map +1 -1
  256. package/dist/primitives/Chart.js +1 -1
  257. package/dist/primitives/Combobox.js +3 -3
  258. package/dist/primitives/Command.js +3 -3
  259. package/dist/primitives/ContextMenu.js +1 -1
  260. package/dist/primitives/Dialog.d.ts +11 -3
  261. package/dist/primitives/Dialog.js +11 -7
  262. package/dist/primitives/Dialog.js.map +1 -1
  263. package/dist/primitives/Drawer.js +1 -1
  264. package/dist/primitives/DropdownMenu.js +2 -2
  265. package/dist/primitives/InputGroup.js +1 -1
  266. package/dist/primitives/Menubar.js +1 -1
  267. package/dist/primitives/RadioGroup.d.ts +8 -3
  268. package/dist/primitives/RadioGroup.js +9 -8
  269. package/dist/primitives/RadioGroup.js.map +1 -1
  270. package/dist/primitives/Select.js +3 -3
  271. package/dist/primitives/Sheet.d.ts +12 -3
  272. package/dist/primitives/Sheet.js +11 -7
  273. package/dist/primitives/Sheet.js.map +1 -1
  274. package/dist/primitives/Sidebar.js +3 -3
  275. package/dist/primitives/Sonner.js +11 -1135
  276. package/dist/primitives/Sonner.js.map +1 -1
  277. package/dist/primitives/Switch.d.ts +6 -3
  278. package/dist/primitives/Switch.js +4 -8
  279. package/dist/primitives/Switch.js.map +1 -1
  280. package/dist/primitives/Tooltip.js +1 -1
  281. package/dist/primitives/index.d.ts +0 -1
  282. package/dist/primitives/index.js +8 -8
  283. package/dist/renderIcon-tlvMyboj.js +20 -0
  284. package/dist/renderIcon-tlvMyboj.js.map +1 -0
  285. package/dist/shadcn/components/typography.d.ts +4 -4
  286. package/dist/{sheet-D1ngftfX.js → sheet-COcn22fC.js} +3 -3
  287. package/dist/{sheet-D1ngftfX.js.map → sheet-COcn22fC.js.map} +1 -1
  288. package/dist/{tooltip-D5soNrAP.js → tooltip-DzjIJacP.js} +3 -3
  289. package/dist/{tooltip-D5soNrAP.js.map → tooltip-DzjIJacP.js.map} +1 -1
  290. package/dist/useCreatableItems-B0seQA1_.js +89 -0
  291. package/dist/useCreatableItems-B0seQA1_.js.map +1 -0
  292. package/dist/utils/fieldIds.d.ts +2 -0
  293. package/dist/utils/hyphenize.d.ts +1 -0
  294. package/dist/{reselect-CABQm5hA.js → with-selector--fY1NrB9.js} +111 -111
  295. package/dist/with-selector--fY1NrB9.js.map +1 -0
  296. package/package.json +2 -1
  297. package/dist/DataTable-Y4POx0WN.js.map +0 -1
  298. package/dist/cjs/DataTable-DJw2SZ7b.js.map +0 -1
  299. package/dist/cjs/primitives/Typography.js.map +0 -1
  300. package/dist/cjs/reselect-CeyIIDM-.js.map +0 -1
  301. package/dist/primitives/Typography.js.map +0 -1
  302. package/dist/reselect-CABQm5hA.js.map +0 -1
@@ -0,0 +1,49 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('../utils-CTr7wn5d.js');
6
+ var primitives_Accordion = require('../primitives/Accordion.js');
7
+ require('../chevron-down-CPsWSS51.js');
8
+ require('../createLucideIcon-D0tRgV6l.js');
9
+ require('../chevron-up-BpwpBnZU.js');
10
+ require('../index-CGUGhyIp.js');
11
+ require('../index-Ch55j1or.js');
12
+ require('../index-D-iDn9RI.js');
13
+ require('../index-COPkC3I5.js');
14
+ require('../index-CyrAgb4H.js');
15
+ require('../index-CCdG4z4E.js');
16
+ require('../index-DMbj7vXd.js');
17
+ require('react-dom');
18
+ require('../index-BiGm7NEA.js');
19
+ require('../index-DcCSSgb7.js');
20
+ require('../index-BwAq9ba8.js');
21
+ require('../index-9jC1advf.js');
22
+
23
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
24
+
25
+ var React__default = /*#__PURE__*/_interopDefault(React);
26
+
27
+ // ---------------------------------------------------------------------------
28
+ // Subcomponent – Accordion.Item
29
+ // ---------------------------------------------------------------------------
30
+ const AccordionItemComponent = React.forwardRef(({ title, children, className, value, ...otherProps }, ref) => (jsxRuntime.jsxs(primitives_Accordion.AccordionItem, { ref: ref, value: value, className: utils.cn(className), ...otherProps, children: [jsxRuntime.jsx(primitives_Accordion.AccordionTrigger, { children: title }), jsxRuntime.jsx(primitives_Accordion.AccordionContent, { children: children })] })));
31
+ AccordionItemComponent.displayName = "Accordion.Item";
32
+ // ---------------------------------------------------------------------------
33
+ // Component
34
+ // ---------------------------------------------------------------------------
35
+ const Accordion = React.forwardRef(({ className, children, ...otherProps }, ref) => {
36
+ // Auto-generate value props for items that don't have one
37
+ const enhancedChildren = React.Children.map(children, (child, index) => {
38
+ if (!React__default.default.isValidElement(child))
39
+ return child;
40
+ const childValue = child.props.value ?? `item-${index}`;
41
+ return React__default.default.cloneElement(child, { value: childValue });
42
+ });
43
+ return (jsxRuntime.jsx(primitives_Accordion.Accordion, { ref: ref, className: utils.cn(className), ...otherProps, children: enhancedChildren }));
44
+ });
45
+ Accordion.displayName = "Accordion";
46
+ Accordion.Item = AccordionItemComponent;
47
+
48
+ exports.Accordion = Accordion;
49
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sources":["../../../../src/components/Accordion.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, Children } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Accordion as PrimitiveAccordion,\n AccordionItem as PrimitiveAccordionItem,\n AccordionTrigger as PrimitiveAccordionTrigger,\n AccordionContent as PrimitiveAccordionContent,\n} from \"src/primitives/Accordion\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype AccordionRootProps = React.ComponentProps<typeof PrimitiveAccordion>;\n\nexport interface AccordionProps extends Omit<AccordionRootProps, \"children\"> {\n /** Accordion.Item children. */\n children?: ReactNode;\n}\n\ninterface AccordionItemProps extends React.ComponentProps<\n typeof PrimitiveAccordionItem\n> {\n /** Header text displayed in the trigger. */\n title: string;\n /** Content rendered when the item is expanded. */\n children?: ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// Subcomponent – Accordion.Item\n// ---------------------------------------------------------------------------\n\nconst AccordionItemComponent = forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ title, children, className, value, ...otherProps }, ref) => (\n <PrimitiveAccordionItem\n ref={ref}\n value={value}\n className={cn(className)}\n {...otherProps}\n >\n <PrimitiveAccordionTrigger>{title}</PrimitiveAccordionTrigger>\n <PrimitiveAccordionContent>{children}</PrimitiveAccordionContent>\n </PrimitiveAccordionItem>\n )\n);\n\nAccordionItemComponent.displayName = \"Accordion.Item\";\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n ({ className, children, ...otherProps }, ref) => {\n // Auto-generate value props for items that don't have one\n const enhancedChildren = Children.map(children, (child, index) => {\n if (!React.isValidElement<AccordionItemProps>(child)) return child;\n const childValue = child.props.value ?? `item-${index}`;\n return React.cloneElement(child, { value: childValue });\n });\n\n return (\n <PrimitiveAccordion ref={ref} className={cn(className)} {...otherProps}>\n {enhancedChildren}\n </PrimitiveAccordion>\n );\n }\n) as React.ForwardRefExoticComponent<\n AccordionProps & React.RefAttributes<HTMLDivElement>\n> & {\n Item: typeof AccordionItemComponent;\n};\n\nAccordion.displayName = \"Accordion\";\nAccordion.Item = AccordionItemComponent;\n\nexport { Accordion };\n"],"names":["forwardRef","_jsxs","PrimitiveAccordionItem","cn","_jsx","PrimitiveAccordionTrigger","PrimitiveAccordionContent","Children","React","PrimitiveAccordion"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA;AACA;AACA;AAEA,MAAM,sBAAsB,GAAGA,gBAAU,CACvC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MACxDC,eAAA,CAACC,kCAAsB,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAEC,QAAE,CAAC,SAAS,CAAC,EAAA,GACpB,UAAU,EAAA,QAAA,EAAA,CAEdC,cAAA,CAACC,qCAAyB,EAAA,EAAA,QAAA,EAAE,KAAK,EAAA,CAA6B,EAC9DD,cAAA,CAACE,qCAAyB,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAA6B,CAAA,EAAA,CAC1C,CAC1B,CACF;AAED,sBAAsB,CAAC,WAAW,GAAG,gBAAgB;AAErD;AACA;AACA;AAEA,MAAM,SAAS,GAAGN,gBAAU,CAC1B,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;;AAE9C,IAAA,MAAM,gBAAgB,GAAGO,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAI;AAC/D,QAAA,IAAI,CAACC,sBAAK,CAAC,cAAc,CAAqB,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAClE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AACvD,QAAA,OAAOA,sBAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACzD,IAAA,CAAC,CAAC;IAEF,QACEJ,eAACK,8BAAkB,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAEN,QAAE,CAAC,SAAS,CAAC,EAAA,GAAM,UAAU,YACnE,gBAAgB,EAAA,CACE;AAEzB,CAAC;AAOH,SAAS,CAAC,WAAW,GAAG,WAAW;AACnC,SAAS,CAAC,IAAI,GAAG,sBAAsB;;;;"}
@@ -0,0 +1,101 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('../utils-CTr7wn5d.js');
6
+ var primitives_Dialog = require('../primitives/Dialog.js');
7
+ var components_Button = require('./Button.js');
8
+ require('../button-B8XGl69v.js');
9
+ require('../index-BZhTddX0.js');
10
+ require('../index-DuNgWCXZ.js');
11
+ require('../index-D-iDn9RI.js');
12
+ require('../dialog-CF2GBHOG.js');
13
+ require('../x-Brw3FJst.js');
14
+ require('../createLucideIcon-D0tRgV6l.js');
15
+ require('../index-BLGrl3PF.js');
16
+ require('../index-COPkC3I5.js');
17
+ require('../index-CGUGhyIp.js');
18
+ require('../index-BwAq9ba8.js');
19
+ require('../index-CCdG4z4E.js');
20
+ require('../index-CyrAgb4H.js');
21
+ require('../index-Bvu9MiFi.js');
22
+ require('../index-DMbj7vXd.js');
23
+ require('react-dom');
24
+ require('../index-lWVw05cs.js');
25
+ require('../index-ChSOMM8b.js');
26
+ require('../index-Df-Ffa3s.js');
27
+ require('../index-DcCSSgb7.js');
28
+ require('../renderIcon-fLF3odqg.js');
29
+ require('../primitives/Button.js');
30
+ require('../primitives/Spinner.js');
31
+ require('../loader-circle-Bw7zP2Gn.js');
32
+ require('../primitives/Tooltip.js');
33
+ require('../tooltip-C-568jEL.js');
34
+ require('../index-C9ICrOhM.js');
35
+ require('../floating-ui.react-dom-B4Aw6O7R.js');
36
+ require('../index-Bf0WsHta.js');
37
+ require('../index-CB9xFokC.js');
38
+
39
+ // ---------------------------------------------------------------------------
40
+ // Size mapping
41
+ // ---------------------------------------------------------------------------
42
+ const SIZE_CLASS_MAP = {
43
+ small: "sm:max-w-xs",
44
+ medium: "sm:max-w-sm",
45
+ large: "sm:max-w-md",
46
+ };
47
+ // ---------------------------------------------------------------------------
48
+ // Style to variant mapping
49
+ // ---------------------------------------------------------------------------
50
+ const STYLE_VARIANT_MAP = {
51
+ danger: "destructive",
52
+ warning: "default",
53
+ };
54
+ // ---------------------------------------------------------------------------
55
+ // Component
56
+ // ---------------------------------------------------------------------------
57
+ const Alert = React.forwardRef(({ size = "medium", isOpen = false, isSubmitting = false, className, closeOnEsc = true, closeButton = true, backdropClassName, closeOnOutsideClick = true, onClose = () => { }, onSubmit = () => { }, title = "", message = "", submitButtonLabel = "Continue", cancelButtonLabel = "Cancel", hideCancelButton = false, style = "danger", initialFocusRef, initialFocusElement, modal, defaultOpen,
58
+ // Radix content handlers — we intercept and merge
59
+ onOpenAutoFocus: onOpenAutoFocusProp, onCloseAutoFocus: onCloseAutoFocusProp, ...otherProps }, ref) => {
60
+ const baseId = React.useId();
61
+ const titleId = `alert-title-${baseId}`;
62
+ const messageId = `alert-message-${baseId}`;
63
+ const submitButtonRef = React.useRef(null);
64
+ const cancelButtonRef = React.useRef(null);
65
+ const handleOpenChange = (open) => {
66
+ if (!open)
67
+ onClose();
68
+ };
69
+ const handleInteractOutside = (e) => {
70
+ if (!closeOnOutsideClick)
71
+ e.preventDefault();
72
+ };
73
+ const handleEscapeKeyDown = (e) => {
74
+ if (!closeOnEsc)
75
+ e.preventDefault();
76
+ };
77
+ const handleOpenAutoFocus = (e) => {
78
+ // Custom focus ref takes highest priority
79
+ if (initialFocusRef?.current) {
80
+ e.preventDefault();
81
+ initialFocusRef.current.focus();
82
+ }
83
+ else if (initialFocusElement === "submit" && submitButtonRef.current) {
84
+ e.preventDefault();
85
+ submitButtonRef.current.focus();
86
+ }
87
+ else if (initialFocusElement === "cancel" && cancelButtonRef.current) {
88
+ e.preventDefault();
89
+ cancelButtonRef.current.focus();
90
+ }
91
+ onOpenAutoFocusProp?.(e);
92
+ };
93
+ const handleCloseAutoFocus = (e) => {
94
+ onCloseAutoFocusProp?.(e);
95
+ };
96
+ return (jsxRuntime.jsx(primitives_Dialog.Dialog, { open: isOpen, onOpenChange: handleOpenChange, modal: modal, defaultOpen: defaultOpen, children: jsxRuntime.jsxs(primitives_Dialog.DialogContent, { ref: ref, role: "alertdialog", "aria-labelledby": title ? titleId : undefined, "aria-describedby": message ? messageId : undefined, showCloseButton: closeButton, overlayClassName: backdropClassName, onInteractOutside: handleInteractOutside, onEscapeKeyDown: handleEscapeKeyDown, onOpenAutoFocus: handleOpenAutoFocus, onCloseAutoFocus: handleCloseAutoFocus, className: utils.cn(SIZE_CLASS_MAP[size], className), "data-testid": "alert-box", ...otherProps, children: [jsxRuntime.jsxs(primitives_Dialog.DialogHeader, { children: [jsxRuntime.jsx(primitives_Dialog.DialogTitle, { id: titleId, "data-testid": "alert-title", children: title }), message && (jsxRuntime.jsx(primitives_Dialog.DialogDescription, { id: messageId, "data-testid": "alert-message", children: message }))] }), jsxRuntime.jsxs(primitives_Dialog.DialogFooter, { children: [!hideCancelButton && (jsxRuntime.jsx(components_Button.Button, { ref: cancelButtonRef, variant: "outline", label: cancelButtonLabel, onClick: onClose, "data-testid": "alert-cancel-button" })), jsxRuntime.jsx(components_Button.Button, { ref: submitButtonRef, variant: STYLE_VARIANT_MAP[style], label: submitButtonLabel, loading: isSubmitting, disabled: isSubmitting || !isOpen, onClick: onSubmit, "data-testid": "alert-submit-button" })] })] }) }));
97
+ });
98
+ Alert.displayName = "Alert";
99
+
100
+ exports.Alert = Alert;
101
+ //# sourceMappingURL=Alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.js","sources":["../../../../src/components/Alert.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n useRef,\n type ReactNode,\n type RefObject,\n} from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"src/primitives/Dialog\";\nimport { Button } from \"src/components/Button\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype AlertStyle = \"danger\" | \"warning\";\ntype AlertSize = \"small\" | \"medium\" | \"large\";\ntype InitialFocusElement = \"submit\" | \"cancel\";\n\n/** Radix Dialog.Content props we forward via ...otherProps. */\ntype DialogContentProps = React.ComponentProps<typeof DialogContent>;\n\nexport interface AlertProps extends Omit<\n DialogContentProps,\n | \"children\"\n | \"role\"\n | \"showCloseButton\"\n | \"className\"\n | \"style\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the alert dialog. */\n size?: AlertSize;\n /** Whether the alert is open. */\n isOpen?: boolean;\n /** Whether the submit action is in progress. */\n isSubmitting?: boolean;\n /** Additional CSS class names applied to the dialog content. */\n className?: string;\n /** Close on pressing the Esc key. */\n closeOnEsc?: boolean;\n /** Show the close button. */\n closeButton?: boolean;\n /** Additional CSS class names applied to the backdrop/overlay. */\n backdropClassName?: string;\n /** Close on clicking outside the dialog. */\n closeOnOutsideClick?: boolean;\n /** Callback invoked when the alert is closed. */\n onClose?: () => void;\n /** Callback invoked when the submit button is clicked. */\n onSubmit?: () => void;\n /** Title text of the alert. */\n title?: string;\n /** Message content of the alert. */\n message?: ReactNode;\n /** Label for the submit button. */\n submitButtonLabel?: string;\n /** Label for the cancel button. */\n cancelButtonLabel?: string;\n /** Hide the cancel button. */\n hideCancelButton?: boolean;\n /** Visual style of the submit button. */\n style?: AlertStyle;\n /** Ref of the element to receive focus when the alert opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Which built-in button receives focus on open: \"submit\" or \"cancel\". */\n initialFocusElement?: InitialFocusElement;\n /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */\n modal?: boolean;\n /** Radix Dialog `defaultOpen` prop. */\n defaultOpen?: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Size mapping\n// ---------------------------------------------------------------------------\n\nconst SIZE_CLASS_MAP: Record<AlertSize, string> = {\n small: \"sm:max-w-xs\",\n medium: \"sm:max-w-sm\",\n large: \"sm:max-w-md\",\n};\n\n// ---------------------------------------------------------------------------\n// Style to variant mapping\n// ---------------------------------------------------------------------------\n\nconst STYLE_VARIANT_MAP: Record<AlertStyle, \"destructive\" | \"default\"> = {\n danger: \"destructive\",\n warning: \"default\",\n};\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Alert = forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n size = \"medium\",\n isOpen = false,\n isSubmitting = false,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n onClose = () => {},\n onSubmit = () => {},\n title = \"\",\n message = \"\",\n submitButtonLabel = \"Continue\",\n cancelButtonLabel = \"Cancel\",\n hideCancelButton = false,\n style = \"danger\",\n initialFocusRef,\n initialFocusElement,\n modal,\n defaultOpen,\n // Radix content handlers — we intercept and merge\n onOpenAutoFocus: onOpenAutoFocusProp,\n onCloseAutoFocus: onCloseAutoFocusProp,\n ...otherProps\n },\n ref\n ) => {\n const baseId = useId();\n const titleId = `alert-title-${baseId}`;\n const messageId = `alert-message-${baseId}`;\n const submitButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n const handleOpenChange = (open: boolean) => {\n if (!open) onClose();\n };\n\n const handleInteractOutside = (e: Event) => {\n if (!closeOnOutsideClick) e.preventDefault();\n };\n\n const handleEscapeKeyDown = (e: KeyboardEvent) => {\n if (!closeOnEsc) e.preventDefault();\n };\n\n const handleOpenAutoFocus = (e: Event) => {\n // Custom focus ref takes highest priority\n if (initialFocusRef?.current) {\n e.preventDefault();\n initialFocusRef.current.focus();\n } else if (initialFocusElement === \"submit\" && submitButtonRef.current) {\n e.preventDefault();\n submitButtonRef.current.focus();\n } else if (initialFocusElement === \"cancel\" && cancelButtonRef.current) {\n e.preventDefault();\n cancelButtonRef.current.focus();\n }\n onOpenAutoFocusProp?.(e);\n };\n\n const handleCloseAutoFocus = (e: Event) => {\n onCloseAutoFocusProp?.(e);\n };\n\n return (\n <Dialog\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <DialogContent\n ref={ref}\n role=\"alertdialog\"\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={message ? messageId : undefined}\n showCloseButton={closeButton}\n overlayClassName={backdropClassName}\n onInteractOutside={handleInteractOutside}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={handleOpenAutoFocus}\n onCloseAutoFocus={handleCloseAutoFocus}\n className={cn(SIZE_CLASS_MAP[size], className)}\n data-testid=\"alert-box\"\n {...otherProps}\n >\n <DialogHeader>\n <DialogTitle id={titleId} data-testid=\"alert-title\">\n {title}\n </DialogTitle>\n {message && (\n <DialogDescription id={messageId} data-testid=\"alert-message\">\n {message}\n </DialogDescription>\n )}\n </DialogHeader>\n <DialogFooter>\n {!hideCancelButton && (\n <Button\n ref={cancelButtonRef}\n variant=\"outline\"\n label={cancelButtonLabel}\n onClick={onClose}\n data-testid=\"alert-cancel-button\"\n />\n )}\n <Button\n ref={submitButtonRef}\n variant={STYLE_VARIANT_MAP[style]}\n label={submitButtonLabel}\n loading={isSubmitting}\n disabled={isSubmitting || !isOpen}\n onClick={onSubmit}\n data-testid=\"alert-submit-button\"\n />\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n }\n);\n\nAlert.displayName = \"Alert\";\n\nexport { Alert };\n"],"names":["forwardRef","useId","useRef","_jsx","Dialog","_jsxs","DialogContent","cn","DialogHeader","DialogTitle","DialogDescription","DialogFooter","Button"],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('../utils-CTr7wn5d.js');
6
+ var renderIcon = require('../renderIcon-fLF3odqg.js');
7
+ var primitives_Badge = require('../primitives/Badge.js');
8
+ var x = require('../x-Brw3FJst.js');
9
+ require('../index-BZhTddX0.js');
10
+ require('../index-DuNgWCXZ.js');
11
+ require('../index-D-iDn9RI.js');
12
+ require('../createLucideIcon-D0tRgV6l.js');
13
+
14
+ // ---------------------------------------------------------------------------
15
+ // Size config
16
+ // ---------------------------------------------------------------------------
17
+ const SIZE_CONFIG = {
18
+ sm: {
19
+ iconPl: "pl-1",
20
+ iconPr: "pr-1",
21
+ dismissPr: "pr-0.5",
22
+ btnSize: "size-3",
23
+ iconSize: "size-2",
24
+ },
25
+ default: {
26
+ iconPl: "pl-1.5",
27
+ iconPr: "pr-1.5",
28
+ dismissPr: "pr-1",
29
+ btnSize: "size-3.5",
30
+ iconSize: "size-2.5",
31
+ },
32
+ lg: {
33
+ iconPl: "pl-2",
34
+ iconPr: "pr-2",
35
+ dismissPr: "pr-1",
36
+ btnSize: "size-4.5",
37
+ iconSize: "size-3",
38
+ },
39
+ };
40
+ // ---------------------------------------------------------------------------
41
+ // Indicator colors
42
+ // ---------------------------------------------------------------------------
43
+ const INDICATOR_COLORS = {
44
+ default: "bg-primary",
45
+ secondary: "bg-muted-foreground",
46
+ destructive: "bg-destructive",
47
+ blue: "bg-blue-600",
48
+ green: "bg-green-600",
49
+ amber: "bg-amber-400",
50
+ red: "bg-red-600",
51
+ purple: "bg-purple-700",
52
+ pink: "bg-pink-600",
53
+ teal: "bg-teal-600",
54
+ gray: "bg-gray-400",
55
+ };
56
+ // ---------------------------------------------------------------------------
57
+ // Component
58
+ // ---------------------------------------------------------------------------
59
+ const Badge = React.forwardRef(({ variant = "default", size = "default", label, icon, iconPosition = "left", indicator, onDismiss, disabled = false, className, asChild = false, children, ...otherProps }, ref) => {
60
+ if (asChild) {
61
+ return (jsxRuntime.jsx(primitives_Badge.Badge, { ref: ref, asChild: true, variant: variant, size: size, className: className, ...otherProps, children: children }));
62
+ }
63
+ const renderLabel = label || children;
64
+ const iconElement = icon ? renderIcon.renderIcon(icon) : null;
65
+ const hasDismiss = !!onDismiss && !disabled;
66
+ return (jsxRuntime.jsxs(primitives_Badge.Badge, { ref: ref, variant: variant, size: size, className: utils.cn(disabled && "opacity-50 pointer-events-none", icon && iconPosition === "left" && SIZE_CONFIG[size].iconPl, icon && iconPosition === "right" && SIZE_CONFIG[size].iconPr, hasDismiss && SIZE_CONFIG[size].dismissPr, className), ...otherProps, children: [indicator && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn("size-1.5 shrink-0 rounded-full", INDICATOR_COLORS[indicator]) })), iconPosition === "left" && iconElement, renderLabel, iconPosition === "right" && iconElement, onDismiss && !disabled && (jsxRuntime.jsx("button", { type: "button", "aria-label": "Dismiss", onClick: onDismiss, className: utils.cn("inline-flex shrink-0 items-center justify-center rounded-full bg-current/15 transition-[background-color,opacity] hover:bg-current/25 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1", SIZE_CONFIG[size].btnSize), children: jsxRuntime.jsx(x.X, { className: SIZE_CONFIG[size].iconSize }) }))] }));
67
+ });
68
+ Badge.displayName = "Badge";
69
+
70
+ exports.Badge = Badge;
71
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sources":["../../../../src/components/Badge.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode } from \"react\";\n\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\nimport { Badge as PrimitiveBadge } from \"src/primitives/Badge\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype BadgeVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"outline\"\n | \"ghost\"\n | \"link\"\n | \"gray\"\n | \"gray-subtle\"\n | \"blue\"\n | \"blue-subtle\"\n | \"purple\"\n | \"purple-subtle\"\n | \"amber\"\n | \"amber-subtle\"\n | \"red\"\n | \"red-subtle\"\n | \"pink\"\n | \"pink-subtle\"\n | \"green\"\n | \"green-subtle\"\n | \"teal\"\n | \"teal-subtle\";\n\ntype BadgeSize = \"sm\" | \"default\" | \"lg\";\n\ntype IndicatorVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"blue\"\n | \"green\"\n | \"amber\"\n | \"red\"\n | \"purple\"\n | \"pink\"\n | \"teal\"\n | \"gray\";\n\nexport interface BadgeProps extends Omit<\n React.ComponentProps<\"span\">,\n \"children\"\n> {\n /** Visual variant of the badge. */\n variant?: BadgeVariant;\n /** Size of the badge. */\n size?: BadgeSize;\n /** Text label rendered inside the badge. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: \"left\" | \"right\";\n /** Colored status indicator dot. */\n indicator?: IndicatorVariant;\n /** Callback when the badge is dismissed. Renders a dismiss button when provided. */\n onDismiss?: () => void;\n /** Disables the badge and hides the dismiss button. */\n disabled?: boolean;\n /** Render as a custom element (polymorphic via Radix Slot). */\n asChild?: boolean;\n /** Children rendered inside the badge (fallback for `label`). */\n children?: ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst SIZE_CONFIG = {\n sm: {\n iconPl: \"pl-1\",\n iconPr: \"pr-1\",\n dismissPr: \"pr-0.5\",\n btnSize: \"size-3\",\n iconSize: \"size-2\",\n },\n default: {\n iconPl: \"pl-1.5\",\n iconPr: \"pr-1.5\",\n dismissPr: \"pr-1\",\n btnSize: \"size-3.5\",\n iconSize: \"size-2.5\",\n },\n lg: {\n iconPl: \"pl-2\",\n iconPr: \"pr-2\",\n dismissPr: \"pr-1\",\n btnSize: \"size-4.5\",\n iconSize: \"size-3\",\n },\n};\n\n// ---------------------------------------------------------------------------\n// Indicator colors\n// ---------------------------------------------------------------------------\n\nconst INDICATOR_COLORS: Record<IndicatorVariant, string> = {\n default: \"bg-primary\",\n secondary: \"bg-muted-foreground\",\n destructive: \"bg-destructive\",\n blue: \"bg-blue-600\",\n green: \"bg-green-600\",\n amber: \"bg-amber-400\",\n red: \"bg-red-600\",\n purple: \"bg-purple-700\",\n pink: \"bg-pink-600\",\n teal: \"bg-teal-600\",\n gray: \"bg-gray-400\",\n};\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n label,\n icon,\n iconPosition = \"left\",\n indicator,\n onDismiss,\n disabled = false,\n className,\n asChild = false,\n children,\n ...otherProps\n },\n ref\n ) => {\n if (asChild) {\n return (\n <PrimitiveBadge\n ref={ref}\n asChild\n variant={variant}\n size={size}\n className={className}\n {...otherProps}\n >\n {children}\n </PrimitiveBadge>\n );\n }\n\n const renderLabel = label || children;\n const iconElement = icon ? renderIcon(icon) : null;\n\n const hasDismiss = !!onDismiss && !disabled;\n\n return (\n <PrimitiveBadge\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n disabled && \"opacity-50 pointer-events-none\",\n icon && iconPosition === \"left\" && SIZE_CONFIG[size].iconPl,\n icon && iconPosition === \"right\" && SIZE_CONFIG[size].iconPr,\n hasDismiss && SIZE_CONFIG[size].dismissPr,\n className\n )}\n {...otherProps}\n >\n {indicator && (\n <span\n aria-hidden=\"true\"\n className={cn(\n \"size-1.5 shrink-0 rounded-full\",\n INDICATOR_COLORS[indicator]\n )}\n />\n )}\n {iconPosition === \"left\" && iconElement}\n {renderLabel}\n {iconPosition === \"right\" && iconElement}\n {onDismiss && !disabled && (\n <button\n type=\"button\"\n aria-label=\"Dismiss\"\n onClick={onDismiss}\n className={cn(\n \"inline-flex shrink-0 items-center justify-center rounded-full bg-current/15 transition-[background-color,opacity] hover:bg-current/25 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1\",\n SIZE_CONFIG[size].btnSize\n )}\n >\n <X className={SIZE_CONFIG[size].iconSize} />\n </button>\n )}\n </PrimitiveBadge>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n\nexport { Badge };\n"],"names":["forwardRef","_jsx","PrimitiveBadge","renderIcon","_jsxs","cn","X"],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('../utils-CTr7wn5d.js');
6
+ var renderIcon = require('../renderIcon-fLF3odqg.js');
7
+ var primitives_Button = require('../primitives/Button.js');
8
+ var primitives_Spinner = require('../primitives/Spinner.js');
9
+ var primitives_Tooltip = require('../primitives/Tooltip.js');
10
+ require('../button-B8XGl69v.js');
11
+ require('../index-BZhTddX0.js');
12
+ require('../index-DuNgWCXZ.js');
13
+ require('../index-D-iDn9RI.js');
14
+ require('../loader-circle-Bw7zP2Gn.js');
15
+ require('../createLucideIcon-D0tRgV6l.js');
16
+ require('../tooltip-C-568jEL.js');
17
+ require('../index-COPkC3I5.js');
18
+ require('../index-CGUGhyIp.js');
19
+ require('../index-Bvu9MiFi.js');
20
+ require('../index-DMbj7vXd.js');
21
+ require('react-dom');
22
+ require('../index-lWVw05cs.js');
23
+ require('../index-BwAq9ba8.js');
24
+ require('../index-CCdG4z4E.js');
25
+ require('../index-C9ICrOhM.js');
26
+ require('../floating-ui.react-dom-B4Aw6O7R.js');
27
+ require('../index-Bf0WsHta.js');
28
+ require('../index-Df-Ffa3s.js');
29
+ require('../index-DcCSSgb7.js');
30
+ require('../index-CyrAgb4H.js');
31
+ require('../index-CB9xFokC.js');
32
+
33
+ // ---------------------------------------------------------------------------
34
+ // Mappings
35
+ // ---------------------------------------------------------------------------
36
+ const ICON_ONLY_SIZE_MAP = {
37
+ xs: "icon-xs",
38
+ sm: "icon-sm",
39
+ default: "icon",
40
+ lg: "icon-lg",
41
+ };
42
+ const SPINNER_SIZE_MAP = {
43
+ xs: "size-3",
44
+ sm: "size-3.5",
45
+ default: "size-3.5",
46
+ lg: "size-4",
47
+ icon: "size-3.5",
48
+ "icon-xs": "size-3",
49
+ "icon-sm": "size-3.5",
50
+ "icon-lg": "size-4",
51
+ };
52
+ // Map NeetoUI tooltip `position` values to Radix side values
53
+ const TOOLTIP_SIDE_MAP = {
54
+ top: "top",
55
+ bottom: "bottom",
56
+ left: "left",
57
+ right: "right",
58
+ "top-start": "top",
59
+ "top-end": "top",
60
+ "bottom-start": "bottom",
61
+ "bottom-end": "bottom",
62
+ "left-start": "left",
63
+ "left-end": "left",
64
+ "right-start": "right",
65
+ "right-end": "right",
66
+ };
67
+ // ---------------------------------------------------------------------------
68
+ // Component
69
+ // ---------------------------------------------------------------------------
70
+ const Button = React.forwardRef(({ variant = "default", size = "default", label, icon = null, iconPosition = "right", loading = false, disabled = false, onClick, to, href, type = "button", fullWidth = false, className, tooltipProps = null, asChild = false, children, ...otherProps }, ref) => {
71
+ const isIconSize = size.startsWith("icon");
72
+ const renderLabel = isIconSize ? null : label || children;
73
+ const isIconOnly = !renderLabel && !!icon;
74
+ const resolvedSize = isIconOnly ? (ICON_ONLY_SIZE_MAP[size] ?? size) : size;
75
+ // --- Loading / disabled state ---
76
+ const isDisabled = disabled || loading;
77
+ // --- Click handler ---
78
+ const handleClick = (e) => {
79
+ if (loading || disabled) {
80
+ e.preventDefault();
81
+ return;
82
+ }
83
+ onClick?.(e);
84
+ };
85
+ // --- Icon elements ---
86
+ const iconElement = icon ? renderIcon.renderIcon(icon) : null;
87
+ // --- Build the inner content ---
88
+ const buttonContent = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [loading && (jsxRuntime.jsx("span", { className: "absolute inset-0 flex items-center justify-center", children: jsxRuntime.jsx(primitives_Spinner.Spinner, { "aria-hidden": "true", className: SPINNER_SIZE_MAP[resolvedSize] }) })), jsxRuntime.jsxs("span", { className: utils.cn("inline-flex items-center gap-1.5", loading && "invisible"), children: [iconPosition === "left" && iconElement && (jsxRuntime.jsx("span", { "data-icon": "inline-start", children: iconElement })), renderLabel && jsxRuntime.jsx("span", { children: renderLabel }), iconPosition === "right" && iconElement && (jsxRuntime.jsx("span", { "data-icon": "inline-end", children: iconElement }))] })] }));
89
+ // --- Merged className ---
90
+ const mergedClassName = utils.cn(fullWidth && "w-full", loading && "relative pointer-events-none", className);
91
+ // --- Determine render element ---
92
+ let buttonElement;
93
+ if (asChild) {
94
+ buttonElement = (jsxRuntime.jsx(primitives_Button.Button, { ref: ref, asChild: true, variant: variant, size: resolvedSize, className: mergedClassName, disabled: isDisabled, ...otherProps, children: children }));
95
+ }
96
+ else if (!disabled && to) {
97
+ buttonElement = (jsxRuntime.jsx(primitives_Button.Button, { asChild: true, variant: variant, size: resolvedSize, className: mergedClassName, disabled: isDisabled, ...otherProps, children: jsxRuntime.jsx("a", { ref: ref, href: to, onClick: handleClick, children: buttonContent }) }));
98
+ }
99
+ else if (!disabled && href) {
100
+ buttonElement = (jsxRuntime.jsx(primitives_Button.Button, { asChild: true, variant: variant, size: resolvedSize, className: mergedClassName, disabled: isDisabled, ...otherProps, children: jsxRuntime.jsx("a", { ref: ref, href: href, onClick: handleClick, children: buttonContent }) }));
101
+ }
102
+ else {
103
+ buttonElement = (jsxRuntime.jsx(primitives_Button.Button, { ref: ref, type: type, variant: variant, size: resolvedSize, className: mergedClassName, disabled: isDisabled, onClick: handleClick, ...otherProps, children: buttonContent }));
104
+ }
105
+ // --- Tooltip wrapper ---
106
+ if (tooltipProps) {
107
+ const { content, position, disabled: tooltipDisabled } = tooltipProps;
108
+ if (tooltipDisabled || !content) {
109
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: buttonElement });
110
+ }
111
+ const side = position ? TOOLTIP_SIDE_MAP[position] : undefined;
112
+ // Wrap disabled buttons in a span so tooltip still triggers
113
+ const triggerContent = isDisabled ? (jsxRuntime.jsx("span", { className: "inline-flex", children: buttonElement })) : (buttonElement);
114
+ return (jsxRuntime.jsx(primitives_Tooltip.TooltipProvider, { children: jsxRuntime.jsxs(primitives_Tooltip.Tooltip, { children: [jsxRuntime.jsx(primitives_Tooltip.TooltipTrigger, { asChild: true, children: triggerContent }), jsxRuntime.jsx(primitives_Tooltip.TooltipContent, { side: side, children: content })] }) }));
115
+ }
116
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: buttonElement });
117
+ });
118
+ Button.displayName = "Button";
119
+
120
+ exports.Button = Button;
121
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sources":["../../../../src/components/Button.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, type MouseEvent } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\nimport { Button as PrimitiveButton } from \"src/primitives/Button\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype ButtonVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"outline\"\n | \"ghost\"\n | \"link\";\n\ntype ButtonSize =\n | \"default\"\n | \"xs\"\n | \"sm\"\n | \"lg\"\n | \"icon\"\n | \"icon-xs\"\n | \"icon-sm\"\n | \"icon-lg\";\n\ntype IconPosition = \"left\" | \"right\";\n\ntype ButtonType = \"button\" | \"reset\" | \"submit\";\n\ninterface ButtonTooltipProps {\n content?: ReactNode;\n position?: string;\n disabled?: boolean;\n}\n\nexport interface ButtonProps {\n /** Visual variant of the button. */\n variant?: ButtonVariant;\n /** Size of the button. */\n size?: ButtonSize;\n /** Text label rendered inside the button. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: IconPosition;\n /** Show a loading spinner and prevent clicks. */\n loading?: boolean;\n /** Disable the button. */\n disabled?: boolean;\n /** Click handler. */\n onClick?: (e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /** Internal route (react-router `Link`). */\n to?: string;\n /** External URL (renders an anchor tag). */\n href?: string;\n /** HTML button type attribute. */\n type?: ButtonType;\n /** Stretch the button to fill its container. */\n fullWidth?: boolean;\n /** Additional CSS class names. */\n className?: string;\n /** Props forwarded to a wrapping Tooltip. */\n tooltipProps?: ButtonTooltipProps | null;\n /** Render as a custom element (polymorphic). */\n asChild?: boolean;\n /** Children rendered inside the button (fallback for `label`). */\n children?: ReactNode;\n}\n\n// ---------------------------------------------------------------------------\n// Mappings\n// ---------------------------------------------------------------------------\n\nconst ICON_ONLY_SIZE_MAP: Partial<Record<ButtonSize, ButtonSize>> = {\n xs: \"icon-xs\",\n sm: \"icon-sm\",\n default: \"icon\",\n lg: \"icon-lg\",\n};\n\nconst SPINNER_SIZE_MAP: Record<ButtonSize, string> = {\n xs: \"size-3\",\n sm: \"size-3.5\",\n default: \"size-3.5\",\n lg: \"size-4\",\n icon: \"size-3.5\",\n \"icon-xs\": \"size-3\",\n \"icon-sm\": \"size-3.5\",\n \"icon-lg\": \"size-4\",\n};\n\n// Map NeetoUI tooltip `position` values to Radix side values\nconst TOOLTIP_SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n};\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n label,\n icon = null,\n iconPosition = \"right\",\n loading = false,\n disabled = false,\n onClick,\n to,\n href,\n type = \"button\",\n fullWidth = false,\n className,\n tooltipProps = null,\n asChild = false,\n children,\n ...otherProps\n },\n ref\n ) => {\n const isIconSize = size.startsWith(\"icon\");\n const renderLabel = isIconSize ? null : label || children;\n const isIconOnly = !renderLabel && !!icon;\n const resolvedSize = isIconOnly ? (ICON_ONLY_SIZE_MAP[size] ?? size) : size;\n\n // --- Loading / disabled state ---\n const isDisabled = disabled || loading;\n\n // --- Click handler ---\n const handleClick = (\n e: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => {\n if (loading || disabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n // --- Icon elements ---\n const iconElement = icon ? renderIcon(icon) : null;\n\n // --- Build the inner content ---\n const buttonContent = (\n <>\n {loading && (\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner\n aria-hidden=\"true\"\n className={SPINNER_SIZE_MAP[resolvedSize]}\n />\n </span>\n )}\n <span\n className={cn(\n \"inline-flex items-center gap-1.5\",\n loading && \"invisible\"\n )}\n >\n {iconPosition === \"left\" && iconElement && (\n <span data-icon=\"inline-start\">{iconElement}</span>\n )}\n {renderLabel && <span>{renderLabel}</span>}\n {iconPosition === \"right\" && iconElement && (\n <span data-icon=\"inline-end\">{iconElement}</span>\n )}\n </span>\n </>\n );\n\n // --- Merged className ---\n const mergedClassName = cn(\n fullWidth && \"w-full\",\n loading && \"relative pointer-events-none\",\n className\n );\n\n // --- Determine render element ---\n let buttonElement: ReactNode;\n\n if (asChild) {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n {children}\n </PrimitiveButton>\n );\n } else if (!disabled && to) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n href={to}\n onClick={handleClick}\n >\n {buttonContent}\n </a>\n </PrimitiveButton>\n );\n } else if (!disabled && href) {\n buttonElement = (\n <PrimitiveButton\n asChild\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n {...otherProps}\n >\n <a\n ref={ref as React.Ref<HTMLAnchorElement>}\n href={href}\n onClick={handleClick}\n >\n {buttonContent}\n </a>\n </PrimitiveButton>\n );\n } else {\n buttonElement = (\n <PrimitiveButton\n ref={ref}\n type={type}\n variant={variant}\n size={resolvedSize}\n className={mergedClassName}\n disabled={isDisabled}\n onClick={handleClick}\n {...otherProps}\n >\n {buttonContent}\n </PrimitiveButton>\n );\n }\n\n // --- Tooltip wrapper ---\n if (tooltipProps) {\n const { content, position, disabled: tooltipDisabled } = tooltipProps;\n\n if (tooltipDisabled || !content) {\n return <>{buttonElement}</>;\n }\n\n const side = position ? TOOLTIP_SIDE_MAP[position] : undefined;\n\n // Wrap disabled buttons in a span so tooltip still triggers\n const triggerContent = isDisabled ? (\n <span className=\"inline-flex\">{buttonElement}</span>\n ) : (\n buttonElement\n );\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{triggerContent}</TooltipTrigger>\n <TooltipContent side={side}>{content}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return <>{buttonElement}</>;\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button };\n"],"names":["forwardRef","renderIcon","_jsxs","_Fragment","_jsx","Spinner","cn","PrimitiveButton","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('../utils-CTr7wn5d.js');
6
+ var primitives_Checkbox = require('../primitives/Checkbox.js');
7
+ var primitives_Field = require('../primitives/Field.js');
8
+ require('../check-BQgcDXys.js');
9
+ require('../createLucideIcon-D0tRgV6l.js');
10
+ require('../index-D-iDn9RI.js');
11
+ require('../index-CGUGhyIp.js');
12
+ require('../index-COPkC3I5.js');
13
+ require('../index-CyrAgb4H.js');
14
+ require('../index-CCdG4z4E.js');
15
+ require('../index-CF951Pw9.js');
16
+ require('../index-Bf0WsHta.js');
17
+ require('../index-DcCSSgb7.js');
18
+ require('../index-DMbj7vXd.js');
19
+ require('react-dom');
20
+ require('../index-BZhTddX0.js');
21
+ require('../label-Bdc9ytTI.js');
22
+ require('../separator-CPy2gyg1.js');
23
+
24
+ // ---------------------------------------------------------------------------
25
+ // Component
26
+ // ---------------------------------------------------------------------------
27
+ const Checkbox = React.forwardRef(({ label, error, helpText, required = false, disabled = false, className, ...otherProps }, ref) => {
28
+ const generatedId = React.useId();
29
+ const id = otherProps.id ?? generatedId;
30
+ const errorId = `error_${id}`;
31
+ const helpTextId = `helpText_${id}`;
32
+ const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
33
+ .filter(Boolean)
34
+ .join(" ") || undefined;
35
+ const hasField = !!(label || error || helpText);
36
+ if (!hasField) {
37
+ return (jsxRuntime.jsx(primitives_Checkbox.Checkbox, { ref: ref, id: id, disabled: disabled, "aria-invalid": !!error || undefined, "aria-required": required || undefined, "aria-describedby": ariaDescribedBy, className: className, ...otherProps }));
38
+ }
39
+ return (jsxRuntime.jsxs("div", { className: utils.cn("flex flex-col gap-1", className), "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, children: [jsxRuntime.jsxs(primitives_Field.Field, { orientation: "horizontal", children: [jsxRuntime.jsx(primitives_Checkbox.Checkbox, { ref: ref, id: id, disabled: disabled, "aria-invalid": !!error || undefined, "aria-required": required || undefined, "aria-describedby": ariaDescribedBy, ...otherProps }), jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [label && (jsxRuntime.jsxs(primitives_Field.FieldLabel, { htmlFor: id, children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, children: helpText }))] })] }), error && jsxRuntime.jsx(primitives_Field.FieldError, { id: errorId, children: error })] }));
40
+ });
41
+ Checkbox.displayName = "Checkbox";
42
+
43
+ exports.Checkbox = Checkbox;
44
+ //# sourceMappingURL=Checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../../src/components/Checkbox.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { Checkbox as PrimitiveCheckbox } from \"src/primitives/Checkbox\";\nimport {\n Field,\n FieldContent,\n FieldLabel,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface CheckboxProps extends React.ComponentProps<\n typeof PrimitiveCheckbox\n> {\n /** Text displayed next to the checkbox. */\n label?: string;\n /** Error message displayed below the checkbox. */\n error?: string;\n /** Helper text displayed below the label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Shows a required indicator next to the label. */\n required?: boolean;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Checkbox = forwardRef<\n React.ComponentRef<typeof PrimitiveCheckbox>,\n CheckboxProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n disabled = false,\n className,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = otherProps.id ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const hasField = !!(label || error || helpText);\n\n if (!hasField) {\n return (\n <PrimitiveCheckbox\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n aria-describedby={ariaDescribedBy}\n className={className}\n {...otherProps}\n />\n );\n }\n\n return (\n <div\n className={cn(\"flex flex-col gap-1\", className)}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n >\n <Field orientation=\"horizontal\">\n <PrimitiveCheckbox\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-required={required || undefined}\n aria-describedby={ariaDescribedBy}\n {...otherProps}\n />\n <FieldContent>\n {label && (\n <FieldLabel htmlFor={id}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n {error && <FieldError id={errorId}>{error}</FieldError>}\n </div>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport { Checkbox };\n"],"names":["forwardRef","useId","_jsx","PrimitiveCheckbox","_jsxs","cn","Field","FieldContent","FieldLabel","FieldDescription","FieldError"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+BA;AACA;AACA;AAEA,MAAM,QAAQ,GAAGA,gBAAU,CAIzB,CACE,EACE,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,GAAG,UAAU,EACd,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAGC,WAAK,EAAE;AAC3B,IAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,WAAW;AACvC,IAAA,MAAM,OAAO,GAAG,CAAA,MAAA,EAAS,EAAE,EAAE;AAC7B,IAAA,MAAM,UAAU,GAAG,CAAA,SAAA,EAAY,EAAE,EAAE;IAEnC,MAAM,eAAe,GACnB,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI;SAClD,MAAM,CAAC,OAAO;AACd,SAAA,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS;IAE3B,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QACEC,cAAA,CAACC,4BAAiB,EAAA,EAChB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,eAAA,EACnB,QAAQ,IAAI,SAAS,EAAA,kBAAA,EAClB,eAAe,EACjC,SAAS,EAAE,SAAS,EAAA,GAChB,UAAU,EAAA,CACd;IAEN;IAEA,QACEC,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,QAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,EAAA,eAAA,EAChC,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,QAAA,EAAA,CAElCD,eAAA,CAACE,sBAAK,EAAA,EAAC,WAAW,EAAC,YAAY,EAAA,QAAA,EAAA,CAC7BJ,eAACC,4BAAiB,EAAA,EAChB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,eAAA,EACnB,QAAQ,IAAI,SAAS,EAAA,kBAAA,EAClB,eAAe,EAAA,GAC7B,UAAU,EAAA,CACd,EACFC,gBAACG,6BAAY,EAAA,EAAA,QAAA,EAAA,CACV,KAAK,KACJH,eAAA,CAACI,2BAAU,EAAA,EAAC,OAAO,EAAE,EAAE,EAAA,QAAA,EAAA,CACpB,KAAK,EACL,QAAQ,KACPN,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACU,CACd,EACA,QAAQ,KACPA,cAAA,CAACO,iCAAgB,EAAA,EAAC,EAAE,EAAE,UAAU,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAoB,CAChE,CAAA,EAAA,CACY,CAAA,EAAA,CACT,EACP,KAAK,IAAIP,cAAA,CAACQ,2BAAU,EAAA,EAAC,EAAE,EAAE,OAAO,EAAA,QAAA,EAAG,KAAK,EAAA,CAAc,CAAA,EAAA,CACnD;AAEV,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var ColorPicker = require('../ColorPicker-DN8aynGh.js');
4
+ require('react/jsx-runtime');
5
+ require('react');
6
+ require('../primitives/Button.js');
7
+ require('../button-B8XGl69v.js');
8
+ require('../index-BZhTddX0.js');
9
+ require('../utils-CTr7wn5d.js');
10
+ require('../index-DuNgWCXZ.js');
11
+ require('../index-D-iDn9RI.js');
12
+ require('../primitives/Popover.js');
13
+ require('../index-COPkC3I5.js');
14
+ require('../index-CGUGhyIp.js');
15
+ require('../index-Bvu9MiFi.js');
16
+ require('../index-DMbj7vXd.js');
17
+ require('react-dom');
18
+ require('../index-lWVw05cs.js');
19
+ require('../index-ChSOMM8b.js');
20
+ require('../index-BwAq9ba8.js');
21
+ require('../index-CCdG4z4E.js');
22
+ require('../index-C9ICrOhM.js');
23
+ require('../floating-ui.react-dom-B4Aw6O7R.js');
24
+ require('../index-Bf0WsHta.js');
25
+ require('../index-Df-Ffa3s.js');
26
+ require('../index-DcCSSgb7.js');
27
+ require('../index-CyrAgb4H.js');
28
+ require('../chevron-down-CPsWSS51.js');
29
+ require('../createLucideIcon-D0tRgV6l.js');
30
+
31
+
32
+
33
+ exports.ColorPicker = ColorPicker.ColorPicker;
34
+ //# sourceMappingURL=ColorPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPicker.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var DataTable = require('../DataTable-DJw2SZ7b.js');
3
+ var DataTable = require('../DataTable-BQt_mXDX.js');
4
4
  require('react/jsx-runtime');
5
5
  require('react');
6
6
  require('../primitives/Table.js');
@@ -29,7 +29,7 @@ require('../ellipsis-4aubOI2n.js');
29
29
  require('../chevron-right-0jNdwX2Q.js');
30
30
  require('../chevron-left-BldoOh5p.js');
31
31
  require('../primitives/DropdownMenu.js');
32
- require('../index-CGet1HH4.js');
32
+ require('../index-PdtYHwPi.js');
33
33
  require('../index-Ch55j1or.js');
34
34
  require('../index-9jC1advf.js');
35
35
  require('../index-Bvu9MiFi.js');
@@ -39,7 +39,7 @@ require('../index-BwAq9ba8.js');
39
39
  require('../index-C9ICrOhM.js');
40
40
  require('../floating-ui.react-dom-B4Aw6O7R.js');
41
41
  require('../index-Df-Ffa3s.js');
42
- require('../index-DR7GJU4J.js');
42
+ require('../index-hQmfI1O7.js');
43
43
 
44
44
 
45
45