@bigbinary/neeto-atoms 1.0.9 → 1.0.10

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 (576) hide show
  1. package/dist/Accordion-BzfsJePA.js +22 -0
  2. package/dist/Accordion-BzfsJePA.js.map +1 -0
  3. package/dist/Alert-D_FV8xxo.js +65 -0
  4. package/dist/Alert-D_FV8xxo.js.map +1 -0
  5. package/dist/Avatar-D5YGlXVF.js +50 -0
  6. package/dist/Avatar-D5YGlXVF.js.map +1 -0
  7. package/dist/Badge-8FkscqDt.js +59 -0
  8. package/dist/Badge-8FkscqDt.js.map +1 -0
  9. package/dist/Button-Q7MPG6ph.js +92 -0
  10. package/dist/Button-Q7MPG6ph.js.map +1 -0
  11. package/dist/Calendar-pDD7nRF-.js +8025 -0
  12. package/dist/Calendar-pDD7nRF-.js.map +1 -0
  13. package/dist/Callout-B0w4GQtx.js +65 -0
  14. package/dist/Callout-B0w4GQtx.js.map +1 -0
  15. package/dist/Checkbox-zCxgcZiC.js +24 -0
  16. package/dist/Checkbox-zCxgcZiC.js.map +1 -0
  17. package/dist/DatePicker-COxwHPIZ.js +2960 -0
  18. package/dist/DatePicker-COxwHPIZ.js.map +1 -0
  19. package/dist/Dialog-BURSzxaP.js +61 -0
  20. package/dist/Dialog-BURSzxaP.js.map +1 -0
  21. package/dist/Empty-B2JwFmru.js +26 -0
  22. package/dist/Empty-B2JwFmru.js.map +1 -0
  23. package/dist/Input-C1gcv9o2.js +147 -0
  24. package/dist/Input-C1gcv9o2.js.map +1 -0
  25. package/dist/Kbd-EqbC0bua.js +36 -0
  26. package/dist/Kbd-EqbC0bua.js.map +1 -0
  27. package/dist/Label-BVy4hy9Z.js +58 -0
  28. package/dist/Label-BVy4hy9Z.js.map +1 -0
  29. package/dist/MultiEmailInput-SCTYovtX.js +139 -0
  30. package/dist/MultiEmailInput-SCTYovtX.js.map +1 -0
  31. package/dist/Pagination-DSc9yXPy.js +61 -0
  32. package/dist/Pagination-DSc9yXPy.js.map +1 -0
  33. package/dist/Popover-BFMrtVPq.js +95 -0
  34. package/dist/Popover-BFMrtVPq.js.map +1 -0
  35. package/dist/Progress-B9NlUm6e.js +13 -0
  36. package/dist/Progress-B9NlUm6e.js.map +1 -0
  37. package/dist/RadioGroup-BNeYQAoT.js +34 -0
  38. package/dist/RadioGroup-BNeYQAoT.js.map +1 -0
  39. package/dist/Select-BGODpJGc.js +561 -0
  40. package/dist/Select-BGODpJGc.js.map +1 -0
  41. package/dist/{components/SelectFieldWrapper.js → SelectFieldWrapper-BJzq9aCY.js} +3 -11
  42. package/dist/SelectFieldWrapper-BJzq9aCY.js.map +1 -0
  43. package/dist/Sheet-QFC_mHyj.js +63 -0
  44. package/dist/Sheet-QFC_mHyj.js.map +1 -0
  45. package/dist/Slider-BCQXhs0Q.js +25 -0
  46. package/dist/Slider-BCQXhs0Q.js.map +1 -0
  47. package/dist/Spinner-C8HSac-2.js +17 -0
  48. package/dist/Spinner-C8HSac-2.js.map +1 -0
  49. package/dist/Stepper-BoGkmkY0.js +29 -0
  50. package/dist/Stepper-BoGkmkY0.js.map +1 -0
  51. package/dist/Switch-B83TGxJ_.js +20 -0
  52. package/dist/Switch-B83TGxJ_.js.map +1 -0
  53. package/dist/Tabs-DWfKnl3S.js +38 -0
  54. package/dist/Tabs-DWfKnl3S.js.map +1 -0
  55. package/dist/Textarea-C0z50h0N.js +73 -0
  56. package/dist/Textarea-C0z50h0N.js.map +1 -0
  57. package/dist/TimePicker-C4x62jI1.js +142 -0
  58. package/dist/TimePicker-C4x62jI1.js.map +1 -0
  59. package/dist/TimePickerPanel-CiF0RExY.js +126 -0
  60. package/dist/TimePickerPanel-CiF0RExY.js.map +1 -0
  61. package/dist/Toastr-DYqpSaMd.js +115 -0
  62. package/dist/Toastr-DYqpSaMd.js.map +1 -0
  63. package/dist/Tooltip-DhwIZnOU.js +80 -0
  64. package/dist/Tooltip-DhwIZnOU.js.map +1 -0
  65. package/dist/Tree-Dkr11OPy.js +7977 -0
  66. package/dist/Tree-Dkr11OPy.js.map +1 -0
  67. package/dist/TreeSelect-Cmc90YWJ.js +168 -0
  68. package/dist/TreeSelect-Cmc90YWJ.js.map +1 -0
  69. package/dist/Typography-D5TjXEfu.js +82 -0
  70. package/dist/Typography-D5TjXEfu.js.map +1 -0
  71. package/dist/cjs/Accordion-BX5I9ypV.js +28 -0
  72. package/dist/cjs/Accordion-BX5I9ypV.js.map +1 -0
  73. package/dist/cjs/Alert-BVvLyM_d.js +67 -0
  74. package/dist/cjs/Alert-BVvLyM_d.js.map +1 -0
  75. package/dist/cjs/Avatar-CNao5gvP.js +52 -0
  76. package/dist/cjs/Avatar-CNao5gvP.js.map +1 -0
  77. package/dist/cjs/Badge-STBHzYLs.js +61 -0
  78. package/dist/cjs/Badge-STBHzYLs.js.map +1 -0
  79. package/dist/cjs/Button-Bt_AElge.js +94 -0
  80. package/dist/cjs/Button-Bt_AElge.js.map +1 -0
  81. package/dist/cjs/Calendar-Nk76Y9yP.js +8066 -0
  82. package/dist/cjs/Calendar-Nk76Y9yP.js.map +1 -0
  83. package/dist/cjs/Callout-CS2U6pM7.js +67 -0
  84. package/dist/cjs/Callout-CS2U6pM7.js.map +1 -0
  85. package/dist/cjs/Checkbox-DOlS2oCD.js +26 -0
  86. package/dist/cjs/Checkbox-DOlS2oCD.js.map +1 -0
  87. package/dist/cjs/DatePicker-DpijPndg.js +2962 -0
  88. package/dist/cjs/DatePicker-DpijPndg.js.map +1 -0
  89. package/dist/cjs/Dialog-CtI_yWsJ.js +63 -0
  90. package/dist/cjs/Dialog-CtI_yWsJ.js.map +1 -0
  91. package/dist/cjs/Empty-qzle6YvT.js +28 -0
  92. package/dist/cjs/Empty-qzle6YvT.js.map +1 -0
  93. package/dist/cjs/Input-pkugjUb0.js +149 -0
  94. package/dist/cjs/Input-pkugjUb0.js.map +1 -0
  95. package/dist/cjs/Kbd-DHirsI--.js +38 -0
  96. package/dist/cjs/Kbd-DHirsI--.js.map +1 -0
  97. package/dist/cjs/Label-DpyfZsiT.js +60 -0
  98. package/dist/cjs/Label-DpyfZsiT.js.map +1 -0
  99. package/dist/cjs/MultiEmailInput-l0_YVjbp.js +141 -0
  100. package/dist/cjs/MultiEmailInput-l0_YVjbp.js.map +1 -0
  101. package/dist/cjs/Pagination-Byzt9Kmj.js +63 -0
  102. package/dist/cjs/Pagination-Byzt9Kmj.js.map +1 -0
  103. package/dist/cjs/Popover-LIxANoTc.js +101 -0
  104. package/dist/cjs/Popover-LIxANoTc.js.map +1 -0
  105. package/dist/cjs/Progress-DoCxZ_ZH.js +15 -0
  106. package/dist/cjs/Progress-DoCxZ_ZH.js.map +1 -0
  107. package/dist/cjs/RadioGroup-1RAoe38m.js +36 -0
  108. package/dist/cjs/RadioGroup-1RAoe38m.js.map +1 -0
  109. package/dist/cjs/Select-DOPZHlqc.js +567 -0
  110. package/dist/cjs/Select-DOPZHlqc.js.map +1 -0
  111. package/dist/cjs/{components/SelectFieldWrapper.js → SelectFieldWrapper-DEA--2wj.js} +2 -10
  112. package/dist/cjs/SelectFieldWrapper-DEA--2wj.js.map +1 -0
  113. package/dist/cjs/Sheet-CIhtNCBV.js +65 -0
  114. package/dist/cjs/Sheet-CIhtNCBV.js.map +1 -0
  115. package/dist/cjs/Slider-jNUS9vt8.js +27 -0
  116. package/dist/cjs/Slider-jNUS9vt8.js.map +1 -0
  117. package/dist/cjs/Spinner-DQutDMQq.js +19 -0
  118. package/dist/cjs/Spinner-DQutDMQq.js.map +1 -0
  119. package/dist/cjs/Stepper-DCoLl2ZS.js +35 -0
  120. package/dist/cjs/Stepper-DCoLl2ZS.js.map +1 -0
  121. package/dist/cjs/Switch-CFf8DtB_.js +22 -0
  122. package/dist/cjs/Switch-CFf8DtB_.js.map +1 -0
  123. package/dist/cjs/Tabs-D2247rd7.js +40 -0
  124. package/dist/cjs/Tabs-D2247rd7.js.map +1 -0
  125. package/dist/cjs/Textarea-BfdlAJ59.js +75 -0
  126. package/dist/cjs/Textarea-BfdlAJ59.js.map +1 -0
  127. package/dist/cjs/TimePicker-Ba2FdT1O.js +144 -0
  128. package/dist/cjs/TimePicker-Ba2FdT1O.js.map +1 -0
  129. package/dist/cjs/TimePickerPanel-DGNr97cj.js +132 -0
  130. package/dist/cjs/TimePickerPanel-DGNr97cj.js.map +1 -0
  131. package/dist/cjs/Toastr-BGp7-kmf.js +117 -0
  132. package/dist/cjs/Toastr-BGp7-kmf.js.map +1 -0
  133. package/dist/cjs/Tooltip-CtxI7QBY.js +86 -0
  134. package/dist/cjs/Tooltip-CtxI7QBY.js.map +1 -0
  135. package/dist/cjs/Tree-qpOcsGL9.js +7985 -0
  136. package/dist/cjs/Tree-qpOcsGL9.js.map +1 -0
  137. package/dist/cjs/TreeSelect-DiIEdiAU.js +170 -0
  138. package/dist/cjs/TreeSelect-DiIEdiAU.js.map +1 -0
  139. package/dist/cjs/Typography-C3rGpmAY.js +104 -0
  140. package/dist/cjs/Typography-C3rGpmAY.js.map +1 -0
  141. package/dist/cjs/components/Accordion.js +6 -28
  142. package/dist/cjs/components/Accordion.js.map +1 -1
  143. package/dist/cjs/components/Alert.js +9 -70
  144. package/dist/cjs/components/Alert.js.map +1 -1
  145. package/dist/cjs/components/Avatar.js +8 -51
  146. package/dist/cjs/components/Avatar.js.map +1 -1
  147. package/dist/cjs/components/Badge.js +10 -64
  148. package/dist/cjs/components/Badge.js.map +1 -1
  149. package/dist/cjs/components/Button.js +10 -94
  150. package/dist/cjs/components/Button.js.map +1 -1
  151. package/dist/cjs/components/Callout.js +9 -66
  152. package/dist/cjs/components/Callout.js.map +1 -1
  153. package/dist/cjs/components/Checkbox.js +8 -24
  154. package/dist/cjs/components/Checkbox.js.map +1 -1
  155. package/dist/cjs/components/DataTable.js +1 -1
  156. package/dist/cjs/components/DatePicker.js +45 -0
  157. package/dist/cjs/components/DatePicker.js.map +1 -0
  158. package/dist/cjs/components/Dialog.js +7 -63
  159. package/dist/cjs/components/Dialog.js.map +1 -1
  160. package/dist/cjs/components/Empty.js +10 -29
  161. package/dist/cjs/components/Empty.js.map +1 -1
  162. package/dist/cjs/components/Input.js +8 -151
  163. package/dist/cjs/components/Input.js.map +1 -1
  164. package/dist/cjs/components/Kbd.js +8 -41
  165. package/dist/cjs/components/Kbd.js.map +1 -1
  166. package/dist/cjs/components/Label.js +11 -59
  167. package/dist/cjs/components/Label.js.map +1 -1
  168. package/dist/cjs/components/MultiEmailInput.js +20 -0
  169. package/dist/cjs/components/MultiEmailInput.js.map +1 -0
  170. package/dist/cjs/components/Pagination.js +21 -0
  171. package/dist/cjs/components/Pagination.js.map +1 -0
  172. package/dist/cjs/components/Popover.js +7 -103
  173. package/dist/cjs/components/Popover.js.map +1 -1
  174. package/dist/cjs/components/Progress.js +7 -13
  175. package/dist/cjs/components/Progress.js.map +1 -1
  176. package/dist/cjs/components/RadioGroup.js +9 -40
  177. package/dist/cjs/components/RadioGroup.js.map +1 -1
  178. package/dist/cjs/components/Select.js +33 -0
  179. package/dist/cjs/components/Select.js.map +1 -1
  180. package/dist/cjs/components/Sheet.js +7 -65
  181. package/dist/cjs/components/Sheet.js.map +1 -1
  182. package/dist/cjs/components/Slider.js +8 -25
  183. package/dist/cjs/components/Slider.js.map +1 -1
  184. package/dist/cjs/components/Spinner.js +7 -19
  185. package/dist/cjs/components/Spinner.js.map +1 -1
  186. package/dist/cjs/components/Stepper.js +6 -32
  187. package/dist/cjs/components/Stepper.js.map +1 -1
  188. package/dist/cjs/components/Switch.js +8 -20
  189. package/dist/cjs/components/Switch.js.map +1 -1
  190. package/dist/cjs/components/Tabs.js +8 -55
  191. package/dist/cjs/components/Tabs.js.map +1 -1
  192. package/dist/cjs/components/Textarea.js +8 -77
  193. package/dist/cjs/components/Textarea.js.map +1 -1
  194. package/dist/cjs/components/TimePicker.js +42 -0
  195. package/dist/cjs/components/TimePicker.js.map +1 -0
  196. package/dist/cjs/components/Toastr.js +4 -126
  197. package/dist/cjs/components/Toastr.js.map +1 -1
  198. package/dist/cjs/components/Tooltip.js +5 -85
  199. package/dist/cjs/components/Tooltip.js.map +1 -1
  200. package/dist/cjs/components/Tree.js +62 -0
  201. package/dist/cjs/components/Tree.js.map +1 -0
  202. package/dist/cjs/components/TreeSelect.js +45 -0
  203. package/dist/cjs/components/TreeSelect.js.map +1 -0
  204. package/dist/cjs/components/Typography.js +8 -98
  205. package/dist/cjs/components/Typography.js.map +1 -1
  206. package/dist/cjs/formik/Button.js +45 -0
  207. package/dist/cjs/formik/Button.js.map +1 -0
  208. package/dist/cjs/formik/Checkbox.js +38 -0
  209. package/dist/cjs/formik/Checkbox.js.map +1 -0
  210. package/dist/cjs/formik/Form.js +116 -0
  211. package/dist/cjs/formik/Form.js.map +1 -0
  212. package/dist/cjs/formik/Input.js +38 -0
  213. package/dist/cjs/formik/Input.js.map +1 -0
  214. package/dist/cjs/formik/MultiEmailInput.js +31 -0
  215. package/dist/cjs/formik/MultiEmailInput.js.map +1 -0
  216. package/dist/cjs/formik/RadioGroup.js +44 -0
  217. package/dist/cjs/formik/RadioGroup.js.map +1 -0
  218. package/dist/cjs/formik/Select.js +61 -0
  219. package/dist/cjs/formik/Select.js.map +1 -0
  220. package/dist/cjs/formik/Slider.js +39 -0
  221. package/dist/cjs/formik/Slider.js.map +1 -0
  222. package/dist/cjs/formik/Switch.js +33 -0
  223. package/dist/cjs/formik/Switch.js.map +1 -0
  224. package/dist/cjs/formik/Textarea.js +34 -0
  225. package/dist/cjs/formik/Textarea.js.map +1 -0
  226. package/dist/cjs/formik/TreeSelect.js +56 -0
  227. package/dist/cjs/formik/TreeSelect.js.map +1 -0
  228. package/dist/cjs/formik/index.js +101 -0
  229. package/dist/cjs/formik/index.js.map +1 -0
  230. package/dist/cjs/index.js +317 -427
  231. package/dist/cjs/index.js.map +1 -1
  232. package/dist/cjs/primitives/Calendar.js +10 -8020
  233. package/dist/cjs/primitives/Calendar.js.map +1 -1
  234. package/dist/cjs/primitives/Chart.js +410 -207
  235. package/dist/cjs/primitives/Chart.js.map +1 -1
  236. package/dist/cjs/primitives/Combobox.js +783 -1096
  237. package/dist/cjs/primitives/Combobox.js.map +1 -1
  238. package/dist/cjs/primitives/Pagination.js +1 -1
  239. package/dist/cjs/primitives/Resizable.js +799 -778
  240. package/dist/cjs/primitives/Resizable.js.map +1 -1
  241. package/dist/cjs/primitives/ScrollArea.js +10 -10
  242. package/dist/cjs/primitives/Select.js +77 -77
  243. package/dist/cjs/primitives/index.js +3 -2
  244. package/dist/cjs/primitives/index.js.map +1 -1
  245. package/dist/cjs/redux-DEF7lAd1.js +240 -0
  246. package/dist/cjs/redux-DEF7lAd1.js.map +1 -0
  247. package/dist/cjs/with-selector-DeKHbQY7.js +121 -0
  248. package/dist/cjs/with-selector-DeKHbQY7.js.map +1 -0
  249. package/dist/components/Accordion/index.d.ts +2 -0
  250. package/dist/components/Accordion.js +5 -27
  251. package/dist/components/Accordion.js.map +1 -1
  252. package/dist/components/{Alert.d.ts → Alert/Alert.d.ts} +2 -2
  253. package/dist/components/Alert/constants.d.ts +3 -0
  254. package/dist/components/Alert/index.d.ts +2 -0
  255. package/dist/components/Alert.js +10 -75
  256. package/dist/components/Alert.js.map +1 -1
  257. package/dist/components/{Avatar.d.ts → Avatar/Avatar.d.ts} +2 -2
  258. package/dist/components/Avatar/constants.d.ts +3 -0
  259. package/dist/components/Avatar/index.d.ts +2 -0
  260. package/dist/components/Avatar/utils.d.ts +1 -0
  261. package/dist/components/Avatar.js +9 -56
  262. package/dist/components/Avatar.js.map +1 -1
  263. package/dist/components/{Badge.d.ts → Badge/Badge.d.ts} +1 -1
  264. package/dist/components/Badge/constants.d.ts +25 -0
  265. package/dist/components/Badge/index.d.ts +2 -0
  266. package/dist/components/Badge.js +8 -66
  267. package/dist/components/Badge.js.map +1 -1
  268. package/dist/components/Button/constants.d.ts +5 -0
  269. package/dist/components/Button/index.d.ts +2 -0
  270. package/dist/components/Button.js +11 -99
  271. package/dist/components/Button.js.map +1 -1
  272. package/dist/components/{Callout.d.ts → Callout/Callout.d.ts} +1 -1
  273. package/dist/components/Callout/constants.d.ts +8 -0
  274. package/dist/components/Callout/index.d.ts +2 -0
  275. package/dist/components/Callout.js +8 -69
  276. package/dist/components/Callout.js.map +1 -1
  277. package/dist/components/Checkbox/index.d.ts +2 -0
  278. package/dist/components/Checkbox.js +6 -26
  279. package/dist/components/Checkbox.js.map +1 -1
  280. package/dist/components/ColorPicker.js +2 -2
  281. package/dist/components/DataTable.js +4 -4
  282. package/dist/components/DatePicker/DatePicker.d.ts +4 -0
  283. package/dist/components/DatePicker/DatePickerFooter.d.ts +12 -0
  284. package/dist/components/DatePicker/TimezoneSelect.d.ts +8 -0
  285. package/dist/components/DatePicker/constants.d.ts +17 -0
  286. package/dist/components/DatePicker/index.d.ts +2 -0
  287. package/dist/components/DatePicker/types.d.ts +56 -0
  288. package/dist/components/DatePicker/utils.d.ts +6 -0
  289. package/dist/components/DatePicker.js +39 -0
  290. package/dist/components/DatePicker.js.map +1 -0
  291. package/dist/components/{Dialog.d.ts → Dialog/Dialog.d.ts} +1 -1
  292. package/dist/components/Dialog/constants.d.ts +2 -0
  293. package/dist/components/Dialog/index.d.ts +2 -0
  294. package/dist/components/Dialog.js +5 -65
  295. package/dist/components/Dialog.js.map +1 -1
  296. package/dist/components/DropdownMenu.js +3 -3
  297. package/dist/components/Empty/index.d.ts +2 -0
  298. package/dist/components/Empty.js +11 -34
  299. package/dist/components/Empty.js.map +1 -1
  300. package/dist/components/Input/constants.d.ts +17 -0
  301. package/dist/components/Input/index.d.ts +2 -0
  302. package/dist/components/Input/utils.d.ts +7 -0
  303. package/dist/components/Input.js +6 -153
  304. package/dist/components/Input.js.map +1 -1
  305. package/dist/components/{Kbd.d.ts → Kbd/Kbd.d.ts} +1 -1
  306. package/dist/components/Kbd/constants.d.ts +1 -0
  307. package/dist/components/Kbd/index.d.ts +2 -0
  308. package/dist/components/Kbd.js +9 -46
  309. package/dist/components/Kbd.js.map +1 -1
  310. package/dist/components/Label/constants.d.ts +1 -0
  311. package/dist/components/Label/index.d.ts +2 -0
  312. package/dist/components/Label.js +13 -65
  313. package/dist/components/Label.js.map +1 -1
  314. package/dist/components/MultiEmailInput/MultiEmailInput.d.ts +3 -0
  315. package/dist/components/MultiEmailInput/constants.d.ts +3 -0
  316. package/dist/components/MultiEmailInput/index.d.ts +2 -0
  317. package/dist/components/MultiEmailInput/types.d.ts +53 -0
  318. package/dist/components/MultiEmailInput/useMultiEmailState.d.ts +18 -0
  319. package/dist/components/MultiEmailInput/utils.d.ts +9 -0
  320. package/dist/components/MultiEmailInput.js +14 -0
  321. package/dist/components/MultiEmailInput.js.map +1 -0
  322. package/dist/components/Pagination/Pagination.d.ts +18 -0
  323. package/dist/components/Pagination/constants.d.ts +1 -0
  324. package/dist/components/Pagination/hooks/usePaginationRange.d.ts +7 -0
  325. package/dist/components/Pagination/index.d.ts +2 -0
  326. package/dist/components/Pagination/utils.d.ts +1 -0
  327. package/dist/components/Pagination.js +15 -0
  328. package/dist/components/Pagination.js.map +1 -0
  329. package/dist/components/Popover/constants.d.ts +2 -0
  330. package/dist/components/Popover/index.d.ts +2 -0
  331. package/dist/components/Popover.js +8 -104
  332. package/dist/components/Popover.js.map +1 -1
  333. package/dist/components/Progress/index.d.ts +2 -0
  334. package/dist/components/Progress.js +5 -15
  335. package/dist/components/Progress.js.map +1 -1
  336. package/dist/components/RadioGroup/index.d.ts +2 -0
  337. package/dist/components/RadioGroup.js +7 -42
  338. package/dist/components/RadioGroup.js.map +1 -1
  339. package/dist/components/Select/MultiSelectCombobox.d.ts +2 -0
  340. package/dist/components/{MultiSelectCombobox.types.d.ts → Select/MultiSelectCombobox.types.d.ts} +3 -13
  341. package/dist/components/{OptionItem.d.ts → Select/OptionItem.d.ts} +1 -1
  342. package/dist/components/Select/Select.d.ts +5 -0
  343. package/dist/components/Select/SelectCombobox.d.ts +2 -0
  344. package/dist/components/Select/SelectCombobox.types.d.ts +73 -0
  345. package/dist/components/Select/dropdown.types.d.ts +12 -0
  346. package/dist/components/Select/index.d.ts +2 -0
  347. package/dist/components/Select/types.d.ts +148 -0
  348. package/dist/components/{MultiSelect.utils.d.ts → Select/utils.d.ts} +1 -1
  349. package/dist/components/Select.js +29 -1
  350. package/dist/components/Select.js.map +1 -1
  351. package/dist/components/Sheet/constants.d.ts +3 -0
  352. package/dist/components/Sheet/index.d.ts +2 -0
  353. package/dist/components/Sheet.js +5 -67
  354. package/dist/components/Sheet.js.map +1 -1
  355. package/dist/components/Slider/index.d.ts +2 -0
  356. package/dist/components/Slider.js +6 -27
  357. package/dist/components/Slider.js.map +1 -1
  358. package/dist/components/Spinner/constants.d.ts +1 -0
  359. package/dist/components/Spinner/index.d.ts +2 -0
  360. package/dist/components/Spinner.js +5 -21
  361. package/dist/components/Spinner.js.map +1 -1
  362. package/dist/components/Stepper/index.d.ts +2 -0
  363. package/dist/components/Stepper.js +5 -31
  364. package/dist/components/Stepper.js.map +1 -1
  365. package/dist/components/Switch/index.d.ts +2 -0
  366. package/dist/components/Switch.js +6 -22
  367. package/dist/components/Switch.js.map +1 -1
  368. package/dist/components/Tabs/constants.d.ts +5 -0
  369. package/dist/components/Tabs/index.d.ts +2 -0
  370. package/dist/components/Tabs.js +6 -57
  371. package/dist/components/Tabs.js.map +1 -1
  372. package/dist/components/{Textarea.d.ts → Textarea/Textarea.d.ts} +1 -1
  373. package/dist/components/Textarea/constants.d.ts +5 -0
  374. package/dist/components/Textarea/index.d.ts +2 -0
  375. package/dist/components/Textarea/utils.d.ts +2 -0
  376. package/dist/components/Textarea.js +6 -79
  377. package/dist/components/Textarea.js.map +1 -1
  378. package/dist/components/TimePicker/TimeColumn.d.ts +11 -0
  379. package/dist/components/TimePicker/TimePicker.d.ts +4 -0
  380. package/dist/components/TimePicker/TimePickerPanel.d.ts +4 -0
  381. package/dist/components/TimePicker/constants.d.ts +3 -0
  382. package/dist/components/TimePicker/index.d.ts +3 -0
  383. package/dist/components/TimePicker/types.d.ts +61 -0
  384. package/dist/components/TimePicker/utils.d.ts +11 -0
  385. package/dist/components/TimePicker.js +35 -0
  386. package/dist/components/TimePicker.js.map +1 -0
  387. package/dist/components/{Toastr.d.ts → Toastr/Toastr.d.ts} +2 -2
  388. package/dist/components/Toastr/index.d.ts +2 -0
  389. package/dist/components/Toastr/utils.d.ts +10 -0
  390. package/dist/components/Toastr.js +2 -128
  391. package/dist/components/Toastr.js.map +1 -1
  392. package/dist/components/Tooltip/constants.d.ts +2 -0
  393. package/dist/components/Tooltip/index.d.ts +2 -0
  394. package/dist/components/Tooltip.js +7 -87
  395. package/dist/components/Tooltip.js.map +1 -1
  396. package/dist/components/Tree/Tree.d.ts +2 -0
  397. package/dist/components/Tree/TreeContext.d.ts +26 -0
  398. package/dist/components/Tree/components/SwitcherIcon.d.ts +6 -0
  399. package/dist/components/Tree/components/TreeCheckbox.d.ts +8 -0
  400. package/dist/components/Tree/components/TreeNode.d.ts +3 -0
  401. package/dist/components/Tree/constants.d.ts +3 -0
  402. package/dist/components/Tree/hooks/useTreeCheck.d.ts +18 -0
  403. package/dist/components/Tree/hooks/useTreeExpansion.d.ts +18 -0
  404. package/dist/components/Tree/hooks/useTreeSelection.d.ts +16 -0
  405. package/dist/components/Tree/index.d.ts +3 -0
  406. package/dist/components/Tree/types.d.ts +110 -0
  407. package/dist/components/Tree/utils/adapter.d.ts +10 -0
  408. package/dist/components/Tree/utils/checkCascade.d.ts +5 -0
  409. package/dist/components/Tree/utils/search.d.ts +10 -0
  410. package/dist/components/Tree.js +57 -0
  411. package/dist/components/Tree.js.map +1 -0
  412. package/dist/components/TreeSelect/TreeSelect.d.ts +3 -0
  413. package/dist/components/TreeSelect/TreeSelectTrigger.d.ts +14 -0
  414. package/dist/components/{Select.constants.d.ts → TreeSelect/constants.d.ts} +2 -2
  415. package/dist/components/TreeSelect/hooks/useTreeSelectState.d.ts +30 -0
  416. package/dist/components/TreeSelect/hooks/useTreeSelectValue.d.ts +19 -0
  417. package/dist/components/TreeSelect/index.d.ts +2 -0
  418. package/dist/components/TreeSelect/types.d.ts +49 -0
  419. package/dist/components/TreeSelect/utils/pruneTree.d.ts +2 -0
  420. package/dist/components/TreeSelect/utils/resolveFieldNames.d.ts +5 -0
  421. package/dist/components/TreeSelect.js +39 -0
  422. package/dist/components/TreeSelect.js.map +1 -0
  423. package/dist/components/{Typography.d.ts → Typography/Typography.d.ts} +1 -1
  424. package/dist/components/Typography/index.d.ts +1 -0
  425. package/dist/components/Typography.js +6 -81
  426. package/dist/components/Typography.js.map +1 -1
  427. package/dist/{floating-ui.react-dom-CcGbtPEK.js → floating-ui.react-dom-D8_f_WWh.js} +2 -2
  428. package/dist/{floating-ui.react-dom-CcGbtPEK.js.map → floating-ui.react-dom-D8_f_WWh.js.map} +1 -1
  429. package/dist/formik/Button.d.ts +7 -0
  430. package/dist/formik/Button.js +43 -0
  431. package/dist/formik/Button.js.map +1 -0
  432. package/dist/formik/Checkbox.d.ts +8 -0
  433. package/dist/formik/Checkbox.js +36 -0
  434. package/dist/formik/Checkbox.js.map +1 -0
  435. package/dist/formik/Form/FormWrapper.d.ts +9 -0
  436. package/dist/formik/Form/ScrollToErrorField/index.d.ts +5 -0
  437. package/dist/formik/Form/ScrollToErrorField/utils.d.ts +2 -0
  438. package/dist/formik/Form/index.d.ts +16 -0
  439. package/dist/formik/Form.js +114 -0
  440. package/dist/formik/Form.js.map +1 -0
  441. package/dist/formik/Input.d.ts +8 -0
  442. package/dist/formik/Input.js +36 -0
  443. package/dist/formik/Input.js.map +1 -0
  444. package/dist/formik/MultiEmailInput.d.ts +7 -0
  445. package/dist/formik/MultiEmailInput.js +29 -0
  446. package/dist/formik/MultiEmailInput.js.map +1 -0
  447. package/dist/formik/RadioGroup.js +42 -0
  448. package/dist/formik/RadioGroup.js.map +1 -0
  449. package/dist/formik/Select.d.ts +7 -0
  450. package/dist/formik/Select.js +59 -0
  451. package/dist/formik/Select.js.map +1 -0
  452. package/dist/formik/Slider.d.ts +8 -0
  453. package/dist/formik/Slider.js +37 -0
  454. package/dist/formik/Slider.js.map +1 -0
  455. package/dist/formik/Switch.d.ts +10 -0
  456. package/dist/formik/Switch.js +31 -0
  457. package/dist/formik/Switch.js.map +1 -0
  458. package/dist/formik/Textarea.d.ts +8 -0
  459. package/dist/formik/Textarea.js +32 -0
  460. package/dist/formik/Textarea.js.map +1 -0
  461. package/dist/formik/TreeSelect.d.ts +7 -0
  462. package/dist/formik/TreeSelect.js +54 -0
  463. package/dist/formik/TreeSelect.js.map +1 -0
  464. package/dist/formik/index.d.ts +22 -0
  465. package/dist/formik/index.js +85 -0
  466. package/dist/formik/index.js.map +1 -0
  467. package/dist/hooks/useAsyncOptions.d.ts +4 -4
  468. package/dist/hooks/useComboboxAnchor.d.ts +6 -0
  469. package/dist/hooks/useCreatableItems.d.ts +1 -1
  470. package/dist/hooks/useMultiSelectOptions.d.ts +22 -4
  471. package/dist/hooks/useMultiSelectState.d.ts +7 -4
  472. package/dist/hooks/useSelectState.d.ts +39 -14
  473. package/dist/{index-ByEpUy7w.js → index-C3hByjk3.js} +2 -2
  474. package/dist/{index-ByEpUy7w.js.map → index-C3hByjk3.js.map} +1 -1
  475. package/dist/{index-KzJfsx-e.js → index-DLPtgEJ_.js} +2 -2
  476. package/dist/{index-KzJfsx-e.js.map → index-DLPtgEJ_.js.map} +1 -1
  477. package/dist/index.css +2 -1
  478. package/dist/index.d.ts +13 -2
  479. package/dist/index.js +281 -402
  480. package/dist/index.js.map +1 -1
  481. package/dist/primitives/Calendar.js +8 -8003
  482. package/dist/primitives/Calendar.js.map +1 -1
  483. package/dist/primitives/Chart.js +253 -50
  484. package/dist/primitives/Chart.js.map +1 -1
  485. package/dist/primitives/Combobox.d.ts +3 -3
  486. package/dist/primitives/Combobox.js +787 -1100
  487. package/dist/primitives/Combobox.js.map +1 -1
  488. package/dist/primitives/ContextMenu.js +3 -3
  489. package/dist/primitives/DropdownMenu.js +3 -3
  490. package/dist/primitives/HoverCard.js +2 -2
  491. package/dist/primitives/Menubar.js +3 -3
  492. package/dist/primitives/Pagination.js +1 -1
  493. package/dist/primitives/Popover.js +2 -2
  494. package/dist/primitives/Resizable.js +799 -778
  495. package/dist/primitives/Resizable.js.map +1 -1
  496. package/dist/primitives/Select.js +4 -4
  497. package/dist/primitives/Sidebar.js +3 -3
  498. package/dist/primitives/Tooltip.js +3 -3
  499. package/dist/primitives/index.js +7 -6
  500. package/dist/primitives/index.js.map +1 -1
  501. package/dist/redux-BKH6DnBB.js +235 -0
  502. package/dist/redux-BKH6DnBB.js.map +1 -0
  503. package/dist/shadcn/components/combobox.d.ts +1 -1
  504. package/dist/shadcn/components/typography.d.ts +2 -2
  505. package/dist/{tooltip-DzjIJacP.js → tooltip-XkHLgxlU.js} +2 -2
  506. package/dist/{tooltip-DzjIJacP.js.map → tooltip-XkHLgxlU.js.map} +1 -1
  507. package/dist/utils/dayjs/index.d.ts +4 -0
  508. package/dist/utils/dayjs/timezonePlugin.d.ts +3 -0
  509. package/dist/with-selector-Dv0G_V_o.js +115 -0
  510. package/dist/with-selector-Dv0G_V_o.js.map +1 -0
  511. package/package.json +17 -3
  512. package/dist/cjs/components/MultiSelect.js +0 -13
  513. package/dist/cjs/components/MultiSelect.js.map +0 -1
  514. package/dist/cjs/components/MultiSelectCombobox.js +0 -3
  515. package/dist/cjs/components/MultiSelectCombobox.js.map +0 -1
  516. package/dist/cjs/components/MultiSelectDropdown.js +0 -38
  517. package/dist/cjs/components/MultiSelectDropdown.js.map +0 -1
  518. package/dist/cjs/components/OptionItem.js +0 -34
  519. package/dist/cjs/components/OptionItem.js.map +0 -1
  520. package/dist/cjs/components/SelectFieldWrapper.js.map +0 -1
  521. package/dist/cjs/components/SelectOptions.js +0 -43
  522. package/dist/cjs/components/SelectOptions.js.map +0 -1
  523. package/dist/cjs/components/SelectTriggerContent.js +0 -47
  524. package/dist/cjs/components/SelectTriggerContent.js.map +0 -1
  525. package/dist/cjs/components/shared.js +0 -8
  526. package/dist/cjs/components/shared.js.map +0 -1
  527. package/dist/cjs/useCreatableItems-BTHtd7uo.js +0 -100
  528. package/dist/cjs/useCreatableItems-BTHtd7uo.js.map +0 -1
  529. package/dist/cjs/with-selector-u4xTSzCv.js +0 -457
  530. package/dist/cjs/with-selector-u4xTSzCv.js.map +0 -1
  531. package/dist/components/MultiSelect.d.ts +0 -4
  532. package/dist/components/MultiSelect.js +0 -4
  533. package/dist/components/MultiSelect.js.map +0 -1
  534. package/dist/components/MultiSelect.types.d.ts +0 -121
  535. package/dist/components/MultiSelectCombobox.d.ts +0 -3
  536. package/dist/components/MultiSelectCombobox.js +0 -2
  537. package/dist/components/MultiSelectCombobox.js.map +0 -1
  538. package/dist/components/MultiSelectDropdown.js +0 -36
  539. package/dist/components/MultiSelectDropdown.js.map +0 -1
  540. package/dist/components/OptionItem.js +0 -32
  541. package/dist/components/OptionItem.js.map +0 -1
  542. package/dist/components/Select.d.ts +0 -4
  543. package/dist/components/Select.types.d.ts +0 -58
  544. package/dist/components/SelectFieldWrapper.js.map +0 -1
  545. package/dist/components/SelectOptions.d.ts +0 -2
  546. package/dist/components/SelectOptions.js +0 -41
  547. package/dist/components/SelectOptions.js.map +0 -1
  548. package/dist/components/SelectTriggerContent.d.ts +0 -18
  549. package/dist/components/SelectTriggerContent.js +0 -45
  550. package/dist/components/SelectTriggerContent.js.map +0 -1
  551. package/dist/components/shared.js +0 -6
  552. package/dist/components/shared.js.map +0 -1
  553. package/dist/components/shared.types.d.ts +0 -16
  554. package/dist/useCreatableItems-B0seQA1_.js +0 -89
  555. package/dist/useCreatableItems-B0seQA1_.js.map +0 -1
  556. package/dist/with-selector--fY1NrB9.js +0 -448
  557. package/dist/with-selector--fY1NrB9.js.map +0 -1
  558. /package/dist/components/{Accordion.d.ts → Accordion/Accordion.d.ts} +0 -0
  559. /package/dist/components/{Button.d.ts → Button/Button.d.ts} +0 -0
  560. /package/dist/components/{Checkbox.d.ts → Checkbox/Checkbox.d.ts} +0 -0
  561. /package/dist/components/{Empty.d.ts → Empty/Empty.d.ts} +0 -0
  562. /package/dist/components/{Input.d.ts → Input/Input.d.ts} +0 -0
  563. /package/dist/components/{Label.d.ts → Label/Label.d.ts} +0 -0
  564. /package/dist/components/{Popover.d.ts → Popover/Popover.d.ts} +0 -0
  565. /package/dist/components/{Progress.d.ts → Progress/Progress.d.ts} +0 -0
  566. /package/dist/components/{RadioGroup.d.ts → RadioGroup/RadioGroup.d.ts} +0 -0
  567. /package/dist/components/{MultiSelectDropdown.d.ts → Select/MultiSelectDropdown.d.ts} +0 -0
  568. /package/dist/components/{SelectFieldWrapper.d.ts → Select/SelectFieldWrapper.d.ts} +0 -0
  569. /package/dist/components/{MultiSelect.constants.d.ts → Select/constants.d.ts} +0 -0
  570. /package/dist/components/{Sheet.d.ts → Sheet/Sheet.d.ts} +0 -0
  571. /package/dist/components/{Slider.d.ts → Slider/Slider.d.ts} +0 -0
  572. /package/dist/components/{Spinner.d.ts → Spinner/Spinner.d.ts} +0 -0
  573. /package/dist/components/{Stepper.d.ts → Stepper/Stepper.d.ts} +0 -0
  574. /package/dist/components/{Switch.d.ts → Switch/Switch.d.ts} +0 -0
  575. /package/dist/components/{Tabs.d.ts → Tabs/Tabs.d.ts} +0 -0
  576. /package/dist/components/{Tooltip.d.ts → Tooltip/Tooltip.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select-BGODpJGc.js","sources":["../src/utils/hyphenize.ts","../src/utils/fieldIds.ts","../src/hooks/useAsyncOptions.ts","../src/hooks/useLazyLoadSentinel.ts","../src/hooks/useCreatableItems.ts","../src/components/Select/types.ts","../src/components/Select/utils.ts","../src/hooks/useMultiSelectOptions.ts","../src/components/Select/constants.ts","../src/hooks/useSelectState.ts","../src/hooks/useMultiSelectState.ts","../src/hooks/useComboboxAnchor.ts","../src/components/Select/OptionItem.tsx","../src/components/Select/MultiSelectDropdown.tsx","../src/components/Select/SelectCombobox.tsx","../src/components/Select/MultiSelectCombobox.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["export function hyphenize(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/[\\s_]+/g, \"-\")\n .toLowerCase();\n}\n","import { hyphenize } from \"./hyphenize\";\n\nexport function buildAriaDescribedBy(\n error: string,\n errorId: string,\n helpText: React.ReactNode,\n helpTextId: string\n): string | undefined {\n return (\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined\n );\n}\n\nexport function buildTestIdPrefix(\n dataTestId: string | undefined,\n label: string\n): string | undefined {\n return dataTestId ?? (label ? hyphenize(label) : undefined);\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { SelectOptionBase } from \"src/components/Select/types\";\n\ninterface UseAsyncOptionsConfig {\n loadOptions?: (inputValue: string) => Promise<SelectOptionBase[]>;\n defaultOptions?: boolean | SelectOptionBase[];\n cacheOptions?: boolean;\n}\n\ninterface UseAsyncOptionsReturn {\n asyncOptions: SelectOptionBase[];\n isLoading: boolean;\n handleAsyncInputChange: (value: string) => void;\n}\n\nexport function useAsyncOptions({\n loadOptions,\n defaultOptions = false,\n cacheOptions = false,\n}: UseAsyncOptionsConfig): UseAsyncOptionsReturn {\n const [asyncOptions, setAsyncOptions] = useState<SelectOptionBase[]>(() =>\n Array.isArray(defaultOptions) ? defaultOptions : []\n );\n const [isLoading, setIsLoading] = useState(false);\n const cacheRef = useRef<Record<string, SelectOptionBase[]>>({});\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const latestRequestRef = useRef(0);\n const mountedRef = useRef(true);\n\n // Load default options on mount when `defaultOptions === true`\n useEffect(() => {\n if (!loadOptions || defaultOptions !== true) return;\n let cancelled = false;\n setIsLoading(true);\n loadOptions(\"\")\n .then(results => {\n if (cancelled) return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[\"\"] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (!cancelled) setIsLoading(false);\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n // Clean up debounce timer and mark unmounted\n useEffect(() => {\n return () => {\n mountedRef.current = false;\n if (debounceRef.current) clearTimeout(debounceRef.current);\n };\n }, []);\n\n const handleAsyncInputChange = useCallback(\n (value: string) => {\n if (!loadOptions) return;\n\n const query = value.trim();\n\n // Check cache first\n if (cacheOptions && query in cacheRef.current) {\n setAsyncOptions(cacheRef.current[query]);\n return;\n }\n\n // Debounce the fetch\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(() => {\n const requestId = ++latestRequestRef.current;\n setIsLoading(true);\n loadOptions(query)\n .then(results => {\n if (requestId !== latestRequestRef.current || !mountedRef.current)\n return;\n setAsyncOptions(results);\n if (cacheOptions) cacheRef.current[query] = results;\n setIsLoading(false);\n })\n .catch(() => {\n if (requestId === latestRequestRef.current && mountedRef.current) {\n setIsLoading(false);\n }\n });\n }, 300);\n },\n [loadOptions, cacheOptions]\n );\n\n return { asyncOptions, isLoading, handleAsyncInputChange };\n}\n","import { useCallback, useEffect, useRef } from \"react\";\n\ninterface UseLazyLoadSentinelConfig {\n fetchMore?: () => void;\n isEnabled: boolean;\n}\n\nexport function useLazyLoadSentinel({\n fetchMore,\n isEnabled,\n}: UseLazyLoadSentinelConfig) {\n const observerRef = useRef<IntersectionObserver | null>(null);\n const fetchMoreRef = useRef(fetchMore);\n fetchMoreRef.current = fetchMore;\n\n const sentinelRef = useCallback(\n (node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (!node || !isEnabled) return;\n\n const observer = new IntersectionObserver(\n entries => {\n if (entries[0]?.isIntersecting) fetchMoreRef.current?.();\n },\n { root: null, rootMargin: \"0px\", threshold: 0.1 }\n );\n observer.observe(node);\n observerRef.current = observer;\n },\n [isEnabled]\n );\n\n // Clean up observer on unmount\n useEffect(() => {\n return () => {\n observerRef.current?.disconnect();\n };\n }, []);\n\n return sentinelRef;\n}\n","import React, { useCallback, useMemo, useState } from \"react\";\n\nimport { computeEffectiveItems } from \"src/components/Select/utils\";\nimport type { SelectOptionBase as MultiSelectOptionBase } from \"src/components/Select/types\";\n\nexport const CREATE_PREFIX = \"__create__:\";\n\ninterface UseCreatableItemsConfig {\n isCreatable: boolean;\n isGrouped: boolean;\n flatOptions: MultiSelectOptionBase[];\n selectedValues: string[];\n baseUiItems?: string[] | { label: string; items: string[] }[];\n onCreateOption?: (inputValue: string) => void;\n onChange?: (values: string[]) => void;\n onAsyncInputChange?: (value: string) => void;\n children?: React.ReactNode;\n}\n\ninterface UseCreatableItemsReturn {\n inputValue: string;\n showCreateOption: boolean;\n effectiveItems: string[] | { label: string; items: string[] }[] | undefined;\n creatableFilter: (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => boolean;\n handleInputValueChange: (value: string) => void;\n handleValueChange: (next: string[] | null) => void;\n}\n\nexport function useCreatableItems({\n isCreatable,\n isGrouped,\n flatOptions,\n selectedValues,\n baseUiItems,\n onCreateOption,\n onChange,\n onAsyncInputChange,\n children,\n}: UseCreatableItemsConfig): UseCreatableItemsReturn {\n const [inputValue, setInputValue] = useState(\"\");\n\n const handleInputValueChange = useCallback(\n (value: string) => {\n setInputValue(value);\n onAsyncInputChange?.(value);\n },\n [onAsyncInputChange]\n );\n\n const trimmedInput = inputValue.trim();\n const showCreateOption = useMemo(() => {\n if (!isCreatable || trimmedInput.length === 0) return false;\n const lower = trimmedInput.toLowerCase();\n return (\n !flatOptions.some(\n o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower\n ) && !selectedValues.includes(trimmedInput)\n );\n }, [isCreatable, trimmedInput, flatOptions, selectedValues]);\n\n const effectiveItems = React.useMemo(\n () =>\n computeEffectiveItems(\n children,\n baseUiItems,\n showCreateOption,\n isGrouped,\n trimmedInput\n ),\n [baseUiItems, children, isGrouped, showCreateOption, trimmedInput]\n );\n\n // Custom filter: always pass the \"Create\" item through\n const creatableFilter = useCallback(\n (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => {\n if (itemValue.startsWith(CREATE_PREFIX)) return true;\n const label = itemToString?.(itemValue) ?? itemValue;\n return label.toLowerCase().includes(query.toLowerCase());\n },\n []\n );\n\n const handleValueChange = useCallback(\n (next: string[] | null) => {\n const raw = next ?? [];\n\n const createEntry = raw.find(v => v.startsWith(CREATE_PREFIX));\n if (createEntry) {\n const newValue = createEntry.slice(CREATE_PREFIX.length);\n const withNewValue = raw.map(v => (v === createEntry ? newValue : v));\n onCreateOption?.(newValue);\n onChange?.(withNewValue);\n return;\n }\n\n onChange?.(raw);\n },\n [onChange, onCreateOption]\n );\n\n return {\n inputValue,\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n };\n}\n","import type React from \"react\";\n\nimport type { ComboboxContent } from \"src/primitives/Combobox\";\nimport type { FieldLabel } from \"src/primitives/Field\";\n\nexport interface OptionBase {\n /** Display text for the option. */\n label: string;\n /** Unique value for the option. */\n value: string;\n /** Whether the option is disabled. */\n disabled?: boolean;\n}\n\nexport interface OptionGroup {\n /** Group heading text. */\n label: string;\n /** Options within this group. */\n options: OptionBase[];\n}\n\nexport type Option = OptionBase | OptionGroup;\n\nexport function isOptionGroup(opt: Option): opt is OptionGroup {\n return \"options\" in opt && Array.isArray(opt.options);\n}\n\nexport type SelectOptionBase = OptionBase;\nexport type SelectOptionGroup = OptionGroup;\nexport type SelectOption = Option;\n\ntype SelectSize = \"small\" | \"medium\" | \"large\";\n\ninterface SelectSharedProps {\n /** Unique identifier for the select. Auto-generated if omitted. */\n id?: string;\n /** Name attribute forwarded to the underlying input. */\n name?: string;\n /** Size of the trigger. */\n size?: SelectSize;\n /** Label displayed above the select. */\n label?: string;\n /** Error message displayed below the select. */\n error?: string;\n /** Help text displayed below the select. */\n helpText?: React.ReactNode;\n /** Placeholder text when no value is selected. */\n placeholder?: string;\n /** Flat or grouped option list. */\n options?: SelectOption[];\n /** Disable the select. */\n isDisabled?: boolean;\n /** Mark as required. */\n required?: boolean;\n /**\n * Enable search/filtering of options by typing in the input.\n * When false, the input is hidden and the trigger shows the selected label.\n * @default true\n */\n isSearchable?: boolean;\n /** Whether the first matching item is highlighted automatically. @default true */\n autoHighlight?: boolean;\n /** Callback fired when the dropdown opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /**\n * Positioning strategy for the dropdown content.\n * @deprecated The Combobox primitive always uses popper-style positioning.\n * Use `contentProps.side` and `contentProps.align` for positioning control.\n */\n position?: \"item-aligned\" | \"popper\";\n /** Show a clear/reset button when a value is selected. */\n isClearable?: boolean;\n /**\n * Allow creating new options by typing a value that doesn't exist.\n * Works in both single and multi mode.\n */\n isCreatable?: boolean;\n /**\n * Callback fired when a new option is created via the \"Create X\" item.\n * The parent should update the `options` list to include the new value.\n */\n onCreateOption?: (inputValue: string) => void;\n /**\n * Customize the label for the \"Create\" option in the dropdown.\n * @default (inputValue) => `Create \"${inputValue}\"`\n */\n formatCreateLabel?: (inputValue: string) => string;\n /**\n * Async function that fetches options based on the current input value.\n * Works in both single and multi mode.\n */\n loadOptions?: (inputValue: string) => Promise<SelectOptionBase[]>;\n /**\n * Options to show before the user types anything.\n * When `true`, `loadOptions(\"\")` is called on mount.\n * @default false\n */\n defaultOptions?: boolean | SelectOptionBase[];\n /**\n * Cache results from `loadOptions` so repeated queries are instant.\n * @default false\n */\n cacheOptions?: boolean;\n /** Text shown while `loadOptions` is fetching. @default \"Loading…\" */\n loadingMessage?: string;\n /** Text displayed when no options match. @default \"No results found.\" */\n emptyMessage?: string;\n /**\n * Enable lazy loading of options as the user scrolls.\n * @default false\n */\n isAsyncLoadOptionEnabled?: boolean;\n /** Callback to load the next batch of options (lazy loading). */\n fetchMore?: () => void;\n /** Total number of options on the server (lazy loading). */\n totalOptionsCount?: number;\n /** Custom data-testid prefix for the component tree. */\n dataTestId?: string;\n /** Props forwarded to the FieldLabel. */\n labelProps?: Omit<\n React.ComponentProps<typeof FieldLabel>,\n \"htmlFor\" | \"children\"\n >;\n /** Props forwarded to the ComboboxContent. */\n contentProps?: Omit<\n React.ComponentProps<typeof ComboboxContent>,\n \"anchor\" | \"children\"\n >;\n /** Additional CSS class names for the outermost wrapper. */\n className?: string;\n /** Additional CSS class names for the input/trigger element. */\n inputClassName?: string;\n /** Children rendered inside the dropdown (overrides `options`). */\n children?: React.ReactNode;\n}\n\ninterface SingleSelectProps extends SelectSharedProps {\n /** When true, multiple values can be selected and the trigger shows chips. @default false */\n isMulti?: false;\n /** Controlled selected value. */\n value?: string;\n /** Default selected value (uncontrolled). */\n defaultValue?: string;\n /** Callback fired when value changes. */\n onChange?: (value: string) => void;\n}\n\ninterface MultiSelectVariantProps extends SelectSharedProps {\n /** When true, multiple values can be selected and the trigger shows chips. */\n isMulti: true;\n /** Controlled selected values. */\n value?: string[];\n /** Default selected values (uncontrolled). */\n defaultValue?: string[];\n /** Callback fired when selected values change. */\n onChange?: (values: string[]) => void;\n /** Additional CSS class names for the chips container. */\n chipsClassName?: string;\n /** Hide the remove button on individual chips. */\n hideChipRemove?: boolean;\n}\n\nexport type SelectProps = SingleSelectProps | MultiSelectVariantProps;\n\nexport type MultiSelectProps = Extract<SelectProps, { isMulti: true }>;\n","import { CREATE_PREFIX } from \"src/hooks/useCreatableItems\";\nimport { isOptionGroup } from \"./types\";\nimport type {\n SelectOption as MultiSelectOption,\n SelectOptionBase as MultiSelectOptionBase,\n} from \"./types\";\n\n/** Flatten grouped options into a flat lookup array. */\nexport function flattenOptions(\n options: MultiSelectOption[]\n): MultiSelectOptionBase[] {\n return options.flatMap(opt => (isOptionGroup(opt) ? opt.options : [opt]));\n}\n\n/** Check if any option is a group. */\nexport function hasGroups(options: MultiSelectOption[]): boolean {\n return options.some(isOptionGroup);\n}\n\n/** Convert options to base-ui `items` format for filtering support. */\nexport function toBaseUiItems(\n options: MultiSelectOption[]\n): string[] | { label: string; items: string[] }[] {\n if (hasGroups(options)) {\n return options.filter(isOptionGroup).map(g => ({\n label: g.label,\n items: g.options.map(o => o.value),\n }));\n }\n return (options as MultiSelectOptionBase[]).map(o => o.value);\n}\n\n/** Build the effective items array, appending a \"Create\" entry when needed. */\nexport function computeEffectiveItems(\n children: unknown,\n baseUiItems: string[] | { label: string; items: string[] }[] | undefined,\n showCreateOption: boolean,\n isGrouped: boolean,\n trimmedInput: string\n): string[] | { label: string; items: string[] }[] | undefined {\n if (children) return undefined;\n\n const createValue = showCreateOption\n ? `${CREATE_PREFIX}${trimmedInput}`\n : null;\n\n if (!baseUiItems && !createValue) return undefined;\n\n const base = baseUiItems ?? ([] as string[]);\n\n if (!createValue) return base;\n\n if (!isGrouped) {\n return [...(base as string[]), createValue];\n }\n\n return [\n ...(base as { label: string; items: string[] }[]),\n { label: \"\", items: [createValue] },\n ];\n}\n","import React from \"react\";\n\nimport { useAsyncOptions } from \"./useAsyncOptions\";\nimport { useLazyLoadSentinel } from \"./useLazyLoadSentinel\";\nimport {\n flattenOptions,\n hasGroups,\n toBaseUiItems,\n} from \"src/components/Select/utils\";\nimport type { SelectOption as MultiSelectOption } from \"src/components/Select/types\";\n\ninterface UseMultiSelectOptionsConfig {\n options?: MultiSelectOption[];\n loadOptions?: (\n inputValue: string\n ) => Promise<{ label: string; value: string; disabled?: boolean }[]>;\n defaultOptions?:\n | boolean\n | { label: string; value: string; disabled?: boolean }[];\n cacheOptions?: boolean;\n isAsyncLoadOptionEnabled?: boolean;\n fetchMore?: () => void;\n totalOptionsCount?: number;\n}\n\nexport function useMultiSelectOptions(props: UseMultiSelectOptionsConfig) {\n const isAsync = !!props.loadOptions;\n\n const { asyncOptions, isLoading, handleAsyncInputChange } = useAsyncOptions({\n loadOptions: props.loadOptions,\n defaultOptions: props.defaultOptions ?? false,\n cacheOptions: props.cacheOptions ?? false,\n });\n\n const resolvedOptions: MultiSelectOption[] = isAsync\n ? asyncOptions\n : (props.options ?? []);\n const flatOptions = flattenOptions(resolvedOptions);\n const isGrouped = hasGroups(resolvedOptions);\n\n const baseUiItems = React.useMemo(\n () =>\n resolvedOptions.length > 0 ? toBaseUiItems(resolvedOptions) : undefined,\n [resolvedOptions]\n );\n\n const hasMoreLazy =\n (props.isAsyncLoadOptionEnabled ?? false) &&\n typeof props.totalOptionsCount === \"number\" &&\n flatOptions.length < props.totalOptionsCount;\n\n const loaderCallbackRef = useLazyLoadSentinel({\n fetchMore: props.fetchMore,\n isEnabled: props.isAsyncLoadOptionEnabled ?? false,\n });\n\n return {\n isAsync,\n resolvedOptions,\n flatOptions,\n isGrouped,\n isLoading,\n handleAsyncInputChange,\n baseUiItems,\n hasMoreLazy,\n loaderCallbackRef,\n };\n}\n","// SIZE_CONFIG is shared by both SelectCombobox (single-select) and\n// MultiSelectCombobox (multi-select). Keys mirror the MultiSelect constants\n// that previously lived in MultiSelect.constants.ts.\nexport const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { chips: string; input: string; chip: string }\n> = {\n small: {\n chips: \"min-h-7 text-xs gap-0.5 px-1 py-0.5\",\n input: \"text-xs\",\n chip: \"h-4.5 text-[0.6875rem] px-1\",\n },\n medium: {\n chips: \"min-h-8 text-sm gap-1 px-2.5 py-1\",\n input: \"text-sm\",\n chip: \"h-5.25 text-xs px-1.5\",\n },\n large: {\n chips: \"min-h-10 text-sm gap-1 px-2.5 py-1.5\",\n input: \"text-sm\",\n chip: \"h-6 text-xs px-2\",\n },\n};\n","import { useCallback, useId, useMemo, useState } from \"react\";\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { CREATE_PREFIX } from \"./useCreatableItems\";\nimport { SIZE_CONFIG } from \"src/components/Select/constants\";\nimport type { SelectProps } from \"src/components/Select/types\";\n\ntype SingleSelectProps = Extract<SelectProps, { isMulti?: false }>;\n\nconst defaultFormatCreateLabel = (v: string) => `Create \"${v}\"`;\n\nexport function useSelectState(props: SingleSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n isClearable = false,\n isDisabled = false,\n required = false,\n isSearchable = true,\n autoHighlight = true,\n onOpenChange,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string>(\n defaultValue ?? \"\"\n );\n const currentValue = isControlled ? (valueProp ?? \"\") : internalValue;\n\n const applyValue = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const handleValueChange = useCallback(\n (next: string | null) => {\n const raw = next ?? \"\";\n\n // Handle the creatable \"Create X\" option\n if (raw.startsWith(CREATE_PREFIX)) {\n const newValue = raw.slice(CREATE_PREFIX.length);\n onCreateOption?.(newValue);\n applyValue(newValue);\n return;\n }\n\n applyValue(raw);\n },\n [applyValue, onCreateOption]\n );\n\n const [inputValue, setInputValueState] = useState(\"\");\n const trimmedInput = inputValue.trim();\n\n const combinedHandleInputValueChange = useCallback(\n (value: string) => {\n setInputValueState(value);\n if (opt.isAsync) opt.handleAsyncInputChange(value);\n },\n [opt.isAsync, opt.handleAsyncInputChange]\n );\n\n const handleClear = useCallback(() => {\n applyValue(\"\");\n }, [applyValue]);\n\n const showCreateOption = useMemo(() => {\n if (\n !isCreatable ||\n trimmedInput.length === 0 ||\n currentValue === trimmedInput\n )\n return false;\n const lower = trimmedInput.toLowerCase();\n return !opt.flatOptions.some(\n o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower\n );\n }, [isCreatable, trimmedInput, currentValue, opt.flatOptions]);\n\n const effectiveItems = useMemo(() => {\n if (children) return undefined;\n const base = opt.baseUiItems;\n if (!showCreateOption) return base;\n const createValue = `${CREATE_PREFIX}${trimmedInput}`;\n if (!opt.isGrouped) {\n return [...((base as string[]) ?? []), createValue];\n }\n return [\n ...((base as { label: string; items: string[] }[]) ?? []),\n { label: \"\", items: [createValue] },\n ];\n }, [\n children,\n opt.baseUiItems,\n opt.isGrouped,\n showCreateOption,\n trimmedInput,\n ]);\n\n const creatableFilter = useCallback(\n (\n itemValue: string,\n query: string,\n itemToString?: (v: string) => string\n ) => {\n if (itemValue.startsWith(CREATE_PREFIX)) return true;\n const label = itemToString?.(itemValue) ?? itemValue;\n return label.toLowerCase().includes(query.toLowerCase());\n },\n []\n );\n\n const ariaDescribedBy = buildAriaDescribedBy(\n error,\n errorId,\n helpText,\n helpTextId\n );\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n const showClearButton = isClearable && !!currentValue && !isDisabled;\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n currentValue,\n effectiveItems,\n creatableFilter,\n handleValueChange,\n handleInputValueChange: combinedHandleInputValueChange,\n handleClear,\n showCreateOption,\n showClearButton,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n flatOptionsMap,\n label,\n error,\n helpText,\n isDisabled,\n required,\n isSearchable,\n autoHighlight,\n onOpenChange,\n isClearable,\n };\n}\n","import { useCallback, useId, useMemo, useState } from \"react\";\n\nconst defaultFormatCreateLabel = (v: string) => `Create \"${v}\"`;\n\nimport { buildAriaDescribedBy, buildTestIdPrefix } from \"src/utils/fieldIds\";\nimport { useCreatableItems, CREATE_PREFIX } from \"./useCreatableItems\";\nimport { useMultiSelectOptions } from \"./useMultiSelectOptions\";\nimport { SIZE_CONFIG } from \"src/components/Select/constants\";\nimport type { MultiSelectProps } from \"src/components/Select/types\";\n\nexport function useMultiSelectState(props: MultiSelectProps) {\n const {\n id: idProp,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n value: valueProp,\n defaultValue,\n onChange,\n dataTestId,\n isCreatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n children,\n } = props;\n\n const opt = useMultiSelectOptions(props);\n\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const sizeConfig = SIZE_CONFIG[size];\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<string[]>(\n defaultValue ?? []\n );\n const selectedValues = isControlled ? valueProp : internalValue;\n\n const handleChange = useCallback(\n (values: string[]) => {\n setInternalValue(values);\n onChange?.(values);\n },\n [onChange]\n );\n\n const {\n showCreateOption,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n } = useCreatableItems({\n isCreatable,\n isGrouped: opt.isGrouped,\n flatOptions: opt.flatOptions,\n selectedValues,\n baseUiItems: opt.baseUiItems,\n onCreateOption,\n onChange: handleChange,\n onAsyncInputChange: opt.isAsync ? opt.handleAsyncInputChange : undefined,\n children,\n });\n\n const ariaDescribedBy = buildAriaDescribedBy(\n error,\n errorId,\n helpText,\n helpTextId\n );\n const testIdPrefix = buildTestIdPrefix(dataTestId, label);\n\n const flatOptionsMap = useMemo(\n () => new Map(opt.flatOptions.map(o => [o.value, o])),\n [opt.flatOptions]\n );\n\n const labelForValue = useCallback(\n (val: string) => {\n if (val.startsWith(CREATE_PREFIX)) {\n return formatCreateLabel(val.slice(CREATE_PREFIX.length));\n }\n return flatOptionsMap.get(val)?.label ?? val;\n },\n [flatOptionsMap, formatCreateLabel]\n );\n\n return {\n ...opt,\n id,\n errorId,\n helpTextId,\n sizeConfig,\n isControlled,\n selectedValues,\n effectiveItems,\n creatableFilter,\n handleInputValueChange,\n handleValueChange,\n showCreateOption,\n ariaDescribedBy,\n testIdPrefix,\n labelForValue,\n flatOptionsMap,\n label,\n error,\n helpText,\n };\n}\n","import { useCallback, useState } from \"react\";\n\n/** Shared anchor + non-searchable click-to-focus behaviour for combobox triggers. */\nexport function useComboboxAnchor(isSearchable: boolean) {\n const [anchorEl, setAnchorEl] = useState<HTMLDivElement | null>(null);\n\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLDivElement>) => {\n if (!isSearchable) {\n (e.currentTarget as HTMLElement).querySelector(\"input\")?.focus();\n }\n },\n [isSearchable]\n );\n\n return { anchorEl, setAnchorEl, handleClick };\n}\n","import { ComboboxItem } from \"src/primitives/Combobox\";\nimport { CREATE_PREFIX } from \"src/hooks/useCreatableItems\";\nimport type { OptionBase } from \"./types\";\n\ninterface OptionItemProps {\n val: string;\n flatOptionsMap: Map<string, OptionBase>;\n labelForValue: (val: string) => string;\n testIdPrefix?: string;\n}\n\nexport function OptionItem({\n val,\n flatOptionsMap,\n labelForValue,\n testIdPrefix,\n}: OptionItemProps) {\n return (\n <ComboboxItem\n key={val}\n value={val}\n disabled={\n !val.startsWith(CREATE_PREFIX) && flatOptionsMap.get(val)?.disabled\n }\n className={val.startsWith(CREATE_PREFIX) ? \"text-primary\" : undefined}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-option` }\n : {})}\n >\n {labelForValue(val)}\n </ComboboxItem>\n );\n}\n","import type React from \"react\";\n\nimport {\n ComboboxList,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n} from \"src/primitives/Combobox\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport { OptionItem } from \"./OptionItem\";\nimport type { DropdownPassthroughProps } from \"./MultiSelectCombobox.types\";\n\ninterface MultiSelectDropdownProps extends DropdownPassthroughProps {\n labelForValue: (val: string) => string;\n testIdPrefix?: string;\n children?: React.ReactNode;\n}\n\nexport function MultiSelectDropdown({\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage,\n emptyMessage,\n showCreateOption,\n labelForValue,\n testIdPrefix,\n hasMoreLazy,\n loaderCallbackRef,\n children,\n}: MultiSelectDropdownProps) {\n return (\n <ComboboxList\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-menu` }\n : {})}\n >\n {isLoading && (\n <div className=\"flex w-full justify-center py-2 text-center text-sm text-muted-foreground\">\n {loadingMessage}\n </div>\n )}\n {!isLoading && !showCreateOption && (\n <ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n )}\n {children ??\n (resolvedOptions.length > 0 || showCreateOption ? (\n isGrouped ? (\n <ComboboxCollection>\n {(group: { label: string; items: string[] }) => (\n <ComboboxGroup\n key={group.label || \"__create__\"}\n items={group.items}\n >\n {group.label && <ComboboxLabel>{group.label}</ComboboxLabel>}\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n labelForValue={labelForValue}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n </ComboboxGroup>\n )}\n </ComboboxCollection>\n ) : (\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n labelForValue={labelForValue}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n )\n ) : null)}\n {hasMoreLazy && (\n <div\n ref={loaderCallbackRef}\n className=\"flex w-full items-center justify-center py-3\"\n data-testid={\n testIdPrefix ? `${testIdPrefix}-lazy-loader` : \"lazy-loader\"\n }\n >\n <Spinner />\n </div>\n )}\n </ComboboxList>\n );\n}\n","import { forwardRef, useCallback } from \"react\";\nimport { ChevronDownIcon, XIcon } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChipsInput,\n} from \"src/primitives/Combobox\";\nimport { useComboboxAnchor } from \"src/hooks/useComboboxAnchor\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { SelectComboboxProps } from \"./SelectCombobox.types\";\n\nexport const SelectCombobox = forwardRef<HTMLInputElement, SelectComboboxProps>(\n (p, ref) => {\n const { anchorEl, setAnchorEl, handleClick } = useComboboxAnchor(\n p.isSearchable\n );\n\n const handleClearClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n p.handleClear();\n },\n [p.handleClear]\n );\n\n return (\n <Combobox\n name={p.name}\n {...(p.effectiveItems && !p.children\n ? {\n items: p.effectiveItems,\n itemToStringLabel: p.labelForValue,\n ...(!p.isSearchable || p.isAsync\n ? { filter: null }\n : p.isCreatable\n ? { filter: p.creatableFilter }\n : {}),\n }\n : {})}\n {...(p.isControlled\n ? { value: p.valueProp }\n : { defaultValue: p.defaultValue })}\n onValueChange={p.handleValueChange}\n {...(p.isCreatable || p.isAsync\n ? { onInputValueChange: p.handleInputValueChange }\n : {})}\n onOpenChange={p.onOpenChange}\n disabled={p.isDisabled}\n autoHighlight={p.autoHighlight}\n >\n <div\n ref={setAnchorEl}\n onClick={handleClick}\n className={!p.isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n p.sizeConfig.chips,\n !!p.error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n p.inputClassName\n )}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-container` }\n : {})}\n >\n {!p.isSearchable &&\n (p.currentValue ? (\n <span className=\"flex-1 truncate\">\n {p.labelForValue(p.currentValue)}\n </span>\n ) : (\n <span className=\"flex-1 truncate text-muted-foreground\">\n {p.placeholder}\n </span>\n ))}\n\n <ComboboxChipsInput\n ref={ref}\n id={p.id}\n placeholder={\n p.isSearchable && !p.currentValue ? p.placeholder : undefined\n }\n aria-invalid={!!p.error || undefined}\n aria-describedby={p.ariaDescribedBy}\n aria-required={p.required || undefined}\n className={cn(\n p.sizeConfig.input,\n !p.isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={p.isDisabled}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-input` }\n : {})}\n />\n\n {p.showClearButton && (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Clear selection\"\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={handleClearClick}\n >\n <XIcon className=\"size-3.5\" />\n </button>\n )}\n\n <ChevronDownIcon className=\"size-4 shrink-0 text-muted-foreground\" />\n </ComboboxChips>\n </div>\n\n <ComboboxContent anchor={anchorEl} {...p.contentProps}>\n <MultiSelectDropdown\n {...p.dropdownProps}\n labelForValue={p.labelForValue}\n testIdPrefix={p.testIdPrefix}\n >\n {p.children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n }\n);\n\nSelectCombobox.displayName = \"SelectCombobox\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Combobox,\n ComboboxContent,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n} from \"src/primitives/Combobox\";\nimport { useComboboxAnchor } from \"src/hooks/useComboboxAnchor\";\nimport { MultiSelectDropdown } from \"./MultiSelectDropdown\";\nimport type { MultiSelectComboboxProps } from \"./MultiSelectCombobox.types\";\n\nexport const MultiSelectCombobox = forwardRef<\n HTMLInputElement,\n MultiSelectComboboxProps\n>((p, ref) => {\n const { anchorEl, setAnchorEl, handleClick } = useComboboxAnchor(\n p.isSearchable\n );\n\n return (\n <Combobox\n multiple\n name={p.name}\n {...(p.effectiveItems && !p.children\n ? {\n items: p.effectiveItems,\n itemToStringLabel: p.labelForValue,\n ...(!p.isSearchable || p.isAsync\n ? { filter: null }\n : p.isCreatable\n ? { filter: p.creatableFilter }\n : {}),\n }\n : {})}\n {...(p.isControlled\n ? { value: p.valueProp }\n : { defaultValue: p.defaultValue })}\n onValueChange={p.handleValueChange}\n {...(p.isCreatable || p.isAsync\n ? { onInputValueChange: p.handleInputValueChange }\n : {})}\n onOpenChange={p.onOpenChange}\n disabled={p.isDisabled}\n autoHighlight={p.autoHighlight}\n >\n <div\n ref={setAnchorEl}\n onClick={handleClick}\n className={!p.isSearchable ? \"cursor-pointer\" : undefined}\n >\n <ComboboxChips\n className={cn(\n p.sizeConfig.chips,\n !!p.error &&\n \"border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40\",\n p.chipsClassName,\n p.inputClassName\n )}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-container` }\n : {})}\n >\n {p.selectedValues.map(val => (\n <ComboboxChip\n key={val}\n className={p.sizeConfig.chip}\n showRemove={!p.hideChipRemove}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-chip` }\n : {})}\n >\n {p.labelForValue(val)}\n </ComboboxChip>\n ))}\n <ComboboxChipsInput\n ref={ref}\n id={p.id}\n placeholder={\n p.isSearchable && p.selectedValues.length === 0\n ? p.placeholder\n : undefined\n }\n aria-invalid={!!p.error || undefined}\n aria-describedby={p.ariaDescribedBy}\n aria-required={p.required || undefined}\n className={cn(\n p.sizeConfig.input,\n !p.isSearchable && \"w-0 min-w-0 overflow-hidden p-0 opacity-0\"\n )}\n disabled={p.isDisabled}\n {...(p.testIdPrefix\n ? { \"data-testid\": `${p.testIdPrefix}-select-input` }\n : {})}\n />\n </ComboboxChips>\n </div>\n <ComboboxContent anchor={anchorEl} {...p.contentProps}>\n <MultiSelectDropdown\n {...p.dropdownProps}\n labelForValue={p.labelForValue}\n testIdPrefix={p.testIdPrefix}\n >\n {p.children}\n </MultiSelectDropdown>\n </ComboboxContent>\n </Combobox>\n );\n});\nMultiSelectCombobox.displayName = \"MultiSelectCombobox\";\n","import React, { forwardRef } from \"react\";\n\nimport { useSelectState } from \"src/hooks/useSelectState\";\nimport { useMultiSelectState } from \"src/hooks/useMultiSelectState\";\nimport { SelectFieldWrapper } from \"./SelectFieldWrapper\";\nimport { SelectCombobox } from \"./SelectCombobox\";\nimport { MultiSelectCombobox } from \"./MultiSelectCombobox\";\nimport type { SelectProps, MultiSelectProps } from \"./types\";\n\nexport type {\n SelectProps,\n SelectOption,\n SelectOptionBase,\n SelectOptionGroup,\n} from \"./types\";\n\ntype SingleSelectProps = Extract<SelectProps, { isMulti?: false }>;\n\nconst SingleSelectInner = forwardRef<HTMLInputElement, SingleSelectProps>(\n (props, ref) => {\n const s = useSelectState(props);\n\n return (\n <SelectFieldWrapper\n id={s.id}\n label={s.label}\n error={s.error}\n helpText={s.helpText}\n errorId={s.errorId}\n helpTextId={s.helpTextId}\n isDisabled={s.isDisabled}\n required={s.required}\n testIdPrefix={s.testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <SelectCombobox\n ref={ref}\n name={props.name}\n id={s.id}\n effectiveItems={s.effectiveItems}\n labelForValue={s.labelForValue}\n isSearchable={s.isSearchable}\n isAsync={s.isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={s.creatableFilter}\n isControlled={s.isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n currentValue={s.currentValue}\n handleValueChange={s.handleValueChange}\n handleInputValueChange={s.handleInputValueChange}\n handleClear={s.handleClear}\n onOpenChange={props.onOpenChange}\n isDisabled={s.isDisabled}\n autoHighlight={s.autoHighlight}\n required={s.required}\n isClearable={props.isClearable ?? false}\n showClearButton={s.showClearButton}\n sizeConfig={s.sizeConfig}\n error={s.error}\n placeholder={props.placeholder ?? \"\"}\n ariaDescribedBy={s.ariaDescribedBy}\n testIdPrefix={s.testIdPrefix}\n inputClassName={props.inputClassName}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions: s.resolvedOptions,\n flatOptionsMap: s.flatOptionsMap,\n isGrouped: s.isGrouped,\n isLoading: s.isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption: s.showCreateOption,\n hasMoreLazy: s.hasMoreLazy,\n loaderCallbackRef: s.loaderCallbackRef,\n }}\n >\n {props.children}\n </SelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\nSingleSelectInner.displayName = \"SingleSelectInner\";\n\nconst MultiSelectInner = forwardRef<HTMLInputElement, MultiSelectProps>(\n (props, ref) => {\n const s = useMultiSelectState(props);\n const { isDisabled = false, required = false } = props;\n\n return (\n <SelectFieldWrapper\n id={s.id}\n label={s.label}\n error={s.error}\n helpText={s.helpText}\n errorId={s.errorId}\n helpTextId={s.helpTextId}\n isDisabled={isDisabled}\n required={required}\n testIdPrefix={s.testIdPrefix}\n labelProps={props.labelProps}\n className={props.className}\n >\n <MultiSelectCombobox\n ref={ref}\n name={props.name}\n id={s.id}\n effectiveItems={s.effectiveItems}\n labelForValue={s.labelForValue}\n isSearchable={props.isSearchable ?? true}\n isAsync={s.isAsync}\n isCreatable={props.isCreatable ?? false}\n creatableFilter={s.creatableFilter}\n isControlled={s.isControlled}\n valueProp={props.value}\n defaultValue={props.defaultValue}\n selectedValues={s.selectedValues}\n handleValueChange={\n s.handleValueChange as (...args: unknown[]) => void\n }\n handleInputValueChange={\n s.handleInputValueChange as (...args: unknown[]) => void\n }\n onOpenChange={props.onOpenChange}\n isDisabled={isDisabled}\n autoHighlight={props.autoHighlight ?? true}\n sizeConfig={s.sizeConfig}\n error={s.error}\n chipsClassName={props.chipsClassName}\n inputClassName={props.inputClassName}\n placeholder={props.placeholder ?? \"\"}\n hideChipRemove={props.hideChipRemove ?? false}\n ariaDescribedBy={s.ariaDescribedBy}\n required={required}\n testIdPrefix={s.testIdPrefix}\n contentProps={props.contentProps}\n dropdownProps={{\n resolvedOptions: s.resolvedOptions,\n flatOptionsMap: s.flatOptionsMap,\n isGrouped: s.isGrouped,\n isLoading: s.isLoading,\n loadingMessage: props.loadingMessage ?? \"Loading\\u2026\",\n emptyMessage: props.emptyMessage ?? \"No results found.\",\n showCreateOption: s.showCreateOption,\n hasMoreLazy: s.hasMoreLazy,\n loaderCallbackRef: s.loaderCallbackRef,\n }}\n >\n {props.children}\n </MultiSelectCombobox>\n </SelectFieldWrapper>\n );\n }\n);\nMultiSelectInner.displayName = \"MultiSelectInner\";\n\nconst Select = forwardRef<HTMLInputElement, SelectProps>((props, ref) => {\n if (props.isMulti === true) {\n return <MultiSelectInner {...(props as MultiSelectProps)} ref={ref} />;\n }\n return <SingleSelectInner {...(props as SingleSelectProps)} ref={ref} />;\n});\n\nSelect.displayName = \"Select\";\n\nexport { Select };\n"],"names":["React","defaultFormatCreateLabel","_jsx","_jsxs","XIcon","ChevronDownIcon"],"mappings":"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"}
@@ -1,13 +1,5 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from '../primitives/Field.js';
3
- import 'react';
4
- import '../index-D7Zy7P05.js';
5
- import '../utils-DdHUxIdC.js';
6
- import '../label-B4qDF3W1.js';
7
- import '../index-DhnfW8wQ.js';
8
- import 'react-dom';
9
- import '../index-BtkPdosV.js';
10
- import '../separator-BbhgePmX.js';
2
+ import { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from './primitives/Field.js';
11
3
 
12
4
  function SelectFieldWrapper({ id, label, error, helpText, errorId, helpTextId, isDisabled, required, testIdPrefix, labelProps, className, children, }) {
13
5
  const hasField = !!(label || error || helpText);
@@ -27,5 +19,5 @@ function SelectFieldWrapper({ id, label, error, helpText, errorId, helpTextId, i
27
19
  : {}), children: helpText }))] })] }));
28
20
  }
29
21
 
30
- export { SelectFieldWrapper };
31
- //# sourceMappingURL=SelectFieldWrapper.js.map
22
+ export { SelectFieldWrapper as S };
23
+ //# sourceMappingURL=SelectFieldWrapper-BJzq9aCY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectFieldWrapper-BJzq9aCY.js","sources":["../src/components/Select/SelectFieldWrapper.tsx"],"sourcesContent":["import type React from \"react\";\n\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\ninterface SelectFieldWrapperProps {\n id: string;\n label: string;\n error: string;\n helpText: React.ReactNode;\n errorId: string;\n helpTextId: string;\n isDisabled: boolean;\n required: boolean;\n testIdPrefix?: string;\n labelProps?: Omit<\n React.ComponentProps<typeof FieldLabel>,\n \"htmlFor\" | \"children\"\n >;\n className?: string;\n children: React.ReactNode;\n}\n\nexport function SelectFieldWrapper({\n id,\n label,\n error,\n helpText,\n errorId,\n helpTextId,\n isDisabled,\n required,\n testIdPrefix,\n labelProps,\n className,\n children,\n}: SelectFieldWrapperProps) {\n const hasField = !!(label || error || helpText);\n\n if (!hasField) {\n return (\n <div\n className={className}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container-wrapper` }\n : {})}\n >\n {children}\n </div>\n );\n }\n\n return (\n <Field\n data-disabled={isDisabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-container-wrapper` }\n : {})}\n >\n {label && (\n <FieldLabel\n htmlFor={id}\n {...labelProps}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-input-label` }\n : {})}\n >\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n <FieldContent>\n {children}\n {!!error && (\n <FieldError\n id={errorId}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-error` }\n : {})}\n >\n {error}\n </FieldError>\n )}\n {helpText && (\n <FieldDescription\n id={helpTextId}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-help-text` }\n : {})}\n >\n {helpText}\n </FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;AA4BM,SAAU,kBAAkB,CAAC,EACjC,EAAE,EACF,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,SAAS,EACT,QAAQ,GACgB,EAAA;IACxB,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,IAAI,QAAQ,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,QACEA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,SAAS,EAAA,IACf;AACH,kBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,2BAA2B;AAC7D,kBAAE,EAAE,CAAC,YAEN,QAAQ,EAAA,CACL;IAEV;AAEA,IAAA,QACEC,IAAA,CAAC,KAAK,qBACW,UAAU,IAAI,SAAS,EAAA,cAAA,EACxB,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,SAAS,EAAA,IACf;AACH,cAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,2BAA2B;AAC7D,cAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEN,KAAK,KACJA,IAAA,CAAC,UAAU,EAAA,EACT,OAAO,EAAE,EAAE,KACP,UAAU,EAAA,IACT;AACH,sBAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,cAAc;AAChD,sBAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEN,KAAK,EACL,QAAQ,KACPD,GAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACU,CACd,EACDC,IAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACV,QAAQ,EACR,CAAC,CAAC,KAAK,KACND,GAAA,CAAC,UAAU,EAAA,EACT,EAAE,EAAE,OAAO,EAAA,IACN;AACH,8BAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,eAAe;AACjD,8BAAE,EAAE,CAAC,YAEN,KAAK,EAAA,CACK,CACd,EACA,QAAQ,KACPA,GAAA,CAAC,gBAAgB,EAAA,EACf,EAAE,EAAE,UAAU,EAAA,IACT;AACH,8BAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,mBAAmB;8BACnD,EAAE,CAAC,EAAA,QAAA,EAEN,QAAQ,GACQ,CACpB,CAAA,EAAA,CACY,CAAA,EAAA,CACT;AAEZ;;;;"}
@@ -0,0 +1,63 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { c as cn } from './utils-DdHUxIdC.js';
4
+ import { SheetHeader as SheetHeader$1, SheetFooter as SheetFooter$1, SheetTitle as SheetTitle$1, SheetDescription as SheetDescription$1, Sheet as Sheet$1, SheetContent } from './primitives/Sheet.js';
5
+
6
+ // Uses data-[side] selector to match primitive specificity so tailwind-merge
7
+ // can override the default sm:max-w-sm from the primitive.
8
+ const SIZE_CLASS_MAP = {
9
+ small: "data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",
10
+ large: "data-[side=left]:sm:max-w-lg data-[side=right]:sm:max-w-lg",
11
+ extraLarge: "data-[side=left]:sm:max-w-2xl data-[side=right]:sm:max-w-2xl",
12
+ };
13
+
14
+ const SheetHeader = forwardRef(({ children, className, ...otherProps }, ref) => (jsx(SheetHeader$1, { ref: ref, className: cn(className), "data-testid": "sheet-header", ...otherProps, children: children })));
15
+ SheetHeader.displayName = "Sheet.Header";
16
+ const SheetBody = forwardRef(({ children, className, hasFooter = true, ...otherProps }, ref) => (jsx("div", { ref: ref, "data-slot": "sheet-body", "data-testid": "sheet-body", className: cn("flex flex-1 flex-col items-start justify-start overflow-y-auto px-4", hasFooter && "pb-0", className), ...otherProps, children: children })));
17
+ SheetBody.displayName = "Sheet.Body";
18
+ const SheetFooter = forwardRef(({ children, className, ...otherProps }, ref) => (jsx(SheetFooter$1, { ref: ref, className: cn("flex flex-row items-center justify-start gap-2 border-t", className), "data-testid": "sheet-footer", ...otherProps, children: children })));
19
+ SheetFooter.displayName = "Sheet.Footer";
20
+ const SheetTitle = forwardRef(({ children, className, ...otherProps }, ref) => (jsx(SheetTitle$1, { ref: ref, className: cn("text-2xl font-semibold", className), ...otherProps, children: children })));
21
+ SheetTitle.displayName = "Sheet.Title";
22
+ const SheetDescription = forwardRef(({ children, className, ...otherProps }, ref) => (jsx(SheetDescription$1, { ref: ref, className: cn(className), ...otherProps, children: children })));
23
+ SheetDescription.displayName = "Sheet.Description";
24
+ const Sheet = forwardRef(({ size = "small", isOpen = false, onClose = () => { }, children, className, closeOnEsc = true, closeButton = true, backdropClassName, closeOnOutsideClick = true, initialFocusRef, finalFocusRef, side = "right", modal, defaultOpen,
25
+ // Radix content handlers — intercept and merge
26
+ onOpenAutoFocus: onOpenAutoFocusProp, onCloseAutoFocus: onCloseAutoFocusProp, ...otherProps }, ref) => {
27
+ const handleOpenChange = (open) => {
28
+ if (!open)
29
+ onClose();
30
+ };
31
+ const handleInteractOutside = (e) => {
32
+ if (!closeOnOutsideClick)
33
+ e.preventDefault();
34
+ };
35
+ const handleEscapeKeyDown = (e) => {
36
+ if (!closeOnEsc)
37
+ e.preventDefault();
38
+ };
39
+ const handleOpenAutoFocus = (e) => {
40
+ if (initialFocusRef?.current) {
41
+ e.preventDefault();
42
+ initialFocusRef.current.focus();
43
+ }
44
+ onOpenAutoFocusProp?.(e);
45
+ };
46
+ const handleCloseAutoFocus = (e) => {
47
+ if (finalFocusRef?.current) {
48
+ e.preventDefault();
49
+ finalFocusRef.current.focus();
50
+ }
51
+ onCloseAutoFocusProp?.(e);
52
+ };
53
+ return (jsx(Sheet$1, { open: isOpen, onOpenChange: handleOpenChange, modal: modal, defaultOpen: defaultOpen, children: jsx(SheetContent, { ref: ref, side: side, showCloseButton: closeButton, overlayClassName: backdropClassName, onInteractOutside: handleInteractOutside, onEscapeKeyDown: handleEscapeKeyDown, onOpenAutoFocus: handleOpenAutoFocus, onCloseAutoFocus: handleCloseAutoFocus, className: cn(SIZE_CLASS_MAP[size], className), "data-testid": "sheet-wrapper", ...otherProps, children: children }) }));
54
+ });
55
+ Sheet.displayName = "Sheet";
56
+ Sheet.Header = SheetHeader;
57
+ Sheet.Body = SheetBody;
58
+ Sheet.Footer = SheetFooter;
59
+ Sheet.Title = SheetTitle;
60
+ Sheet.Description = SheetDescription;
61
+
62
+ export { Sheet as S };
63
+ //# sourceMappingURL=Sheet-QFC_mHyj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sheet-QFC_mHyj.js","sources":["../src/components/Sheet/constants.ts","../src/components/Sheet/Sheet.tsx"],"sourcesContent":["type SheetSize = \"small\" | \"large\" | \"extraLarge\";\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.\nexport const 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","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\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\nimport { SIZE_CLASS_MAP } from \"./constants\";\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\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":["_jsx","PrimitiveSheetHeader","PrimitiveSheetFooter","PrimitiveSheetTitle","PrimitiveSheetDescription","PrimitiveSheet","PrimitiveSheetContent"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { forwardRef, useId } from 'react';
3
+ import { Slider as Slider$1 } from './primitives/Slider.js';
4
+ import { c as cn } from './utils-DdHUxIdC.js';
5
+ import { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from './primitives/Field.js';
6
+
7
+ const Slider = forwardRef(({ label, error, helpText, required = false, className, labelProps, disabled, id: idProp, ...otherProps }, ref) => {
8
+ const generatedId = useId();
9
+ const id = idProp ?? generatedId;
10
+ const errorId = `error_${id}`;
11
+ const helpTextId = `helpText_${id}`;
12
+ const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
13
+ .filter(Boolean)
14
+ .join(" ") || undefined;
15
+ const hasField = !!(label || error || helpText);
16
+ const slider = (jsx(Slider$1, { ref: ref, id: id, disabled: disabled, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, "aria-label": !label ? undefined : label, className: cn(!hasField && className), ...otherProps }));
17
+ if (!hasField) {
18
+ return slider;
19
+ }
20
+ return (jsxs(Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [label && (jsxs(FieldLabel, { htmlFor: id, ...labelProps, children: [label, required && (jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), jsxs(FieldContent, { children: [slider, !!error && jsx(FieldError, { id: errorId, children: error }), helpText && (jsx(FieldDescription, { id: helpTextId, children: helpText }))] })] }));
21
+ });
22
+ Slider.displayName = "Slider";
23
+
24
+ export { Slider as S };
25
+ //# sourceMappingURL=Slider-BCQXhs0Q.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider-BCQXhs0Q.js","sources":["../src/components/Slider/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\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\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":["_jsx","PrimitiveSlider","_jsxs"],"mappings":";;;;;;AA6BA,MAAM,MAAM,GAAG,UAAU,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,GAAG,KAAK,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,IACVA,GAAA,CAACC,QAAe,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,EAAE,EAAE,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,IAAA,CAAC,KAAK,EAAA,EAAA,eAAA,EACW,QAAQ,IAAI,SAAS,EAAA,cAAA,EACtB,CAAC,CAAC,KAAK,IAAI,SAAS,EAClC,SAAS,EAAE,SAAS,EAAA,QAAA,EAAA,CAEnB,KAAK,KACJA,KAAC,UAAU,EAAA,EAAC,OAAO,EAAE,EAAE,EAAA,GAAM,UAAU,EAAA,QAAA,EAAA,CACpC,KAAK,EACL,QAAQ,KACPF,GAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAkB,MAAM,EAAC,SAAS,EAAC,kBAAkB,EAAA,QAAA,EAAA,GAAA,EAAA,CAE9C,CACR,CAAA,EAAA,CACU,CACd,EACDE,IAAA,CAAC,YAAY,EAAA,EAAA,QAAA,EAAA,CACV,MAAM,EACN,CAAC,CAAC,KAAK,IAAIF,IAAC,UAAU,EAAA,EAAC,EAAE,EAAE,OAAO,EAAA,QAAA,EAAG,KAAK,GAAc,EACxD,QAAQ,KACPA,GAAA,CAAC,gBAAgB,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,17 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { c as cn } from './utils-DdHUxIdC.js';
4
+ import { Spinner as Spinner$1 } from './primitives/Spinner.js';
5
+
6
+ const SIZE_CONFIG = {
7
+ sm: "size-3",
8
+ default: "size-4",
9
+ lg: "size-6",
10
+ xl: "size-8",
11
+ };
12
+
13
+ const Spinner = forwardRef(({ size = "default", className, ...otherProps }, ref) => (jsx(Spinner$1, { ref: ref, className: cn(SIZE_CONFIG[size], className), ...otherProps })));
14
+ Spinner.displayName = "Spinner";
15
+
16
+ export { Spinner as S };
17
+ //# sourceMappingURL=Spinner-C8HSac-2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner-C8HSac-2.js","sources":["../src/components/Spinner/constants.ts","../src/components/Spinner/Spinner.tsx"],"sourcesContent":["export const SIZE_CONFIG: Record<\"sm\" | \"default\" | \"lg\" | \"xl\", string> = {\n sm: \"size-3\",\n default: \"size-4\",\n lg: \"size-6\",\n xl: \"size-8\",\n};\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { Spinner as PrimitiveSpinner } from \"src/primitives/Spinner\";\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\nimport { SIZE_CONFIG } from \"./constants\";\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":["_jsx","PrimitiveSpinner"],"mappings":";;;;;AAAO,MAAM,WAAW,GAAmD;AACzE,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,EAAE,EAAE,QAAQ;AACZ,IAAA,EAAE,EAAE,QAAQ;CACb;;ACWD,MAAM,OAAO,GAAG,UAAU,CACxB,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MAClDA,GAAA,CAACC,SAAgB,EAAA,EACf,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,GACvC,UAAU,EAAA,CACd,CACH;AAGH,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
@@ -0,0 +1,29 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import React__default, { forwardRef } from 'react';
3
+ import { c as cn } from './utils-DdHUxIdC.js';
4
+ import { C as Check } from './check-Cpkv29p1.js';
5
+
6
+ const Stepper = forwardRef(({ steps, activeIndex = 0, onStepClick, className, orientation = "horizontal", }, ref) => {
7
+ const isHorizontal = orientation === "horizontal";
8
+ return (jsx("div", { ref: ref, role: "list", "aria-label": "Progress", className: cn("flex gap-2", isHorizontal ? "flex-row items-center" : "flex-col items-start", className), children: steps.map((step, index) => {
9
+ const isCompleted = index < activeIndex;
10
+ const isActive = index === activeIndex;
11
+ const isClickable = (isCompleted || isActive) && !!onStepClick;
12
+ const isLast = index === steps.length - 1;
13
+ const indicator = (jsx("span", { className: 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 &&
14
+ "bg-primary text-primary-foreground ring-2 ring-primary ring-offset-2 ring-offset-background", !isCompleted &&
15
+ !isActive &&
16
+ "bg-muted text-foreground/60 ring-1 ring-border"), children: isCompleted ? (jsx(Check, { className: "size-3.5", "aria-hidden": "true" })) : (index + 1) }));
17
+ const stepContent = (jsxs("div", { className: cn("flex min-w-0", isHorizontal
18
+ ? "flex-row items-center gap-2"
19
+ : "flex-row items-center gap-3"), children: [isClickable ? (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 })) : (jsx("span", { "aria-current": isActive ? "step" : undefined, children: indicator })), jsx("span", { className: 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 })] }));
20
+ const connector = !isLast && (jsx("div", { "aria-hidden": "true", className: cn("transition-colors", isHorizontal
21
+ ? "mx-2 min-w-5 flex-1 border-t-2 sm:mx-3 sm:min-w-8"
22
+ : "ms-[13px] min-h-6 self-stretch border-s-2", isCompleted ? "border-primary" : "border-dashed border-border") }));
23
+ return (jsxs(React__default.Fragment, { children: [jsx("div", { role: "listitem", className: cn("flex min-w-0", isHorizontal ? "shrink-0" : "flex-col"), children: stepContent }), connector] }, step.id));
24
+ }) }));
25
+ });
26
+ Stepper.displayName = "Stepper";
27
+
28
+ export { Stepper as S };
29
+ //# sourceMappingURL=Stepper-BoGkmkY0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stepper-BoGkmkY0.js","sources":["../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { CheckIcon } from \"lucide-react\";\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\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":["_jsx","CheckIcon","_jsxs","React"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, useId } from 'react';
3
+ import { Switch as Switch$1 } from './primitives/Switch.js';
4
+ import { Label } from './primitives/Label.js';
5
+ import { c as cn } from './utils-DdHUxIdC.js';
6
+
7
+ const Switch = forwardRef(({ label, error, helpText, required = false, className, size = "default", disabled, id: idProp, ...otherProps }, ref) => {
8
+ const generatedId = useId();
9
+ const id = idProp ?? generatedId;
10
+ const errorId = `error_${id}`;
11
+ const helpTextId = `helpText_${id}`;
12
+ const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
13
+ .filter(Boolean)
14
+ .join(" ") || undefined;
15
+ return (jsxs("div", { className: cn("inline-flex flex-col gap-1.5", className), "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, children: [jsxs("div", { className: cn("inline-flex gap-2", helpText ? "items-start" : "items-center"), children: [jsx(Switch$1, { 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) && (jsxs("div", { className: "flex flex-col gap-0.5", children: [label && (jsxs(Label, { htmlFor: id, className: cn("cursor-pointer", disabled && "cursor-not-allowed opacity-50"), children: [label, required && (jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), helpText && (jsx("p", { id: helpTextId, className: "text-sm text-muted-foreground", children: helpText }))] }))] }), error && (jsx("p", { id: errorId, role: "alert", className: "text-xs text-destructive", children: error }))] }));
16
+ });
17
+ Switch.displayName = "Switch";
18
+
19
+ export { Switch as S };
20
+ //# sourceMappingURL=Switch-B83TGxJ_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Switch-B83TGxJ_.js","sources":["../src/components/Switch/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\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\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":["_jsxs","_jsx","PrimitiveSwitch"],"mappings":";;;;;;AAwBA,MAAM,MAAM,GAAG,UAAU,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,GAAG,KAAK,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,QACEA,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,SAAS,CAAC,EAAA,eAAA,EACzC,QAAQ,IAAI,SAAS,kBACtB,CAAC,CAAC,KAAK,IAAI,SAAS,EAAA,QAAA,EAAA,CAElCA,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,mBAAmB,EACnB,QAAQ,GAAG,aAAa,GAAG,cAAc,CAC1C,EAAA,QAAA,EAAA,CAEDC,IAACC,QAAe,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,MACjBF,cAAK,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAA,CACnC,KAAK,KACJA,KAAC,KAAK,EAAA,EACJ,OAAO,EAAE,EAAE,EACX,SAAS,EAAE,EAAE,CACX,gBAAgB,EAChB,QAAQ,IAAI,+BAA+B,CAC5C,aAEA,KAAK,EACL,QAAQ,KACPC,GAAA,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,GAAA,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,GAAA,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,38 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { createContext, forwardRef, useContext } from 'react';
3
+ import { c as cn } from './utils-DdHUxIdC.js';
4
+ import { r as renderIcon } from './renderIcon-tlvMyboj.js';
5
+ import { Tabs as Tabs$1, TabsList, TabsTrigger, TabsContent } from './primitives/Tabs.js';
6
+
7
+ const SIZE_CLASSES = {
8
+ default: "",
9
+ lg: "text-[15px] px-3 py-1.5",
10
+ };
11
+ const LIST_HEIGHT = {
12
+ default: "",
13
+ lg: "group-data-horizontal/tabs:h-10",
14
+ };
15
+ const TabsSizeContext = createContext("default");
16
+
17
+ const TabsRoot = forwardRef(({ size = "default", children, ...props }, ref) => (jsx(TabsSizeContext.Provider, { value: size, children: jsx(Tabs$1, { ref: ref, ...props, children: children }) })));
18
+ TabsRoot.displayName = "Tabs";
19
+ const TabsListComponent = forwardRef(({ className, ...props }, ref) => {
20
+ const size = useContext(TabsSizeContext);
21
+ return (jsx(TabsList, { ref: ref, className: cn(LIST_HEIGHT[size], className), ...props }));
22
+ });
23
+ TabsListComponent.displayName = "Tabs.List";
24
+ const TabsItemComponent = forwardRef(({ icon, className, children, ...otherProps }, ref) => {
25
+ const size = useContext(TabsSizeContext);
26
+ return (jsxs(TabsTrigger, { ref: ref, className: cn(SIZE_CLASSES[size], icon && "gap-1.5", className), ...otherProps, children: [icon && renderIcon(icon, size === "lg" ? "size-5" : "size-4"), children] }));
27
+ });
28
+ TabsItemComponent.displayName = "Tabs.Item";
29
+ const TabsContentComponent = forwardRef((props, ref) => jsx(TabsContent, { ref: ref, ...props }));
30
+ TabsContentComponent.displayName = "Tabs.Content";
31
+ const Tabs = Object.assign(TabsRoot, {
32
+ List: TabsListComponent,
33
+ Item: TabsItemComponent,
34
+ Content: TabsContentComponent,
35
+ });
36
+
37
+ export { Tabs as T };
38
+ //# sourceMappingURL=Tabs-DWfKnl3S.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs-DWfKnl3S.js","sources":["../src/components/Tabs/constants.ts","../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\ntype TabsSize = \"default\" | \"lg\";\n\nexport const SIZE_CLASSES: Record<TabsSize, string> = {\n default: \"\",\n lg: \"text-[15px] px-3 py-1.5\",\n};\n\nexport const LIST_HEIGHT: Record<TabsSize, string> = {\n default: \"\",\n lg: \"group-data-horizontal/tabs:h-10\",\n};\n\nexport const TabsSizeContext = createContext<TabsSize>(\"default\");\n","import React, { forwardRef, 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\nimport { SIZE_CLASSES, LIST_HEIGHT, TabsSizeContext } from \"./constants\";\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\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\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\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\nconst TabsContentComponent = forwardRef<HTMLDivElement, TabsContentProps>(\n (props, ref) => <PrimitiveTabsContent ref={ref} {...props} />\n);\nTabsContentComponent.displayName = \"Tabs.Content\";\n\nconst Tabs = Object.assign(TabsRoot, {\n List: TabsListComponent,\n Item: TabsItemComponent,\n Content: TabsContentComponent,\n});\n\nexport { Tabs };\n"],"names":["_jsx","PrimitiveTabs","PrimitiveTabsList","_jsxs","PrimitiveTabsTrigger","PrimitiveTabsContent"],"mappings":";;;;;;AAIO,MAAM,YAAY,GAA6B;AACpD,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,EAAE,EAAE,yBAAyB;CAC9B;AAEM,MAAM,WAAW,GAA6B;AACnD,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,EAAE,EAAE,iCAAiC;CACtC;AAEM,MAAM,eAAe,GAAG,aAAa,CAAW,SAAS,CAAC;;ACiBjE,MAAM,QAAQ,GAAG,UAAU,CACzB,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,MAC5CA,GAAA,CAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,EAAA,QAAA,EACnCA,GAAA,CAACC,MAAa,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,MAAM,iBAAiB,GAAG,UAAU,CAClC,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAI;AAC/B,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC;IAExC,QACED,IAACE,QAAiB,EAAA,EAChB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,GACvC,KAAK,EAAA,CACT;AAEN,CAAC,CACF;AACD,iBAAiB,CAAC,WAAW,GAAG,WAAW;AAE3C,MAAM,iBAAiB,GAAG,UAAU,CAClC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;AACpD,IAAA,MAAM,IAAI,GAAG,UAAU,CAAC,eAAe,CAAC;IAExC,QACEC,KAACC,WAAoB,EAAA,EACnB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,SAAS,EAAE,SAAS,CAAC,EAAA,GAC3D,UAAU,EAAA,QAAA,EAAA,CAEb,IAAI,IAAI,UAAU,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,MAAM,oBAAoB,GAAG,UAAU,CACrC,CAAC,KAAK,EAAE,GAAG,KAAKJ,GAAA,CAACK,WAAoB,IAAC,GAAG,EAAE,GAAG,EAAA,GAAM,KAAK,EAAA,CAAI,CAC9D;AACD,oBAAoB,CAAC,WAAW,GAAG,cAAc;AAEjD,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,73 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { forwardRef, useId, useState } from 'react';
3
+ import { c as cn } from './utils-DdHUxIdC.js';
4
+ import { Field, FieldLabel, FieldContent, FieldError, FieldDescription } from './primitives/Field.js';
5
+ import { Textarea as Textarea$1 } from './primitives/Textarea.js';
6
+
7
+ const SIZE_ROWS = {
8
+ small: 1,
9
+ medium: 3,
10
+ large: 4,
11
+ };
12
+ const SIZE_MIN_HEIGHT = {
13
+ small: "min-h-8",
14
+ medium: "min-h-20",
15
+ large: "min-h-28",
16
+ };
17
+
18
+ function getTrimmedValue(value, disableTrimOnBlur) {
19
+ if (disableTrimOnBlur || typeof value !== "string")
20
+ return value;
21
+ return value.trim();
22
+ }
23
+
24
+ const Textarea = 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) => {
25
+ const generatedId = useId();
26
+ const id = otherProps.id ?? generatedId;
27
+ const errorId = `error_${id}`;
28
+ const helpTextId = `helpText_${id}`;
29
+ // Controlled / uncontrolled value tracking
30
+ const [valueInternal, setValueInternal] = useState(controlledValue ?? "");
31
+ const isControlled = controlledValue !== undefined;
32
+ const value = isControlled ? controlledValue : valueInternal;
33
+ const valueLength = value?.toString().length || 0;
34
+ const isMaxLengthPresent = !!maxLength || maxLength === 0;
35
+ const isCharacterLimitVisible = isMaxLengthPresent && valueLength >= maxLength * 0.85;
36
+ const maxLengthError = unlimitedChars && valueLength > maxLength;
37
+ const rows = rowsProp ?? SIZE_ROWS[size];
38
+ // --- Handlers ---
39
+ const handleChange = (e) => {
40
+ if (!isControlled) {
41
+ setValueInternal(e.target.value);
42
+ }
43
+ onChange?.(e);
44
+ };
45
+ const handleBlur = (e) => {
46
+ const trimmedValue = getTrimmedValue(value ?? "", disableTrimOnBlur);
47
+ if (trimmedValue !== value) {
48
+ e.target.value = trimmedValue.toString();
49
+ handleChange(e);
50
+ }
51
+ onBlur?.(e);
52
+ };
53
+ // --- aria-describedby ---
54
+ const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
55
+ .filter(Boolean)
56
+ .join(" ") || undefined;
57
+ // --- Textarea element ---
58
+ const hasField = !!(label || error || helpText);
59
+ const textareaElement = (jsx(Textarea$1, { ref: ref, id: id, rows: rows, disabled: disabled, required: required, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: cn(
60
+ // Override shadcn's field-sizing-content and min-h-16 so rows works
61
+ "!field-sizing-normal", SIZE_MIN_HEIGHT[size], resize === "none" && "resize-none", resize === "vertical" && "resize-y", nakedTextarea &&
62
+ "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 }));
63
+ const hasPrefixSuffix = !!(prefix || suffix);
64
+ const textareaWithAffixes = hasPrefixSuffix ? (jsxs("div", { className: 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 && (jsx("div", { className: "shrink-0 pt-0.5 text-muted-foreground", children: prefix })), jsx(Textarea$1, { ref: ref, id: id, rows: rows, disabled: disabled, required: required, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: 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 && (jsx("div", { className: "shrink-0 pt-0.5 text-muted-foreground", children: suffix }))] })) : (textareaElement);
65
+ if (!hasField) {
66
+ return jsx("div", { className: cn(className), children: textareaWithAffixes });
67
+ }
68
+ return (jsxs(Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [(label || isCharacterLimitVisible) && (jsxs("div", { className: "flex items-center justify-between", children: [label && (jsxs(FieldLabel, { htmlFor: id, ...labelProps, children: [label, required && (jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), isCharacterLimitVisible && (jsxs("span", { className: cn("text-xs tabular-nums", maxLengthError ? "text-destructive" : "text-muted-foreground"), children: [valueLength, "/", maxLength] }))] })), jsxs(FieldContent, { children: [textareaWithAffixes, !!error && jsx(FieldError, { id: errorId, children: error }), helpText && (jsx(FieldDescription, { id: helpTextId, children: helpText }))] })] }));
69
+ });
70
+ Textarea.displayName = "Textarea";
71
+
72
+ export { Textarea as T };
73
+ //# sourceMappingURL=Textarea-C0z50h0N.js.map