@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
@@ -1,165 +1,18 @@
1
- import { jsxs, jsx } 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 { InputGroup, InputGroupAddon, InputGroupText, InputGroupInput } from '../primitives/InputGroup.js';
1
+ export { I as Input } from '../Input-C1gcv9o2.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '../utils-DdHUxIdC.js';
5
+ import '../primitives/Field.js';
6
6
  import '../index-D7Zy7P05.js';
7
7
  import '../label-B4qDF3W1.js';
8
8
  import '../index-DhnfW8wQ.js';
9
9
  import 'react-dom';
10
10
  import '../index-BtkPdosV.js';
11
11
  import '../separator-BbhgePmX.js';
12
+ import '../primitives/InputGroup.js';
12
13
  import '../input-group-ytECR3Hw.js';
13
14
  import '../button-COIbN8dg.js';
14
15
  import '../index-CfriMyrd.js';
15
16
  import '../input-GLCCE2kT.js';
16
17
  import '../textarea-BSZwxzjQ.js';
17
-
18
- // ---------------------------------------------------------------------------
19
- // Size config
20
- // ---------------------------------------------------------------------------
21
- const SIZE_CONFIG = {
22
- small: { group: "h-7", input: "text-xs px-2", addon: "px-1.5" },
23
- medium: { group: "h-8", input: "text-sm", addon: "px-2" },
24
- large: { group: "h-10", input: "text-sm", addon: "px-2.5" },
25
- };
26
- // ---------------------------------------------------------------------------
27
- // Utilities (ported from neeto-ui, no external deps)
28
- // ---------------------------------------------------------------------------
29
- function toFixed(numStr, prec) {
30
- const num = Number(numStr);
31
- if (Number.isNaN(num))
32
- return numStr;
33
- return num.toFixed(prec);
34
- }
35
- function formatWithPrecision(value, precision) {
36
- if (precision < 0 || !value)
37
- return value;
38
- const str = value.toString();
39
- const trimmed = str.trim();
40
- if (trimmed !== "" && !Number.isNaN(Number(trimmed)))
41
- return toFixed(str, precision);
42
- return str;
43
- }
44
- function enforceDecimalPrecision(value, precision) {
45
- if (precision < 0 || !value)
46
- return value;
47
- const valueStr = value.toString();
48
- if (precision === 0)
49
- return valueStr.split(".")[0];
50
- const regex = new RegExp(`^\\d*\\.?\\d{0,${precision}}$`);
51
- if (regex.test(valueStr))
52
- return value;
53
- const parts = valueStr.split(".");
54
- if (parts.length === 1)
55
- return parts[0];
56
- return `${parts[0]}.${parts[1].substring(0, precision)}`;
57
- }
58
- function formatWithRejectCharsRegex(value, rejectCharsRegex) {
59
- if (!rejectCharsRegex)
60
- return value;
61
- const globalRegex = new RegExp(rejectCharsRegex, "g");
62
- return value.replace(globalRegex, "");
63
- }
64
- function getTrimmedValue(value, disableTrimOnBlur) {
65
- if (disableTrimOnBlur || typeof value !== "string")
66
- return value;
67
- return value.trim();
68
- }
69
- function preserveCursor(e, updateValueFn) {
70
- const input = e.target;
71
- const prevCursor = input.selectionStart;
72
- const prevValue = input.value;
73
- const updatedEvent = updateValueFn();
74
- const lengthDiff = input.value.length - prevValue.length;
75
- const newCursor = Math.max(0, (prevCursor ?? 0) + lengthDiff);
76
- requestAnimationFrame(() => {
77
- if (document.activeElement !== input)
78
- return;
79
- if (input.type === "number")
80
- return;
81
- input.setSelectionRange(newCursor, newCursor);
82
- });
83
- return updatedEvent;
84
- }
85
- // ---------------------------------------------------------------------------
86
- // Component
87
- // ---------------------------------------------------------------------------
88
- const Input = forwardRef(({ size = "medium", type = "text", label = "", error = "", helpText = "", prefix = null, suffix = null, disabled = false, nakedInput = false, contentSize, required = false, maxLength, unlimitedChars = false, rejectCharsRegex, disableTrimOnBlur = false, precision = -1, labelProps, className = "", onBlur, onChange, value: controlledValue, ...otherProps }, ref) => {
89
- const generatedId = useId();
90
- const id = otherProps.id ?? generatedId;
91
- const errorId = `error_${id}`;
92
- const helpTextId = `helpText_${id}`;
93
- // Controlled / uncontrolled value tracking
94
- const [valueInternal, setValueInternal] = useState(controlledValue);
95
- const isControlled = controlledValue !== undefined;
96
- const value = formatWithPrecision(controlledValue, precision) ?? valueInternal ?? "";
97
- const valueLength = value?.toString().length || 0;
98
- const isMaxLengthPresent = !!maxLength || maxLength === 0;
99
- const isCharacterLimitVisible = isMaxLengthPresent && valueLength >= maxLength * 0.85;
100
- const maxLengthError = unlimitedChars && valueLength > maxLength;
101
- // --- Handlers ---
102
- const onChangeInternal = (e) => {
103
- if (!isControlled) {
104
- setValueInternal(e.target.value);
105
- }
106
- onChange?.(e);
107
- };
108
- const handleChange = (e) => {
109
- if (type === "file") {
110
- onChangeInternal(e);
111
- return;
112
- }
113
- let formattedValue = formatWithRejectCharsRegex(e.target.value, rejectCharsRegex);
114
- formattedValue = enforceDecimalPrecision(formattedValue, precision);
115
- if (formattedValue !== e.target.value) {
116
- preserveCursor(e, () => {
117
- const syntheticEvent = Object.create(e, {
118
- target: { value: { ...e.target, value: formattedValue } },
119
- });
120
- e.target.value = formattedValue;
121
- onChangeInternal(syntheticEvent);
122
- return syntheticEvent;
123
- });
124
- }
125
- else {
126
- onChangeInternal(e);
127
- }
128
- };
129
- const handleBlur = (e) => {
130
- if (type === "file") {
131
- onBlur?.(e);
132
- return;
133
- }
134
- const trimmedValue = getTrimmedValue(value, disableTrimOnBlur);
135
- const formattedValue = formatWithPrecision(trimmedValue, precision);
136
- if (formattedValue !== undefined && formattedValue !== value) {
137
- e.target.value = formattedValue.toString();
138
- handleChange(e);
139
- }
140
- onBlur?.(e);
141
- };
142
- const handleWheel = (e) => {
143
- if (type === "number")
144
- e.target.blur();
145
- };
146
- // --- aria-describedby ---
147
- const ariaDescribedBy = [error ? errorId : null, helpText ? helpTextId : null]
148
- .filter(Boolean)
149
- .join(" ") || undefined;
150
- // --- Render ---
151
- const hasField = !!(label || error || helpText);
152
- const sizeConfig = SIZE_CONFIG[size];
153
- const inputGroup = (jsxs(InputGroup, { className: cn(sizeConfig.group, nakedInput &&
154
- "border-0 shadow-none has-[[data-slot=input-group-control]:focus-visible]:ring-0 has-[[data-slot=input-group-control]:focus-visible]:border-transparent", !!error &&
155
- !nakedInput &&
156
- "border-destructive ring-destructive/20 ring-3", !hasField && className), children: [prefix && (jsx(InputGroupAddon, { align: "inline-start", className: sizeConfig.addon, children: jsx(InputGroupText, { children: prefix }) })), jsx(InputGroupInput, { ref: ref, id: id, type: type, disabled: disabled, required: required, size: contentSize, "aria-invalid": !!error || undefined, "aria-describedby": ariaDescribedBy, className: cn(sizeConfig.input, nakedInput && "px-0"), value: value, onBlur: handleBlur, onChange: handleChange, onWheel: handleWheel, ...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {}), ...otherProps }), suffix && (jsx(InputGroupAddon, { align: "inline-end", className: sizeConfig.addon, children: jsx(InputGroupText, { children: suffix }) }))] }));
157
- if (!hasField) {
158
- return inputGroup;
159
- }
160
- 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: [inputGroup, !!error && jsx(FieldError, { id: errorId, children: error }), helpText && (jsx(FieldDescription, { id: helpTextId, children: helpText }))] })] }));
161
- });
162
- Input.displayName = "Input";
163
-
164
- export { Input };
165
18
  //# sourceMappingURL=Input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../src/components/Input.tsx"],"sourcesContent":["import React, { forwardRef, useId, useState } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupText,\n InputGroupInput,\n} from \"src/primitives/InputGroup\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype InputSize = \"small\" | \"medium\" | \"large\";\n\nexport interface InputProps extends Omit<\n React.ComponentProps<\"input\">,\n \"size\" | \"prefix\"\n> {\n /** Size of the input. */\n size?: InputSize;\n /** Input type. */\n type?: string;\n /** Label displayed above the input. */\n label?: string;\n /** Error message displayed below the input. */\n error?: string;\n /** Help text displayed below the input. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Content rendered before the input. */\n prefix?: React.ReactNode;\n /** Content rendered after the input. */\n suffix?: React.ReactNode;\n /** Removes borders from the input. */\n nakedInput?: boolean;\n /** HTML size attribute for the input element. */\n contentSize?: number;\n /** Maximum character limit. Counter visible at 85%. */\n maxLength?: number;\n /** Allow typing past maxLength, show error styling on count. */\n unlimitedChars?: boolean;\n /** Regex to reject matching characters from input. */\n rejectCharsRegex?: RegExp;\n /** Prevent trimming whitespace on blur. */\n disableTrimOnBlur?: boolean;\n /** Decimal places for number formatting. -1 to disable. */\n precision?: number;\n /** Props forwarded to the Label element. */\n labelProps?: React.ComponentProps<typeof FieldLabel>;\n /** Additional class name for the outermost wrapper. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst SIZE_CONFIG = {\n small: { group: \"h-7\", input: \"text-xs px-2\", addon: \"px-1.5\" },\n medium: { group: \"h-8\", input: \"text-sm\", addon: \"px-2\" },\n large: { group: \"h-10\", input: \"text-sm\", addon: \"px-2.5\" },\n};\n\n// ---------------------------------------------------------------------------\n// Utilities (ported from neeto-ui, no external deps)\n// ---------------------------------------------------------------------------\n\nfunction toFixed(numStr: string, prec: number): string {\n const num = Number(numStr);\n if (Number.isNaN(num)) return numStr;\n\n return num.toFixed(prec);\n}\n\nfunction formatWithPrecision(\n value: string | number | undefined,\n precision: number\n): string | undefined {\n if (precision < 0 || !value) return value as string | undefined;\n\n const str = value.toString();\n const trimmed = str.trim();\n if (trimmed !== \"\" && !Number.isNaN(Number(trimmed)))\n return toFixed(str, precision);\n\n return str;\n}\n\nfunction enforceDecimalPrecision(value: string, precision: number): string {\n if (precision < 0 || !value) return value;\n\n const valueStr = value.toString();\n if (precision === 0) return valueStr.split(\".\")[0];\n\n const regex = new RegExp(`^\\\\d*\\\\.?\\\\d{0,${precision}}$`);\n if (regex.test(valueStr)) return value;\n\n const parts = valueStr.split(\".\");\n if (parts.length === 1) return parts[0];\n\n return `${parts[0]}.${parts[1].substring(0, precision)}`;\n}\n\nfunction formatWithRejectCharsRegex(\n value: string,\n rejectCharsRegex?: RegExp\n): string {\n if (!rejectCharsRegex) return value;\n\n const globalRegex = new RegExp(rejectCharsRegex, \"g\");\n\n return value.replace(globalRegex, \"\");\n}\n\nfunction getTrimmedValue(\n value: string | number,\n disableTrimOnBlur: boolean\n): string | number {\n if (disableTrimOnBlur || typeof value !== \"string\") return value;\n\n return value.trim();\n}\n\nfunction preserveCursor(\n e: React.ChangeEvent<HTMLInputElement>,\n updateValueFn: () => React.ChangeEvent<HTMLInputElement>\n) {\n const input = e.target;\n const prevCursor = input.selectionStart;\n const prevValue = input.value;\n\n const updatedEvent = updateValueFn();\n\n const lengthDiff = input.value.length - prevValue.length;\n const newCursor = Math.max(0, (prevCursor ?? 0) + lengthDiff);\n\n requestAnimationFrame(() => {\n if (document.activeElement !== input) return;\n if (input.type === \"number\") return;\n\n input.setSelectionRange(newCursor, newCursor);\n });\n\n return updatedEvent;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n size = \"medium\",\n type = \"text\",\n label = \"\",\n error = \"\",\n helpText = \"\",\n prefix = null,\n suffix = null,\n disabled = false,\n nakedInput = false,\n contentSize,\n required = false,\n maxLength,\n unlimitedChars = false,\n rejectCharsRegex,\n disableTrimOnBlur = false,\n precision = -1,\n labelProps,\n className = \"\",\n onBlur,\n onChange,\n value: controlledValue,\n ...otherProps\n },\n ref\n ) => {\n const generatedId = useId();\n const id = otherProps.id ?? generatedId;\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n // Controlled / uncontrolled value tracking\n const [valueInternal, setValueInternal] = useState(controlledValue);\n const isControlled = controlledValue !== undefined;\n\n const value =\n formatWithPrecision(controlledValue, precision) ?? valueInternal ?? \"\";\n const valueLength = value?.toString().length || 0;\n\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n const isCharacterLimitVisible =\n isMaxLengthPresent && valueLength >= maxLength! * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength!;\n\n // --- Handlers ---\n\n const onChangeInternal = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setValueInternal(e.target.value);\n }\n onChange?.(e);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (type === \"file\") {\n onChangeInternal(e);\n\n return;\n }\n\n let formattedValue = formatWithRejectCharsRegex(\n e.target.value,\n rejectCharsRegex\n );\n formattedValue = enforceDecimalPrecision(formattedValue, precision);\n\n if (formattedValue !== e.target.value) {\n preserveCursor(e, () => {\n const syntheticEvent = Object.create(e, {\n target: { value: { ...e.target, value: formattedValue } },\n });\n e.target.value = formattedValue;\n onChangeInternal(syntheticEvent);\n\n return syntheticEvent;\n });\n } else {\n onChangeInternal(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n if (type === \"file\") {\n onBlur?.(e);\n\n return;\n }\n\n const trimmedValue = getTrimmedValue(value, disableTrimOnBlur);\n const formattedValue = formatWithPrecision(trimmedValue, precision);\n\n if (formattedValue !== undefined && formattedValue !== value) {\n e.target.value = formattedValue.toString();\n handleChange(e as unknown as React.ChangeEvent<HTMLInputElement>);\n }\n\n onBlur?.(e);\n };\n\n const handleWheel = (e: React.WheelEvent<HTMLInputElement>) => {\n if (type === \"number\") (e.target as HTMLInputElement).blur();\n };\n\n // --- aria-describedby ---\n\n const ariaDescribedBy =\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n // --- Render ---\n\n const hasField = !!(label || error || helpText);\n const sizeConfig = SIZE_CONFIG[size];\n\n const inputGroup = (\n <InputGroup\n className={cn(\n sizeConfig.group,\n nakedInput &&\n \"border-0 shadow-none has-[[data-slot=input-group-control]:focus-visible]:ring-0 has-[[data-slot=input-group-control]:focus-visible]:border-transparent\",\n !!error &&\n !nakedInput &&\n \"border-destructive ring-destructive/20 ring-3\",\n !hasField && className\n )}\n >\n {prefix && (\n <InputGroupAddon align=\"inline-start\" className={sizeConfig.addon}>\n <InputGroupText>{prefix}</InputGroupText>\n </InputGroupAddon>\n )}\n <InputGroupInput\n ref={ref}\n id={id}\n type={type}\n disabled={disabled}\n required={required}\n size={contentSize}\n aria-invalid={!!error || undefined}\n aria-describedby={ariaDescribedBy}\n className={cn(sizeConfig.input, nakedInput && \"px-0\")}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onWheel={handleWheel}\n {...(isMaxLengthPresent && !unlimitedChars ? { maxLength } : {})}\n {...otherProps}\n />\n {suffix && (\n <InputGroupAddon align=\"inline-end\" className={sizeConfig.addon}>\n <InputGroupText>{suffix}</InputGroupText>\n </InputGroupAddon>\n )}\n </InputGroup>\n );\n\n if (!hasField) {\n return inputGroup;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {(label || isCharacterLimitVisible) && (\n <div className=\"flex items-center justify-between\">\n {label && (\n <FieldLabel htmlFor={id} {...labelProps}>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {isCharacterLimitVisible && (\n <span\n className={cn(\n \"text-xs tabular-nums\",\n maxLengthError ? \"text-destructive\" : \"text-muted-foreground\"\n )}\n >\n {valueLength}/{maxLength}\n </span>\n )}\n </div>\n )}\n <FieldContent>\n {inputGroup}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </FieldContent>\n </Field>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nexport { Input };\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -10,6 +10,6 @@ export interface KbdProps extends React.ComponentProps<typeof PrimitiveKbd> {
10
10
  className?: string;
11
11
  }
12
12
  declare const KbdNamespace: React.ForwardRefExoticComponent<Omit<KbdProps, "ref"> & React.RefAttributes<HTMLElement>> & {
13
- Group: (props: React.ComponentProps<typeof import("../shadcn/components/kbd").KbdGroup>) => import("react/jsx-runtime").JSX.Element;
13
+ Group: (props: React.ComponentProps<typeof import("../../shadcn/components/kbd").KbdGroup>) => import("react/jsx-runtime").JSX.Element;
14
14
  };
15
15
  export { KbdNamespace as Kbd };
@@ -0,0 +1 @@
1
+ export declare const SIDE_MAP: Record<string, "top" | "right" | "bottom" | "left">;
@@ -0,0 +1,2 @@
1
+ export { Kbd } from "./Kbd";
2
+ export type { KbdProps } from "./Kbd";
@@ -1,9 +1,10 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
3
- import { c as cn } from '../utils-DdHUxIdC.js';
4
- import { Kbd as Kbd$1, KbdGroup as KbdGroup$1 } from '../primitives/Kbd.js';
5
- import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from '../primitives/Tooltip.js';
6
- import '../tooltip-DzjIJacP.js';
1
+ export { K as Kbd } from '../Kbd-EqbC0bua.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '../utils-DdHUxIdC.js';
5
+ import '../primitives/Kbd.js';
6
+ import '../primitives/Tooltip.js';
7
+ import '../tooltip-XkHLgxlU.js';
7
8
  import '../index-DNzunGHb.js';
8
9
  import '../index-BtkPdosV.js';
9
10
  import '../index-CiyxEyB0.js';
@@ -13,49 +14,11 @@ import 'react-dom';
13
14
  import '../index-CSUSJzOJ.js';
14
15
  import '../index-zW4GjM5L.js';
15
16
  import '../index-DOzu5J1s.js';
16
- import '../index-ByEpUy7w.js';
17
- import '../floating-ui.react-dom-CcGbtPEK.js';
17
+ import '../index-C3hByjk3.js';
18
+ import '../floating-ui.react-dom-D8_f_WWh.js';
18
19
  import '../index-BYZaLNq1.js';
19
20
  import '../index-fV_U4ZJM.js';
20
21
  import '../index-yFgkK_AM.js';
21
22
  import '../index-Cor698lu.js';
22
23
  import '../index-CSggBaQF.js';
23
-
24
- // ---------------------------------------------------------------------------
25
- // Position mapping
26
- // ---------------------------------------------------------------------------
27
- const SIDE_MAP = {
28
- top: "top",
29
- bottom: "bottom",
30
- left: "left",
31
- right: "right",
32
- "top-start": "top",
33
- "top-end": "top",
34
- "bottom-start": "bottom",
35
- "bottom-end": "bottom",
36
- "left-start": "left",
37
- "left-end": "left",
38
- "right-start": "right",
39
- "right-end": "right",
40
- auto: "top",
41
- };
42
- // ---------------------------------------------------------------------------
43
- // Component
44
- // ---------------------------------------------------------------------------
45
- const Kbd = forwardRef(({ tooltipProps, className, ...otherProps }, ref) => {
46
- const kbd = (jsx(Kbd$1, { ref: ref, className: cn(className), ...otherProps }));
47
- if (!tooltipProps?.content) {
48
- return kbd;
49
- }
50
- const side = SIDE_MAP[tooltipProps.position ?? "auto"] ?? "top";
51
- return (jsx(TooltipProvider, { children: jsxs(Tooltip, { children: [jsx(TooltipTrigger, { asChild: true, children: kbd }), jsx(TooltipContent, { side: side, children: tooltipProps.content })] }) }));
52
- });
53
- Kbd.displayName = "Kbd";
54
- // ---------------------------------------------------------------------------
55
- // Compound: Kbd.Group
56
- // ---------------------------------------------------------------------------
57
- const KbdGroup = KbdGroup$1;
58
- const KbdNamespace = Object.assign(Kbd, { Group: KbdGroup });
59
-
60
- export { KbdNamespace as Kbd };
61
24
  //# sourceMappingURL=Kbd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Kbd.js","sources":["../../src/components/Kbd.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Kbd as PrimitiveKbd,\n KbdGroup as PrimitiveKbdGroup,\n} from \"src/primitives/Kbd\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface KbdProps extends React.ComponentProps<typeof PrimitiveKbd> {\n /** Optional tooltip to display on hover. */\n tooltipProps?: {\n content?: React.ReactNode;\n position?: string;\n };\n /** Additional CSS class names. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Position mapping\n// ---------------------------------------------------------------------------\n\nconst SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n auto: \"top\",\n};\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Kbd = forwardRef<HTMLElement, KbdProps>(\n ({ tooltipProps, className, ...otherProps }, ref) => {\n const kbd = (\n <PrimitiveKbd ref={ref} className={cn(className)} {...otherProps} />\n );\n\n if (!tooltipProps?.content) {\n return kbd;\n }\n\n const side = SIDE_MAP[tooltipProps.position ?? \"auto\"] ?? \"top\";\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{kbd}</TooltipTrigger>\n <TooltipContent side={side}>{tooltipProps.content}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n);\n\nKbd.displayName = \"Kbd\";\n\n// ---------------------------------------------------------------------------\n// Compound: Kbd.Group\n// ---------------------------------------------------------------------------\n\nconst KbdGroup = PrimitiveKbdGroup;\n\nconst KbdNamespace = Object.assign(Kbd, { Group: KbdGroup });\n\nexport { KbdNamespace as Kbd };\n"],"names":["_jsx","PrimitiveKbd","_jsxs","PrimitiveKbdGroup"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BA;AACA;AACA;AAEA,MAAM,QAAQ,GAAwD;AACpE,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,cAAc,EAAE,QAAQ;AACxB,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,aAAa,EAAE,OAAO;AACtB,IAAA,WAAW,EAAE,OAAO;AACpB,IAAA,IAAI,EAAE,KAAK;CACZ;AAED;AACA;AACA;AAEA,MAAM,GAAG,GAAG,UAAU,CACpB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;IAClD,MAAM,GAAG,IACPA,GAAA,CAACC,KAAY,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAM,UAAU,EAAA,CAAI,CACrE;AAED,IAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAC1B,QAAA,OAAO,GAAG;IACZ;AAEA,IAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK;AAE/D,IAAA,QACED,GAAA,CAAC,eAAe,EAAA,EAAA,QAAA,EACdE,IAAA,CAAC,OAAO,EAAA,EAAA,QAAA,EAAA,CACNF,GAAA,CAAC,cAAc,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAAE,GAAG,EAAA,CAAkB,EAC9CA,GAAA,CAAC,cAAc,EAAA,EAAC,IAAI,EAAE,IAAI,EAAA,QAAA,EAAG,YAAY,CAAC,OAAO,EAAA,CAAkB,CAAA,EAAA,CAC3D,EAAA,CACM;AAEtB,CAAC,CACF;AAED,GAAG,CAAC,WAAW,GAAG,KAAK;AAEvB;AACA;AACA;AAEA,MAAM,QAAQ,GAAGG,UAAiB;AAElC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;;;;"}
1
+ {"version":3,"file":"Kbd.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1 @@
1
+ export declare const SIDE_MAP: Record<string, "top" | "right" | "bottom" | "left">;
@@ -0,0 +1,2 @@
1
+ export { Label } from "./Label";
2
+ export type { LabelProps } from "./Label";
@@ -1,89 +1,37 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
3
- import { c as cn } from '../utils-DdHUxIdC.js';
4
- import { r as renderIcon } from '../renderIcon-tlvMyboj.js';
5
- import { Label as Label$1 } from '../primitives/Label.js';
6
- import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from '../primitives/Tooltip.js';
7
- import { Popover } from './Popover.js';
8
- import { Button } from './Button.js';
9
- import { c as createLucideIcon } from '../createLucideIcon-C8ycilSN.js';
1
+ export { L as Label } from '../Label-BVy4hy9Z.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '../utils-DdHUxIdC.js';
5
+ import '../renderIcon-tlvMyboj.js';
6
+ import '../primitives/Label.js';
10
7
  import '../label-B4qDF3W1.js';
11
8
  import '../index-DhnfW8wQ.js';
12
9
  import 'react-dom';
13
10
  import '../index-BtkPdosV.js';
14
- import '../tooltip-DzjIJacP.js';
11
+ import '../primitives/Tooltip.js';
12
+ import '../tooltip-XkHLgxlU.js';
15
13
  import '../index-DNzunGHb.js';
16
14
  import '../index-CiyxEyB0.js';
17
15
  import '../index-BNPynZWM.js';
18
16
  import '../index-CSUSJzOJ.js';
19
17
  import '../index-zW4GjM5L.js';
20
18
  import '../index-DOzu5J1s.js';
21
- import '../index-ByEpUy7w.js';
22
- import '../floating-ui.react-dom-CcGbtPEK.js';
19
+ import '../index-C3hByjk3.js';
20
+ import '../floating-ui.react-dom-D8_f_WWh.js';
23
21
  import '../index-BYZaLNq1.js';
24
22
  import '../index-fV_U4ZJM.js';
25
23
  import '../index-yFgkK_AM.js';
26
24
  import '../index-Cor698lu.js';
27
25
  import '../index-CSggBaQF.js';
26
+ import '../Popover-BFMrtVPq.js';
28
27
  import '../index-D7Zy7P05.js';
29
28
  import '../primitives/HoverCard.js';
29
+ import '../Button-Q7MPG6ph.js';
30
30
  import '../primitives/Button.js';
31
31
  import '../button-COIbN8dg.js';
32
32
  import '../index-CfriMyrd.js';
33
33
  import '../primitives/Spinner.js';
34
34
  import 'react-i18next';
35
35
  import '../loader-circle-DycHUAWN.js';
36
-
37
- /**
38
- * @license lucide-react v0.577.0 - ISC
39
- *
40
- * This source code is licensed under the ISC license.
41
- * See the LICENSE file in the root directory of this source tree.
42
- */
43
-
44
-
45
- const __iconNode = [
46
- ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
47
- ["path", { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3", key: "1u773s" }],
48
- ["path", { d: "M12 17h.01", key: "p32p05" }]
49
- ];
50
- const CircleQuestionMark = createLucideIcon("circle-question-mark", __iconNode);
51
-
52
- // ---------------------------------------------------------------------------
53
- // Tooltip side mapping
54
- // ---------------------------------------------------------------------------
55
- const SIDE_MAP = {
56
- top: "top",
57
- bottom: "bottom",
58
- left: "left",
59
- right: "right",
60
- auto: "top",
61
- };
62
- // ---------------------------------------------------------------------------
63
- // Component
64
- // ---------------------------------------------------------------------------
65
- const Label = forwardRef(({ required, helpIconProps, className, children, ...otherProps }, ref) => {
66
- const helpIcon = helpIconProps?.icon ?? CircleQuestionMark;
67
- const iconElement = (jsx("span", { className: cn("inline-flex cursor-help text-muted-foreground transition-colors hover:text-foreground", helpIconProps?.onClick && "cursor-pointer", helpIconProps?.className), onClick: helpIconProps?.onClick, children: renderIcon(helpIcon, "size-3.5") }));
68
- const renderHelpIcon = () => {
69
- if (!helpIconProps)
70
- return null;
71
- // Popover mode
72
- if (helpIconProps.popoverProps) {
73
- const { title, description, helpLinkProps } = helpIconProps.popoverProps;
74
- return (jsxs(Popover, { trigger: iconElement, children: [title && jsx(Popover.Title, { children: title }), description && (jsx("p", { className: "text-sm text-muted-foreground", children: description })), helpLinkProps && (jsx(Button, { variant: "link", size: "sm", className: "mt-1 h-auto self-start p-0", ...helpLinkProps, href: helpLinkProps.href }))] }));
75
- }
76
- // Tooltip mode
77
- if (helpIconProps.tooltipProps?.content) {
78
- const side = SIDE_MAP[helpIconProps.tooltipProps.position ?? "auto"] ?? "top";
79
- return (jsx(TooltipProvider, { children: jsxs(Tooltip, { children: [jsx(TooltipTrigger, { asChild: true, children: iconElement }), jsx(TooltipContent, { side: side, children: helpIconProps.tooltipProps.content })] }) }));
80
- }
81
- // Icon only (with optional onClick)
82
- return iconElement;
83
- };
84
- return (jsxs(Label$1, { ref: ref, className: cn(className), ...otherProps, children: [children, required && (jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" })), renderHelpIcon()] }));
85
- });
86
- Label.displayName = "Label";
87
-
88
- export { Label };
36
+ import '../createLucideIcon-C8ycilSN.js';
89
37
  //# sourceMappingURL=Label.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Label.js","sources":["../../node_modules/lucide-react/dist/esm/icons/circle-question-mark.js","../../src/components/Label.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.577.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst CircleQuestionMark = createLucideIcon(\"circle-question-mark\", __iconNode);\n\nexport { __iconNode, CircleQuestionMark as default };\n//# sourceMappingURL=circle-question-mark.js.map\n","import React, { forwardRef } from \"react\";\n\nimport { CircleHelpIcon } from \"lucide-react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\nimport { Label as PrimitiveLabel } from \"src/primitives/Label\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\nimport { Popover } from \"src/components/Popover\";\nimport { Button, type ButtonProps } from \"src/components/Button\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ninterface HelpIconTooltipProps {\n /** Tooltip content. */\n content?: React.ReactNode;\n /** Tooltip position. */\n position?: string;\n}\n\ninterface HelpIconPopoverProps {\n /** Popover title. */\n title?: React.ReactNode;\n /** Popover description. */\n description?: React.ReactNode;\n /** Props for an optional help link button inside the popover. */\n helpLinkProps?: ButtonProps;\n}\n\ninterface HelpIconProps {\n /** Click handler on the help icon. */\n onClick?: () => void;\n /** Custom icon. Defaults to CircleHelpIcon. */\n icon?: IconProp;\n /** Show a tooltip on hover. */\n tooltipProps?: HelpIconTooltipProps;\n /** Show a popover on hover with title, description, and optional link. */\n popoverProps?: HelpIconPopoverProps;\n /** Additional class name for the help icon. */\n className?: string;\n}\n\nexport interface LabelProps extends React.ComponentProps<\n typeof PrimitiveLabel\n> {\n /** Shows a red asterisk after the label text. */\n required?: boolean;\n /** Props for the help icon (tooltip or popover mode). */\n helpIconProps?: HelpIconProps;\n /** Additional CSS class names. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Tooltip side mapping\n// ---------------------------------------------------------------------------\n\nconst SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n auto: \"top\",\n};\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Label = forwardRef<HTMLLabelElement, LabelProps>(\n ({ required, helpIconProps, className, children, ...otherProps }, ref) => {\n const helpIcon = helpIconProps?.icon ?? CircleHelpIcon;\n\n const iconElement = (\n <span\n className={cn(\n \"inline-flex cursor-help text-muted-foreground transition-colors hover:text-foreground\",\n helpIconProps?.onClick && \"cursor-pointer\",\n helpIconProps?.className\n )}\n onClick={helpIconProps?.onClick}\n >\n {renderIcon(helpIcon, \"size-3.5\")}\n </span>\n );\n\n const renderHelpIcon = () => {\n if (!helpIconProps) return null;\n\n // Popover mode\n if (helpIconProps.popoverProps) {\n const { title, description, helpLinkProps } =\n helpIconProps.popoverProps;\n\n return (\n <Popover trigger={iconElement}>\n {title && <Popover.Title>{title}</Popover.Title>}\n {description && (\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n )}\n {helpLinkProps && (\n <Button\n variant=\"link\"\n size=\"sm\"\n className=\"mt-1 h-auto self-start p-0\"\n {...helpLinkProps}\n href={helpLinkProps.href}\n />\n )}\n </Popover>\n );\n }\n\n // Tooltip mode\n if (helpIconProps.tooltipProps?.content) {\n const side =\n SIDE_MAP[helpIconProps.tooltipProps.position ?? \"auto\"] ?? \"top\";\n\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{iconElement}</TooltipTrigger>\n <TooltipContent side={side}>\n {helpIconProps.tooltipProps.content}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n // Icon only (with optional onClick)\n return iconElement;\n };\n\n return (\n <PrimitiveLabel ref={ref} className={cn(className)} {...otherProps}>\n {children}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n {renderHelpIcon()}\n </PrimitiveLabel>\n );\n }\n);\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n"],"names":["CircleHelpIcon","_jsx","_jsxs","PrimitiveLabel"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Label.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import type { MultiEmailInputProps } from "./types";
3
+ export declare const MultiEmailInput: React.ForwardRefExoticComponent<MultiEmailInputProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,3 @@
1
+ export declare const EMAIL_REGEX: RegExp;
2
+ export declare const UNSTRICT_EMAIL_REGEX: RegExp;
3
+ export declare const EMAIL_SEPARATION_REGEX: RegExp;
@@ -0,0 +1,2 @@
1
+ export { MultiEmailInput } from "./MultiEmailInput";
2
+ export type { MultiEmailInputProps, EmailValue } from "./types";
@@ -0,0 +1,53 @@
1
+ import type React from "react";
2
+ import type { FieldLabel } from "src/primitives/Field";
3
+ export interface EmailValue {
4
+ /** Display text for the email chip. */
5
+ label: string;
6
+ /** The email address string. */
7
+ value: string;
8
+ /** Whether the email passes regex validation. */
9
+ valid: boolean;
10
+ }
11
+ export interface MultiEmailInputProps {
12
+ /** Text displayed above the input. */
13
+ label?: string;
14
+ /** Placeholder text when no emails are added. */
15
+ placeholder?: string;
16
+ /** Help text displayed below the input. */
17
+ helpText?: React.ReactNode;
18
+ /** Error message displayed below the input. */
19
+ error?: string;
20
+ /** Controlled email values. */
21
+ value?: EmailValue[];
22
+ /** Callback fired when emails change. */
23
+ onChange?: (emails: EmailValue[]) => void;
24
+ /** Callback fired on blur when input is empty. */
25
+ onBlur?: () => void;
26
+ /** Disable the input. */
27
+ disabled?: boolean;
28
+ /** Mark as required (shows asterisk). */
29
+ required?: boolean;
30
+ /** Max height in pixels before the chip area scrolls. @default 200 */
31
+ maxHeight?: number;
32
+ /** Number of chips visible when blurred. @default 3 */
33
+ visibleEmailsCount?: number;
34
+ /** Show email counter next to label. */
35
+ counter?: boolean | {
36
+ label?: string;
37
+ startsFrom?: number;
38
+ };
39
+ /** Show a link to remove invalid emails alongside the error. */
40
+ filterInvalidEmails?: {
41
+ label?: string;
42
+ };
43
+ /** Never collapse chips, even when blurred. @default false */
44
+ isAlwaysExpanded?: boolean;
45
+ /** Content rendered before the chips (e.g. an icon). */
46
+ prefix?: React.ReactNode;
47
+ /** Content rendered after the chips (e.g. a domain label). */
48
+ suffix?: React.ReactNode;
49
+ /** Props forwarded to the FieldLabel. */
50
+ labelProps?: Omit<React.ComponentProps<typeof FieldLabel>, "htmlFor" | "children">;
51
+ /** Additional CSS class names for the outermost wrapper. */
52
+ className?: string;
53
+ }
@@ -0,0 +1,18 @@
1
+ import type { MultiEmailInputProps } from "./types";
2
+ export declare function useMultiEmailState(props: MultiEmailInputProps): {
3
+ inputValue: string;
4
+ setInputValue: import("react").Dispatch<import("react").SetStateAction<string>>;
5
+ isFocused: boolean;
6
+ duplicateEmails: string[];
7
+ handleKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
8
+ handlePaste: (event: React.ClipboardEvent<HTMLInputElement>) => void;
9
+ handleBlur: () => void;
10
+ handleFocus: () => void;
11
+ handleChipRemove: (emailValue: string) => void | undefined;
12
+ handleFilterInvalidEmails: () => void | undefined;
13
+ isCounterVisible: boolean;
14
+ validCount: number;
15
+ visibleEmails: import("./types").EmailValue[];
16
+ hiddenCount: number;
17
+ isFilterLinkVisible: boolean;
18
+ };
@@ -0,0 +1,9 @@
1
+ import type { EmailValue } from "./types";
2
+ export declare const formatEmailInputOption: (email: string) => EmailValue;
3
+ export declare const pruneDuplicates: (existing: EmailValue[], newEmailStrings: string[]) => {
4
+ uniqueEmails: EmailValue[];
5
+ duplicates: string[];
6
+ };
7
+ export declare const filterValidEmails: (emails: EmailValue[]) => EmailValue[];
8
+ export declare const pluralizeEmail: (count: number) => string;
9
+ export declare const formatDuplicateWarning: (duplicates: string[]) => string;
@@ -0,0 +1,14 @@
1
+ export { M as MultiEmailInput } from '../MultiEmailInput-SCTYovtX.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '../utils-DdHUxIdC.js';
5
+ import '../primitives/Field.js';
6
+ import '../index-D7Zy7P05.js';
7
+ import '../label-B4qDF3W1.js';
8
+ import '../index-DhnfW8wQ.js';
9
+ import 'react-dom';
10
+ import '../index-BtkPdosV.js';
11
+ import '../separator-BbhgePmX.js';
12
+ import '../x-_o2T3n6D.js';
13
+ import '../createLucideIcon-C8ycilSN.js';
14
+ //# sourceMappingURL=MultiEmailInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiEmailInput.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import { Pagination as PrimitivePagination } from "src/primitives/Pagination";
3
+ export interface PaginationProps extends Omit<React.ComponentProps<typeof PrimitivePagination>, "children"> {
4
+ /** Total number of items. */
5
+ count: number;
6
+ /** Current page number (1-based). */
7
+ pageNo: number;
8
+ /** Number of items per page. */
9
+ pageSize: number;
10
+ /** Number of sibling pages to show around the current page. */
11
+ siblingCount?: number;
12
+ /** Callback when a page is selected. */
13
+ navigate?: (page: number) => void;
14
+ /** Additional CSS class names. */
15
+ className?: string;
16
+ }
17
+ declare const Pagination: React.ForwardRefExoticComponent<Omit<PaginationProps, "ref"> & React.RefAttributes<HTMLElement>>;
18
+ export { Pagination };
@@ -0,0 +1 @@
1
+ export declare const DOTS: "...";
@@ -0,0 +1,7 @@
1
+ import { DOTS } from "../constants";
2
+ export declare function usePaginationRange({ count, pageSize, siblingCount, pageNo, }: {
3
+ count: number;
4
+ pageSize: number;
5
+ siblingCount: number;
6
+ pageNo: number;
7
+ }): (number | typeof DOTS)[];
@@ -0,0 +1,2 @@
1
+ export { Pagination } from "./Pagination";
2
+ export type { PaginationProps } from "./Pagination";
@@ -0,0 +1 @@
1
+ export declare function range(start: number, end: number): number[];
@@ -0,0 +1,15 @@
1
+ export { P as Pagination } from '../Pagination-DSc9yXPy.js';
2
+ import 'react/jsx-runtime';
3
+ import 'react';
4
+ import '../utils-DdHUxIdC.js';
5
+ import '../primitives/Pagination.js';
6
+ import 'react-i18next';
7
+ import '../button-COIbN8dg.js';
8
+ import '../index-D7Zy7P05.js';
9
+ import '../index-CfriMyrd.js';
10
+ import '../index-BtkPdosV.js';
11
+ import '../chevron-left-BDoT8E2-.js';
12
+ import '../createLucideIcon-C8ycilSN.js';
13
+ import '../ellipsis-lb8Ws6br.js';
14
+ import '../chevron-right-DQnrO-ek.js';
15
+ //# sourceMappingURL=Pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}