@bigbinary/neeto-atoms 1.0.7 → 1.0.9

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 (393) hide show
  1. package/dist/ColorPicker-D-7QGnf9.js +277 -0
  2. package/dist/ColorPicker-D-7QGnf9.js.map +1 -0
  3. package/dist/{DataTable-Y4POx0WN.js → DataTable-DWR9gX9d.js} +146 -138
  4. package/dist/DataTable-DWR9gX9d.js.map +1 -0
  5. package/dist/TranslationProvider-Ba9rn47H.js +96 -0
  6. package/dist/TranslationProvider-Ba9rn47H.js.map +1 -0
  7. package/dist/cjs/ColorPicker-DEELmqH8.js +279 -0
  8. package/dist/cjs/ColorPicker-DEELmqH8.js.map +1 -0
  9. package/dist/cjs/{DataTable-DJw2SZ7b.js → DataTable-CWs96k8n.js} +146 -138
  10. package/dist/cjs/DataTable-CWs96k8n.js.map +1 -0
  11. package/dist/cjs/TranslationProvider-DBZHXmzX.js +103 -0
  12. package/dist/cjs/TranslationProvider-DBZHXmzX.js.map +1 -0
  13. package/dist/cjs/components/Accordion.js +49 -0
  14. package/dist/cjs/components/Accordion.js.map +1 -0
  15. package/dist/cjs/components/Alert.js +105 -0
  16. package/dist/cjs/components/Alert.js.map +1 -0
  17. package/dist/cjs/components/Avatar.js +75 -0
  18. package/dist/cjs/components/Avatar.js.map +1 -0
  19. package/dist/cjs/components/Badge.js +73 -0
  20. package/dist/cjs/components/Badge.js.map +1 -0
  21. package/dist/cjs/components/Button.js +122 -0
  22. package/dist/cjs/components/Button.js.map +1 -0
  23. package/dist/cjs/components/Callout.js +73 -0
  24. package/dist/cjs/components/Callout.js.map +1 -0
  25. package/dist/cjs/components/Checkbox.js +44 -0
  26. package/dist/cjs/components/Checkbox.js.map +1 -0
  27. package/dist/cjs/components/ColorPicker.js +36 -0
  28. package/dist/cjs/components/ColorPicker.js.map +1 -0
  29. package/dist/cjs/components/DataTable.js +4 -3
  30. package/dist/cjs/components/DataTable.js.map +1 -1
  31. package/dist/cjs/components/Dialog.js +89 -0
  32. package/dist/cjs/components/Dialog.js.map +1 -0
  33. package/dist/cjs/components/DropdownMenu.js +182 -0
  34. package/dist/cjs/components/DropdownMenu.js.map +1 -0
  35. package/dist/cjs/components/Empty.js +59 -0
  36. package/dist/cjs/components/Empty.js.map +1 -0
  37. package/dist/cjs/components/Input.js +167 -0
  38. package/dist/cjs/components/Input.js.map +1 -0
  39. package/dist/cjs/components/Kbd.js +63 -0
  40. package/dist/cjs/components/Kbd.js.map +1 -0
  41. package/dist/cjs/components/Label.js +91 -0
  42. package/dist/cjs/components/Label.js.map +1 -0
  43. package/dist/cjs/components/MultiSelect.js +13 -0
  44. package/dist/cjs/components/MultiSelect.js.map +1 -0
  45. package/dist/cjs/components/MultiSelectCombobox.js +3 -0
  46. package/dist/cjs/components/MultiSelectCombobox.js.map +1 -0
  47. package/dist/cjs/components/MultiSelectDropdown.js +38 -0
  48. package/dist/cjs/components/MultiSelectDropdown.js.map +1 -0
  49. package/dist/cjs/components/OptionItem.js +34 -0
  50. package/dist/cjs/components/OptionItem.js.map +1 -0
  51. package/dist/cjs/components/Popover.js +123 -0
  52. package/dist/cjs/components/Popover.js.map +1 -0
  53. package/dist/cjs/components/Progress.js +22 -0
  54. package/dist/cjs/components/Progress.js.map +1 -0
  55. package/dist/cjs/components/RadioGroup.js +63 -0
  56. package/dist/cjs/components/RadioGroup.js.map +1 -0
  57. package/dist/cjs/components/Select.js +3 -0
  58. package/dist/cjs/components/Select.js.map +1 -0
  59. package/dist/cjs/components/SelectFieldWrapper.js +33 -0
  60. package/dist/cjs/components/SelectFieldWrapper.js.map +1 -0
  61. package/dist/cjs/components/SelectOptions.js +43 -0
  62. package/dist/cjs/components/SelectOptions.js.map +1 -0
  63. package/dist/cjs/components/SelectTriggerContent.js +47 -0
  64. package/dist/cjs/components/SelectTriggerContent.js.map +1 -0
  65. package/dist/cjs/components/Sheet.js +91 -0
  66. package/dist/cjs/components/Sheet.js.map +1 -0
  67. package/dist/cjs/components/Slider.js +45 -0
  68. package/dist/cjs/components/Slider.js.map +1 -0
  69. package/dist/cjs/components/Spinner.js +27 -0
  70. package/dist/cjs/components/Spinner.js.map +1 -0
  71. package/dist/cjs/components/Stepper.js +39 -0
  72. package/dist/cjs/components/Stepper.js.map +1 -0
  73. package/dist/cjs/components/Switch.js +35 -0
  74. package/dist/cjs/components/Switch.js.map +1 -0
  75. package/dist/cjs/components/Tabs.js +74 -0
  76. package/dist/cjs/components/Tabs.js.map +1 -0
  77. package/dist/cjs/components/Textarea.js +89 -0
  78. package/dist/cjs/components/Textarea.js.map +1 -0
  79. package/dist/cjs/components/Toastr.js +133 -0
  80. package/dist/cjs/components/Toastr.js.map +1 -0
  81. package/dist/cjs/components/Tooltip.js +109 -0
  82. package/dist/cjs/components/Tooltip.js.map +1 -0
  83. package/dist/cjs/components/TranslationProvider.js +12 -0
  84. package/dist/cjs/components/TranslationProvider.js.map +1 -0
  85. package/dist/cjs/{primitives → components}/Typography.js +6 -6
  86. package/dist/cjs/components/Typography.js.map +1 -0
  87. package/dist/cjs/components/shared.js +8 -0
  88. package/dist/cjs/components/shared.js.map +1 -0
  89. package/dist/cjs/{dialog-DzNWLbJ6.js → dialog-Bvyrshz3.js} +5 -3
  90. package/dist/cjs/dialog-Bvyrshz3.js.map +1 -0
  91. package/dist/cjs/{index-DAds6mf_.js → index-BLGrl3PF.js} +31 -31
  92. package/dist/cjs/{index-DAds6mf_.js.map → index-BLGrl3PF.js.map} +1 -1
  93. package/dist/cjs/{index-BqCr1H3u.js → index-BiGm7NEA.js} +11 -11
  94. package/dist/cjs/{index-BqCr1H3u.js.map → index-BiGm7NEA.js.map} +1 -1
  95. package/dist/cjs/{index-CGet1HH4.js → index-PdtYHwPi.js} +66 -66
  96. package/dist/cjs/{index-CGet1HH4.js.map → index-PdtYHwPi.js.map} +1 -1
  97. package/dist/cjs/index-Vlwnyfvs.js +1145 -0
  98. package/dist/cjs/index-Vlwnyfvs.js.map +1 -0
  99. package/dist/cjs/{index-DR7GJU4J.js → index-hQmfI1O7.js} +17 -17
  100. package/dist/cjs/{index-DR7GJU4J.js.map → index-hQmfI1O7.js.map} +1 -1
  101. package/dist/cjs/index.js +497 -26
  102. package/dist/cjs/index.js.map +1 -1
  103. package/dist/cjs/primitives/Accordion.js +16 -16
  104. package/dist/cjs/primitives/Accordion.js.map +1 -1
  105. package/dist/cjs/primitives/AlertDialog.js +1 -1
  106. package/dist/cjs/primitives/Badge.js +58 -6
  107. package/dist/cjs/primitives/Badge.js.map +1 -1
  108. package/dist/cjs/primitives/Breadcrumb.js +5 -2
  109. package/dist/cjs/primitives/Breadcrumb.js.map +1 -1
  110. package/dist/cjs/primitives/Carousel.js +5 -2
  111. package/dist/cjs/primitives/Carousel.js.map +1 -1
  112. package/dist/cjs/primitives/Chart.js +137 -137
  113. package/dist/cjs/primitives/Chart.js.map +1 -1
  114. package/dist/cjs/primitives/Collapsible.js +1 -1
  115. package/dist/cjs/primitives/Combobox.js +4 -4
  116. package/dist/cjs/primitives/Combobox.js.map +1 -1
  117. package/dist/cjs/primitives/Command.js +7 -3
  118. package/dist/cjs/primitives/Command.js.map +1 -1
  119. package/dist/cjs/primitives/ContextMenu.js +2 -2
  120. package/dist/cjs/primitives/Dialog.js +11 -6
  121. package/dist/cjs/primitives/Dialog.js.map +1 -1
  122. package/dist/cjs/primitives/Drawer.js +1 -1
  123. package/dist/cjs/primitives/DropdownMenu.js +38 -38
  124. package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
  125. package/dist/cjs/primitives/HoverCard.js +16 -16
  126. package/dist/cjs/primitives/Menubar.js +2 -2
  127. package/dist/cjs/primitives/Pagination.js +11 -5
  128. package/dist/cjs/primitives/Pagination.js.map +1 -1
  129. package/dist/cjs/primitives/Popover.js +13 -13
  130. package/dist/cjs/primitives/RadioGroup.js +27 -26
  131. package/dist/cjs/primitives/RadioGroup.js.map +1 -1
  132. package/dist/cjs/primitives/Select.js +77 -77
  133. package/dist/cjs/primitives/Sheet.js +11 -6
  134. package/dist/cjs/primitives/Sheet.js.map +1 -1
  135. package/dist/cjs/primitives/Sidebar.js +10 -6
  136. package/dist/cjs/primitives/Sidebar.js.map +1 -1
  137. package/dist/cjs/primitives/Sonner.js +19 -1180
  138. package/dist/cjs/primitives/Sonner.js.map +1 -1
  139. package/dist/cjs/primitives/Spinner.js +3 -1
  140. package/dist/cjs/primitives/Spinner.js.map +1 -1
  141. package/dist/cjs/primitives/Switch.js +4 -8
  142. package/dist/cjs/primitives/Switch.js.map +1 -1
  143. package/dist/cjs/primitives/Tabs.js +11 -11
  144. package/dist/cjs/primitives/ToggleGroup.js +1 -1
  145. package/dist/cjs/primitives/Tooltip.js +1 -1
  146. package/dist/cjs/primitives/index.js +11 -11
  147. package/dist/cjs/renderIcon-fLF3odqg.js +26 -0
  148. package/dist/cjs/renderIcon-fLF3odqg.js.map +1 -0
  149. package/dist/cjs/{sheet-nHSYZxAA.js → sheet-BZHMKVH1.js} +5 -3
  150. package/dist/cjs/sheet-BZHMKVH1.js.map +1 -0
  151. package/dist/cjs/{tooltip-CRkOMh1b.js → tooltip-C-568jEL.js} +17 -17
  152. package/dist/cjs/{tooltip-CRkOMh1b.js.map → tooltip-C-568jEL.js.map} +1 -1
  153. package/dist/cjs/triangle-alert-ZUMRpmzW.js +43 -0
  154. package/dist/cjs/triangle-alert-ZUMRpmzW.js.map +1 -0
  155. package/dist/cjs/useCreatableItems-BTHtd7uo.js +100 -0
  156. package/dist/cjs/useCreatableItems-BTHtd7uo.js.map +1 -0
  157. package/dist/cjs/{reselect-CeyIIDM-.js → with-selector-u4xTSzCv.js} +111 -111
  158. package/dist/cjs/with-selector-u4xTSzCv.js.map +1 -0
  159. package/dist/components/Accordion.d.ts +18 -0
  160. package/dist/components/Accordion.js +43 -0
  161. package/dist/components/Accordion.js.map +1 -0
  162. package/dist/components/Alert.d.ts +51 -0
  163. package/dist/components/Alert.js +103 -0
  164. package/dist/components/Alert.js.map +1 -0
  165. package/dist/components/Avatar.d.ts +31 -0
  166. package/dist/components/Avatar.js +73 -0
  167. package/dist/components/Avatar.js.map +1 -0
  168. package/dist/components/Badge.d.ts +29 -0
  169. package/dist/components/Badge.js +71 -0
  170. package/dist/components/Badge.js.map +1 -0
  171. package/dist/components/Button.d.ts +47 -0
  172. package/dist/components/Button.js +120 -0
  173. package/dist/components/Button.js.map +1 -0
  174. package/dist/components/Callout.d.ts +17 -0
  175. package/dist/components/Callout.js +71 -0
  176. package/dist/components/Callout.js.map +1 -0
  177. package/dist/components/Checkbox.d.ts +16 -0
  178. package/dist/components/Checkbox.js +42 -0
  179. package/dist/components/Checkbox.js.map +1 -0
  180. package/dist/components/ColorPicker/ColorPicker.d.ts +4 -0
  181. package/dist/components/ColorPicker/Palette.d.ts +12 -0
  182. package/dist/components/ColorPicker/Target.d.ts +15 -0
  183. package/dist/components/ColorPicker/constants.d.ts +10 -0
  184. package/dist/components/ColorPicker/hooks/useEyeDropper.d.ts +15 -0
  185. package/dist/components/ColorPicker/hooks/useRecentlyUsedColors.d.ts +11 -0
  186. package/dist/components/ColorPicker/index.d.ts +2 -0
  187. package/dist/components/ColorPicker/types.d.ts +42 -0
  188. package/dist/components/ColorPicker/utils.d.ts +31 -0
  189. package/dist/components/ColorPicker.js +30 -0
  190. package/dist/components/ColorPicker.js.map +1 -0
  191. package/dist/components/DataTable/components/EmptyState.d.ts +1 -1
  192. package/dist/components/DataTable.js +3 -2
  193. package/dist/components/DataTable.js.map +1 -1
  194. package/dist/components/Dialog.d.ts +56 -0
  195. package/dist/components/Dialog.js +87 -0
  196. package/dist/components/Dialog.js.map +1 -0
  197. package/dist/components/DropdownMenu/Divider.d.ts +3 -0
  198. package/dist/components/DropdownMenu/DropdownBase.d.ts +3 -0
  199. package/dist/components/DropdownMenu/Label.d.ts +7 -0
  200. package/dist/components/DropdownMenu/Menu.d.ts +7 -0
  201. package/dist/components/DropdownMenu/MenuItem.d.ts +10 -0
  202. package/dist/components/DropdownMenu/MenuItemButton.d.ts +4 -0
  203. package/dist/components/DropdownMenu/SplitTrigger.d.ts +13 -0
  204. package/dist/components/DropdownMenu/SubMenu.d.ts +10 -0
  205. package/dist/components/DropdownMenu/TriggerButton.d.ts +10 -0
  206. package/dist/components/DropdownMenu/constants.d.ts +7 -0
  207. package/dist/components/DropdownMenu/index.d.ts +16 -0
  208. package/dist/components/DropdownMenu/types.d.ts +88 -0
  209. package/dist/components/DropdownMenu.js +180 -0
  210. package/dist/components/DropdownMenu.js.map +1 -0
  211. package/dist/components/Empty.d.ts +27 -0
  212. package/dist/components/Empty.js +57 -0
  213. package/dist/components/Empty.js.map +1 -0
  214. package/dist/components/Input.d.ts +39 -0
  215. package/dist/components/Input.js +165 -0
  216. package/dist/components/Input.js.map +1 -0
  217. package/dist/components/Kbd.d.ts +15 -0
  218. package/dist/components/Kbd.js +61 -0
  219. package/dist/components/Kbd.js.map +1 -0
  220. package/dist/components/Label.d.ts +40 -0
  221. package/dist/components/Label.js +89 -0
  222. package/dist/components/Label.js.map +1 -0
  223. package/dist/components/MultiSelect.constants.d.ts +5 -0
  224. package/dist/components/MultiSelect.d.ts +4 -0
  225. package/dist/components/MultiSelect.js +4 -0
  226. package/dist/components/MultiSelect.js.map +1 -0
  227. package/dist/components/MultiSelect.types.d.ts +121 -0
  228. package/dist/components/MultiSelect.utils.d.ts +18 -0
  229. package/dist/components/MultiSelectCombobox.d.ts +3 -0
  230. package/dist/components/MultiSelectCombobox.js +2 -0
  231. package/dist/components/MultiSelectCombobox.js.map +1 -0
  232. package/dist/components/MultiSelectCombobox.types.d.ts +52 -0
  233. package/dist/components/MultiSelectDropdown.d.ts +9 -0
  234. package/dist/components/MultiSelectDropdown.js +36 -0
  235. package/dist/components/MultiSelectDropdown.js.map +1 -0
  236. package/dist/components/OptionItem.d.ts +9 -0
  237. package/dist/components/OptionItem.js +32 -0
  238. package/dist/components/OptionItem.js.map +1 -0
  239. package/dist/components/Popover.d.ts +47 -0
  240. package/dist/components/Popover.js +117 -0
  241. package/dist/components/Popover.js.map +1 -0
  242. package/dist/components/Progress.d.ts +12 -0
  243. package/dist/components/Progress.js +20 -0
  244. package/dist/components/Progress.js.map +1 -0
  245. package/dist/components/RadioGroup.d.ts +32 -0
  246. package/dist/components/RadioGroup.js +61 -0
  247. package/dist/components/RadioGroup.js.map +1 -0
  248. package/dist/components/Select.constants.d.ts +5 -0
  249. package/dist/components/Select.d.ts +4 -0
  250. package/dist/components/Select.js +2 -0
  251. package/dist/components/Select.js.map +1 -0
  252. package/dist/components/Select.types.d.ts +58 -0
  253. package/dist/components/SelectFieldWrapper.d.ts +18 -0
  254. package/dist/components/SelectFieldWrapper.js +31 -0
  255. package/dist/components/SelectFieldWrapper.js.map +1 -0
  256. package/dist/components/SelectOptions.d.ts +2 -0
  257. package/dist/components/SelectOptions.js +41 -0
  258. package/dist/components/SelectOptions.js.map +1 -0
  259. package/dist/components/SelectTriggerContent.d.ts +18 -0
  260. package/dist/components/SelectTriggerContent.js +45 -0
  261. package/dist/components/SelectTriggerContent.js.map +1 -0
  262. package/dist/components/Sheet.d.ts +54 -0
  263. package/dist/components/Sheet.js +89 -0
  264. package/dist/components/Sheet.js.map +1 -0
  265. package/dist/components/Slider.d.ts +19 -0
  266. package/dist/components/Slider.js +43 -0
  267. package/dist/components/Slider.js.map +1 -0
  268. package/dist/components/Spinner.d.ts +10 -0
  269. package/dist/components/Spinner.js +25 -0
  270. package/dist/components/Spinner.js.map +1 -0
  271. package/dist/components/Stepper.d.ts +18 -0
  272. package/dist/components/Stepper.js +33 -0
  273. package/dist/components/Stepper.js.map +1 -0
  274. package/dist/components/Switch.d.ts +18 -0
  275. package/dist/components/Switch.js +33 -0
  276. package/dist/components/Switch.js.map +1 -0
  277. package/dist/components/Tabs.d.ts +20 -0
  278. package/dist/components/Tabs.js +72 -0
  279. package/dist/components/Tabs.js.map +1 -0
  280. package/dist/components/Textarea.d.ts +36 -0
  281. package/dist/components/Textarea.js +87 -0
  282. package/dist/components/Textarea.js.map +1 -0
  283. package/dist/components/Toastr.d.ts +30 -0
  284. package/dist/components/Toastr.js +131 -0
  285. package/dist/components/Toastr.js.map +1 -0
  286. package/dist/components/Tooltip.d.ts +29 -0
  287. package/dist/components/Tooltip.js +103 -0
  288. package/dist/components/Tooltip.js.map +1 -0
  289. package/dist/components/TranslationProvider/TranslationProvider.d.ts +6 -0
  290. package/dist/components/TranslationProvider/i18n.d.ts +1 -0
  291. package/dist/components/TranslationProvider/index.d.ts +2 -0
  292. package/dist/components/TranslationProvider/types.d.ts +7 -0
  293. package/dist/components/TranslationProvider.js +6 -0
  294. package/dist/components/TranslationProvider.js.map +1 -0
  295. package/dist/{primitives → components}/Typography.d.ts +3 -3
  296. package/dist/{primitives → components}/Typography.js +6 -6
  297. package/dist/components/Typography.js.map +1 -0
  298. package/dist/components/shared.js +6 -0
  299. package/dist/components/shared.js.map +1 -0
  300. package/dist/components/shared.types.d.ts +16 -0
  301. package/dist/{dialog-C97DOTvO.js → dialog-CrB6N_2a.js} +6 -4
  302. package/dist/dialog-CrB6N_2a.js.map +1 -0
  303. package/dist/hooks/useAsyncOptions.d.ts +13 -0
  304. package/dist/hooks/useCreatableItems.d.ts +30 -0
  305. package/dist/hooks/useLazyLoadSentinel.d.ts +6 -0
  306. package/dist/hooks/useMultiSelectOptions.d.ts +15 -0
  307. package/dist/hooks/useMultiSelectState.d.ts +37 -0
  308. package/dist/hooks/useSelectState.d.ts +27 -0
  309. package/dist/{index-PF0ms7Xn.js → index-9HvIbmnI.js} +3 -3
  310. package/dist/{index-PF0ms7Xn.js.map → index-9HvIbmnI.js.map} +1 -1
  311. package/dist/index-D_roZz8G.js +1137 -0
  312. package/dist/index-D_roZz8G.js.map +1 -0
  313. package/dist/{index-BwxI_qgh.js → index-KzJfsx-e.js} +3 -3
  314. package/dist/{index-BwxI_qgh.js.map → index-KzJfsx-e.js.map} +1 -1
  315. package/dist/index.css +25 -1
  316. package/dist/index.d.ts +61 -0
  317. package/dist/index.js +463 -24
  318. package/dist/index.js.map +1 -1
  319. package/dist/{input-group-CDBpz6Pb.js → input-group-ytECR3Hw.js} +2 -2
  320. package/dist/{input-group-CDBpz6Pb.js.map → input-group-ytECR3Hw.js.map} +1 -1
  321. package/dist/lib/renderIcon.d.ts +5 -0
  322. package/dist/primitives/Accordion.js +1 -1
  323. package/dist/primitives/AlertDialog.js +1 -1
  324. package/dist/primitives/Badge.d.ts +13 -3
  325. package/dist/primitives/Badge.js +54 -2
  326. package/dist/primitives/Badge.js.map +1 -1
  327. package/dist/primitives/Breadcrumb.js +5 -2
  328. package/dist/primitives/Breadcrumb.js.map +1 -1
  329. package/dist/primitives/Carousel.js +5 -2
  330. package/dist/primitives/Carousel.js.map +1 -1
  331. package/dist/primitives/Chart.js +1 -1
  332. package/dist/primitives/Combobox.js +3 -3
  333. package/dist/primitives/Command.js +8 -4
  334. package/dist/primitives/Command.js.map +1 -1
  335. package/dist/primitives/ContextMenu.js +1 -1
  336. package/dist/primitives/Dialog.d.ts +11 -3
  337. package/dist/primitives/Dialog.js +12 -7
  338. package/dist/primitives/Dialog.js.map +1 -1
  339. package/dist/primitives/Drawer.js +1 -1
  340. package/dist/primitives/DropdownMenu.js +2 -2
  341. package/dist/primitives/InputGroup.js +1 -1
  342. package/dist/primitives/Menubar.js +1 -1
  343. package/dist/primitives/Pagination.js +11 -5
  344. package/dist/primitives/Pagination.js.map +1 -1
  345. package/dist/primitives/RadioGroup.d.ts +8 -3
  346. package/dist/primitives/RadioGroup.js +9 -8
  347. package/dist/primitives/RadioGroup.js.map +1 -1
  348. package/dist/primitives/Select.js +3 -3
  349. package/dist/primitives/Sheet.d.ts +12 -3
  350. package/dist/primitives/Sheet.js +12 -7
  351. package/dist/primitives/Sheet.js.map +1 -1
  352. package/dist/primitives/Sidebar.js +10 -6
  353. package/dist/primitives/Sidebar.js.map +1 -1
  354. package/dist/primitives/Sonner.js +16 -1175
  355. package/dist/primitives/Sonner.js.map +1 -1
  356. package/dist/primitives/Spinner.js +3 -1
  357. package/dist/primitives/Spinner.js.map +1 -1
  358. package/dist/primitives/Switch.d.ts +6 -3
  359. package/dist/primitives/Switch.js +4 -8
  360. package/dist/primitives/Switch.js.map +1 -1
  361. package/dist/primitives/Tooltip.js +1 -1
  362. package/dist/primitives/index.d.ts +0 -1
  363. package/dist/primitives/index.js +10 -8
  364. package/dist/primitives/index.js.map +1 -1
  365. package/dist/renderIcon-tlvMyboj.js +20 -0
  366. package/dist/renderIcon-tlvMyboj.js.map +1 -0
  367. package/dist/shadcn/components/command.d.ts +1 -1
  368. package/dist/shadcn/components/pagination.d.ts +2 -2
  369. package/dist/shadcn/components/typography.d.ts +6 -6
  370. package/dist/{sheet-D1ngftfX.js → sheet-C763FqIh.js} +6 -4
  371. package/dist/sheet-C763FqIh.js.map +1 -0
  372. package/dist/{tooltip-D5soNrAP.js → tooltip-DzjIJacP.js} +3 -3
  373. package/dist/{tooltip-D5soNrAP.js.map → tooltip-DzjIJacP.js.map} +1 -1
  374. package/dist/translations/index.d.ts +66 -0
  375. package/dist/triangle-alert-PXnNWQy_.js +40 -0
  376. package/dist/triangle-alert-PXnNWQy_.js.map +1 -0
  377. package/dist/useCreatableItems-B0seQA1_.js +89 -0
  378. package/dist/useCreatableItems-B0seQA1_.js.map +1 -0
  379. package/dist/utils/fieldIds.d.ts +2 -0
  380. package/dist/utils/hyphenize.d.ts +1 -0
  381. package/dist/{reselect-CABQm5hA.js → with-selector--fY1NrB9.js} +111 -111
  382. package/dist/with-selector--fY1NrB9.js.map +1 -0
  383. package/package.json +39 -34
  384. package/dist/DataTable-Y4POx0WN.js.map +0 -1
  385. package/dist/cjs/DataTable-DJw2SZ7b.js.map +0 -1
  386. package/dist/cjs/dialog-DzNWLbJ6.js.map +0 -1
  387. package/dist/cjs/primitives/Typography.js.map +0 -1
  388. package/dist/cjs/reselect-CeyIIDM-.js.map +0 -1
  389. package/dist/cjs/sheet-nHSYZxAA.js.map +0 -1
  390. package/dist/dialog-C97DOTvO.js.map +0 -1
  391. package/dist/primitives/Typography.js.map +0 -1
  392. package/dist/reselect-CABQm5hA.js.map +0 -1
  393. package/dist/sheet-D1ngftfX.js.map +0 -1
@@ -0,0 +1,91 @@
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_Sheet = require('../primitives/Sheet.js');
7
+ require('../button-B8XGl69v.js');
8
+ require('../index-BZhTddX0.js');
9
+ require('../index-DuNgWCXZ.js');
10
+ require('../index-D-iDn9RI.js');
11
+ require('../sheet-BZHMKVH1.js');
12
+ require('react-i18next');
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
+
29
+ // ---------------------------------------------------------------------------
30
+ // Size mapping
31
+ // ---------------------------------------------------------------------------
32
+ // Uses data-[side] selector to match primitive specificity so tailwind-merge
33
+ // can override the default sm:max-w-sm from the primitive.
34
+ const SIZE_CLASS_MAP = {
35
+ small: "data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
36
+ large: "data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg",
37
+ extraLarge: "data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl",
38
+ };
39
+ const SheetHeader = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetHeader, { ref: ref, className: utils.cn(className), "data-testid": "sheet-header", ...otherProps, children: children })));
40
+ SheetHeader.displayName = "Sheet.Header";
41
+ const SheetBody = React.forwardRef(({ children, className, hasFooter = true, ...otherProps }, ref) => (jsxRuntime.jsx("div", { ref: ref, "data-slot": "sheet-body", "data-testid": "sheet-body", className: utils.cn("flex flex-1 flex-col items-start justify-start overflow-y-auto px-4", hasFooter && "pb-0", className), ...otherProps, children: children })));
42
+ SheetBody.displayName = "Sheet.Body";
43
+ const SheetFooter = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetFooter, { ref: ref, className: utils.cn("flex flex-row items-center justify-start gap-2 border-t", className), "data-testid": "sheet-footer", ...otherProps, children: children })));
44
+ SheetFooter.displayName = "Sheet.Footer";
45
+ const SheetTitle = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetTitle, { ref: ref, className: utils.cn("text-2xl font-semibold", className), ...otherProps, children: children })));
46
+ SheetTitle.displayName = "Sheet.Title";
47
+ const SheetDescription = React.forwardRef(({ children, className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Sheet.SheetDescription, { ref: ref, className: utils.cn(className), ...otherProps, children: children })));
48
+ SheetDescription.displayName = "Sheet.Description";
49
+ // ---------------------------------------------------------------------------
50
+ // Component
51
+ // ---------------------------------------------------------------------------
52
+ const Sheet = React.forwardRef(({ size = "small", isOpen = false, onClose = () => { }, children, className, closeOnEsc = true, closeButton = true, backdropClassName, closeOnOutsideClick = true, initialFocusRef, finalFocusRef, side = "right", modal, defaultOpen,
53
+ // Radix content handlers — intercept and merge
54
+ onOpenAutoFocus: onOpenAutoFocusProp, onCloseAutoFocus: onCloseAutoFocusProp, ...otherProps }, ref) => {
55
+ const handleOpenChange = (open) => {
56
+ if (!open)
57
+ onClose();
58
+ };
59
+ const handleInteractOutside = (e) => {
60
+ if (!closeOnOutsideClick)
61
+ e.preventDefault();
62
+ };
63
+ const handleEscapeKeyDown = (e) => {
64
+ if (!closeOnEsc)
65
+ e.preventDefault();
66
+ };
67
+ const handleOpenAutoFocus = (e) => {
68
+ if (initialFocusRef?.current) {
69
+ e.preventDefault();
70
+ initialFocusRef.current.focus();
71
+ }
72
+ onOpenAutoFocusProp?.(e);
73
+ };
74
+ const handleCloseAutoFocus = (e) => {
75
+ if (finalFocusRef?.current) {
76
+ e.preventDefault();
77
+ finalFocusRef.current.focus();
78
+ }
79
+ onCloseAutoFocusProp?.(e);
80
+ };
81
+ return (jsxRuntime.jsx(primitives_Sheet.Sheet, { open: isOpen, onOpenChange: handleOpenChange, modal: modal, defaultOpen: defaultOpen, children: jsxRuntime.jsx(primitives_Sheet.SheetContent, { ref: ref, side: side, showCloseButton: closeButton, overlayClassName: backdropClassName, onInteractOutside: handleInteractOutside, onEscapeKeyDown: handleEscapeKeyDown, onOpenAutoFocus: handleOpenAutoFocus, onCloseAutoFocus: handleCloseAutoFocus, className: utils.cn(SIZE_CLASS_MAP[size], className), "data-testid": "sheet-wrapper", ...otherProps, children: children }) }));
82
+ });
83
+ Sheet.displayName = "Sheet";
84
+ Sheet.Header = SheetHeader;
85
+ Sheet.Body = SheetBody;
86
+ Sheet.Footer = SheetFooter;
87
+ Sheet.Title = SheetTitle;
88
+ Sheet.Description = SheetDescription;
89
+
90
+ exports.Sheet = Sheet;
91
+ //# sourceMappingURL=Sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sheet.js","sources":["../../../../src/components/Sheet.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, type RefObject } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Sheet as PrimitiveSheet,\n SheetContent as PrimitiveSheetContent,\n SheetDescription as PrimitiveSheetDescription,\n SheetFooter as PrimitiveSheetFooter,\n SheetHeader as PrimitiveSheetHeader,\n SheetTitle as PrimitiveSheetTitle,\n} from \"src/primitives/Sheet\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype SheetSize = \"small\" | \"large\" | \"extraLarge\";\n\n/** Radix Sheet.Content props we forward via ...otherProps. */\ntype SheetContentProps = React.ComponentProps<typeof PrimitiveSheetContent>;\n\nexport interface SheetProps extends Omit<\n SheetContentProps,\n | \"children\"\n | \"className\"\n | \"side\"\n | \"showCloseButton\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the sheet. */\n size?: SheetSize;\n /** Whether the sheet is open. */\n isOpen?: boolean;\n /** Callback invoked when the sheet is closed. */\n onClose?: () => void;\n /** Content rendered inside the sheet. */\n children?: ReactNode;\n /** Additional CSS class names applied to the sheet 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 sheet. */\n closeOnOutsideClick?: boolean;\n /** Ref of the element to receive focus when the sheet opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Ref of the element to receive focus when the sheet closes. */\n finalFocusRef?: RefObject<HTMLElement | null>;\n /** Which side the sheet slides in from. */\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\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\n// Uses data-[side] selector to match primitive specificity so tailwind-merge\n// can override the default sm:max-w-sm from the primitive.\nconst SIZE_CLASS_MAP: Record<SheetSize, string> = {\n small: \"data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n large: \"data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg\",\n extraLarge: \"data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl\",\n};\n\n// ---------------------------------------------------------------------------\n// Subcomponents\n// ---------------------------------------------------------------------------\n\ninterface SheetSubcomponentProps extends React.ComponentProps<\"div\"> {\n children?: ReactNode;\n className?: string;\n}\n\nconst SheetHeader = forwardRef<HTMLDivElement, SheetSubcomponentProps>(\n ({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetHeader\n ref={ref}\n className={cn(className)}\n data-testid=\"sheet-header\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetHeader>\n )\n);\nSheetHeader.displayName = \"Sheet.Header\";\n\nconst SheetBody = forwardRef<\n HTMLDivElement,\n SheetSubcomponentProps & { hasFooter?: boolean }\n>(({ children, className, hasFooter = true, ...otherProps }, ref) => (\n <div\n ref={ref}\n data-slot=\"sheet-body\"\n data-testid=\"sheet-body\"\n className={cn(\n \"flex flex-1 flex-col items-start justify-start overflow-y-auto px-4\",\n hasFooter && \"pb-0\",\n className\n )}\n {...otherProps}\n >\n {children}\n </div>\n));\nSheetBody.displayName = \"Sheet.Body\";\n\nconst SheetFooter = forwardRef<HTMLDivElement, SheetSubcomponentProps>(\n ({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetFooter\n ref={ref}\n className={cn(\n \"flex flex-row items-center justify-start gap-2 border-t\",\n className\n )}\n data-testid=\"sheet-footer\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetFooter>\n )\n);\nSheetFooter.displayName = \"Sheet.Footer\";\n\nconst SheetTitle = forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<typeof PrimitiveSheetTitle>\n>(({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetTitle\n ref={ref}\n className={cn(\"text-2xl font-semibold\", className)}\n {...otherProps}\n >\n {children}\n </PrimitiveSheetTitle>\n));\nSheetTitle.displayName = \"Sheet.Title\";\n\nconst SheetDescription = forwardRef<\n HTMLParagraphElement,\n React.ComponentProps<typeof PrimitiveSheetDescription>\n>(({ children, className, ...otherProps }, ref) => (\n <PrimitiveSheetDescription\n ref={ref}\n className={cn(className)}\n {...otherProps}\n >\n {children}\n </PrimitiveSheetDescription>\n));\nSheetDescription.displayName = \"Sheet.Description\";\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Sheet = forwardRef<HTMLDivElement, SheetProps>(\n (\n {\n size = \"small\",\n isOpen = false,\n onClose = () => {},\n children,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n initialFocusRef,\n finalFocusRef,\n side = \"right\",\n modal,\n defaultOpen,\n // Radix content handlers — intercept and merge\n onOpenAutoFocus: onOpenAutoFocusProp,\n onCloseAutoFocus: onCloseAutoFocusProp,\n ...otherProps\n },\n ref\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 if (initialFocusRef?.current) {\n e.preventDefault();\n initialFocusRef.current.focus();\n }\n onOpenAutoFocusProp?.(e);\n };\n\n const handleCloseAutoFocus = (e: Event) => {\n if (finalFocusRef?.current) {\n e.preventDefault();\n finalFocusRef.current.focus();\n }\n onCloseAutoFocusProp?.(e);\n };\n\n return (\n <PrimitiveSheet\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <PrimitiveSheetContent\n ref={ref}\n side={side}\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=\"sheet-wrapper\"\n {...otherProps}\n >\n {children}\n </PrimitiveSheetContent>\n </PrimitiveSheet>\n );\n }\n) as React.ForwardRefExoticComponent<\n SheetProps & React.RefAttributes<HTMLDivElement>\n> & {\n Header: typeof SheetHeader;\n Body: typeof SheetBody;\n Footer: typeof SheetFooter;\n Title: typeof SheetTitle;\n Description: typeof SheetDescription;\n};\n\nSheet.displayName = \"Sheet\";\nSheet.Header = SheetHeader;\nSheet.Body = SheetBody;\nSheet.Footer = SheetFooter;\nSheet.Title = SheetTitle;\nSheet.Description = SheetDescription;\n\nexport { Sheet };\n"],"names":["forwardRef","_jsx","PrimitiveSheetHeader","cn","PrimitiveSheetFooter","PrimitiveSheetTitle","PrimitiveSheetDescription","PrimitiveSheet","PrimitiveSheetContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA;AACA;AACA;AAEA;AACA;AACA,MAAM,cAAc,GAA8B;AAChD,IAAA,KAAK,EAAE,4DAA4D;AACnE,IAAA,KAAK,EAAE,4DAA4D;AACnE,IAAA,UAAU,EAAE,8DAA8D;CAC3E;AAWD,MAAM,WAAW,GAAGA,gBAAU,CAC5B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC1CC,cAAA,CAACC,4BAAoB,EAAA,EACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,QAAE,CAAC,SAAS,CAAC,EAAA,aAAA,EACZ,cAAc,KACtB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACY,CACxB,CACF;AACD,WAAW,CAAC,WAAW,GAAG,cAAc;AAExC,MAAM,SAAS,GAAGH,gBAAU,CAG1B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC9DC,cAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EAAA,WAAA,EACE,YAAY,EAAA,aAAA,EACV,YAAY,EACxB,SAAS,EAAEE,QAAE,CACX,qEAAqE,EACrE,SAAS,IAAI,MAAM,EACnB,SAAS,CACV,EAAA,GACG,UAAU,YAEb,QAAQ,EAAA,CACL,CACP,CAAC;AACF,SAAS,CAAC,WAAW,GAAG,YAAY;AAEpC,MAAM,WAAW,GAAGH,gBAAU,CAC5B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC1CC,cAAA,CAACG,4BAAoB,IACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAED,QAAE,CACX,yDAAyD,EACzD,SAAS,CACV,EAAA,aAAA,EACW,cAAc,KACtB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACY,CACxB,CACF;AACD,WAAW,CAAC,WAAW,GAAG,cAAc;AAExC,MAAM,UAAU,GAAGH,gBAAU,CAG3B,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC5CC,cAAA,CAACI,2BAAmB,EAAA,EAClB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEF,QAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,KAC9C,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACW,CACvB,CAAC;AACF,UAAU,CAAC,WAAW,GAAG,aAAa;AAEtC,MAAM,gBAAgB,GAAGH,gBAAU,CAGjC,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAC5CC,cAAA,CAACK,iCAAyB,IACxB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEH,QAAE,CAAC,SAAS,CAAC,KACpB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACiB,CAC7B,CAAC;AACF,gBAAgB,CAAC,WAAW,GAAG,mBAAmB;AAElD;AACA;AACA;AAEA,MAAM,KAAK,GAAGH,gBAAU,CACtB,CACE,EACE,IAAI,GAAG,OAAO,EACd,MAAM,GAAG,KAAK,EACd,OAAO,GAAG,MAAK,EAAE,CAAC,EAClB,QAAQ,EACR,SAAS,EACT,UAAU,GAAG,IAAI,EACjB,WAAW,GAAG,IAAI,EAClB,iBAAiB,EACjB,mBAAmB,GAAG,IAAI,EAC1B,eAAe,EACf,aAAa,EACb,IAAI,GAAG,OAAO,EACd,KAAK,EACL,WAAW;AACX;AACA,eAAe,EAAE,mBAAmB,EACpC,gBAAgB,EAAE,oBAAoB,EACtC,GAAG,UAAU,EACd,EACD,GAAG,KACD;AACF,IAAA,MAAM,gBAAgB,GAAG,CAAC,IAAa,KAAI;AACzC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;AACtB,IAAA,CAAC;AAED,IAAA,MAAM,qBAAqB,GAAG,CAAC,CAAQ,KAAI;AACzC,QAAA,IAAI,CAAC,mBAAmB;YAAE,CAAC,CAAC,cAAc,EAAE;AAC9C,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAgB,KAAI;AAC/C,QAAA,IAAI,CAAC,UAAU;YAAE,CAAC,CAAC,cAAc,EAAE;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAQ,KAAI;AACvC,QAAA,IAAI,eAAe,EAAE,OAAO,EAAE;YAC5B,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;QACjC;AACA,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,CAAQ,KAAI;AACxC,QAAA,IAAI,aAAa,EAAE,OAAO,EAAE;YAC1B,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE;QAC/B;AACA,QAAA,oBAAoB,GAAG,CAAC,CAAC;AAC3B,IAAA,CAAC;AAED,IAAA,QACEC,cAAA,CAACM,sBAAc,EAAA,EACb,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,YAExBN,cAAA,CAACO,6BAAqB,EAAA,EACpB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,WAAW,EAC5B,gBAAgB,EAAE,iBAAiB,EACnC,iBAAiB,EAAE,qBAAqB,EACxC,eAAe,EAAE,mBAAmB,EACpC,eAAe,EAAE,mBAAmB,EACpC,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAEL,QAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,aAAA,EAClC,eAAe,EAAA,GACvB,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACa,EAAA,CACT;AAErB,CAAC;AAWH,KAAK,CAAC,WAAW,GAAG,OAAO;AAC3B,KAAK,CAAC,MAAM,GAAG,WAAW;AAC1B,KAAK,CAAC,IAAI,GAAG,SAAS;AACtB,KAAK,CAAC,MAAM,GAAG,WAAW;AAC1B,KAAK,CAAC,KAAK,GAAG,UAAU;AACxB,KAAK,CAAC,WAAW,GAAG,gBAAgB;;;;"}
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var primitives_Slider = require('../primitives/Slider.js');
6
+ var utils = require('../utils-CTr7wn5d.js');
7
+ var primitives_Field = require('../primitives/Field.js');
8
+ require('../index-EyWRfsCG.js');
9
+ require('../index-COPkC3I5.js');
10
+ require('../index-D-iDn9RI.js');
11
+ require('../index-CGUGhyIp.js');
12
+ require('../index-CyrAgb4H.js');
13
+ require('../index-CCdG4z4E.js');
14
+ require('../index-9jC1advf.js');
15
+ require('../index-CF951Pw9.js');
16
+ require('../index-Bf0WsHta.js');
17
+ require('../index-DMbj7vXd.js');
18
+ require('react-dom');
19
+ require('../index-Ch55j1or.js');
20
+ require('../index-BZhTddX0.js');
21
+ require('../label-Bdc9ytTI.js');
22
+ require('../separator-CPy2gyg1.js');
23
+
24
+ // ---------------------------------------------------------------------------
25
+ // Component
26
+ // ---------------------------------------------------------------------------
27
+ const Slider = React.forwardRef(({ label, error, helpText, required = false, className, labelProps, disabled, id: idProp, ...otherProps }, ref) => {
28
+ const generatedId = React.useId();
29
+ const id = idProp ?? 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
+ const slider = (jsxRuntime.jsx(primitives_Slider.Slider, { ref: ref, id: id, disabled: disabled, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, "aria-label": !label ? undefined : label, className: utils.cn(!hasField && className), ...otherProps }));
37
+ if (!hasField) {
38
+ return slider;
39
+ }
40
+ return (jsxRuntime.jsxs(primitives_Field.Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [label && (jsxRuntime.jsxs(primitives_Field.FieldLabel, { htmlFor: id, ...labelProps, children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [slider, !!error && jsxRuntime.jsx(primitives_Field.FieldError, { id: errorId, children: error }), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, children: helpText }))] })] }));
41
+ });
42
+ Slider.displayName = "Slider";
43
+
44
+ exports.Slider = Slider;
45
+ //# sourceMappingURL=Slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.js","sources":["../../../../src/components/Slider.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { Slider as PrimitiveSlider } from \"src/primitives/Slider\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface SliderProps extends React.ComponentProps<\n typeof PrimitiveSlider\n> {\n /** Label displayed above the slider. */\n label?: string;\n /** Error message displayed below the slider. */\n error?: string;\n /** Help text displayed below the slider. 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 /** Props forwarded to the FieldLabel element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Slider = forwardRef<\n React.ComponentRef<typeof PrimitiveSlider>,\n SliderProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n labelProps,\n disabled,\n id: idProp,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = idProp ?? 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 const slider = (\n <PrimitiveSlider\n ref={ref}\n id={id}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-label={!label ? undefined : label}\n className={cn(!hasField && className)}\n {...otherProps}\n />\n );\n\n if (!hasField) {\n return slider;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {slider}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nSlider.displayName = \"Slider\";\n\nexport { Slider };\n"],"names":["forwardRef","useId","_jsx","PrimitiveSlider","cn","_jsxs","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA;AACA;AACA;AAEA,MAAM,MAAM,GAAGA,gBAAU,CAIvB,CACE,EACE,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,GAAG,UAAU,EACd,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAGC,WAAK,EAAE;AAC3B,IAAA,MAAM,EAAE,GAAG,MAAM,IAAI,WAAW;AAChC,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,MAAM,MAAM,IACVC,cAAA,CAACC,wBAAe,EAAA,EACd,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,kBAAA,EAChB,eAAe,gBACrB,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,EACtC,SAAS,EAAEC,QAAE,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAA,GACjC,UAAU,EAAA,CACd,CACH;IAED,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,QACEC,eAAA,CAACC,sBAAK,EAAA,EAAA,eAAA,EACW,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAEnB,KAAK,KACJD,gBAACE,2BAAU,EAAA,EAAC,OAAO,EAAE,EAAE,EAAA,GAAM,UAAU,EAAA,QAAA,EAAA,CACpC,KAAK,EACL,QAAQ,KACPL,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACU,CACd,EACDG,eAAA,CAACG,6BAAY,EAAA,EAAA,QAAA,EAAA,CACV,MAAM,EACN,CAAC,CAAC,KAAK,IAAIN,eAACO,2BAAU,EAAA,EAAC,EAAE,EAAE,OAAO,EAAA,QAAA,EAAG,KAAK,GAAc,EACxD,QAAQ,KACPP,cAAA,CAACQ,iCAAgB,EAAA,EAAC,EAAE,EAAE,UAAU,YAAG,QAAQ,EAAA,CAAoB,CAChE,CAAA,EAAA,CACY,CAAA,EAAA,CACT;AAEZ,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
@@ -0,0 +1,27 @@
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_Spinner = require('../primitives/Spinner.js');
7
+ require('react-i18next');
8
+ require('../loader-circle-Bw7zP2Gn.js');
9
+ require('../createLucideIcon-D0tRgV6l.js');
10
+
11
+ // ---------------------------------------------------------------------------
12
+ // Size config
13
+ // ---------------------------------------------------------------------------
14
+ const SIZE_CONFIG = {
15
+ sm: "size-3",
16
+ default: "size-4",
17
+ lg: "size-6",
18
+ xl: "size-8",
19
+ };
20
+ // ---------------------------------------------------------------------------
21
+ // Component
22
+ // ---------------------------------------------------------------------------
23
+ const Spinner = React.forwardRef(({ size = "default", className, ...otherProps }, ref) => (jsxRuntime.jsx(primitives_Spinner.Spinner, { ref: ref, className: utils.cn(SIZE_CONFIG[size], className), ...otherProps })));
24
+ Spinner.displayName = "Spinner";
25
+
26
+ exports.Spinner = Spinner;
27
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.js","sources":["../../../../src/components/Spinner.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { Spinner as PrimitiveSpinner } from \"src/primitives/Spinner\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface SpinnerProps extends React.ComponentProps<\n typeof PrimitiveSpinner\n> {\n /** Size variant of the spinner. */\n size?: \"sm\" | \"default\" | \"lg\" | \"xl\";\n /** Additional CSS class names. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst SIZE_CONFIG: Record<NonNullable<SpinnerProps[\"size\"]>, string> = {\n sm: \"size-3\",\n default: \"size-4\",\n lg: \"size-6\",\n xl: \"size-8\",\n};\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Spinner = forwardRef<SVGSVGElement, SpinnerProps>(\n ({ size = \"default\", className, ...otherProps }, ref) => (\n <PrimitiveSpinner\n ref={ref}\n className={cn(SIZE_CONFIG[size], className)}\n {...otherProps}\n />\n )\n);\n\nSpinner.displayName = \"Spinner\";\n\nexport { Spinner };\n"],"names":["forwardRef","_jsx","PrimitiveSpinner","cn"],"mappings":";;;;;;;;;;AAkBA;AACA;AACA;AAEA,MAAM,WAAW,GAAsD;AACrE,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;CACb;AAED;AACA;AACA;AAEA,MAAM,OAAO,GAAGA,gBAAU,CACxB,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAClDC,cAAA,CAACC,0BAAgB,EAAA,EACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,QAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,GACvC,UAAU,EAAA,CACd,CACH;AAGH,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
@@ -0,0 +1,39 @@
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 check = require('../check-BQgcDXys.js');
7
+ require('../createLucideIcon-D0tRgV6l.js');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefault(React);
12
+
13
+ // ---------------------------------------------------------------------------
14
+ // Component
15
+ // ---------------------------------------------------------------------------
16
+ const Stepper = React.forwardRef(({ steps, activeIndex = 0, onStepClick, className, orientation = "horizontal", }, ref) => {
17
+ const isHorizontal = orientation === "horizontal";
18
+ return (jsxRuntime.jsx("div", { ref: ref, role: "list", "aria-label": "Progress", className: utils.cn("flex gap-2", isHorizontal ? "flex-row items-center" : "flex-col items-start", className), children: steps.map((step, index) => {
19
+ const isCompleted = index < activeIndex;
20
+ const isActive = index === activeIndex;
21
+ const isClickable = (isCompleted || isActive) && !!onStepClick;
22
+ const isLast = index === steps.length - 1;
23
+ const indicator = (jsxRuntime.jsx("span", { className: utils.cn("relative flex size-7 shrink-0 items-center justify-center rounded-full text-sm font-semibold transition-colors", isCompleted && "bg-primary text-primary-foreground", isActive &&
24
+ "bg-primary text-primary-foreground ring-2 ring-primary ring-offset-2 ring-offset-background", !isCompleted &&
25
+ !isActive &&
26
+ "bg-muted text-foreground/60 ring-1 ring-border"), children: isCompleted ? (jsxRuntime.jsx(check.Check, { className: "size-3.5", "aria-hidden": "true" })) : (index + 1) }));
27
+ const stepContent = (jsxRuntime.jsxs("div", { className: utils.cn("flex min-w-0", isHorizontal
28
+ ? "flex-row items-center gap-2"
29
+ : "flex-row items-center gap-3"), children: [isClickable ? (jsxRuntime.jsx("button", { type: "button", onClick: () => onStepClick(index), "aria-current": isActive ? "step" : undefined, className: "cursor-pointer rounded-full focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring", children: indicator })) : (jsxRuntime.jsx("span", { "aria-current": isActive ? "step" : undefined, children: indicator })), jsxRuntime.jsx("span", { className: utils.cn("hidden text-sm truncate max-w-full sm:inline", isActive && "font-medium text-foreground", isCompleted && "text-foreground", !isCompleted && !isActive && "text-muted-foreground"), children: step.label })] }));
30
+ const connector = !isLast && (jsxRuntime.jsx("div", { "aria-hidden": "true", className: utils.cn("transition-colors", isHorizontal
31
+ ? "mx-2 min-w-5 flex-1 border-t-2 sm:mx-3 sm:min-w-8"
32
+ : "ms-[13px] min-h-6 self-stretch border-s-2", isCompleted ? "border-primary" : "border-dashed border-border") }));
33
+ return (jsxRuntime.jsxs(React__default.default.Fragment, { children: [jsxRuntime.jsx("div", { role: "listitem", className: utils.cn("flex min-w-0", isHorizontal ? "shrink-0" : "flex-col"), children: stepContent }), connector] }, step.id));
34
+ }) }));
35
+ });
36
+ Stepper.displayName = "Stepper";
37
+
38
+ exports.Stepper = Stepper;
39
+ //# sourceMappingURL=Stepper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stepper.js","sources":["../../../../src/components/Stepper.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface StepperProps {\n /** Step definitions. */\n steps: Array<{ id: string | number; label: string }>;\n /** Current active step (0-based). */\n activeIndex?: number;\n /** Callback when a step indicator is clicked. */\n onStepClick?: (index: number) => void;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** Layout direction. */\n orientation?: \"horizontal\" | \"vertical\";\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Stepper = forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n steps,\n activeIndex = 0,\n onStepClick,\n className,\n orientation = \"horizontal\",\n },\n ref\n ) => {\n const isHorizontal = orientation === \"horizontal\";\n\n return (\n <div\n ref={ref}\n role=\"list\"\n aria-label=\"Progress\"\n className={cn(\n \"flex gap-2\",\n isHorizontal ? \"flex-row items-center\" : \"flex-col items-start\",\n className\n )}\n >\n {steps.map((step, index) => {\n const isCompleted = index < activeIndex;\n const isActive = index === activeIndex;\n const isClickable = (isCompleted || isActive) && !!onStepClick;\n const isLast = index === steps.length - 1;\n\n const indicator = (\n <span\n className={cn(\n \"relative flex size-7 shrink-0 items-center justify-center rounded-full text-sm font-semibold transition-colors\",\n isCompleted && \"bg-primary text-primary-foreground\",\n isActive &&\n \"bg-primary text-primary-foreground ring-2 ring-primary ring-offset-2 ring-offset-background\",\n !isCompleted &&\n !isActive &&\n \"bg-muted text-foreground/60 ring-1 ring-border\"\n )}\n >\n {isCompleted ? (\n <CheckIcon className=\"size-3.5\" aria-hidden=\"true\" />\n ) : (\n index + 1\n )}\n </span>\n );\n\n const stepContent = (\n <div\n className={cn(\n \"flex min-w-0\",\n isHorizontal\n ? \"flex-row items-center gap-2\"\n : \"flex-row items-center gap-3\"\n )}\n >\n {isClickable ? (\n <button\n type=\"button\"\n onClick={() => onStepClick(index)}\n aria-current={isActive ? \"step\" : undefined}\n className=\"cursor-pointer rounded-full focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\"\n >\n {indicator}\n </button>\n ) : (\n <span aria-current={isActive ? \"step\" : undefined}>\n {indicator}\n </span>\n )}\n <span\n className={cn(\n \"hidden text-sm truncate max-w-full sm:inline\",\n isActive && \"font-medium text-foreground\",\n isCompleted && \"text-foreground\",\n !isCompleted && !isActive && \"text-muted-foreground\"\n )}\n >\n {step.label}\n </span>\n </div>\n );\n\n const connector = !isLast && (\n <div\n aria-hidden=\"true\"\n className={cn(\n \"transition-colors\",\n isHorizontal\n ? \"mx-2 min-w-5 flex-1 border-t-2 sm:mx-3 sm:min-w-8\"\n : \"ms-[13px] min-h-6 self-stretch border-s-2\",\n isCompleted ? \"border-primary\" : \"border-dashed border-border\"\n )}\n />\n );\n\n return (\n <React.Fragment key={step.id}>\n <div\n role=\"listitem\"\n className={cn(\n \"flex min-w-0\",\n isHorizontal ? \"shrink-0\" : \"flex-col\"\n )}\n >\n {stepContent}\n </div>\n {connector}\n </React.Fragment>\n );\n })}\n </div>\n );\n }\n);\n\nStepper.displayName = \"Stepper\";\n\nexport { Stepper };\n"],"names":["forwardRef","_jsx","cn","CheckIcon","_jsxs","React"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var primitives_Switch = require('../primitives/Switch.js');
6
+ var primitives_Label = require('../primitives/Label.js');
7
+ var utils = require('../utils-CTr7wn5d.js');
8
+ require('../index-COPkC3I5.js');
9
+ require('../index-D-iDn9RI.js');
10
+ require('../index-CGUGhyIp.js');
11
+ require('../index-CyrAgb4H.js');
12
+ require('../index-CCdG4z4E.js');
13
+ require('../index-CF951Pw9.js');
14
+ require('../index-Bf0WsHta.js');
15
+ require('../index-DMbj7vXd.js');
16
+ require('react-dom');
17
+ require('../label-Bdc9ytTI.js');
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // Component
21
+ // ---------------------------------------------------------------------------
22
+ const Switch = React.forwardRef(({ label, error, helpText, required = false, className, size = "default", disabled, id: idProp, ...otherProps }, ref) => {
23
+ const generatedId = React.useId();
24
+ const id = idProp ?? generatedId;
25
+ const errorId = `error_${id}`;
26
+ const helpTextId = `helpText_${id}`;
27
+ const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
28
+ .filter(Boolean)
29
+ .join(" ") || undefined;
30
+ return (jsxRuntime.jsxs("div", { className: utils.cn("inline-flex flex-col gap-1.5", className), "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, children: [jsxRuntime.jsxs("div", { className: utils.cn("inline-flex gap-2", helpText ? "items-start" : "items-center"), children: [jsxRuntime.jsx(primitives_Switch.Switch, { ref: ref, id: id, size: size, disabled: disabled, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, "aria-required": required || undefined, className: helpText ? "mt-0.5" : undefined, ...otherProps }), (label || helpText) && (jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5", children: [label && (jsxRuntime.jsxs(primitives_Label.Label, { htmlFor: id, className: utils.cn("cursor-pointer", disabled && "cursor-not-allowed opacity-50"), children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), helpText && (jsxRuntime.jsx("p", { id: helpTextId, className: "text-sm text-muted-foreground", children: helpText }))] }))] }), error && (jsxRuntime.jsx("p", { id: errorId, role: "alert", className: "text-xs text-destructive", children: error }))] }));
31
+ });
32
+ Switch.displayName = "Switch";
33
+
34
+ exports.Switch = Switch;
35
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch.js","sources":["../../../../src/components/Switch.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { Switch as PrimitiveSwitch } from \"src/primitives/Switch\";\nimport { Label } from \"src/primitives/Label\";\nimport { cn } from \"src/shadcn/lib/utils\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface SwitchProps extends Omit<\n React.ComponentProps<typeof PrimitiveSwitch>,\n \"children\"\n> {\n /** Text label displayed next to the switch. */\n label?: string;\n /** Error message displayed below the switch. */\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 /** Size of the switch. */\n size?: \"sm\" | \"default\" | \"lg\";\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Switch = forwardRef<\n React.ComponentRef<typeof PrimitiveSwitch>,\n SwitchProps\n>(\n (\n {\n label,\n error,\n helpText,\n required = false,\n className,\n size = \"default\",\n disabled,\n id: idProp,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = idProp ?? 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 return (\n <div\n className={cn(\"inline-flex flex-col gap-1.5\", className)}\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n >\n <div\n className={cn(\n \"inline-flex gap-2\",\n helpText ? \"items-start\" : \"items-center\"\n )}\n >\n <PrimitiveSwitch\n ref={ref}\n id={id}\n size={size}\n disabled={disabled}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n aria-required={required || undefined}\n className={helpText ? \"mt-0.5\" : undefined}\n {...otherProps}\n />\n {(label || helpText) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <Label\n htmlFor={id}\n className={cn(\n \"cursor-pointer\",\n disabled && \"cursor-not-allowed opacity-50\"\n )}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </Label>\n )}\n {helpText && (\n <p id={helpTextId} className=\"text-sm text-muted-foreground\">\n {helpText}\n </p>\n )}\n </div>\n )}\n </div>\n {error && (\n <p id={errorId} role=\"alert\" className=\"text-xs text-destructive\">\n {error}\n </p>\n )}\n </div>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n\nexport { Switch };\n"],"names":["forwardRef","useId","_jsxs","cn","_jsx","PrimitiveSwitch","Label"],"mappings":";;;;;;;;;;;;;;;;;;AA4BA;AACA;AACA;AAEA,MAAM,MAAM,GAAGA,gBAAU,CAIvB,CACE,EACE,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,IAAI,GAAG,SAAS,EAChB,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,GAAG,UAAU,EACd,EACD,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GAAGC,WAAK,EAAE;AAC3B,IAAA,MAAM,EAAE,GAAG,MAAM,IAAI,WAAW;AAChC,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;AAE3B,IAAA,QACEC,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,QAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,EAAA,eAAA,EACzC,QAAQ,IAAI,SAAS,kBACtB,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,QAAA,EAAA,CAElCD,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,QAAE,CACX,mBAAmB,EACnB,QAAQ,GAAG,aAAa,GAAG,cAAc,CAC1C,EAAA,QAAA,EAAA,CAEDC,eAACC,wBAAe,EAAA,EACd,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,kBAAA,EAChB,eAAe,EAAA,eAAA,EAClB,QAAQ,IAAI,SAAS,EACpC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,KACtC,UAAU,EAAA,CACd,EACD,CAAC,KAAK,IAAI,QAAQ,MACjBH,yBAAK,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAA,CACnC,KAAK,KACJA,gBAACI,sBAAK,EAAA,EACJ,OAAO,EAAE,EAAE,EACX,SAAS,EAAEH,QAAE,CACX,gBAAgB,EAChB,QAAQ,IAAI,+BAA+B,CAC5C,aAEA,KAAK,EACL,QAAQ,KACPC,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACK,CACT,EACA,QAAQ,KACPA,cAAA,CAAA,GAAA,EAAA,EAAG,EAAE,EAAE,UAAU,EAAE,SAAS,EAAC,+BAA+B,EAAA,QAAA,EACzD,QAAQ,GACP,CACL,CAAA,EAAA,CACG,CACP,CAAA,EAAA,CACG,EACL,KAAK,KACJA,cAAA,CAAA,GAAA,EAAA,EAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B,EAAA,QAAA,EAC9D,KAAK,GACJ,CACL,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;"}
@@ -0,0 +1,74 @@
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_Tabs = require('../primitives/Tabs.js');
8
+ require('../index-BZhTddX0.js');
9
+ require('../index-COPkC3I5.js');
10
+ require('../index-CGUGhyIp.js');
11
+ require('../index-hQmfI1O7.js');
12
+ require('../index-Ch55j1or.js');
13
+ require('../index-D-iDn9RI.js');
14
+ require('../index-BwAq9ba8.js');
15
+ require('../index-CCdG4z4E.js');
16
+ require('../index-DMbj7vXd.js');
17
+ require('react-dom');
18
+ require('../index-lWVw05cs.js');
19
+ require('../index-CyrAgb4H.js');
20
+ require('../index-9jC1advf.js');
21
+ require('../index-DcCSSgb7.js');
22
+
23
+ // ---------------------------------------------------------------------------
24
+ // Size config
25
+ // ---------------------------------------------------------------------------
26
+ const SIZE_CLASSES = {
27
+ default: "",
28
+ lg: "text-[15px] px-3 py-1.5",
29
+ };
30
+ const LIST_HEIGHT = {
31
+ default: "",
32
+ lg: "group-data-horizontal/tabs:h-10",
33
+ };
34
+ // ---------------------------------------------------------------------------
35
+ // Context
36
+ // ---------------------------------------------------------------------------
37
+ const TabsSizeContext = React.createContext("default");
38
+ // ---------------------------------------------------------------------------
39
+ // Tabs (root)
40
+ // ---------------------------------------------------------------------------
41
+ const TabsRoot = React.forwardRef(({ size = "default", children, ...props }, ref) => (jsxRuntime.jsx(TabsSizeContext.Provider, { value: size, children: jsxRuntime.jsx(primitives_Tabs.Tabs, { ref: ref, ...props, children: children }) })));
42
+ TabsRoot.displayName = "Tabs";
43
+ // ---------------------------------------------------------------------------
44
+ // Tabs.List
45
+ // ---------------------------------------------------------------------------
46
+ const TabsListComponent = React.forwardRef(({ className, ...props }, ref) => {
47
+ const size = React.useContext(TabsSizeContext);
48
+ return (jsxRuntime.jsx(primitives_Tabs.TabsList, { ref: ref, className: utils.cn(LIST_HEIGHT[size], className), ...props }));
49
+ });
50
+ TabsListComponent.displayName = "Tabs.List";
51
+ // ---------------------------------------------------------------------------
52
+ // Tabs.Item
53
+ // ---------------------------------------------------------------------------
54
+ const TabsItemComponent = React.forwardRef(({ icon, className, children, ...otherProps }, ref) => {
55
+ const size = React.useContext(TabsSizeContext);
56
+ return (jsxRuntime.jsxs(primitives_Tabs.TabsTrigger, { ref: ref, className: utils.cn(SIZE_CLASSES[size], icon && "gap-1.5", className), ...otherProps, children: [icon && renderIcon.renderIcon(icon, size === "lg" ? "size-5" : "size-4"), children] }));
57
+ });
58
+ TabsItemComponent.displayName = "Tabs.Item";
59
+ // ---------------------------------------------------------------------------
60
+ // Tabs.Content
61
+ // ---------------------------------------------------------------------------
62
+ const TabsContentComponent = React.forwardRef((props, ref) => jsxRuntime.jsx(primitives_Tabs.TabsContent, { ref: ref, ...props }));
63
+ TabsContentComponent.displayName = "Tabs.Content";
64
+ // ---------------------------------------------------------------------------
65
+ // Compound component
66
+ // ---------------------------------------------------------------------------
67
+ const Tabs = Object.assign(TabsRoot, {
68
+ List: TabsListComponent,
69
+ Item: TabsItemComponent,
70
+ Content: TabsContentComponent,
71
+ });
72
+
73
+ exports.Tabs = Tabs;
74
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../src/components/Tabs.tsx"],"sourcesContent":["import React, { forwardRef, createContext, useContext } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\nimport {\n Tabs as PrimitiveTabs,\n TabsList as PrimitiveTabsList,\n TabsTrigger as PrimitiveTabsTrigger,\n TabsContent as PrimitiveTabsContent,\n} from \"src/primitives/Tabs\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport interface TabsProps extends React.ComponentProps<typeof PrimitiveTabs> {\n /** Size of tab triggers. Applied to all Tabs.Item children. */\n size?: TabsSize;\n}\n\ntype TabsListProps = React.ComponentProps<typeof PrimitiveTabsList>;\n\ninterface TabsItemProps extends React.ComponentProps<\n typeof PrimitiveTabsTrigger\n> {\n /** Icon component, element, or class-name string rendered before the label. */\n icon?: IconProp;\n}\n\ntype TabsContentProps = React.ComponentProps<typeof PrimitiveTabsContent>;\n\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nconst LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\nconst TabsSizeContext = createContext<TabsSize>(\"default\");\n\n// ---------------------------------------------------------------------------\n// Tabs (root)\n// ---------------------------------------------------------------------------\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(\n ({ size = \"default\", children, ...props }, ref) => (\n <TabsSizeContext.Provider value={size}>\n <PrimitiveTabs ref={ref} {...props}>\n {children}\n </PrimitiveTabs>\n </TabsSizeContext.Provider>\n )\n);\nTabsRoot.displayName = \"Tabs\";\n\n// ---------------------------------------------------------------------------\n// Tabs.List\n// ---------------------------------------------------------------------------\n\nconst TabsListComponent = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsList\n ref={ref}\n className={cn(LIST_HEIGHT[size], className)}\n {...props}\n />\n );\n }\n);\nTabsListComponent.displayName = \"Tabs.List\";\n\n// ---------------------------------------------------------------------------\n// Tabs.Item\n// ---------------------------------------------------------------------------\n\nconst TabsItemComponent = forwardRef<HTMLButtonElement, TabsItemProps>(\n ({ icon, className, children, ...otherProps }, ref) => {\n const size = useContext(TabsSizeContext);\n\n return (\n <PrimitiveTabsTrigger\n ref={ref}\n className={cn(SIZE_CLASSES[size], icon && \"gap-1.5\", className)}\n {...otherProps}\n >\n {icon && renderIcon(icon, size === \"lg\" ? \"size-5\" : \"size-4\")}\n {children}\n </PrimitiveTabsTrigger>\n );\n }\n);\nTabsItemComponent.displayName = \"Tabs.Item\";\n\n// ---------------------------------------------------------------------------\n// Tabs.Content\n// ---------------------------------------------------------------------------\n\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\n// ---------------------------------------------------------------------------\n// Compound component\n// ---------------------------------------------------------------------------\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["createContext","forwardRef","_jsx","PrimitiveTabs","useContext","PrimitiveTabsList","cn","_jsxs","PrimitiveTabsTrigger","renderIcon","PrimitiveTabsContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAiCA;AACA;AACA;AAEA,MAAM,YAAY,GAA6B;AAC7C,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,EAAE,EAAE,yBAAyB;CAC9B;AAED,MAAM,WAAW,GAA6B;AAC5C,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,EAAE,EAAE,iCAAiC;CACtC;AAED;AACA;AACA;AAEA,MAAM,eAAe,GAAGA,mBAAa,CAAW,SAAS,CAAC;AAE1D;AACA;AACA;AAEA,MAAM,QAAQ,GAAGC,gBAAU,CACzB,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5CC,cAAA,CAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,EAAA,QAAA,EACnCA,cAAA,CAACC,oBAAa,EAAA,EAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,QAAA,EAC/B,QAAQ,GACK,EAAA,CACS,CAC5B,CACF;AACD,QAAQ,CAAC,WAAW,GAAG,MAAM;AAE7B;AACA;AACA;AAEA,MAAM,iBAAiB,GAAGF,gBAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC/B,IAAA,MAAM,IAAI,GAAGG,gBAAU,CAAC,eAAe,CAAC;IAExC,QACEF,eAACG,wBAAiB,EAAA,EAChB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,QAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,GACvC,KAAK,EAAA,CACT;AAEN,CAAC,CACF;AACD,iBAAiB,CAAC,WAAW,GAAG,WAAW;AAE3C;AACA;AACA;AAEA,MAAM,iBAAiB,GAAGL,gBAAU,CAClC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;AACpD,IAAA,MAAM,IAAI,GAAGG,gBAAU,CAAC,eAAe,CAAC;IAExC,QACEG,gBAACC,2BAAoB,EAAA,EACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAEF,QAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,SAAS,CAAC,EAAA,GAC3D,UAAU,EAAA,QAAA,EAAA,CAEb,IAAI,IAAIG,qBAAU,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAC,EAC7D,QAAQ,CAAA,EAAA,CACY;AAE3B,CAAC,CACF;AACD,iBAAiB,CAAC,WAAW,GAAG,WAAW;AAE3C;AACA;AACA;AAEA,MAAM,oBAAoB,GAAGR,gBAAU,CACrC,CAAC,KAAK,EAAE,GAAG,KAAKC,cAAA,CAACQ,2BAAoB,IAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,CAAI,CAC9D;AACD,oBAAoB,CAAC,WAAW,GAAG,cAAc;AAEjD;AACA;AACA;AAEA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;AACnC,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,OAAO,EAAE,oBAAoB;AAC9B,CAAA;;;;"}
@@ -0,0 +1,89 @@
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_Field = require('../primitives/Field.js');
7
+ var primitives_Textarea = require('../primitives/Textarea.js');
8
+ require('../index-BZhTddX0.js');
9
+ require('../label-Bdc9ytTI.js');
10
+ require('../index-DMbj7vXd.js');
11
+ require('react-dom');
12
+ require('../index-D-iDn9RI.js');
13
+ require('../separator-CPy2gyg1.js');
14
+ require('../textarea-CZSSY75H.js');
15
+
16
+ // ---------------------------------------------------------------------------
17
+ // Size config
18
+ // ---------------------------------------------------------------------------
19
+ const SIZE_ROWS = {
20
+ small: 1,
21
+ medium: 3,
22
+ large: 4,
23
+ };
24
+ const SIZE_MIN_HEIGHT = {
25
+ small: "min-h-8",
26
+ medium: "min-h-20",
27
+ large: "min-h-28",
28
+ };
29
+ // ---------------------------------------------------------------------------
30
+ // Utilities
31
+ // ---------------------------------------------------------------------------
32
+ function getTrimmedValue(value, disableTrimOnBlur) {
33
+ if (disableTrimOnBlur || typeof value !== "string")
34
+ return value;
35
+ return value.trim();
36
+ }
37
+ // ---------------------------------------------------------------------------
38
+ // Component
39
+ // ---------------------------------------------------------------------------
40
+ const Textarea = React.forwardRef(({ size = "medium", resize = "vertical", label = "", error = "", helpText = "", disabled = false, required = false, maxLength, unlimitedChars = false, disableTrimOnBlur = false, prefix, suffix, nakedTextarea = false, labelProps, className = "", rows: rowsProp, onBlur, onChange, value: controlledValue, ...otherProps }, ref) => {
41
+ const generatedId = React.useId();
42
+ const id = otherProps.id ?? generatedId;
43
+ const errorId = `error_${id}`;
44
+ const helpTextId = `helpText_${id}`;
45
+ // Controlled / uncontrolled value tracking
46
+ const [valueInternal, setValueInternal] = React.useState(controlledValue ?? "");
47
+ const isControlled = controlledValue !== undefined;
48
+ const value = isControlled ? controlledValue : valueInternal;
49
+ const valueLength = value?.toString().length || 0;
50
+ const isMaxLengthPresent = !!maxLength || maxLength === 0;
51
+ const isCharacterLimitVisible = isMaxLengthPresent && valueLength >= maxLength * 0.85;
52
+ const maxLengthError = unlimitedChars && valueLength > maxLength;
53
+ const rows = rowsProp ?? SIZE_ROWS[size];
54
+ // --- Handlers ---
55
+ const handleChange = (e) => {
56
+ if (!isControlled) {
57
+ setValueInternal(e.target.value);
58
+ }
59
+ onChange?.(e);
60
+ };
61
+ const handleBlur = (e) => {
62
+ const trimmedValue = getTrimmedValue(value ?? "", disableTrimOnBlur);
63
+ if (trimmedValue !== value) {
64
+ e.target.value = trimmedValue.toString();
65
+ handleChange(e);
66
+ }
67
+ onBlur?.(e);
68
+ };
69
+ // --- aria-describedby ---
70
+ const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
71
+ .filter(Boolean)
72
+ .join(" ") || undefined;
73
+ // --- Textarea element ---
74
+ const hasField = !!(label || error || helpText);
75
+ const textareaElement = (jsxRuntime.jsx(primitives_Textarea.Textarea, { ref: ref, id: id, rows: rows, disabled: disabled, required: required, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: utils.cn(
76
+ // Override shadcn's field-sizing-content and min-h-16 so rows works
77
+ "!field-sizing-normal", SIZE_MIN_HEIGHT[size], resize === "none" && "resize-none", resize === "vertical" && "resize-y", nakedTextarea &&
78
+ "border-transparent shadow-none px-0 py-0 focus-visible:border-transparent focus-visible:ring-0", !!error && "border-destructive ring-destructive/20 ring-3"), value: value, onBlur: handleBlur, onChange: handleChange, ...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {}), ...otherProps }));
79
+ const hasPrefixSuffix = !!(prefix || suffix);
80
+ const textareaWithAffixes = hasPrefixSuffix ? (jsxRuntime.jsxs("div", { className: utils.cn("flex items-start gap-2 rounded-lg border border-input px-2.5 py-2 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50", !!error && "border-destructive ring-destructive/20 ring-3", nakedTextarea && "border-transparent shadow-none"), children: [prefix && (jsxRuntime.jsx("div", { className: "shrink-0 pt-0.5 text-muted-foreground", children: prefix })), jsxRuntime.jsx(primitives_Textarea.Textarea, { ref: ref, id: id, rows: rows, disabled: disabled, required: required, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: utils.cn("!field-sizing-normal border-0 p-0 shadow-none focus-visible:border-0 focus-visible:ring-0", SIZE_MIN_HEIGHT[size], resize === "none" && "resize-none", resize === "vertical" && "resize-y"), value: value, onBlur: handleBlur, onChange: handleChange, ...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {}), ...otherProps }), suffix && (jsxRuntime.jsx("div", { className: "shrink-0 pt-0.5 text-muted-foreground", children: suffix }))] })) : (textareaElement);
81
+ if (!hasField) {
82
+ return jsxRuntime.jsx("div", { className: utils.cn(className), children: textareaWithAffixes });
83
+ }
84
+ return (jsxRuntime.jsxs(primitives_Field.Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [(label || isCharacterLimitVisible) && (jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [label && (jsxRuntime.jsxs(primitives_Field.FieldLabel, { htmlFor: id, ...labelProps, children: [label, required && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), isCharacterLimitVisible && (jsxRuntime.jsxs("span", { className: utils.cn("text-xs tabular-nums", maxLengthError ? "text-destructive" : "text-muted-foreground"), children: [valueLength, "/", maxLength] }))] })), jsxRuntime.jsxs(primitives_Field.FieldContent, { children: [textareaWithAffixes, !!error && jsxRuntime.jsx(primitives_Field.FieldError, { id: errorId, children: error }), helpText && (jsxRuntime.jsx(primitives_Field.FieldDescription, { id: helpTextId, children: helpText }))] })] }));
85
+ });
86
+ Textarea.displayName = "Textarea";
87
+
88
+ exports.Textarea = Textarea;
89
+ //# sourceMappingURL=Textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.js","sources":["../../../../src/components/Textarea.tsx"],"sourcesContent":["import React, { forwardRef, useId, useState } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\nimport { Textarea as PrimitiveTextarea } from \"src/primitives/Textarea\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype TextareaSize = \"small\" | \"medium\" | \"large\";\ntype TextareaResize = \"vertical\" | \"none\";\n\ntype PrimitiveTextareaProps = React.ComponentProps<typeof PrimitiveTextarea>;\n\nexport interface TextareaProps extends Omit<\n PrimitiveTextareaProps,\n \"size\" | \"children\"\n> {\n /** Size of the textarea. Controls default rows: small=1, medium=3, large=4. */\n size?: TextareaSize;\n /** Resize behavior. */\n resize?: TextareaResize;\n /** Label displayed above the textarea. */\n label?: string;\n /** Error message displayed below the textarea. */\n error?: string;\n /** Help text displayed below the textarea. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Maximum character limit. Counter visible at 85% capacity. */\n maxLength?: number;\n /** Allow typing past maxLength, show error styling on count. */\n unlimitedChars?: boolean;\n /** Prevent trimming whitespace on blur. */\n disableTrimOnBlur?: boolean;\n /** Content to display before the textarea. */\n prefix?: React.ReactNode;\n /** Content to display after the textarea. */\n suffix?: React.ReactNode;\n /** Render the textarea without borders. */\n nakedTextarea?: boolean;\n /** Props forwarded to the Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst SIZE_ROWS: Record<TextareaSize, number> = {\n small: 1,\n medium: 3,\n large: 4,\n};\n\nconst SIZE_MIN_HEIGHT: Record<TextareaSize, string> = {\n small: \"min-h-8\",\n medium: \"min-h-20\",\n large: \"min-h-28\",\n};\n\n// ---------------------------------------------------------------------------\n// Utilities\n// ---------------------------------------------------------------------------\n\nfunction getTrimmedValue(\n value: string | number,\n disableTrimOnBlur: boolean\n): string | number {\n if (disableTrimOnBlur || typeof value !== \"string\") return value;\n return value.trim();\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n {\n size = \"medium\",\n resize = \"vertical\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n disabled = false,\n required = false,\n maxLength,\n unlimitedChars = false,\n disableTrimOnBlur = false,\n prefix,\n suffix,\n nakedTextarea = false,\n labelProps,\n className = \"\",\n rows: rowsProp,\n onBlur,\n onChange,\n value: controlledValue,\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 // Controlled / uncontrolled value tracking\n const [valueInternal, setValueInternal] = useState(controlledValue ?? \"\");\n const isControlled = controlledValue !== undefined;\n\n const value = isControlled ? controlledValue : valueInternal;\n const valueLength = value?.toString().length || 0;\n\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n const isCharacterLimitVisible =\n isMaxLengthPresent && valueLength >= maxLength! * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength!;\n\n const rows = rowsProp ?? SIZE_ROWS[size];\n\n // --- Handlers ---\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) {\n setValueInternal(e.target.value);\n }\n onChange?.(e);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLTextAreaElement>) => {\n const trimmedValue = getTrimmedValue(value ?? \"\", disableTrimOnBlur);\n\n if (trimmedValue !== value) {\n e.target.value = trimmedValue.toString();\n handleChange(e as unknown as React.ChangeEvent<HTMLTextAreaElement>);\n }\n\n onBlur?.(e);\n };\n\n // --- aria-describedby ---\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n // --- Textarea element ---\n\n const hasField = !!(label || error || helpText);\n\n const textareaElement = (\n <PrimitiveTextarea\n ref={ref}\n id={id}\n rows={rows}\n disabled={disabled}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n className={cn(\n // Override shadcn's field-sizing-content and min-h-16 so rows works\n \"!field-sizing-normal\",\n SIZE_MIN_HEIGHT[size],\n resize === \"none\" && \"resize-none\",\n resize === \"vertical\" && \"resize-y\",\n nakedTextarea &&\n \"border-transparent shadow-none px-0 py-0 focus-visible:border-transparent focus-visible:ring-0\",\n !!error && \"border-destructive ring-destructive/20 ring-3\"\n )}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n {...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {})}\n {...otherProps}\n />\n );\n\n const hasPrefixSuffix = !!(prefix || suffix);\n\n const textareaWithAffixes = hasPrefixSuffix ? (\n <div\n className={cn(\n \"flex items-start gap-2 rounded-lg border border-input px-2.5 py-2 focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50\",\n !!error && \"border-destructive ring-destructive/20 ring-3\",\n nakedTextarea && \"border-transparent shadow-none\"\n )}\n >\n {prefix && (\n <div className=\"shrink-0 pt-0.5 text-muted-foreground\">{prefix}</div>\n )}\n <PrimitiveTextarea\n ref={ref}\n id={id}\n rows={rows}\n disabled={disabled}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n className={cn(\n \"!field-sizing-normal border-0 p-0 shadow-none focus-visible:border-0 focus-visible:ring-0\",\n SIZE_MIN_HEIGHT[size],\n resize === \"none\" && \"resize-none\",\n resize === \"vertical\" && \"resize-y\"\n )}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n {...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {})}\n {...otherProps}\n />\n {suffix && (\n <div className=\"shrink-0 pt-0.5 text-muted-foreground\">{suffix}</div>\n )}\n </div>\n ) : (\n textareaElement\n );\n\n if (!hasField) {\n return <div className={cn(className)}>{textareaWithAffixes}</div>;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {(label || isCharacterLimitVisible) && (\n <div className=\"flex items-center justify-between\">\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {isCharacterLimitVisible && (\n <span\n className={cn(\n \"text-xs tabular-nums\",\n maxLengthError ? \"text-destructive\" : \"text-muted-foreground\"\n )}\n >\n {valueLength}/{maxLength}\n </span>\n )}\n </div>\n )}\n <FieldContent>\n {textareaWithAffixes}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n"],"names":["forwardRef","useId","useState","_jsx","PrimitiveTextarea","cn","_jsxs","Field","FieldLabel","FieldContent","FieldError","FieldDescription"],"mappings":"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"}