@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,561 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import React__default, { useState, useRef, useEffect, useCallback, useMemo, useId, forwardRef } from 'react';
3
+ import { S as SelectFieldWrapper } from './SelectFieldWrapper-BJzq9aCY.js';
4
+ import { c as cn } from './utils-DdHUxIdC.js';
5
+ import { ComboboxItem, ComboboxList, ComboboxEmpty, ComboboxCollection, ComboboxGroup, ComboboxLabel, Combobox, ComboboxChips, ComboboxChipsInput, ComboboxContent, ComboboxChip } from './primitives/Combobox.js';
6
+ import { Spinner } from './primitives/Spinner.js';
7
+ import { X } from './x-_o2T3n6D.js';
8
+ import { C as ChevronDown } from './chevron-down-BNi0ntys.js';
9
+
10
+ function hyphenize(str) {
11
+ return str
12
+ .replace(/([a-z])([A-Z])/g, "$1-$2")
13
+ .replace(/[\s_]+/g, "-")
14
+ .toLowerCase();
15
+ }
16
+
17
+ function buildAriaDescribedBy(error, errorId, helpText, helpTextId) {
18
+ return ([error ? errorId : null, helpText ? helpTextId : null]
19
+ .filter(Boolean)
20
+ .join(" ") || undefined);
21
+ }
22
+ function buildTestIdPrefix(dataTestId, label) {
23
+ return dataTestId ?? (label ? hyphenize(label) : undefined);
24
+ }
25
+
26
+ function useAsyncOptions({ loadOptions, defaultOptions = false, cacheOptions = false, }) {
27
+ const [asyncOptions, setAsyncOptions] = useState(() => Array.isArray(defaultOptions) ? defaultOptions : []);
28
+ const [isLoading, setIsLoading] = useState(false);
29
+ const cacheRef = useRef({});
30
+ const debounceRef = useRef(null);
31
+ const latestRequestRef = useRef(0);
32
+ const mountedRef = useRef(true);
33
+ // Load default options on mount when `defaultOptions === true`
34
+ useEffect(() => {
35
+ if (!loadOptions || defaultOptions !== true)
36
+ return;
37
+ let cancelled = false;
38
+ setIsLoading(true);
39
+ loadOptions("")
40
+ .then(results => {
41
+ if (cancelled)
42
+ return;
43
+ setAsyncOptions(results);
44
+ if (cacheOptions)
45
+ cacheRef.current[""] = results;
46
+ setIsLoading(false);
47
+ })
48
+ .catch(() => {
49
+ if (!cancelled)
50
+ setIsLoading(false);
51
+ });
52
+ return () => {
53
+ cancelled = true;
54
+ };
55
+ }, []);
56
+ // Clean up debounce timer and mark unmounted
57
+ useEffect(() => {
58
+ return () => {
59
+ mountedRef.current = false;
60
+ if (debounceRef.current)
61
+ clearTimeout(debounceRef.current);
62
+ };
63
+ }, []);
64
+ const handleAsyncInputChange = useCallback((value) => {
65
+ if (!loadOptions)
66
+ return;
67
+ const query = value.trim();
68
+ // Check cache first
69
+ if (cacheOptions && query in cacheRef.current) {
70
+ setAsyncOptions(cacheRef.current[query]);
71
+ return;
72
+ }
73
+ // Debounce the fetch
74
+ if (debounceRef.current)
75
+ clearTimeout(debounceRef.current);
76
+ debounceRef.current = setTimeout(() => {
77
+ const requestId = ++latestRequestRef.current;
78
+ setIsLoading(true);
79
+ loadOptions(query)
80
+ .then(results => {
81
+ if (requestId !== latestRequestRef.current || !mountedRef.current)
82
+ return;
83
+ setAsyncOptions(results);
84
+ if (cacheOptions)
85
+ cacheRef.current[query] = results;
86
+ setIsLoading(false);
87
+ })
88
+ .catch(() => {
89
+ if (requestId === latestRequestRef.current && mountedRef.current) {
90
+ setIsLoading(false);
91
+ }
92
+ });
93
+ }, 300);
94
+ }, [loadOptions, cacheOptions]);
95
+ return { asyncOptions, isLoading, handleAsyncInputChange };
96
+ }
97
+
98
+ function useLazyLoadSentinel({ fetchMore, isEnabled, }) {
99
+ const observerRef = useRef(null);
100
+ const fetchMoreRef = useRef(fetchMore);
101
+ fetchMoreRef.current = fetchMore;
102
+ const sentinelRef = useCallback((node) => {
103
+ observerRef.current?.disconnect();
104
+ observerRef.current = null;
105
+ if (!node || !isEnabled)
106
+ return;
107
+ const observer = new IntersectionObserver(entries => {
108
+ if (entries[0]?.isIntersecting)
109
+ fetchMoreRef.current?.();
110
+ }, { root: null, rootMargin: "0px", threshold: 0.1 });
111
+ observer.observe(node);
112
+ observerRef.current = observer;
113
+ }, [isEnabled]);
114
+ // Clean up observer on unmount
115
+ useEffect(() => {
116
+ return () => {
117
+ observerRef.current?.disconnect();
118
+ };
119
+ }, []);
120
+ return sentinelRef;
121
+ }
122
+
123
+ const CREATE_PREFIX = "__create__:";
124
+ function useCreatableItems({ isCreatable, isGrouped, flatOptions, selectedValues, baseUiItems, onCreateOption, onChange, onAsyncInputChange, children, }) {
125
+ const [inputValue, setInputValue] = useState("");
126
+ const handleInputValueChange = useCallback((value) => {
127
+ setInputValue(value);
128
+ onAsyncInputChange?.(value);
129
+ }, [onAsyncInputChange]);
130
+ const trimmedInput = inputValue.trim();
131
+ const showCreateOption = useMemo(() => {
132
+ if (!isCreatable || trimmedInput.length === 0)
133
+ return false;
134
+ const lower = trimmedInput.toLowerCase();
135
+ return (!flatOptions.some(o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower) && !selectedValues.includes(trimmedInput));
136
+ }, [isCreatable, trimmedInput, flatOptions, selectedValues]);
137
+ const effectiveItems = React__default.useMemo(() => computeEffectiveItems(children, baseUiItems, showCreateOption, isGrouped, trimmedInput), [baseUiItems, children, isGrouped, showCreateOption, trimmedInput]);
138
+ // Custom filter: always pass the "Create" item through
139
+ const creatableFilter = useCallback((itemValue, query, itemToString) => {
140
+ if (itemValue.startsWith(CREATE_PREFIX))
141
+ return true;
142
+ const label = itemToString?.(itemValue) ?? itemValue;
143
+ return label.toLowerCase().includes(query.toLowerCase());
144
+ }, []);
145
+ const handleValueChange = useCallback((next) => {
146
+ const raw = next ?? [];
147
+ const createEntry = raw.find(v => v.startsWith(CREATE_PREFIX));
148
+ if (createEntry) {
149
+ const newValue = createEntry.slice(CREATE_PREFIX.length);
150
+ const withNewValue = raw.map(v => (v === createEntry ? newValue : v));
151
+ onCreateOption?.(newValue);
152
+ onChange?.(withNewValue);
153
+ return;
154
+ }
155
+ onChange?.(raw);
156
+ }, [onChange, onCreateOption]);
157
+ return {
158
+ inputValue,
159
+ showCreateOption,
160
+ effectiveItems,
161
+ creatableFilter,
162
+ handleInputValueChange,
163
+ handleValueChange,
164
+ };
165
+ }
166
+
167
+ function isOptionGroup(opt) {
168
+ return "options" in opt && Array.isArray(opt.options);
169
+ }
170
+
171
+ /** Flatten grouped options into a flat lookup array. */
172
+ function flattenOptions(options) {
173
+ return options.flatMap(opt => (isOptionGroup(opt) ? opt.options : [opt]));
174
+ }
175
+ /** Check if any option is a group. */
176
+ function hasGroups(options) {
177
+ return options.some(isOptionGroup);
178
+ }
179
+ /** Convert options to base-ui `items` format for filtering support. */
180
+ function toBaseUiItems(options) {
181
+ if (hasGroups(options)) {
182
+ return options.filter(isOptionGroup).map(g => ({
183
+ label: g.label,
184
+ items: g.options.map(o => o.value),
185
+ }));
186
+ }
187
+ return options.map(o => o.value);
188
+ }
189
+ /** Build the effective items array, appending a "Create" entry when needed. */
190
+ function computeEffectiveItems(children, baseUiItems, showCreateOption, isGrouped, trimmedInput) {
191
+ if (children)
192
+ return undefined;
193
+ const createValue = showCreateOption
194
+ ? `${CREATE_PREFIX}${trimmedInput}`
195
+ : null;
196
+ if (!baseUiItems && !createValue)
197
+ return undefined;
198
+ const base = baseUiItems ?? [];
199
+ if (!createValue)
200
+ return base;
201
+ if (!isGrouped) {
202
+ return [...base, createValue];
203
+ }
204
+ return [
205
+ ...base,
206
+ { label: "", items: [createValue] },
207
+ ];
208
+ }
209
+
210
+ function useMultiSelectOptions(props) {
211
+ const isAsync = !!props.loadOptions;
212
+ const { asyncOptions, isLoading, handleAsyncInputChange } = useAsyncOptions({
213
+ loadOptions: props.loadOptions,
214
+ defaultOptions: props.defaultOptions ?? false,
215
+ cacheOptions: props.cacheOptions ?? false,
216
+ });
217
+ const resolvedOptions = isAsync
218
+ ? asyncOptions
219
+ : (props.options ?? []);
220
+ const flatOptions = flattenOptions(resolvedOptions);
221
+ const isGrouped = hasGroups(resolvedOptions);
222
+ const baseUiItems = React__default.useMemo(() => resolvedOptions.length > 0 ? toBaseUiItems(resolvedOptions) : undefined, [resolvedOptions]);
223
+ const hasMoreLazy = (props.isAsyncLoadOptionEnabled ?? false) &&
224
+ typeof props.totalOptionsCount === "number" &&
225
+ flatOptions.length < props.totalOptionsCount;
226
+ const loaderCallbackRef = useLazyLoadSentinel({
227
+ fetchMore: props.fetchMore,
228
+ isEnabled: props.isAsyncLoadOptionEnabled ?? false,
229
+ });
230
+ return {
231
+ isAsync,
232
+ resolvedOptions,
233
+ flatOptions,
234
+ isGrouped,
235
+ isLoading,
236
+ handleAsyncInputChange,
237
+ baseUiItems,
238
+ hasMoreLazy,
239
+ loaderCallbackRef,
240
+ };
241
+ }
242
+
243
+ // SIZE_CONFIG is shared by both SelectCombobox (single-select) and
244
+ // MultiSelectCombobox (multi-select). Keys mirror the MultiSelect constants
245
+ // that previously lived in MultiSelect.constants.ts.
246
+ const SIZE_CONFIG = {
247
+ small: {
248
+ chips: "min-h-7 text-xs gap-0.5 px-1 py-0.5",
249
+ input: "text-xs",
250
+ chip: "h-4.5 text-[0.6875rem] px-1",
251
+ },
252
+ medium: {
253
+ chips: "min-h-8 text-sm gap-1 px-2.5 py-1",
254
+ input: "text-sm",
255
+ chip: "h-5.25 text-xs px-1.5",
256
+ },
257
+ large: {
258
+ chips: "min-h-10 text-sm gap-1 px-2.5 py-1.5",
259
+ input: "text-sm",
260
+ chip: "h-6 text-xs px-2",
261
+ },
262
+ };
263
+
264
+ const defaultFormatCreateLabel$1 = (v) => `Create "${v}"`;
265
+ function useSelectState(props) {
266
+ const { id: idProp, size = "medium", label = "", error = "", helpText = "", value: valueProp, defaultValue, onChange, dataTestId, isCreatable = false, onCreateOption, formatCreateLabel = defaultFormatCreateLabel$1, isClearable = false, isDisabled = false, required = false, isSearchable = true, autoHighlight = true, onOpenChange, children, } = props;
267
+ const opt = useMultiSelectOptions(props);
268
+ const generatedId = useId();
269
+ const id = idProp ?? generatedId;
270
+ const errorId = `error_${id}`;
271
+ const helpTextId = `helpText_${id}`;
272
+ const sizeConfig = SIZE_CONFIG[size];
273
+ const isControlled = valueProp !== undefined;
274
+ const [internalValue, setInternalValue] = useState(defaultValue ?? "");
275
+ const currentValue = isControlled ? (valueProp ?? "") : internalValue;
276
+ const applyValue = useCallback((next) => {
277
+ if (!isControlled)
278
+ setInternalValue(next);
279
+ onChange?.(next);
280
+ }, [isControlled, onChange]);
281
+ const handleValueChange = useCallback((next) => {
282
+ const raw = next ?? "";
283
+ // Handle the creatable "Create X" option
284
+ if (raw.startsWith(CREATE_PREFIX)) {
285
+ const newValue = raw.slice(CREATE_PREFIX.length);
286
+ onCreateOption?.(newValue);
287
+ applyValue(newValue);
288
+ return;
289
+ }
290
+ applyValue(raw);
291
+ }, [applyValue, onCreateOption]);
292
+ const [inputValue, setInputValueState] = useState("");
293
+ const trimmedInput = inputValue.trim();
294
+ const combinedHandleInputValueChange = useCallback((value) => {
295
+ setInputValueState(value);
296
+ if (opt.isAsync)
297
+ opt.handleAsyncInputChange(value);
298
+ }, [opt.isAsync, opt.handleAsyncInputChange]);
299
+ const handleClear = useCallback(() => {
300
+ applyValue("");
301
+ }, [applyValue]);
302
+ const showCreateOption = useMemo(() => {
303
+ if (!isCreatable ||
304
+ trimmedInput.length === 0 ||
305
+ currentValue === trimmedInput)
306
+ return false;
307
+ const lower = trimmedInput.toLowerCase();
308
+ return !opt.flatOptions.some(o => o.label.toLowerCase() === lower || o.value.toLowerCase() === lower);
309
+ }, [isCreatable, trimmedInput, currentValue, opt.flatOptions]);
310
+ const effectiveItems = useMemo(() => {
311
+ if (children)
312
+ return undefined;
313
+ const base = opt.baseUiItems;
314
+ if (!showCreateOption)
315
+ return base;
316
+ const createValue = `${CREATE_PREFIX}${trimmedInput}`;
317
+ if (!opt.isGrouped) {
318
+ return [...(base ?? []), createValue];
319
+ }
320
+ return [
321
+ ...(base ?? []),
322
+ { label: "", items: [createValue] },
323
+ ];
324
+ }, [
325
+ children,
326
+ opt.baseUiItems,
327
+ opt.isGrouped,
328
+ showCreateOption,
329
+ trimmedInput,
330
+ ]);
331
+ const creatableFilter = useCallback((itemValue, query, itemToString) => {
332
+ if (itemValue.startsWith(CREATE_PREFIX))
333
+ return true;
334
+ const label = itemToString?.(itemValue) ?? itemValue;
335
+ return label.toLowerCase().includes(query.toLowerCase());
336
+ }, []);
337
+ const ariaDescribedBy = buildAriaDescribedBy(error, errorId, helpText, helpTextId);
338
+ const testIdPrefix = buildTestIdPrefix(dataTestId, label);
339
+ const showClearButton = isClearable && !!currentValue && !isDisabled;
340
+ const flatOptionsMap = useMemo(() => new Map(opt.flatOptions.map(o => [o.value, o])), [opt.flatOptions]);
341
+ const labelForValue = useCallback((val) => {
342
+ if (val.startsWith(CREATE_PREFIX)) {
343
+ return formatCreateLabel(val.slice(CREATE_PREFIX.length));
344
+ }
345
+ return flatOptionsMap.get(val)?.label ?? val;
346
+ }, [flatOptionsMap, formatCreateLabel]);
347
+ return {
348
+ ...opt,
349
+ id,
350
+ errorId,
351
+ helpTextId,
352
+ sizeConfig,
353
+ isControlled,
354
+ currentValue,
355
+ effectiveItems,
356
+ creatableFilter,
357
+ handleValueChange,
358
+ handleInputValueChange: combinedHandleInputValueChange,
359
+ handleClear,
360
+ showCreateOption,
361
+ showClearButton,
362
+ ariaDescribedBy,
363
+ testIdPrefix,
364
+ labelForValue,
365
+ flatOptionsMap,
366
+ label,
367
+ error,
368
+ helpText,
369
+ isDisabled,
370
+ required,
371
+ isSearchable,
372
+ autoHighlight,
373
+ onOpenChange,
374
+ isClearable,
375
+ };
376
+ }
377
+
378
+ const defaultFormatCreateLabel = (v) => `Create "${v}"`;
379
+ function useMultiSelectState(props) {
380
+ const { id: idProp, size = "medium", label = "", error = "", helpText = "", value: valueProp, defaultValue, onChange, dataTestId, isCreatable = false, onCreateOption, formatCreateLabel = defaultFormatCreateLabel, children, } = props;
381
+ const opt = useMultiSelectOptions(props);
382
+ const generatedId = useId();
383
+ const id = idProp ?? generatedId;
384
+ const errorId = `error_${id}`;
385
+ const helpTextId = `helpText_${id}`;
386
+ const sizeConfig = SIZE_CONFIG[size];
387
+ const isControlled = valueProp !== undefined;
388
+ const [internalValue, setInternalValue] = useState(defaultValue ?? []);
389
+ const selectedValues = isControlled ? valueProp : internalValue;
390
+ const handleChange = useCallback((values) => {
391
+ setInternalValue(values);
392
+ onChange?.(values);
393
+ }, [onChange]);
394
+ const { showCreateOption, effectiveItems, creatableFilter, handleInputValueChange, handleValueChange, } = useCreatableItems({
395
+ isCreatable,
396
+ isGrouped: opt.isGrouped,
397
+ flatOptions: opt.flatOptions,
398
+ selectedValues,
399
+ baseUiItems: opt.baseUiItems,
400
+ onCreateOption,
401
+ onChange: handleChange,
402
+ onAsyncInputChange: opt.isAsync ? opt.handleAsyncInputChange : undefined,
403
+ children,
404
+ });
405
+ const ariaDescribedBy = buildAriaDescribedBy(error, errorId, helpText, helpTextId);
406
+ const testIdPrefix = buildTestIdPrefix(dataTestId, label);
407
+ const flatOptionsMap = useMemo(() => new Map(opt.flatOptions.map(o => [o.value, o])), [opt.flatOptions]);
408
+ const labelForValue = useCallback((val) => {
409
+ if (val.startsWith(CREATE_PREFIX)) {
410
+ return formatCreateLabel(val.slice(CREATE_PREFIX.length));
411
+ }
412
+ return flatOptionsMap.get(val)?.label ?? val;
413
+ }, [flatOptionsMap, formatCreateLabel]);
414
+ return {
415
+ ...opt,
416
+ id,
417
+ errorId,
418
+ helpTextId,
419
+ sizeConfig,
420
+ isControlled,
421
+ selectedValues,
422
+ effectiveItems,
423
+ creatableFilter,
424
+ handleInputValueChange,
425
+ handleValueChange,
426
+ showCreateOption,
427
+ ariaDescribedBy,
428
+ testIdPrefix,
429
+ labelForValue,
430
+ flatOptionsMap,
431
+ label,
432
+ error,
433
+ helpText,
434
+ };
435
+ }
436
+
437
+ /** Shared anchor + non-searchable click-to-focus behaviour for combobox triggers. */
438
+ function useComboboxAnchor(isSearchable) {
439
+ const [anchorEl, setAnchorEl] = useState(null);
440
+ const handleClick = useCallback((e) => {
441
+ if (!isSearchable) {
442
+ e.currentTarget.querySelector("input")?.focus();
443
+ }
444
+ }, [isSearchable]);
445
+ return { anchorEl, setAnchorEl, handleClick };
446
+ }
447
+
448
+ function OptionItem({ val, flatOptionsMap, labelForValue, testIdPrefix, }) {
449
+ return (jsx(ComboboxItem, { value: val, disabled: !val.startsWith(CREATE_PREFIX) && flatOptionsMap.get(val)?.disabled, className: val.startsWith(CREATE_PREFIX) ? "text-primary" : undefined, ...(testIdPrefix
450
+ ? { "data-testid": `${testIdPrefix}-select-option` }
451
+ : {}), children: labelForValue(val) }, val));
452
+ }
453
+
454
+ function MultiSelectDropdown({ resolvedOptions, flatOptionsMap, isGrouped, isLoading, loadingMessage, emptyMessage, showCreateOption, labelForValue, testIdPrefix, hasMoreLazy, loaderCallbackRef, children, }) {
455
+ return (jsxs(ComboboxList, { ...(testIdPrefix
456
+ ? { "data-testid": `${testIdPrefix}-select-menu` }
457
+ : {}), children: [isLoading && (jsx("div", { className: "flex w-full justify-center py-2 text-center text-sm text-muted-foreground", children: loadingMessage })), !isLoading && !showCreateOption && (jsx(ComboboxEmpty, { children: emptyMessage })), children ??
458
+ (resolvedOptions.length > 0 || showCreateOption ? (isGrouped ? (jsx(ComboboxCollection, { children: (group) => (jsxs(ComboboxGroup, { items: group.items, children: [group.label && jsx(ComboboxLabel, { children: group.label }), jsx(ComboboxCollection, { children: (val) => (jsx(OptionItem, { val: val, flatOptionsMap: flatOptionsMap, labelForValue: labelForValue, testIdPrefix: testIdPrefix }, val)) })] }, group.label || "__create__")) })) : (jsx(ComboboxCollection, { children: (val) => (jsx(OptionItem, { val: val, flatOptionsMap: flatOptionsMap, labelForValue: labelForValue, testIdPrefix: testIdPrefix }, val)) }))) : null), hasMoreLazy && (jsx("div", { ref: loaderCallbackRef, className: "flex w-full items-center justify-center py-3", "data-testid": testIdPrefix ? `${testIdPrefix}-lazy-loader` : "lazy-loader", children: jsx(Spinner, {}) }))] }));
459
+ }
460
+
461
+ const SelectCombobox = forwardRef((p, ref) => {
462
+ const { anchorEl, setAnchorEl, handleClick } = useComboboxAnchor(p.isSearchable);
463
+ const handleClearClick = useCallback((e) => {
464
+ e.stopPropagation();
465
+ e.preventDefault();
466
+ p.handleClear();
467
+ }, [p.handleClear]);
468
+ return (jsxs(Combobox, { name: p.name, ...(p.effectiveItems && !p.children
469
+ ? {
470
+ items: p.effectiveItems,
471
+ itemToStringLabel: p.labelForValue,
472
+ ...(!p.isSearchable || p.isAsync
473
+ ? { filter: null }
474
+ : p.isCreatable
475
+ ? { filter: p.creatableFilter }
476
+ : {}),
477
+ }
478
+ : {}), ...(p.isControlled
479
+ ? { value: p.valueProp }
480
+ : { defaultValue: p.defaultValue }), onValueChange: p.handleValueChange, ...(p.isCreatable || p.isAsync
481
+ ? { onInputValueChange: p.handleInputValueChange }
482
+ : {}), onOpenChange: p.onOpenChange, disabled: p.isDisabled, autoHighlight: p.autoHighlight, children: [jsx("div", { ref: setAnchorEl, onClick: handleClick, className: !p.isSearchable ? "cursor-pointer" : undefined, children: jsxs(ComboboxChips, { className: cn(p.sizeConfig.chips, !!p.error &&
483
+ "border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40", p.inputClassName), ...(p.testIdPrefix
484
+ ? { "data-testid": `${p.testIdPrefix}-select-container` }
485
+ : {}), children: [!p.isSearchable &&
486
+ (p.currentValue ? (jsx("span", { className: "flex-1 truncate", children: p.labelForValue(p.currentValue) })) : (jsx("span", { className: "flex-1 truncate text-muted-foreground", children: p.placeholder }))), jsx(ComboboxChipsInput, { ref: ref, id: p.id, placeholder: p.isSearchable && !p.currentValue ? p.placeholder : undefined, "aria-invalid": !!p.error || undefined, "aria-describedby": p.ariaDescribedBy, "aria-required": p.required || undefined, className: cn(p.sizeConfig.input, !p.isSearchable && "w-0 min-w-0 overflow-hidden p-0 opacity-0"), disabled: p.isDisabled, ...(p.testIdPrefix
487
+ ? { "data-testid": `${p.testIdPrefix}-select-input` }
488
+ : {}) }), p.showClearButton && (jsx("button", { type: "button", tabIndex: -1, "aria-label": "Clear selection", className: "shrink-0 text-muted-foreground hover:text-foreground", onClick: handleClearClick, children: jsx(X, { className: "size-3.5" }) })), jsx(ChevronDown, { className: "size-4 shrink-0 text-muted-foreground" })] }) }), jsx(ComboboxContent, { anchor: anchorEl, ...p.contentProps, children: jsx(MultiSelectDropdown, { ...p.dropdownProps, labelForValue: p.labelForValue, testIdPrefix: p.testIdPrefix, children: p.children }) })] }));
489
+ });
490
+ SelectCombobox.displayName = "SelectCombobox";
491
+
492
+ const MultiSelectCombobox = forwardRef((p, ref) => {
493
+ const { anchorEl, setAnchorEl, handleClick } = useComboboxAnchor(p.isSearchable);
494
+ return (jsxs(Combobox, { multiple: true, name: p.name, ...(p.effectiveItems && !p.children
495
+ ? {
496
+ items: p.effectiveItems,
497
+ itemToStringLabel: p.labelForValue,
498
+ ...(!p.isSearchable || p.isAsync
499
+ ? { filter: null }
500
+ : p.isCreatable
501
+ ? { filter: p.creatableFilter }
502
+ : {}),
503
+ }
504
+ : {}), ...(p.isControlled
505
+ ? { value: p.valueProp }
506
+ : { defaultValue: p.defaultValue }), onValueChange: p.handleValueChange, ...(p.isCreatable || p.isAsync
507
+ ? { onInputValueChange: p.handleInputValueChange }
508
+ : {}), onOpenChange: p.onOpenChange, disabled: p.isDisabled, autoHighlight: p.autoHighlight, children: [jsx("div", { ref: setAnchorEl, onClick: handleClick, className: !p.isSearchable ? "cursor-pointer" : undefined, children: jsxs(ComboboxChips, { className: cn(p.sizeConfig.chips, !!p.error &&
509
+ "border-destructive ring-3 ring-destructive/20 dark:border-destructive/50 dark:ring-destructive/40", p.chipsClassName, p.inputClassName), ...(p.testIdPrefix
510
+ ? { "data-testid": `${p.testIdPrefix}-select-container` }
511
+ : {}), children: [p.selectedValues.map(val => (jsx(ComboboxChip, { className: p.sizeConfig.chip, showRemove: !p.hideChipRemove, ...(p.testIdPrefix
512
+ ? { "data-testid": `${p.testIdPrefix}-chip` }
513
+ : {}), children: p.labelForValue(val) }, val))), jsx(ComboboxChipsInput, { ref: ref, id: p.id, placeholder: p.isSearchable && p.selectedValues.length === 0
514
+ ? p.placeholder
515
+ : undefined, "aria-invalid": !!p.error || undefined, "aria-describedby": p.ariaDescribedBy, "aria-required": p.required || undefined, className: cn(p.sizeConfig.input, !p.isSearchable && "w-0 min-w-0 overflow-hidden p-0 opacity-0"), disabled: p.isDisabled, ...(p.testIdPrefix
516
+ ? { "data-testid": `${p.testIdPrefix}-select-input` }
517
+ : {}) })] }) }), jsx(ComboboxContent, { anchor: anchorEl, ...p.contentProps, children: jsx(MultiSelectDropdown, { ...p.dropdownProps, labelForValue: p.labelForValue, testIdPrefix: p.testIdPrefix, children: p.children }) })] }));
518
+ });
519
+ MultiSelectCombobox.displayName = "MultiSelectCombobox";
520
+
521
+ const SingleSelectInner = forwardRef((props, ref) => {
522
+ const s = useSelectState(props);
523
+ return (jsx(SelectFieldWrapper, { id: s.id, label: s.label, error: s.error, helpText: s.helpText, errorId: s.errorId, helpTextId: s.helpTextId, isDisabled: s.isDisabled, required: s.required, testIdPrefix: s.testIdPrefix, labelProps: props.labelProps, className: props.className, children: jsx(SelectCombobox, { ref: ref, name: props.name, id: s.id, effectiveItems: s.effectiveItems, labelForValue: s.labelForValue, isSearchable: s.isSearchable, isAsync: s.isAsync, isCreatable: props.isCreatable ?? false, creatableFilter: s.creatableFilter, isControlled: s.isControlled, valueProp: props.value, defaultValue: props.defaultValue, currentValue: s.currentValue, handleValueChange: s.handleValueChange, handleInputValueChange: s.handleInputValueChange, handleClear: s.handleClear, onOpenChange: props.onOpenChange, isDisabled: s.isDisabled, autoHighlight: s.autoHighlight, required: s.required, isClearable: props.isClearable ?? false, showClearButton: s.showClearButton, sizeConfig: s.sizeConfig, error: s.error, placeholder: props.placeholder ?? "", ariaDescribedBy: s.ariaDescribedBy, testIdPrefix: s.testIdPrefix, inputClassName: props.inputClassName, contentProps: props.contentProps, dropdownProps: {
524
+ resolvedOptions: s.resolvedOptions,
525
+ flatOptionsMap: s.flatOptionsMap,
526
+ isGrouped: s.isGrouped,
527
+ isLoading: s.isLoading,
528
+ loadingMessage: props.loadingMessage ?? "Loading\u2026",
529
+ emptyMessage: props.emptyMessage ?? "No results found.",
530
+ showCreateOption: s.showCreateOption,
531
+ hasMoreLazy: s.hasMoreLazy,
532
+ loaderCallbackRef: s.loaderCallbackRef,
533
+ }, children: props.children }) }));
534
+ });
535
+ SingleSelectInner.displayName = "SingleSelectInner";
536
+ const MultiSelectInner = forwardRef((props, ref) => {
537
+ const s = useMultiSelectState(props);
538
+ const { isDisabled = false, required = false } = props;
539
+ return (jsx(SelectFieldWrapper, { id: s.id, label: s.label, error: s.error, helpText: s.helpText, errorId: s.errorId, helpTextId: s.helpTextId, isDisabled: isDisabled, required: required, testIdPrefix: s.testIdPrefix, labelProps: props.labelProps, className: props.className, children: jsx(MultiSelectCombobox, { ref: ref, name: props.name, id: s.id, effectiveItems: s.effectiveItems, labelForValue: s.labelForValue, isSearchable: props.isSearchable ?? true, isAsync: s.isAsync, isCreatable: props.isCreatable ?? false, creatableFilter: s.creatableFilter, isControlled: s.isControlled, valueProp: props.value, defaultValue: props.defaultValue, selectedValues: s.selectedValues, handleValueChange: s.handleValueChange, handleInputValueChange: s.handleInputValueChange, onOpenChange: props.onOpenChange, isDisabled: isDisabled, autoHighlight: props.autoHighlight ?? true, sizeConfig: s.sizeConfig, error: s.error, chipsClassName: props.chipsClassName, inputClassName: props.inputClassName, placeholder: props.placeholder ?? "", hideChipRemove: props.hideChipRemove ?? false, ariaDescribedBy: s.ariaDescribedBy, required: required, testIdPrefix: s.testIdPrefix, contentProps: props.contentProps, dropdownProps: {
540
+ resolvedOptions: s.resolvedOptions,
541
+ flatOptionsMap: s.flatOptionsMap,
542
+ isGrouped: s.isGrouped,
543
+ isLoading: s.isLoading,
544
+ loadingMessage: props.loadingMessage ?? "Loading\u2026",
545
+ emptyMessage: props.emptyMessage ?? "No results found.",
546
+ showCreateOption: s.showCreateOption,
547
+ hasMoreLazy: s.hasMoreLazy,
548
+ loaderCallbackRef: s.loaderCallbackRef,
549
+ }, children: props.children }) }));
550
+ });
551
+ MultiSelectInner.displayName = "MultiSelectInner";
552
+ const Select = forwardRef((props, ref) => {
553
+ if (props.isMulti === true) {
554
+ return jsx(MultiSelectInner, { ...props, ref: ref });
555
+ }
556
+ return jsx(SingleSelectInner, { ...props, ref: ref });
557
+ });
558
+ Select.displayName = "Select";
559
+
560
+ export { Select as S };
561
+ //# sourceMappingURL=Select-BGODpJGc.js.map