@bigbinary/neeto-atoms 1.0.9 → 1.0.11

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 (614) hide show
  1. package/dist/Accordion-Ch9S_qd3.js +22 -0
  2. package/dist/Accordion-Ch9S_qd3.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/{ColorPicker-D-7QGnf9.js → ColorPicker-DtOvy0Gy.js} +3 -2
  18. package/dist/ColorPicker-DtOvy0Gy.js.map +1 -0
  19. package/dist/DatePicker-COxwHPIZ.js +2960 -0
  20. package/dist/DatePicker-COxwHPIZ.js.map +1 -0
  21. package/dist/Dialog-BURSzxaP.js +61 -0
  22. package/dist/Dialog-BURSzxaP.js.map +1 -0
  23. package/dist/Empty-B2JwFmru.js +26 -0
  24. package/dist/Empty-B2JwFmru.js.map +1 -0
  25. package/dist/Input-C1gcv9o2.js +147 -0
  26. package/dist/Input-C1gcv9o2.js.map +1 -0
  27. package/dist/Kbd-EqbC0bua.js +36 -0
  28. package/dist/Kbd-EqbC0bua.js.map +1 -0
  29. package/dist/Label-BVy4hy9Z.js +58 -0
  30. package/dist/Label-BVy4hy9Z.js.map +1 -0
  31. package/dist/MultiEmailInput-SCTYovtX.js +139 -0
  32. package/dist/MultiEmailInput-SCTYovtX.js.map +1 -0
  33. package/dist/Pagination-DSc9yXPy.js +61 -0
  34. package/dist/Pagination-DSc9yXPy.js.map +1 -0
  35. package/dist/Popover-BFMrtVPq.js +95 -0
  36. package/dist/Popover-BFMrtVPq.js.map +1 -0
  37. package/dist/Progress-B9NlUm6e.js +13 -0
  38. package/dist/Progress-B9NlUm6e.js.map +1 -0
  39. package/dist/RadioGroup-BNeYQAoT.js +34 -0
  40. package/dist/RadioGroup-BNeYQAoT.js.map +1 -0
  41. package/dist/Select-TlFBcxcY.js +565 -0
  42. package/dist/Select-TlFBcxcY.js.map +1 -0
  43. package/dist/{components/SelectFieldWrapper.js → SelectFieldWrapper-BJzq9aCY.js} +3 -11
  44. package/dist/SelectFieldWrapper-BJzq9aCY.js.map +1 -0
  45. package/dist/Sheet-QFC_mHyj.js +63 -0
  46. package/dist/Sheet-QFC_mHyj.js.map +1 -0
  47. package/dist/Slider-BCQXhs0Q.js +25 -0
  48. package/dist/Slider-BCQXhs0Q.js.map +1 -0
  49. package/dist/Spinner-C8HSac-2.js +17 -0
  50. package/dist/Spinner-C8HSac-2.js.map +1 -0
  51. package/dist/Stepper-BoGkmkY0.js +29 -0
  52. package/dist/Stepper-BoGkmkY0.js.map +1 -0
  53. package/dist/Switch-B83TGxJ_.js +20 -0
  54. package/dist/Switch-B83TGxJ_.js.map +1 -0
  55. package/dist/Tabs-DWfKnl3S.js +38 -0
  56. package/dist/Tabs-DWfKnl3S.js.map +1 -0
  57. package/dist/Textarea-C0z50h0N.js +73 -0
  58. package/dist/Textarea-C0z50h0N.js.map +1 -0
  59. package/dist/TimePicker-C4x62jI1.js +142 -0
  60. package/dist/TimePicker-C4x62jI1.js.map +1 -0
  61. package/dist/TimePickerPanel-CiF0RExY.js +126 -0
  62. package/dist/TimePickerPanel-CiF0RExY.js.map +1 -0
  63. package/dist/Toastr-DYqpSaMd.js +115 -0
  64. package/dist/Toastr-DYqpSaMd.js.map +1 -0
  65. package/dist/Tooltip-DhwIZnOU.js +80 -0
  66. package/dist/Tooltip-DhwIZnOU.js.map +1 -0
  67. package/dist/TranslationProvider-Ba9rn47H.js.map +1 -1
  68. package/dist/Tree-C7r10UY5.js +7977 -0
  69. package/dist/Tree-C7r10UY5.js.map +1 -0
  70. package/dist/TreeSelect-DRGcYz-6.js +168 -0
  71. package/dist/TreeSelect-DRGcYz-6.js.map +1 -0
  72. package/dist/Typography-CMJ8OveZ.js +76 -0
  73. package/dist/Typography-CMJ8OveZ.js.map +1 -0
  74. package/dist/cjs/Accordion-BoTckTBI.js +28 -0
  75. package/dist/cjs/Accordion-BoTckTBI.js.map +1 -0
  76. package/dist/cjs/Alert-BVvLyM_d.js +67 -0
  77. package/dist/cjs/Alert-BVvLyM_d.js.map +1 -0
  78. package/dist/cjs/Avatar-CNao5gvP.js +52 -0
  79. package/dist/cjs/Avatar-CNao5gvP.js.map +1 -0
  80. package/dist/cjs/Badge-STBHzYLs.js +61 -0
  81. package/dist/cjs/Badge-STBHzYLs.js.map +1 -0
  82. package/dist/cjs/Button-Bt_AElge.js +94 -0
  83. package/dist/cjs/Button-Bt_AElge.js.map +1 -0
  84. package/dist/cjs/Calendar-Nk76Y9yP.js +8066 -0
  85. package/dist/cjs/Calendar-Nk76Y9yP.js.map +1 -0
  86. package/dist/cjs/Callout-CS2U6pM7.js +67 -0
  87. package/dist/cjs/Callout-CS2U6pM7.js.map +1 -0
  88. package/dist/cjs/Checkbox-DOlS2oCD.js +26 -0
  89. package/dist/cjs/Checkbox-DOlS2oCD.js.map +1 -0
  90. package/dist/cjs/{ColorPicker-DEELmqH8.js → ColorPicker-Uxgn8U0h.js} +3 -2
  91. package/dist/cjs/ColorPicker-Uxgn8U0h.js.map +1 -0
  92. package/dist/cjs/DatePicker-DpijPndg.js +2962 -0
  93. package/dist/cjs/DatePicker-DpijPndg.js.map +1 -0
  94. package/dist/cjs/Dialog-CtI_yWsJ.js +63 -0
  95. package/dist/cjs/Dialog-CtI_yWsJ.js.map +1 -0
  96. package/dist/cjs/Empty-qzle6YvT.js +28 -0
  97. package/dist/cjs/Empty-qzle6YvT.js.map +1 -0
  98. package/dist/cjs/Input-pkugjUb0.js +149 -0
  99. package/dist/cjs/Input-pkugjUb0.js.map +1 -0
  100. package/dist/cjs/Kbd-DHirsI--.js +38 -0
  101. package/dist/cjs/Kbd-DHirsI--.js.map +1 -0
  102. package/dist/cjs/Label-DpyfZsiT.js +60 -0
  103. package/dist/cjs/Label-DpyfZsiT.js.map +1 -0
  104. package/dist/cjs/MultiEmailInput-l0_YVjbp.js +141 -0
  105. package/dist/cjs/MultiEmailInput-l0_YVjbp.js.map +1 -0
  106. package/dist/cjs/Pagination-Byzt9Kmj.js +63 -0
  107. package/dist/cjs/Pagination-Byzt9Kmj.js.map +1 -0
  108. package/dist/cjs/Popover-LIxANoTc.js +101 -0
  109. package/dist/cjs/Popover-LIxANoTc.js.map +1 -0
  110. package/dist/cjs/Progress-DoCxZ_ZH.js +15 -0
  111. package/dist/cjs/Progress-DoCxZ_ZH.js.map +1 -0
  112. package/dist/cjs/RadioGroup-1RAoe38m.js +36 -0
  113. package/dist/cjs/RadioGroup-1RAoe38m.js.map +1 -0
  114. package/dist/cjs/Select-Br1AT_wm.js +571 -0
  115. package/dist/cjs/Select-Br1AT_wm.js.map +1 -0
  116. package/dist/cjs/{components/SelectFieldWrapper.js → SelectFieldWrapper-DEA--2wj.js} +2 -10
  117. package/dist/cjs/SelectFieldWrapper-DEA--2wj.js.map +1 -0
  118. package/dist/cjs/Sheet-CIhtNCBV.js +65 -0
  119. package/dist/cjs/Sheet-CIhtNCBV.js.map +1 -0
  120. package/dist/cjs/Slider-jNUS9vt8.js +27 -0
  121. package/dist/cjs/Slider-jNUS9vt8.js.map +1 -0
  122. package/dist/cjs/Spinner-DQutDMQq.js +19 -0
  123. package/dist/cjs/Spinner-DQutDMQq.js.map +1 -0
  124. package/dist/cjs/Stepper-DCoLl2ZS.js +35 -0
  125. package/dist/cjs/Stepper-DCoLl2ZS.js.map +1 -0
  126. package/dist/cjs/Switch-CFf8DtB_.js +22 -0
  127. package/dist/cjs/Switch-CFf8DtB_.js.map +1 -0
  128. package/dist/cjs/Tabs-D2247rd7.js +40 -0
  129. package/dist/cjs/Tabs-D2247rd7.js.map +1 -0
  130. package/dist/cjs/Textarea-BfdlAJ59.js +75 -0
  131. package/dist/cjs/Textarea-BfdlAJ59.js.map +1 -0
  132. package/dist/cjs/TimePicker-Ba2FdT1O.js +144 -0
  133. package/dist/cjs/TimePicker-Ba2FdT1O.js.map +1 -0
  134. package/dist/cjs/TimePickerPanel-DGNr97cj.js +132 -0
  135. package/dist/cjs/TimePickerPanel-DGNr97cj.js.map +1 -0
  136. package/dist/cjs/Toastr-BGp7-kmf.js +117 -0
  137. package/dist/cjs/Toastr-BGp7-kmf.js.map +1 -0
  138. package/dist/cjs/Tooltip-CtxI7QBY.js +86 -0
  139. package/dist/cjs/Tooltip-CtxI7QBY.js.map +1 -0
  140. package/dist/cjs/TranslationProvider-DBZHXmzX.js.map +1 -1
  141. package/dist/cjs/Tree-BPd0DuLh.js +7985 -0
  142. package/dist/cjs/Tree-BPd0DuLh.js.map +1 -0
  143. package/dist/cjs/TreeSelect-C9nQJKNo.js +170 -0
  144. package/dist/cjs/TreeSelect-C9nQJKNo.js.map +1 -0
  145. package/dist/cjs/Typography-PojQmdAY.js +79 -0
  146. package/dist/cjs/Typography-PojQmdAY.js.map +1 -0
  147. package/dist/cjs/components/Accordion.js +6 -28
  148. package/dist/cjs/components/Accordion.js.map +1 -1
  149. package/dist/cjs/components/Alert.js +9 -70
  150. package/dist/cjs/components/Alert.js.map +1 -1
  151. package/dist/cjs/components/Avatar.js +8 -51
  152. package/dist/cjs/components/Avatar.js.map +1 -1
  153. package/dist/cjs/components/Badge.js +10 -64
  154. package/dist/cjs/components/Badge.js.map +1 -1
  155. package/dist/cjs/components/Button.js +10 -94
  156. package/dist/cjs/components/Button.js.map +1 -1
  157. package/dist/cjs/components/Callout.js +9 -66
  158. package/dist/cjs/components/Callout.js.map +1 -1
  159. package/dist/cjs/components/Checkbox.js +8 -24
  160. package/dist/cjs/components/Checkbox.js.map +1 -1
  161. package/dist/cjs/components/ColorPicker.js +1 -1
  162. package/dist/cjs/components/DataTable.js +1 -1
  163. package/dist/cjs/components/DatePicker.js +45 -0
  164. package/dist/cjs/components/DatePicker.js.map +1 -0
  165. package/dist/cjs/components/Dialog.js +7 -63
  166. package/dist/cjs/components/Dialog.js.map +1 -1
  167. package/dist/cjs/components/DropdownMenu.js.map +1 -1
  168. package/dist/cjs/components/Empty.js +10 -29
  169. package/dist/cjs/components/Empty.js.map +1 -1
  170. package/dist/cjs/components/Input.js +8 -151
  171. package/dist/cjs/components/Input.js.map +1 -1
  172. package/dist/cjs/components/Kbd.js +8 -41
  173. package/dist/cjs/components/Kbd.js.map +1 -1
  174. package/dist/cjs/components/Label.js +11 -59
  175. package/dist/cjs/components/Label.js.map +1 -1
  176. package/dist/cjs/components/MultiEmailInput.js +20 -0
  177. package/dist/cjs/components/MultiEmailInput.js.map +1 -0
  178. package/dist/cjs/components/Pagination.js +21 -0
  179. package/dist/cjs/components/Pagination.js.map +1 -0
  180. package/dist/cjs/components/Popover.js +7 -103
  181. package/dist/cjs/components/Popover.js.map +1 -1
  182. package/dist/cjs/components/Progress.js +7 -13
  183. package/dist/cjs/components/Progress.js.map +1 -1
  184. package/dist/cjs/components/RadioGroup.js +9 -40
  185. package/dist/cjs/components/RadioGroup.js.map +1 -1
  186. package/dist/cjs/components/Select.js +33 -0
  187. package/dist/cjs/components/Select.js.map +1 -1
  188. package/dist/cjs/components/Sheet.js +7 -65
  189. package/dist/cjs/components/Sheet.js.map +1 -1
  190. package/dist/cjs/components/Slider.js +8 -25
  191. package/dist/cjs/components/Slider.js.map +1 -1
  192. package/dist/cjs/components/Spinner.js +7 -19
  193. package/dist/cjs/components/Spinner.js.map +1 -1
  194. package/dist/cjs/components/Stepper.js +6 -32
  195. package/dist/cjs/components/Stepper.js.map +1 -1
  196. package/dist/cjs/components/Switch.js +8 -20
  197. package/dist/cjs/components/Switch.js.map +1 -1
  198. package/dist/cjs/components/Tabs.js +8 -55
  199. package/dist/cjs/components/Tabs.js.map +1 -1
  200. package/dist/cjs/components/Textarea.js +8 -77
  201. package/dist/cjs/components/Textarea.js.map +1 -1
  202. package/dist/cjs/components/TimePicker.js +42 -0
  203. package/dist/cjs/components/TimePicker.js.map +1 -0
  204. package/dist/cjs/components/Toastr.js +4 -126
  205. package/dist/cjs/components/Toastr.js.map +1 -1
  206. package/dist/cjs/components/Tooltip.js +5 -85
  207. package/dist/cjs/components/Tooltip.js.map +1 -1
  208. package/dist/cjs/components/Tree.js +34 -0
  209. package/dist/cjs/components/Tree.js.map +1 -0
  210. package/dist/cjs/components/TreeSelect.js +45 -0
  211. package/dist/cjs/components/TreeSelect.js.map +1 -0
  212. package/dist/cjs/components/Typography.js +8 -98
  213. package/dist/cjs/components/Typography.js.map +1 -1
  214. package/dist/cjs/components/index.js +180 -0
  215. package/dist/cjs/components/index.js.map +1 -0
  216. package/dist/cjs/formik/ActionBlock.js +48 -0
  217. package/dist/cjs/formik/ActionBlock.js.map +1 -0
  218. package/dist/cjs/formik/BlockNavigation.js +111 -0
  219. package/dist/cjs/formik/BlockNavigation.js.map +1 -0
  220. package/dist/cjs/formik/Button.js +45 -0
  221. package/dist/cjs/formik/Button.js.map +1 -0
  222. package/dist/cjs/formik/Checkbox.js +38 -0
  223. package/dist/cjs/formik/Checkbox.js.map +1 -0
  224. package/dist/cjs/formik/Form.js +116 -0
  225. package/dist/cjs/formik/Form.js.map +1 -0
  226. package/dist/cjs/formik/Input.js +38 -0
  227. package/dist/cjs/formik/Input.js.map +1 -0
  228. package/dist/cjs/formik/MultiEmailInput.js +31 -0
  229. package/dist/cjs/formik/MultiEmailInput.js.map +1 -0
  230. package/dist/cjs/formik/RadioGroup.js +44 -0
  231. package/dist/cjs/formik/RadioGroup.js.map +1 -0
  232. package/dist/cjs/formik/Select.js +61 -0
  233. package/dist/cjs/formik/Select.js.map +1 -0
  234. package/dist/cjs/formik/Slider.js +39 -0
  235. package/dist/cjs/formik/Slider.js.map +1 -0
  236. package/dist/cjs/formik/Switch.js +33 -0
  237. package/dist/cjs/formik/Switch.js.map +1 -0
  238. package/dist/cjs/formik/Textarea.js +34 -0
  239. package/dist/cjs/formik/Textarea.js.map +1 -0
  240. package/dist/cjs/formik/TreeSelect.js +56 -0
  241. package/dist/cjs/formik/TreeSelect.js.map +1 -0
  242. package/dist/cjs/formik/index.js +110 -0
  243. package/dist/cjs/formik/index.js.map +1 -0
  244. package/dist/cjs/index.js +319 -428
  245. package/dist/cjs/index.js.map +1 -1
  246. package/dist/cjs/primitives/Calendar.js +10 -8020
  247. package/dist/cjs/primitives/Calendar.js.map +1 -1
  248. package/dist/cjs/primitives/Chart.js +410 -207
  249. package/dist/cjs/primitives/Chart.js.map +1 -1
  250. package/dist/cjs/primitives/Combobox.js +783 -1096
  251. package/dist/cjs/primitives/Combobox.js.map +1 -1
  252. package/dist/cjs/primitives/Pagination.js +1 -1
  253. package/dist/cjs/primitives/Resizable.js +799 -778
  254. package/dist/cjs/primitives/Resizable.js.map +1 -1
  255. package/dist/cjs/primitives/ScrollArea.js +10 -10
  256. package/dist/cjs/primitives/Select.js +77 -77
  257. package/dist/cjs/primitives/index.js +3 -2
  258. package/dist/cjs/primitives/index.js.map +1 -1
  259. package/dist/cjs/redux-DEF7lAd1.js +240 -0
  260. package/dist/cjs/redux-DEF7lAd1.js.map +1 -0
  261. package/dist/cjs/search-CfYUGi4v.js +37 -0
  262. package/dist/cjs/search-CfYUGi4v.js.map +1 -0
  263. package/dist/cjs/with-selector-DeKHbQY7.js +121 -0
  264. package/dist/cjs/with-selector-DeKHbQY7.js.map +1 -0
  265. package/dist/components/{Accordion.d.ts → Accordion/Accordion.d.ts} +3 -1
  266. package/dist/components/Accordion/index.d.ts +2 -0
  267. package/dist/components/Accordion.js +5 -27
  268. package/dist/components/Accordion.js.map +1 -1
  269. package/dist/components/{Alert.d.ts → Alert/Alert.d.ts} +2 -2
  270. package/dist/components/Alert/constants.d.ts +3 -0
  271. package/dist/components/Alert/index.d.ts +2 -0
  272. package/dist/components/Alert.js +10 -75
  273. package/dist/components/Alert.js.map +1 -1
  274. package/dist/components/{Avatar.d.ts → Avatar/Avatar.d.ts} +2 -2
  275. package/dist/components/Avatar/constants.d.ts +3 -0
  276. package/dist/components/Avatar/index.d.ts +2 -0
  277. package/dist/components/Avatar/utils.d.ts +1 -0
  278. package/dist/components/Avatar.js +9 -56
  279. package/dist/components/Avatar.js.map +1 -1
  280. package/dist/components/{Badge.d.ts → Badge/Badge.d.ts} +1 -1
  281. package/dist/components/Badge/constants.d.ts +25 -0
  282. package/dist/components/Badge/index.d.ts +2 -0
  283. package/dist/components/Badge.js +8 -66
  284. package/dist/components/Badge.js.map +1 -1
  285. package/dist/components/Button/constants.d.ts +5 -0
  286. package/dist/components/Button/index.d.ts +2 -0
  287. package/dist/components/Button.js +11 -99
  288. package/dist/components/Button.js.map +1 -1
  289. package/dist/components/{Callout.d.ts → Callout/Callout.d.ts} +1 -1
  290. package/dist/components/Callout/constants.d.ts +8 -0
  291. package/dist/components/Callout/index.d.ts +2 -0
  292. package/dist/components/Callout.js +8 -69
  293. package/dist/components/Callout.js.map +1 -1
  294. package/dist/components/Checkbox/index.d.ts +2 -0
  295. package/dist/components/Checkbox.js +6 -26
  296. package/dist/components/Checkbox.js.map +1 -1
  297. package/dist/components/ColorPicker/ColorPicker.d.ts +1 -2
  298. package/dist/components/ColorPicker/Palette.d.ts +1 -1
  299. package/dist/components/ColorPicker/types.d.ts +6 -1
  300. package/dist/components/ColorPicker.js +3 -3
  301. package/dist/components/DataTable.js +4 -4
  302. package/dist/components/DatePicker/DatePicker.d.ts +4 -0
  303. package/dist/components/DatePicker/DatePickerFooter.d.ts +12 -0
  304. package/dist/components/DatePicker/TimezoneSelect.d.ts +8 -0
  305. package/dist/components/DatePicker/constants.d.ts +17 -0
  306. package/dist/components/DatePicker/index.d.ts +2 -0
  307. package/dist/components/DatePicker/types.d.ts +56 -0
  308. package/dist/components/DatePicker/utils.d.ts +6 -0
  309. package/dist/components/DatePicker.js +39 -0
  310. package/dist/components/DatePicker.js.map +1 -0
  311. package/dist/components/{Dialog.d.ts → Dialog/Dialog.d.ts} +1 -1
  312. package/dist/components/Dialog/constants.d.ts +2 -0
  313. package/dist/components/Dialog/index.d.ts +2 -0
  314. package/dist/components/Dialog.js +5 -65
  315. package/dist/components/Dialog.js.map +1 -1
  316. package/dist/components/DropdownMenu/MenuItemButton.d.ts +1 -2
  317. package/dist/components/DropdownMenu/index.d.ts +1 -0
  318. package/dist/components/DropdownMenu.js +3 -3
  319. package/dist/components/DropdownMenu.js.map +1 -1
  320. package/dist/components/Empty/index.d.ts +2 -0
  321. package/dist/components/Empty.js +11 -34
  322. package/dist/components/Empty.js.map +1 -1
  323. package/dist/components/{Input.d.ts → Input/Input.d.ts} +3 -1
  324. package/dist/components/Input/constants.d.ts +17 -0
  325. package/dist/components/Input/index.d.ts +2 -0
  326. package/dist/components/Input/utils.d.ts +7 -0
  327. package/dist/components/Input.js +6 -153
  328. package/dist/components/Input.js.map +1 -1
  329. package/dist/components/{Kbd.d.ts → Kbd/Kbd.d.ts} +1 -1
  330. package/dist/components/Kbd/constants.d.ts +1 -0
  331. package/dist/components/Kbd/index.d.ts +2 -0
  332. package/dist/components/Kbd.js +9 -46
  333. package/dist/components/Kbd.js.map +1 -1
  334. package/dist/components/Label/constants.d.ts +1 -0
  335. package/dist/components/Label/index.d.ts +2 -0
  336. package/dist/components/Label.js +13 -65
  337. package/dist/components/Label.js.map +1 -1
  338. package/dist/components/MultiEmailInput/MultiEmailInput.d.ts +2 -0
  339. package/dist/components/MultiEmailInput/constants.d.ts +3 -0
  340. package/dist/components/MultiEmailInput/index.d.ts +2 -0
  341. package/dist/components/MultiEmailInput/types.d.ts +53 -0
  342. package/dist/components/MultiEmailInput/useMultiEmailState.d.ts +18 -0
  343. package/dist/components/MultiEmailInput/utils.d.ts +9 -0
  344. package/dist/components/MultiEmailInput.js +14 -0
  345. package/dist/components/MultiEmailInput.js.map +1 -0
  346. package/dist/components/Pagination/Pagination.d.ts +18 -0
  347. package/dist/components/Pagination/constants.d.ts +1 -0
  348. package/dist/components/Pagination/hooks/usePaginationRange.d.ts +7 -0
  349. package/dist/components/Pagination/index.d.ts +2 -0
  350. package/dist/components/Pagination/utils.d.ts +1 -0
  351. package/dist/components/Pagination.js +15 -0
  352. package/dist/components/Pagination.js.map +1 -0
  353. package/dist/components/Popover/constants.d.ts +2 -0
  354. package/dist/components/Popover/index.d.ts +2 -0
  355. package/dist/components/Popover.js +8 -104
  356. package/dist/components/Popover.js.map +1 -1
  357. package/dist/components/Progress/index.d.ts +2 -0
  358. package/dist/components/Progress.js +5 -15
  359. package/dist/components/Progress.js.map +1 -1
  360. package/dist/components/{RadioGroup.d.ts → RadioGroup/RadioGroup.d.ts} +1 -1
  361. package/dist/components/RadioGroup/index.d.ts +2 -0
  362. package/dist/components/RadioGroup.js +7 -42
  363. package/dist/components/RadioGroup.js.map +1 -1
  364. package/dist/components/Select/MultiSelectCombobox.d.ts +2 -0
  365. package/dist/components/{MultiSelectCombobox.types.d.ts → Select/MultiSelectCombobox.types.d.ts} +3 -13
  366. package/dist/components/{OptionItem.d.ts → Select/OptionItem.d.ts} +1 -1
  367. package/dist/components/Select/Select.d.ts +4 -0
  368. package/dist/components/Select/SelectCombobox.d.ts +2 -0
  369. package/dist/components/Select/SelectCombobox.types.d.ts +73 -0
  370. package/dist/components/Select/dropdown.types.d.ts +12 -0
  371. package/dist/components/Select/index.d.ts +2 -0
  372. package/dist/components/Select/types.d.ts +148 -0
  373. package/dist/components/{MultiSelect.utils.d.ts → Select/utils.d.ts} +1 -1
  374. package/dist/components/Select.js +29 -1
  375. package/dist/components/Select.js.map +1 -1
  376. package/dist/components/Sheet/constants.d.ts +3 -0
  377. package/dist/components/Sheet/index.d.ts +2 -0
  378. package/dist/components/Sheet.js +5 -67
  379. package/dist/components/Sheet.js.map +1 -1
  380. package/dist/components/Slider/index.d.ts +2 -0
  381. package/dist/components/Slider.js +6 -27
  382. package/dist/components/Slider.js.map +1 -1
  383. package/dist/components/Spinner/constants.d.ts +1 -0
  384. package/dist/components/Spinner/index.d.ts +2 -0
  385. package/dist/components/Spinner.js +5 -21
  386. package/dist/components/Spinner.js.map +1 -1
  387. package/dist/components/Stepper/index.d.ts +2 -0
  388. package/dist/components/Stepper.js +5 -31
  389. package/dist/components/Stepper.js.map +1 -1
  390. package/dist/components/Switch/index.d.ts +2 -0
  391. package/dist/components/Switch.js +6 -22
  392. package/dist/components/Switch.js.map +1 -1
  393. package/dist/components/Tabs/constants.d.ts +5 -0
  394. package/dist/components/Tabs/index.d.ts +2 -0
  395. package/dist/components/Tabs.js +6 -57
  396. package/dist/components/Tabs.js.map +1 -1
  397. package/dist/components/{Textarea.d.ts → Textarea/Textarea.d.ts} +4 -2
  398. package/dist/components/Textarea/constants.d.ts +5 -0
  399. package/dist/components/Textarea/index.d.ts +2 -0
  400. package/dist/components/Textarea/utils.d.ts +2 -0
  401. package/dist/components/Textarea.js +6 -79
  402. package/dist/components/Textarea.js.map +1 -1
  403. package/dist/components/TimePicker/TimeColumn.d.ts +11 -0
  404. package/dist/components/TimePicker/TimePicker.d.ts +4 -0
  405. package/dist/components/TimePicker/TimePickerPanel.d.ts +3 -0
  406. package/dist/components/TimePicker/constants.d.ts +3 -0
  407. package/dist/components/TimePicker/index.d.ts +3 -0
  408. package/dist/components/TimePicker/types.d.ts +61 -0
  409. package/dist/components/TimePicker/utils.d.ts +11 -0
  410. package/dist/components/TimePicker.js +35 -0
  411. package/dist/components/TimePicker.js.map +1 -0
  412. package/dist/components/{Toastr.d.ts → Toastr/Toastr.d.ts} +2 -2
  413. package/dist/components/Toastr/index.d.ts +2 -0
  414. package/dist/components/Toastr/utils.d.ts +10 -0
  415. package/dist/components/Toastr.js +2 -128
  416. package/dist/components/Toastr.js.map +1 -1
  417. package/dist/components/Tooltip/constants.d.ts +2 -0
  418. package/dist/components/Tooltip/index.d.ts +2 -0
  419. package/dist/components/Tooltip.js +7 -87
  420. package/dist/components/Tooltip.js.map +1 -1
  421. package/dist/components/Tree/Tree.d.ts +2 -0
  422. package/dist/components/Tree/TreeContext.d.ts +26 -0
  423. package/dist/components/Tree/components/SwitcherIcon.d.ts +6 -0
  424. package/dist/components/Tree/components/TreeCheckbox.d.ts +8 -0
  425. package/dist/components/Tree/components/TreeNode.d.ts +3 -0
  426. package/dist/components/Tree/constants.d.ts +3 -0
  427. package/dist/components/Tree/hooks/useTreeCheck.d.ts +18 -0
  428. package/dist/components/Tree/hooks/useTreeExpansion.d.ts +18 -0
  429. package/dist/components/Tree/hooks/useTreeSelection.d.ts +16 -0
  430. package/dist/components/Tree/index.d.ts +3 -0
  431. package/dist/components/Tree/types.d.ts +110 -0
  432. package/dist/components/Tree/utils/adapter.d.ts +10 -0
  433. package/dist/components/Tree/utils/checkCascade.d.ts +5 -0
  434. package/dist/components/Tree/utils/search.d.ts +10 -0
  435. package/dist/components/Tree.js +25 -0
  436. package/dist/components/Tree.js.map +1 -0
  437. package/dist/components/TreeSelect/TreeSelect.d.ts +3 -0
  438. package/dist/components/TreeSelect/TreeSelectTrigger.d.ts +14 -0
  439. package/dist/components/{Select.constants.d.ts → TreeSelect/constants.d.ts} +2 -2
  440. package/dist/components/TreeSelect/hooks/useTreeSelectState.d.ts +30 -0
  441. package/dist/components/TreeSelect/hooks/useTreeSelectValue.d.ts +19 -0
  442. package/dist/components/TreeSelect/index.d.ts +2 -0
  443. package/dist/components/TreeSelect/types.d.ts +49 -0
  444. package/dist/components/TreeSelect/utils/pruneTree.d.ts +2 -0
  445. package/dist/components/TreeSelect/utils/resolveFieldNames.d.ts +5 -0
  446. package/dist/components/TreeSelect.js +39 -0
  447. package/dist/components/TreeSelect.js.map +1 -0
  448. package/dist/{shadcn/components/typography.d.ts → components/Typography/Typography.d.ts} +3 -3
  449. package/dist/components/Typography/index.d.ts +1 -0
  450. package/dist/components/Typography.js +6 -81
  451. package/dist/components/Typography.js.map +1 -1
  452. package/dist/components/index.d.ts +36 -0
  453. package/dist/components/index.js +128 -0
  454. package/dist/components/index.js.map +1 -0
  455. package/dist/{floating-ui.react-dom-CcGbtPEK.js → floating-ui.react-dom-D8_f_WWh.js} +2 -2
  456. package/dist/{floating-ui.react-dom-CcGbtPEK.js.map → floating-ui.react-dom-D8_f_WWh.js.map} +1 -1
  457. package/dist/formik/ActionBlock.d.ts +18 -0
  458. package/dist/formik/ActionBlock.js +46 -0
  459. package/dist/formik/ActionBlock.js.map +1 -0
  460. package/dist/formik/BlockNavigation/BlockNavigationAlert.d.ts +23 -0
  461. package/dist/formik/BlockNavigation/index.d.ts +11 -0
  462. package/dist/formik/BlockNavigation.js +109 -0
  463. package/dist/formik/BlockNavigation.js.map +1 -0
  464. package/dist/formik/Button.d.ts +7 -0
  465. package/dist/formik/Button.js +43 -0
  466. package/dist/formik/Button.js.map +1 -0
  467. package/dist/formik/Checkbox.d.ts +8 -0
  468. package/dist/formik/Checkbox.js +36 -0
  469. package/dist/formik/Checkbox.js.map +1 -0
  470. package/dist/formik/Form/FormWrapper.d.ts +9 -0
  471. package/dist/formik/Form/ScrollToErrorField/index.d.ts +5 -0
  472. package/dist/formik/Form/ScrollToErrorField/utils.d.ts +2 -0
  473. package/dist/formik/Form/index.d.ts +16 -0
  474. package/dist/formik/Form.js +114 -0
  475. package/dist/formik/Form.js.map +1 -0
  476. package/dist/formik/Input.d.ts +8 -0
  477. package/dist/formik/Input.js +36 -0
  478. package/dist/formik/Input.js.map +1 -0
  479. package/dist/formik/MultiEmailInput.d.ts +7 -0
  480. package/dist/formik/MultiEmailInput.js +29 -0
  481. package/dist/formik/MultiEmailInput.js.map +1 -0
  482. package/dist/formik/RadioGroup.d.ts +11 -0
  483. package/dist/formik/RadioGroup.js +42 -0
  484. package/dist/formik/RadioGroup.js.map +1 -0
  485. package/dist/formik/Select.d.ts +7 -0
  486. package/dist/formik/Select.js +59 -0
  487. package/dist/formik/Select.js.map +1 -0
  488. package/dist/formik/Slider.d.ts +8 -0
  489. package/dist/formik/Slider.js +37 -0
  490. package/dist/formik/Slider.js.map +1 -0
  491. package/dist/formik/Switch.d.ts +10 -0
  492. package/dist/formik/Switch.js +31 -0
  493. package/dist/formik/Switch.js.map +1 -0
  494. package/dist/formik/Textarea.d.ts +8 -0
  495. package/dist/formik/Textarea.js +32 -0
  496. package/dist/formik/Textarea.js.map +1 -0
  497. package/dist/formik/TreeSelect.d.ts +7 -0
  498. package/dist/formik/TreeSelect.js +54 -0
  499. package/dist/formik/TreeSelect.js.map +1 -0
  500. package/dist/formik/index.d.ts +26 -0
  501. package/dist/formik/index.js +92 -0
  502. package/dist/formik/index.js.map +1 -0
  503. package/dist/hooks/useAsyncOptions.d.ts +4 -4
  504. package/dist/hooks/useComboboxAnchor.d.ts +6 -0
  505. package/dist/hooks/useCreatableItems.d.ts +1 -1
  506. package/dist/hooks/useMultiSelectOptions.d.ts +22 -4
  507. package/dist/hooks/useMultiSelectState.d.ts +7 -4
  508. package/dist/hooks/useNavPrompt.d.ts +15 -0
  509. package/dist/hooks/useSelectState.d.ts +39 -14
  510. package/dist/{index-ByEpUy7w.js → index-C3hByjk3.js} +2 -2
  511. package/dist/{index-ByEpUy7w.js.map → index-C3hByjk3.js.map} +1 -1
  512. package/dist/{index-KzJfsx-e.js → index-DLPtgEJ_.js} +2 -2
  513. package/dist/{index-KzJfsx-e.js.map → index-DLPtgEJ_.js.map} +1 -1
  514. package/dist/index.css +2 -1
  515. package/dist/index.d.ts +13 -2
  516. package/dist/index.js +283 -403
  517. package/dist/index.js.map +1 -1
  518. package/dist/primitives/Calendar.js +8 -8003
  519. package/dist/primitives/Calendar.js.map +1 -1
  520. package/dist/primitives/Chart.js +253 -50
  521. package/dist/primitives/Chart.js.map +1 -1
  522. package/dist/primitives/Combobox.d.ts +3 -3
  523. package/dist/primitives/Combobox.js +787 -1100
  524. package/dist/primitives/Combobox.js.map +1 -1
  525. package/dist/primitives/ContextMenu.js +3 -3
  526. package/dist/primitives/DropdownMenu.js +3 -3
  527. package/dist/primitives/HoverCard.js +2 -2
  528. package/dist/primitives/Menubar.js +3 -3
  529. package/dist/primitives/Pagination.js +1 -1
  530. package/dist/primitives/Popover.js +2 -2
  531. package/dist/primitives/Resizable.js +799 -778
  532. package/dist/primitives/Resizable.js.map +1 -1
  533. package/dist/primitives/Select.js +4 -4
  534. package/dist/primitives/Sidebar.js +3 -3
  535. package/dist/primitives/Tooltip.js +3 -3
  536. package/dist/primitives/index.js +7 -6
  537. package/dist/primitives/index.js.map +1 -1
  538. package/dist/redux-BKH6DnBB.js +235 -0
  539. package/dist/redux-BKH6DnBB.js.map +1 -0
  540. package/dist/search-BK7Ozh5_.js +33 -0
  541. package/dist/search-BK7Ozh5_.js.map +1 -0
  542. package/dist/shadcn/components/combobox.d.ts +1 -1
  543. package/dist/{tooltip-DzjIJacP.js → tooltip-XkHLgxlU.js} +2 -2
  544. package/dist/{tooltip-DzjIJacP.js.map → tooltip-XkHLgxlU.js.map} +1 -1
  545. package/dist/utils/dayjs/index.d.ts +4 -0
  546. package/dist/utils/dayjs/timezonePlugin.d.ts +3 -0
  547. package/dist/with-selector-Dv0G_V_o.js +115 -0
  548. package/dist/with-selector-Dv0G_V_o.js.map +1 -0
  549. package/package.json +31 -4
  550. package/dist/ColorPicker-D-7QGnf9.js.map +0 -1
  551. package/dist/cjs/ColorPicker-DEELmqH8.js.map +0 -1
  552. package/dist/cjs/components/MultiSelect.js +0 -13
  553. package/dist/cjs/components/MultiSelect.js.map +0 -1
  554. package/dist/cjs/components/MultiSelectCombobox.js +0 -3
  555. package/dist/cjs/components/MultiSelectCombobox.js.map +0 -1
  556. package/dist/cjs/components/MultiSelectDropdown.js +0 -38
  557. package/dist/cjs/components/MultiSelectDropdown.js.map +0 -1
  558. package/dist/cjs/components/OptionItem.js +0 -34
  559. package/dist/cjs/components/OptionItem.js.map +0 -1
  560. package/dist/cjs/components/SelectFieldWrapper.js.map +0 -1
  561. package/dist/cjs/components/SelectOptions.js +0 -43
  562. package/dist/cjs/components/SelectOptions.js.map +0 -1
  563. package/dist/cjs/components/SelectTriggerContent.js +0 -47
  564. package/dist/cjs/components/SelectTriggerContent.js.map +0 -1
  565. package/dist/cjs/components/shared.js +0 -8
  566. package/dist/cjs/components/shared.js.map +0 -1
  567. package/dist/cjs/useCreatableItems-BTHtd7uo.js +0 -100
  568. package/dist/cjs/useCreatableItems-BTHtd7uo.js.map +0 -1
  569. package/dist/cjs/with-selector-u4xTSzCv.js +0 -457
  570. package/dist/cjs/with-selector-u4xTSzCv.js.map +0 -1
  571. package/dist/components/MultiSelect.d.ts +0 -4
  572. package/dist/components/MultiSelect.js +0 -4
  573. package/dist/components/MultiSelect.js.map +0 -1
  574. package/dist/components/MultiSelect.types.d.ts +0 -121
  575. package/dist/components/MultiSelectCombobox.d.ts +0 -3
  576. package/dist/components/MultiSelectCombobox.js +0 -2
  577. package/dist/components/MultiSelectCombobox.js.map +0 -1
  578. package/dist/components/MultiSelectDropdown.js +0 -36
  579. package/dist/components/MultiSelectDropdown.js.map +0 -1
  580. package/dist/components/OptionItem.js +0 -32
  581. package/dist/components/OptionItem.js.map +0 -1
  582. package/dist/components/Select.d.ts +0 -4
  583. package/dist/components/Select.types.d.ts +0 -58
  584. package/dist/components/SelectFieldWrapper.js.map +0 -1
  585. package/dist/components/SelectOptions.d.ts +0 -2
  586. package/dist/components/SelectOptions.js +0 -41
  587. package/dist/components/SelectOptions.js.map +0 -1
  588. package/dist/components/SelectTriggerContent.d.ts +0 -18
  589. package/dist/components/SelectTriggerContent.js +0 -45
  590. package/dist/components/SelectTriggerContent.js.map +0 -1
  591. package/dist/components/Typography.d.ts +0 -10
  592. package/dist/components/shared.js +0 -6
  593. package/dist/components/shared.js.map +0 -1
  594. package/dist/components/shared.types.d.ts +0 -16
  595. package/dist/useCreatableItems-B0seQA1_.js +0 -89
  596. package/dist/useCreatableItems-B0seQA1_.js.map +0 -1
  597. package/dist/with-selector--fY1NrB9.js +0 -448
  598. package/dist/with-selector--fY1NrB9.js.map +0 -1
  599. /package/dist/components/{Button.d.ts → Button/Button.d.ts} +0 -0
  600. /package/dist/components/{Checkbox.d.ts → Checkbox/Checkbox.d.ts} +0 -0
  601. /package/dist/components/{Empty.d.ts → Empty/Empty.d.ts} +0 -0
  602. /package/dist/components/{Label.d.ts → Label/Label.d.ts} +0 -0
  603. /package/dist/components/{Popover.d.ts → Popover/Popover.d.ts} +0 -0
  604. /package/dist/components/{Progress.d.ts → Progress/Progress.d.ts} +0 -0
  605. /package/dist/components/{MultiSelectDropdown.d.ts → Select/MultiSelectDropdown.d.ts} +0 -0
  606. /package/dist/components/{SelectFieldWrapper.d.ts → Select/SelectFieldWrapper.d.ts} +0 -0
  607. /package/dist/components/{MultiSelect.constants.d.ts → Select/constants.d.ts} +0 -0
  608. /package/dist/components/{Sheet.d.ts → Sheet/Sheet.d.ts} +0 -0
  609. /package/dist/components/{Slider.d.ts → Slider/Slider.d.ts} +0 -0
  610. /package/dist/components/{Spinner.d.ts → Spinner/Spinner.d.ts} +0 -0
  611. /package/dist/components/{Stepper.d.ts → Stepper/Stepper.d.ts} +0 -0
  612. /package/dist/components/{Switch.d.ts → Switch/Switch.d.ts} +0 -0
  613. /package/dist/components/{Tabs.d.ts → Tabs/Tabs.d.ts} +0 -0
  614. /package/dist/components/{Tooltip.d.ts → Tooltip/Tooltip.d.ts} +0 -0
@@ -0,0 +1,168 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useId, useMemo, useState, useCallback, useRef, forwardRef } from 'react';
3
+ import { c as cn } from './utils-DdHUxIdC.js';
4
+ import { Popover, PopoverTrigger, PopoverContent } from './primitives/Popover.js';
5
+ import { S as SelectFieldWrapper } from './SelectFieldWrapper-BJzq9aCY.js';
6
+ import { f as findNode, w as walkTree, T as Tree } from './Tree-C7r10UY5.js';
7
+ import { X } from './x-_o2T3n6D.js';
8
+ import { C as ChevronDown } from './chevron-down-BNi0ntys.js';
9
+
10
+ const pruneTree = (nodes, searchTerm) => {
11
+ if (!searchTerm.trim())
12
+ return nodes;
13
+ const lower = searchTerm.toLowerCase();
14
+ const prune = (items) => items.reduce((acc, node) => {
15
+ const titleStr = typeof node.title === "string" ? node.title : "";
16
+ const nodeMatches = titleStr.toLowerCase().includes(lower);
17
+ if (nodeMatches) {
18
+ acc.push(node);
19
+ }
20
+ else {
21
+ const prunedChildren = node.children ? prune(node.children) : [];
22
+ if (prunedChildren.length > 0) {
23
+ acc.push({ ...node, children: prunedChildren });
24
+ }
25
+ }
26
+ return acc;
27
+ }, []);
28
+ return prune(nodes);
29
+ };
30
+
31
+ const resolveFieldNames = (nodes, fieldNames) => {
32
+ const labelKey = fieldNames.label ?? "title";
33
+ const valueKey = fieldNames.value ?? "key";
34
+ const remap = (items) => items.map(item => ({
35
+ key: String(item[valueKey] ?? ""),
36
+ title: item[labelKey],
37
+ disabled: item.disabled,
38
+ children: Array.isArray(item.children)
39
+ ? remap(item.children)
40
+ : undefined,
41
+ }));
42
+ return remap(nodes);
43
+ };
44
+
45
+ function useTreeSelectValue(props) {
46
+ const { value: valueProp, defaultValue, onChange, treeData: rawTreeData, fieldNames, isClearable = false, isDisabled = false, size = "medium", label = "", error = "", helpText = "", required = false, } = props;
47
+ const id = useId();
48
+ const errorId = `error_${id}`;
49
+ const helpTextId = `helpText_${id}`;
50
+ const treeData = useMemo(() => {
51
+ if (!fieldNames)
52
+ return rawTreeData;
53
+ return resolveFieldNames(rawTreeData, fieldNames);
54
+ }, [rawTreeData, fieldNames?.label, fieldNames?.value]);
55
+ const isControlled = valueProp !== undefined;
56
+ const [internalValue, setInternalValue] = useState(defaultValue ?? "");
57
+ const currentValue = isControlled ? (valueProp ?? "") : internalValue;
58
+ const applyValue = useCallback((next) => {
59
+ if (!isControlled)
60
+ setInternalValue(next);
61
+ onChange?.(next);
62
+ }, [isControlled, onChange]);
63
+ const selectedLabel = useMemo(() => {
64
+ if (!currentValue)
65
+ return "";
66
+ const node = findNode(currentValue, treeData);
67
+ if (!node)
68
+ return currentValue;
69
+ return typeof node.title === "string" ? node.title : "";
70
+ }, [currentValue, treeData]);
71
+ const handleClear = useCallback((e) => {
72
+ e.stopPropagation();
73
+ applyValue("");
74
+ }, [applyValue]);
75
+ const showClearButton = isClearable && !!currentValue && !isDisabled;
76
+ return {
77
+ id,
78
+ errorId,
79
+ helpTextId,
80
+ label,
81
+ error,
82
+ helpText,
83
+ required,
84
+ isDisabled,
85
+ size,
86
+ treeData,
87
+ currentValue,
88
+ selectedLabel,
89
+ applyValue,
90
+ handleClear,
91
+ showClearButton,
92
+ };
93
+ }
94
+
95
+ function useTreeSelectState(props) {
96
+ const { isSearchable = false, defaultExpandedKeys } = props;
97
+ const defaultExpandedKeysRef = useRef(defaultExpandedKeys);
98
+ defaultExpandedKeysRef.current = defaultExpandedKeys;
99
+ const value = useTreeSelectValue(props);
100
+ const [isOpen, setIsOpen] = useState(false);
101
+ const [searchTerm, setSearchTerm] = useState("");
102
+ const [expandedKeys, setExpandedKeys] = useState(defaultExpandedKeys ?? []);
103
+ const prunedTreeData = useMemo(() => searchTerm.trim()
104
+ ? pruneTree(value.treeData, searchTerm)
105
+ : value.treeData, [value.treeData, searchTerm]);
106
+ const effectiveExpandedKeys = useMemo(() => {
107
+ if (!searchTerm)
108
+ return expandedKeys;
109
+ const allKeys = [];
110
+ walkTree(prunedTreeData, node => {
111
+ if (node.children?.length)
112
+ allKeys.push(node.key);
113
+ });
114
+ return allKeys;
115
+ }, [searchTerm, prunedTreeData]);
116
+ const handleSelect = useCallback((keys, info) => {
117
+ if (value.isDisabled || info.node.disabled)
118
+ return;
119
+ value.applyValue(keys[0] ?? "");
120
+ setIsOpen(false);
121
+ setSearchTerm("");
122
+ }, [value.applyValue, value.isDisabled]);
123
+ const handleOpenChange = useCallback((open) => {
124
+ if (value.isDisabled)
125
+ return;
126
+ setIsOpen(open);
127
+ if (!open) {
128
+ setSearchTerm("");
129
+ setExpandedKeys(defaultExpandedKeysRef.current ?? []);
130
+ }
131
+ }, [value.isDisabled]);
132
+ const handleExpand = useCallback((keys) => setExpandedKeys(keys), []);
133
+ return {
134
+ ...value,
135
+ isSearchable,
136
+ isOpen,
137
+ handleOpenChange,
138
+ searchTerm,
139
+ setSearchTerm,
140
+ prunedTreeData,
141
+ effectiveExpandedKeys,
142
+ handleSelect,
143
+ handleExpand,
144
+ };
145
+ }
146
+
147
+ const DROPDOWN_HEIGHT = 256;
148
+ const SIZE_CONFIG = {
149
+ small: { trigger: "min-h-7 px-2 py-0.5", text: "text-xs" },
150
+ medium: { trigger: "min-h-8 px-2.5 py-1", text: "text-sm" },
151
+ large: { trigger: "min-h-10 px-2.5 py-1.5", text: "text-sm" },
152
+ };
153
+
154
+ const TreeSelectTrigger = forwardRef(({ size, currentValue, selectedLabel, placeholder, isDisabled, error, showClearButton, handleClear, suffixIcon, className, ...rest }, ref) => (jsxs("button", { ref: ref, type: "button", disabled: isDisabled, ...rest, className: cn("inline-flex w-full items-center gap-1 rounded-md border border-input bg-background outline-none", "hover:bg-accent focus:ring-1 focus:ring-ring", "disabled:pointer-events-none disabled:opacity-50", error && "border-destructive", SIZE_CONFIG[size].trigger, SIZE_CONFIG[size].text, className), children: [jsx("span", { className: cn("flex-1 truncate text-left", !currentValue && "text-muted-foreground"), children: selectedLabel || placeholder || "" }), showClearButton && (jsx("span", { role: "button", tabIndex: -1, "aria-label": "Clear selection", className: "shrink-0 text-muted-foreground hover:text-foreground", onClick: handleClear, children: jsx(X, { className: "size-3.5" }) })), suffixIcon ?? jsx(ChevronDown, { className: "size-4 shrink-0 opacity-50" })] })));
155
+ TreeSelectTrigger.displayName = "TreeSelectTrigger";
156
+
157
+ const TreeSelect = forwardRef((props, ref) => {
158
+ const s = useTreeSelectState(props);
159
+ const { suffixIcon, switcherIcon, autoExpandParent, className } = props;
160
+ 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, className: className, children: jsxs(Popover, { open: s.isOpen, onOpenChange: s.handleOpenChange, children: [jsx(PopoverTrigger, { asChild: true, children: jsx(TreeSelectTrigger, { ref: ref, currentValue: s.currentValue, error: s.error, handleClear: s.handleClear, isDisabled: s.isDisabled, placeholder: props.placeholder, selectedLabel: s.selectedLabel, showClearButton: s.showClearButton, size: s.size, suffixIcon: suffixIcon }) }), jsxs(PopoverContent, { align: "start", className: "w-[var(--radix-popover-trigger-width)] p-0", onOpenAutoFocus: e => {
161
+ if (s.isSearchable)
162
+ e.preventDefault();
163
+ }, children: [s.isSearchable && (jsx("div", { className: "border-b px-2 py-1.5", children: jsx("input", { autoFocus: true, type: "text", className: cn("w-full bg-transparent outline-none placeholder:text-muted-foreground", SIZE_CONFIG[s.size].text), placeholder: "Search...", value: s.searchTerm, onChange: e => s.setSearchTerm(e.target.value) }) })), s.prunedTreeData.length > 0 ? (jsx("div", { className: "p-1", children: jsx(Tree, { autoExpandParent: autoExpandParent, expandedKeys: s.effectiveExpandedKeys, height: DROPDOWN_HEIGHT, switcherIcon: switcherIcon, treeData: s.prunedTreeData, onExpand: s.handleExpand, onSelect: s.handleSelect }) })) : (jsx("div", { className: "py-6 text-center text-sm text-muted-foreground", children: "No results found." }))] })] }) }));
164
+ });
165
+ TreeSelect.displayName = "TreeSelect";
166
+
167
+ export { TreeSelect as T };
168
+ //# sourceMappingURL=TreeSelect-DRGcYz-6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeSelect-DRGcYz-6.js","sources":["../src/components/TreeSelect/utils/pruneTree.ts","../src/components/TreeSelect/utils/resolveFieldNames.ts","../src/components/TreeSelect/hooks/useTreeSelectValue.ts","../src/components/TreeSelect/hooks/useTreeSelectState.ts","../src/components/TreeSelect/constants.ts","../src/components/TreeSelect/TreeSelectTrigger.tsx","../src/components/TreeSelect/TreeSelect.tsx"],"sourcesContent":["import type { TreeNodeData } from \"../../Tree/types\";\n\nexport const pruneTree = (\n nodes: TreeNodeData[],\n searchTerm: string\n): TreeNodeData[] => {\n if (!searchTerm.trim()) return nodes;\n\n const lower = searchTerm.toLowerCase();\n\n const prune = (items: TreeNodeData[]): TreeNodeData[] =>\n items.reduce<TreeNodeData[]>((acc, node) => {\n const titleStr = typeof node.title === \"string\" ? node.title : \"\";\n const nodeMatches = titleStr.toLowerCase().includes(lower);\n\n if (nodeMatches) {\n acc.push(node);\n } else {\n const prunedChildren = node.children ? prune(node.children) : [];\n if (prunedChildren.length > 0) {\n acc.push({ ...node, children: prunedChildren });\n }\n }\n\n return acc;\n }, []);\n\n return prune(nodes);\n};\n","import type { ReactNode } from \"react\";\nimport type { TreeNodeData } from \"../../Tree/types\";\n\nexport const resolveFieldNames = (\n nodes: Record<string, unknown>[],\n fieldNames: { label?: string; value?: string }\n): TreeNodeData[] => {\n const labelKey = fieldNames.label ?? \"title\";\n const valueKey = fieldNames.value ?? \"key\";\n\n const remap = (items: Record<string, unknown>[]): TreeNodeData[] =>\n items.map(item => ({\n key: String(item[valueKey] ?? \"\"),\n title: item[labelKey] as ReactNode,\n disabled: item.disabled as boolean | undefined,\n children: Array.isArray(item.children)\n ? remap(item.children as Record<string, unknown>[])\n : undefined,\n }));\n\n return remap(nodes);\n};\n","import { useCallback, useId, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { findNode } from \"../../Tree/utils/adapter\";\nimport type { TreeSelectProps } from \"../types\";\nimport { resolveFieldNames } from \"../utils/resolveFieldNames\";\n\nexport function useTreeSelectValue(props: TreeSelectProps) {\n const {\n value: valueProp,\n defaultValue,\n onChange,\n treeData: rawTreeData,\n fieldNames,\n isClearable = false,\n isDisabled = false,\n size = \"medium\",\n label = \"\",\n error = \"\",\n helpText = \"\" as ReactNode,\n required = false,\n } = props;\n\n const id = useId();\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n\n const treeData = useMemo(() => {\n if (!fieldNames) return rawTreeData;\n\n return resolveFieldNames(\n rawTreeData as unknown as Record<string, unknown>[],\n fieldNames\n );\n }, [rawTreeData, fieldNames?.label, fieldNames?.value]);\n\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState(defaultValue ?? \"\");\n const currentValue = isControlled ? (valueProp ?? \"\") : internalValue;\n\n const applyValue = useCallback(\n (next: string) => {\n if (!isControlled) setInternalValue(next);\n onChange?.(next);\n },\n [isControlled, onChange]\n );\n\n const selectedLabel = useMemo(() => {\n if (!currentValue) return \"\";\n const node = findNode(currentValue, treeData);\n if (!node) return currentValue;\n\n return typeof node.title === \"string\" ? node.title : \"\";\n }, [currentValue, treeData]);\n\n const handleClear = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n applyValue(\"\");\n },\n [applyValue]\n );\n\n const showClearButton = isClearable && !!currentValue && !isDisabled;\n\n return {\n id,\n errorId,\n helpTextId,\n label,\n error,\n helpText,\n required,\n isDisabled,\n size,\n treeData,\n currentValue,\n selectedLabel,\n applyValue,\n handleClear,\n showClearButton,\n };\n}\n","import { useCallback, useMemo, useRef, useState } from \"react\";\nimport type { TreeNodeData } from \"../../Tree/types\";\nimport { walkTree } from \"../../Tree/utils/adapter\";\nimport type { TreeSelectProps } from \"../types\";\nimport { pruneTree } from \"../utils/pruneTree\";\nimport { useTreeSelectValue } from \"./useTreeSelectValue\";\n\nexport function useTreeSelectState(props: TreeSelectProps) {\n const { isSearchable = false, defaultExpandedKeys } = props;\n const defaultExpandedKeysRef = useRef(defaultExpandedKeys);\n defaultExpandedKeysRef.current = defaultExpandedKeys;\n const value = useTreeSelectValue(props);\n\n const [isOpen, setIsOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [expandedKeys, setExpandedKeys] = useState<string[]>(\n defaultExpandedKeys ?? []\n );\n\n const prunedTreeData = useMemo(\n () =>\n searchTerm.trim()\n ? pruneTree(value.treeData, searchTerm)\n : value.treeData,\n [value.treeData, searchTerm]\n );\n\n const effectiveExpandedKeys = useMemo(() => {\n if (!searchTerm) return expandedKeys;\n\n const allKeys: string[] = [];\n walkTree(prunedTreeData, node => {\n if (node.children?.length) allKeys.push(node.key);\n });\n\n return allKeys;\n }, [searchTerm, prunedTreeData]);\n\n const handleSelect = useCallback(\n (keys: string[], info: { node: TreeNodeData }) => {\n if (value.isDisabled || info.node.disabled) return;\n value.applyValue(keys[0] ?? \"\");\n setIsOpen(false);\n setSearchTerm(\"\");\n },\n [value.applyValue, value.isDisabled]\n );\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (value.isDisabled) return;\n setIsOpen(open);\n if (!open) {\n setSearchTerm(\"\");\n setExpandedKeys(defaultExpandedKeysRef.current ?? []);\n }\n },\n [value.isDisabled]\n );\n\n const handleExpand = useCallback(\n (keys: string[]) => setExpandedKeys(keys),\n []\n );\n\n return {\n ...value,\n isSearchable,\n isOpen,\n handleOpenChange,\n searchTerm,\n setSearchTerm,\n prunedTreeData,\n effectiveExpandedKeys,\n handleSelect,\n handleExpand,\n };\n}\n","export const DROPDOWN_HEIGHT = 256;\n\nexport const SIZE_CONFIG: Record<\n \"small\" | \"medium\" | \"large\",\n { trigger: string; text: string }\n> = {\n small: { trigger: \"min-h-7 px-2 py-0.5\", text: \"text-xs\" },\n medium: { trigger: \"min-h-8 px-2.5 py-1\", text: \"text-sm\" },\n large: { trigger: \"min-h-10 px-2.5 py-1.5\", text: \"text-sm\" },\n};\n","import { forwardRef, type ReactNode } from \"react\";\nimport { ChevronDown, X } from \"lucide-react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { SIZE_CONFIG } from \"./constants\";\n\ninterface TreeSelectTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n size: \"small\" | \"medium\" | \"large\";\n currentValue: string;\n selectedLabel: string;\n placeholder?: string;\n isDisabled: boolean;\n error: string;\n showClearButton: boolean;\n handleClear: (e: React.MouseEvent) => void;\n suffixIcon?: ReactNode;\n}\n\nexport const TreeSelectTrigger = forwardRef<\n HTMLButtonElement,\n TreeSelectTriggerProps\n>(\n (\n {\n size,\n currentValue,\n selectedLabel,\n placeholder,\n isDisabled,\n error,\n showClearButton,\n handleClear,\n suffixIcon,\n className,\n ...rest\n },\n ref\n ) => (\n <button\n ref={ref}\n type=\"button\"\n disabled={isDisabled}\n {...rest}\n className={cn(\n \"inline-flex w-full items-center gap-1 rounded-md border border-input bg-background outline-none\",\n \"hover:bg-accent focus:ring-1 focus:ring-ring\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n error && \"border-destructive\",\n SIZE_CONFIG[size].trigger,\n SIZE_CONFIG[size].text,\n className\n )}\n >\n <span\n className={cn(\n \"flex-1 truncate text-left\",\n !currentValue && \"text-muted-foreground\"\n )}\n >\n {selectedLabel || placeholder || \"\"}\n </span>\n {showClearButton && (\n <span\n role=\"button\"\n tabIndex={-1}\n aria-label=\"Clear selection\"\n className=\"shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={handleClear}\n >\n <X className=\"size-3.5\" />\n </span>\n )}\n {suffixIcon ?? <ChevronDown className=\"size-4 shrink-0 opacity-50\" />}\n </button>\n )\n);\n\nTreeSelectTrigger.displayName = \"TreeSelectTrigger\";\n","import { forwardRef } from \"react\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"src/primitives/Popover\";\nimport { SelectFieldWrapper } from \"../Select/SelectFieldWrapper\";\nimport { Tree } from \"../Tree\";\nimport { useTreeSelectState } from \"./hooks/useTreeSelectState\";\nimport { TreeSelectTrigger } from \"./TreeSelectTrigger\";\nimport { SIZE_CONFIG, DROPDOWN_HEIGHT } from \"./constants\";\nimport type { TreeSelectProps } from \"./types\";\n\nconst TreeSelect = forwardRef<HTMLButtonElement, TreeSelectProps>(\n (props, ref) => {\n const s = useTreeSelectState(props);\n const { suffixIcon, switcherIcon, autoExpandParent, className } = props;\n\n return (\n <SelectFieldWrapper\n id={s.id}\n label={s.label}\n error={s.error}\n helpText={s.helpText}\n errorId={s.errorId}\n helpTextId={s.helpTextId}\n isDisabled={s.isDisabled}\n required={s.required}\n className={className}\n >\n <Popover open={s.isOpen} onOpenChange={s.handleOpenChange}>\n <PopoverTrigger asChild>\n <TreeSelectTrigger\n ref={ref}\n currentValue={s.currentValue}\n error={s.error}\n handleClear={s.handleClear}\n isDisabled={s.isDisabled}\n placeholder={props.placeholder}\n selectedLabel={s.selectedLabel}\n showClearButton={s.showClearButton}\n size={s.size}\n suffixIcon={suffixIcon}\n />\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"w-[var(--radix-popover-trigger-width)] p-0\"\n onOpenAutoFocus={e => {\n if (s.isSearchable) e.preventDefault();\n }}\n >\n {s.isSearchable && (\n <div className=\"border-b px-2 py-1.5\">\n <input\n autoFocus\n type=\"text\"\n className={cn(\n \"w-full bg-transparent outline-none placeholder:text-muted-foreground\",\n SIZE_CONFIG[s.size].text\n )}\n placeholder=\"Search...\"\n value={s.searchTerm}\n onChange={e => s.setSearchTerm(e.target.value)}\n />\n </div>\n )}\n {s.prunedTreeData.length > 0 ? (\n <div className=\"p-1\">\n <Tree\n autoExpandParent={autoExpandParent}\n expandedKeys={s.effectiveExpandedKeys}\n height={DROPDOWN_HEIGHT}\n switcherIcon={switcherIcon}\n treeData={s.prunedTreeData}\n onExpand={s.handleExpand}\n onSelect={s.handleSelect}\n />\n </div>\n ) : (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n No results found.\n </div>\n )}\n </PopoverContent>\n </Popover>\n </SelectFieldWrapper>\n );\n }\n);\n\nTreeSelect.displayName = \"TreeSelect\";\n\nexport { TreeSelect };\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { c as cva } from './index-D7Zy7P05.js';
4
+ import { c as cn } from './utils-DdHUxIdC.js';
5
+ import { S as Slot } from './index-CfriMyrd.js';
6
+
7
+ const typographyVariants = cva("", {
8
+ variants: {
9
+ variant: {
10
+ jumbo: "text-5xl font-semibold leading-none tracking-tight",
11
+ h1: "text-[40px] font-semibold leading-tight tracking-tight",
12
+ h2: "text-[32px] font-semibold leading-tight tracking-tight",
13
+ h3: "text-[28px] font-semibold leading-tight tracking-tight",
14
+ h4: "text-2xl font-semibold leading-tight",
15
+ h5: "text-xl font-semibold leading-tight",
16
+ h6: "text-lg font-semibold leading-tight",
17
+ body1: "text-base leading-normal",
18
+ body2: "text-[15px] leading-normal",
19
+ body3: "text-sm leading-normal",
20
+ caption: "text-xs leading-normal",
21
+ nano: "text-[10px] leading-normal",
22
+ code: "font-mono text-sm",
23
+ },
24
+ weight: {
25
+ thin: "font-thin",
26
+ extralight: "font-extralight",
27
+ light: "font-light",
28
+ normal: "font-normal",
29
+ medium: "font-medium",
30
+ semibold: "font-semibold",
31
+ bold: "font-bold",
32
+ extrabold: "font-extrabold",
33
+ black: "font-black",
34
+ },
35
+ color: {
36
+ default: "text-foreground",
37
+ muted: "text-muted-foreground",
38
+ primary: "text-primary",
39
+ destructive: "text-destructive",
40
+ inherit: "text-inherit",
41
+ },
42
+ lineClamp: {
43
+ none: "",
44
+ 1: "line-clamp-1",
45
+ 2: "line-clamp-2",
46
+ 3: "line-clamp-3",
47
+ },
48
+ },
49
+ defaultVariants: {
50
+ variant: "body3",
51
+ color: "default",
52
+ },
53
+ });
54
+ const defaultElementMap = {
55
+ jumbo: "h1",
56
+ h1: "h1",
57
+ h2: "h2",
58
+ h3: "h3",
59
+ h4: "h4",
60
+ h5: "h5",
61
+ h6: "h6",
62
+ body1: "p",
63
+ body2: "p",
64
+ body3: "p",
65
+ caption: "span",
66
+ nano: "span",
67
+ code: "code",
68
+ };
69
+ const Typography = forwardRef(({ className, variant = "body3", weight, color = "default", lineClamp, asChild = false, ...props }, ref) => {
70
+ const Comp = (asChild ? Slot : (defaultElementMap[variant ?? "body3"] ?? "p"));
71
+ return (jsx(Comp, { ref: ref, "data-slot": "typography", "data-variant": variant, className: cn(typographyVariants({ variant, weight, color, lineClamp, className })), ...props }));
72
+ });
73
+ Typography.displayName = "Typography";
74
+
75
+ export { Typography as T, typographyVariants as t };
76
+ //# sourceMappingURL=Typography-CMJ8OveZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Typography-CMJ8OveZ.js","sources":["../src/components/Typography/Typography.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"radix-ui\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\n\nconst typographyVariants = cva(\"\", {\n variants: {\n variant: {\n jumbo: \"text-5xl font-semibold leading-none tracking-tight\",\n h1: \"text-[40px] font-semibold leading-tight tracking-tight\",\n h2: \"text-[32px] font-semibold leading-tight tracking-tight\",\n h3: \"text-[28px] font-semibold leading-tight tracking-tight\",\n h4: \"text-2xl font-semibold leading-tight\",\n h5: \"text-xl font-semibold leading-tight\",\n h6: \"text-lg font-semibold leading-tight\",\n body1: \"text-base leading-normal\",\n body2: \"text-[15px] leading-normal\",\n body3: \"text-sm leading-normal\",\n caption: \"text-xs leading-normal\",\n nano: \"text-[10px] leading-normal\",\n code: \"font-mono text-sm\",\n },\n weight: {\n thin: \"font-thin\",\n extralight: \"font-extralight\",\n light: \"font-light\",\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n extrabold: \"font-extrabold\",\n black: \"font-black\",\n },\n color: {\n default: \"text-foreground\",\n muted: \"text-muted-foreground\",\n primary: \"text-primary\",\n destructive: \"text-destructive\",\n inherit: \"text-inherit\",\n },\n lineClamp: {\n none: \"\",\n 1: \"line-clamp-1\",\n 2: \"line-clamp-2\",\n 3: \"line-clamp-3\",\n },\n },\n defaultVariants: {\n variant: \"body3\",\n color: \"default\",\n },\n});\n\nconst defaultElementMap: Record<string, keyof React.JSX.IntrinsicElements> = {\n jumbo: \"h1\",\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body1: \"p\",\n body2: \"p\",\n body3: \"p\",\n caption: \"span\",\n nano: \"span\",\n code: \"code\",\n};\n\nconst Typography = forwardRef<\n HTMLElement,\n React.ComponentProps<\"p\"> &\n VariantProps<typeof typographyVariants> & {\n asChild?: boolean;\n }\n>(\n (\n {\n className,\n variant = \"body3\",\n weight,\n color = \"default\",\n lineClamp,\n asChild = false,\n ...props\n },\n ref\n ) => {\n const Comp = (\n asChild ? Slot.Root : (defaultElementMap[variant ?? \"body3\"] ?? \"p\")\n ) as React.ElementType;\n\n return (\n <Comp\n ref={ref}\n data-slot=\"typography\"\n data-variant={variant}\n className={cn(\n typographyVariants({ variant, weight, color, lineClamp, className })\n )}\n {...props}\n />\n );\n }\n);\n\nTypography.displayName = \"Typography\";\n\nexport { Typography, typographyVariants };\n"],"names":["Slot.Root","_jsx"],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('./utils-CTr7wn5d.js');
6
+ var primitives_Accordion = require('./primitives/Accordion.js');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefault(React);
11
+
12
+ const AccordionItemComponent = React.forwardRef(({ title, children, className, value, ...otherProps }, ref) => (jsxRuntime.jsxs(primitives_Accordion.AccordionItem, { ref: ref, value: value, className: utils.cn(className), ...otherProps, children: [jsxRuntime.jsx(primitives_Accordion.AccordionTrigger, { children: title }), jsxRuntime.jsx(primitives_Accordion.AccordionContent, { children: children })] })));
13
+ AccordionItemComponent.displayName = "Accordion.Item";
14
+ const Accordion = React.forwardRef(({ className, children, type = "single", ...otherProps }, ref) => {
15
+ // Auto-generate value props for items that don't have one
16
+ const enhancedChildren = React.Children.map(children, (child, index) => {
17
+ if (!React__default.default.isValidElement(child))
18
+ return child;
19
+ const childValue = child.props.value ?? `item-${index}`;
20
+ return React__default.default.cloneElement(child, { value: childValue });
21
+ });
22
+ return (jsxRuntime.jsx(primitives_Accordion.Accordion, { ref: ref, type: type, className: utils.cn(className), ...otherProps, children: enhancedChildren }));
23
+ });
24
+ Accordion.displayName = "Accordion";
25
+ Accordion.Item = AccordionItemComponent;
26
+
27
+ exports.Accordion = Accordion;
28
+ //# sourceMappingURL=Accordion-BoTckTBI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion-BoTckTBI.js","sources":["../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import React, { forwardRef, type ReactNode, Children } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Accordion as PrimitiveAccordion,\n AccordionItem as PrimitiveAccordionItem,\n AccordionTrigger as PrimitiveAccordionTrigger,\n AccordionContent as PrimitiveAccordionContent,\n} from \"src/primitives/Accordion\";\n\ntype AccordionRootProps = React.ComponentProps<typeof PrimitiveAccordion>;\n\nexport interface AccordionProps extends Omit<\n AccordionRootProps,\n \"children\" | \"type\"\n> {\n /** Whether one or many items can be opened at the same time. */\n type?: \"single\" | \"multiple\";\n /** Accordion.Item children. */\n children?: ReactNode;\n}\n\ninterface AccordionItemProps extends React.ComponentProps<\n typeof PrimitiveAccordionItem\n> {\n /** Header text displayed in the trigger. */\n title: string;\n /** Content rendered when the item is expanded. */\n children?: ReactNode;\n}\n\nconst AccordionItemComponent = forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ title, children, className, value, ...otherProps }, ref) => (\n <PrimitiveAccordionItem\n ref={ref}\n value={value}\n className={cn(className)}\n {...otherProps}\n >\n <PrimitiveAccordionTrigger>{title}</PrimitiveAccordionTrigger>\n <PrimitiveAccordionContent>{children}</PrimitiveAccordionContent>\n </PrimitiveAccordionItem>\n )\n);\n\nAccordionItemComponent.displayName = \"Accordion.Item\";\n\nconst Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n ({ className, children, type = \"single\", ...otherProps }, ref) => {\n // Auto-generate value props for items that don't have one\n const enhancedChildren = Children.map(children, (child, index) => {\n if (!React.isValidElement<AccordionItemProps>(child)) return child;\n const childValue = child.props.value ?? `item-${index}`;\n return React.cloneElement(child, { value: childValue });\n });\n\n return (\n <PrimitiveAccordion\n ref={ref}\n type={type}\n className={cn(className)}\n {...(otherProps as Record<string, unknown>)}\n >\n {enhancedChildren}\n </PrimitiveAccordion>\n );\n }\n) as React.ForwardRefExoticComponent<\n AccordionProps & React.RefAttributes<HTMLDivElement>\n> & {\n Item: typeof AccordionItemComponent;\n};\n\nAccordion.displayName = \"Accordion\";\nAccordion.Item = AccordionItemComponent;\n\nexport { Accordion };\n"],"names":["forwardRef","_jsxs","PrimitiveAccordionItem","cn","_jsx","PrimitiveAccordionTrigger","PrimitiveAccordionContent","Children","React","PrimitiveAccordion"],"mappings":";;;;;;;;;;;AA+BA,MAAM,sBAAsB,GAAGA,gBAAU,CACvC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,MACxDC,eAAA,CAACC,kCAAsB,EAAA,EACrB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAEC,QAAE,CAAC,SAAS,CAAC,EAAA,GACpB,UAAU,EAAA,QAAA,EAAA,CAEdC,cAAA,CAACC,qCAAyB,EAAA,EAAA,QAAA,EAAE,KAAK,EAAA,CAA6B,EAC9DD,cAAA,CAACE,qCAAyB,EAAA,EAAA,QAAA,EAAE,QAAQ,EAAA,CAA6B,CAAA,EAAA,CAC1C,CAC1B,CACF;AAED,sBAAsB,CAAC,WAAW,GAAG,gBAAgB;AAErD,MAAM,SAAS,GAAGN,gBAAU,CAC1B,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;;AAE/D,IAAA,MAAM,gBAAgB,GAAGO,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAI;AAC/D,QAAA,IAAI,CAACC,sBAAK,CAAC,cAAc,CAAqB,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;QAClE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE;AACvD,QAAA,OAAOA,sBAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACzD,IAAA,CAAC,CAAC;IAEF,QACEJ,cAAA,CAACK,8BAAkB,EAAA,EACjB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAEN,QAAE,CAAC,SAAS,CAAC,EAAA,GACnB,UAAsC,EAAA,QAAA,EAE1C,gBAAgB,EAAA,CACE;AAEzB,CAAC;AAOH,SAAS,CAAC,WAAW,GAAG,WAAW;AACnC,SAAS,CAAC,IAAI,GAAG,sBAAsB;;;;"}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var reactI18next = require('react-i18next');
6
+ var utils = require('./utils-CTr7wn5d.js');
7
+ var primitives_Dialog = require('./primitives/Dialog.js');
8
+ var Button = require('./Button-Bt_AElge.js');
9
+
10
+ const SIZE_CLASS_MAP = {
11
+ small: "sm:max-w-xs",
12
+ medium: "sm:max-w-sm",
13
+ large: "sm:max-w-md",
14
+ };
15
+ const STYLE_VARIANT_MAP = {
16
+ danger: "destructive",
17
+ warning: "default",
18
+ };
19
+
20
+ const Alert = React.forwardRef(({ size = "medium", isOpen = false, isSubmitting = false, className, closeOnEsc = true, closeButton = true, backdropClassName, closeOnOutsideClick = true, onClose = () => { }, onSubmit = () => { }, title = "", message = "", submitButtonLabel: submitButtonLabelProp, cancelButtonLabel: cancelButtonLabelProp, hideCancelButton = false, style = "danger", initialFocusRef, initialFocusElement, modal, defaultOpen,
21
+ // Radix content handlers — we intercept and merge
22
+ onOpenAutoFocus: onOpenAutoFocusProp, onCloseAutoFocus: onCloseAutoFocusProp, ...otherProps }, ref) => {
23
+ const { t } = reactI18next.useTranslation();
24
+ const submitButtonLabel = submitButtonLabelProp ?? t("neetoatoms.alert.continue", "Continue");
25
+ const cancelButtonLabel = cancelButtonLabelProp ?? t("neetoatoms.alert.cancel", "Cancel");
26
+ const baseId = React.useId();
27
+ const titleId = `alert-title-${baseId}`;
28
+ const messageId = `alert-message-${baseId}`;
29
+ const submitButtonRef = React.useRef(null);
30
+ const cancelButtonRef = React.useRef(null);
31
+ const handleOpenChange = (open) => {
32
+ if (!open)
33
+ onClose();
34
+ };
35
+ const handleInteractOutside = (e) => {
36
+ if (!closeOnOutsideClick)
37
+ e.preventDefault();
38
+ };
39
+ const handleEscapeKeyDown = (e) => {
40
+ if (!closeOnEsc)
41
+ e.preventDefault();
42
+ };
43
+ const handleOpenAutoFocus = (e) => {
44
+ // Custom focus ref takes highest priority
45
+ if (initialFocusRef?.current) {
46
+ e.preventDefault();
47
+ initialFocusRef.current.focus();
48
+ }
49
+ else if (initialFocusElement === "submit" && submitButtonRef.current) {
50
+ e.preventDefault();
51
+ submitButtonRef.current.focus();
52
+ }
53
+ else if (initialFocusElement === "cancel" && cancelButtonRef.current) {
54
+ e.preventDefault();
55
+ cancelButtonRef.current.focus();
56
+ }
57
+ onOpenAutoFocusProp?.(e);
58
+ };
59
+ const handleCloseAutoFocus = (e) => {
60
+ onCloseAutoFocusProp?.(e);
61
+ };
62
+ return (jsxRuntime.jsx(primitives_Dialog.Dialog, { open: isOpen, onOpenChange: handleOpenChange, modal: modal, defaultOpen: defaultOpen, children: jsxRuntime.jsxs(primitives_Dialog.DialogContent, { ref: ref, role: "alertdialog", "aria-labelledby": title ? titleId : undefined, "aria-describedby": message ? messageId : undefined, showCloseButton: closeButton, overlayClassName: backdropClassName, onInteractOutside: handleInteractOutside, onEscapeKeyDown: handleEscapeKeyDown, onOpenAutoFocus: handleOpenAutoFocus, onCloseAutoFocus: handleCloseAutoFocus, className: utils.cn(SIZE_CLASS_MAP[size], className), "data-testid": "alert-box", ...otherProps, children: [jsxRuntime.jsxs(primitives_Dialog.DialogHeader, { children: [jsxRuntime.jsx(primitives_Dialog.DialogTitle, { id: titleId, "data-testid": "alert-title", className: "text-2xl font-semibold", children: title }), message && (jsxRuntime.jsx(primitives_Dialog.DialogDescription, { id: messageId, "data-testid": "alert-message", children: message }))] }), jsxRuntime.jsxs(primitives_Dialog.DialogFooter, { children: [!hideCancelButton && (jsxRuntime.jsx(Button.Button, { ref: cancelButtonRef, variant: "outline", label: cancelButtonLabel, onClick: onClose, "data-testid": "alert-cancel-button" })), jsxRuntime.jsx(Button.Button, { ref: submitButtonRef, variant: STYLE_VARIANT_MAP[style], label: submitButtonLabel, loading: isSubmitting, disabled: isSubmitting || !isOpen, onClick: onSubmit, "data-testid": "alert-submit-button" })] })] }) }));
63
+ });
64
+ Alert.displayName = "Alert";
65
+
66
+ exports.Alert = Alert;
67
+ //# sourceMappingURL=Alert-BVvLyM_d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert-BVvLyM_d.js","sources":["../../../src/components/Alert/constants.ts","../../../src/components/Alert/Alert.tsx"],"sourcesContent":["import type { AlertSize, AlertStyle } from \"./Alert\";\n\nexport const SIZE_CLASS_MAP: Record<AlertSize, string> = {\n small: \"sm:max-w-xs\",\n medium: \"sm:max-w-sm\",\n large: \"sm:max-w-md\",\n};\n\nexport const STYLE_VARIANT_MAP: Record<AlertStyle, \"destructive\" | \"default\"> =\n {\n danger: \"destructive\",\n warning: \"default\",\n };\n","import {\n forwardRef,\n useId,\n useRef,\n type ReactNode,\n type RefObject,\n} from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"src/primitives/Dialog\";\nimport { Button } from \"src/components/Button\";\n\nimport { SIZE_CLASS_MAP, STYLE_VARIANT_MAP } from \"./constants\";\n\nexport type AlertStyle = \"danger\" | \"warning\";\nexport type AlertSize = \"small\" | \"medium\" | \"large\";\ntype InitialFocusElement = \"submit\" | \"cancel\";\n\n/** Radix Dialog.Content props we forward via ...otherProps. */\ntype DialogContentProps = React.ComponentProps<typeof DialogContent>;\n\nexport interface AlertProps extends Omit<\n DialogContentProps,\n | \"children\"\n | \"role\"\n | \"showCloseButton\"\n | \"className\"\n | \"style\"\n | \"onEscapeKeyDown\"\n | \"onInteractOutside\"\n> {\n /** Size of the alert dialog. */\n size?: AlertSize;\n /** Whether the alert is open. */\n isOpen?: boolean;\n /** Whether the submit action is in progress. */\n isSubmitting?: boolean;\n /** Additional CSS class names applied to the dialog content. */\n className?: string;\n /** Close on pressing the Esc key. */\n closeOnEsc?: boolean;\n /** Show the close button. */\n closeButton?: boolean;\n /** Additional CSS class names applied to the backdrop/overlay. */\n backdropClassName?: string;\n /** Close on clicking outside the dialog. */\n closeOnOutsideClick?: boolean;\n /** Callback invoked when the alert is closed. */\n onClose?: () => void;\n /** Callback invoked when the submit button is clicked. */\n onSubmit?: () => void;\n /** Title text of the alert. */\n title?: string;\n /** Message content of the alert. */\n message?: ReactNode;\n /** Label for the submit button. */\n submitButtonLabel?: string;\n /** Label for the cancel button. */\n cancelButtonLabel?: string;\n /** Hide the cancel button. */\n hideCancelButton?: boolean;\n /** Visual style of the submit button. */\n style?: AlertStyle;\n /** Ref of the element to receive focus when the alert opens. */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /** Which built-in button receives focus on open: \"submit\" or \"cancel\". */\n initialFocusElement?: InitialFocusElement;\n /** Radix Dialog `modal` prop — controls modal vs non-modal behaviour. */\n modal?: boolean;\n /** Radix Dialog `defaultOpen` prop. */\n defaultOpen?: boolean;\n}\n\nconst Alert = forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n size = \"medium\",\n isOpen = false,\n isSubmitting = false,\n className,\n closeOnEsc = true,\n closeButton = true,\n backdropClassName,\n closeOnOutsideClick = true,\n onClose = () => {},\n onSubmit = () => {},\n title = \"\",\n message = \"\",\n submitButtonLabel: submitButtonLabelProp,\n cancelButtonLabel: cancelButtonLabelProp,\n hideCancelButton = false,\n style = \"danger\",\n initialFocusRef,\n initialFocusElement,\n modal,\n defaultOpen,\n // Radix content handlers — we intercept and merge\n onOpenAutoFocus: onOpenAutoFocusProp,\n onCloseAutoFocus: onCloseAutoFocusProp,\n ...otherProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n const submitButtonLabel =\n submitButtonLabelProp ?? t(\"neetoatoms.alert.continue\", \"Continue\");\n const cancelButtonLabel =\n cancelButtonLabelProp ?? t(\"neetoatoms.alert.cancel\", \"Cancel\");\n const baseId = useId();\n const titleId = `alert-title-${baseId}`;\n const messageId = `alert-message-${baseId}`;\n const submitButtonRef = useRef<HTMLButtonElement>(null);\n const cancelButtonRef = useRef<HTMLButtonElement>(null);\n\n const handleOpenChange = (open: boolean) => {\n if (!open) onClose();\n };\n\n const handleInteractOutside = (e: Event) => {\n if (!closeOnOutsideClick) e.preventDefault();\n };\n\n const handleEscapeKeyDown = (e: KeyboardEvent) => {\n if (!closeOnEsc) e.preventDefault();\n };\n\n const handleOpenAutoFocus = (e: Event) => {\n // Custom focus ref takes highest priority\n if (initialFocusRef?.current) {\n e.preventDefault();\n initialFocusRef.current.focus();\n } else if (initialFocusElement === \"submit\" && submitButtonRef.current) {\n e.preventDefault();\n submitButtonRef.current.focus();\n } else if (initialFocusElement === \"cancel\" && cancelButtonRef.current) {\n e.preventDefault();\n cancelButtonRef.current.focus();\n }\n onOpenAutoFocusProp?.(e);\n };\n\n const handleCloseAutoFocus = (e: Event) => {\n onCloseAutoFocusProp?.(e);\n };\n\n return (\n <Dialog\n open={isOpen}\n onOpenChange={handleOpenChange}\n modal={modal}\n defaultOpen={defaultOpen}\n >\n <DialogContent\n ref={ref}\n role=\"alertdialog\"\n aria-labelledby={title ? titleId : undefined}\n aria-describedby={message ? messageId : undefined}\n showCloseButton={closeButton}\n overlayClassName={backdropClassName}\n onInteractOutside={handleInteractOutside}\n onEscapeKeyDown={handleEscapeKeyDown}\n onOpenAutoFocus={handleOpenAutoFocus}\n onCloseAutoFocus={handleCloseAutoFocus}\n className={cn(SIZE_CLASS_MAP[size], className)}\n data-testid=\"alert-box\"\n {...otherProps}\n >\n <DialogHeader>\n <DialogTitle\n id={titleId}\n data-testid=\"alert-title\"\n className=\"text-2xl font-semibold\"\n >\n {title}\n </DialogTitle>\n {message && (\n <DialogDescription id={messageId} data-testid=\"alert-message\">\n {message}\n </DialogDescription>\n )}\n </DialogHeader>\n <DialogFooter>\n {!hideCancelButton && (\n <Button\n ref={cancelButtonRef}\n variant=\"outline\"\n label={cancelButtonLabel}\n onClick={onClose}\n data-testid=\"alert-cancel-button\"\n />\n )}\n <Button\n ref={submitButtonRef}\n variant={STYLE_VARIANT_MAP[style]}\n label={submitButtonLabel}\n loading={isSubmitting}\n disabled={isSubmitting || !isOpen}\n onClick={onSubmit}\n data-testid=\"alert-submit-button\"\n />\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n }\n);\n\nAlert.displayName = \"Alert\";\n\nexport { Alert };\n"],"names":["forwardRef","useTranslation","useId","useRef","_jsx","Dialog","_jsxs","DialogContent","cn","DialogHeader","DialogTitle","DialogDescription","DialogFooter","Button"],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('./utils-CTr7wn5d.js');
6
+ var primitives_Avatar = require('./primitives/Avatar.js');
7
+ var primitives_Tooltip = require('./primitives/Tooltip.js');
8
+
9
+ const STATUS_COLOR_MAP = {
10
+ online: "bg-emerald-500 dark:bg-emerald-400",
11
+ idle: "bg-amber-500 dark:bg-amber-400",
12
+ offline: "bg-gray-400 dark:bg-gray-500",
13
+ };
14
+ const SIDE_MAP = {
15
+ top: "top",
16
+ bottom: "bottom",
17
+ left: "left",
18
+ right: "right",
19
+ auto: "bottom",
20
+ };
21
+ const XL_CLASSES = "data-[size=lg]:size-16 [&>[data-slot=avatar-badge]]:size-4 [&>[data-slot=avatar-fallback]]:text-lg";
22
+
23
+ function getInitials(name) {
24
+ if (!name)
25
+ return "";
26
+ return name
27
+ .split(/\s+/)
28
+ .slice(0, 2)
29
+ .map(word => word.charAt(0).toUpperCase())
30
+ .join("");
31
+ }
32
+
33
+ const Avatar = React.forwardRef(({ user, status, showTooltip = false, tooltipProps, size = "default", className, ...otherProps }, ref) => {
34
+ const initials = getInitials(user?.name);
35
+ const isXl = size === "xl";
36
+ const primitiveSize = isXl ? "lg" : size;
37
+ const avatarElement = (jsxRuntime.jsxs(primitives_Avatar.Avatar, { ref: ref, size: primitiveSize, className: utils.cn(isXl && XL_CLASSES, className), ...otherProps, children: [user?.imageUrl && (jsxRuntime.jsx(primitives_Avatar.AvatarImage, { src: user.imageUrl, alt: user?.name ?? "" })), jsxRuntime.jsx(primitives_Avatar.AvatarFallback, { children: initials }), status && jsxRuntime.jsx(primitives_Avatar.AvatarBadge, { className: utils.cn(STATUS_COLOR_MAP[status]) })] }));
38
+ const tooltipContent = tooltipProps?.content ?? (showTooltip ? user?.name : null);
39
+ if (tooltipContent) {
40
+ const side = SIDE_MAP[tooltipProps?.position ?? "auto"] ?? "bottom";
41
+ return (jsxRuntime.jsx(primitives_Tooltip.TooltipProvider, { delayDuration: 0, children: jsxRuntime.jsxs(primitives_Tooltip.Tooltip, { children: [jsxRuntime.jsx(primitives_Tooltip.TooltipTrigger, { asChild: true, children: jsxRuntime.jsx("span", { className: "inline-flex", children: avatarElement }) }), jsxRuntime.jsx(primitives_Tooltip.TooltipContent, { side: side, children: tooltipContent })] }) }));
42
+ }
43
+ return avatarElement;
44
+ });
45
+ Avatar.displayName = "Avatar";
46
+ const AvatarNamespace = Object.assign(Avatar, {
47
+ Group: primitives_Avatar.AvatarGroup,
48
+ GroupCount: primitives_Avatar.AvatarGroupCount,
49
+ });
50
+
51
+ exports.AvatarNamespace = AvatarNamespace;
52
+ //# sourceMappingURL=Avatar-CNao5gvP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar-CNao5gvP.js","sources":["../../../src/components/Avatar/constants.ts","../../../src/components/Avatar/utils.ts","../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["export const STATUS_COLOR_MAP: Record<string, string> = {\n online: \"bg-emerald-500 dark:bg-emerald-400\",\n idle: \"bg-amber-500 dark:bg-amber-400\",\n offline: \"bg-gray-400 dark:bg-gray-500\",\n};\n\nexport const SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n auto: \"bottom\",\n};\n\nexport const XL_CLASSES =\n \"data-[size=lg]:size-16 [&>[data-slot=avatar-badge]]:size-4 [&>[data-slot=avatar-fallback]]:text-lg\";\n","export function getInitials(name?: string): string {\n if (!name) return \"\";\n\n return name\n .split(/\\s+/)\n .slice(0, 2)\n .map(word => word.charAt(0).toUpperCase())\n .join(\"\");\n}\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n Avatar as PrimitiveAvatar,\n AvatarImage,\n AvatarFallback,\n AvatarBadge,\n AvatarGroup,\n AvatarGroupCount,\n} from \"src/primitives/Avatar\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"src/primitives/Tooltip\";\n\nimport { STATUS_COLOR_MAP, SIDE_MAP, XL_CLASSES } from \"./constants\";\nimport { getInitials } from \"./utils\";\n\ntype AvatarSize = \"sm\" | \"default\" | \"lg\" | \"xl\";\n\ninterface AvatarTooltipProps {\n /** Tooltip content. Defaults to user.name if showTooltip is true. */\n content?: React.ReactNode;\n /** Tooltip position. */\n position?: string;\n}\n\nexport interface AvatarProps extends Omit<\n React.ComponentProps<typeof PrimitiveAvatar>,\n \"size\"\n> {\n /** User data for the avatar. */\n user?: { name?: string; imageUrl?: string };\n /** Status indicator displayed as a colored badge. */\n status?: \"online\" | \"idle\" | \"offline\" | null;\n /** Show the user's name in a tooltip on hover. */\n showTooltip?: boolean;\n /** Tooltip configuration. Overrides showTooltip content. */\n tooltipProps?: AvatarTooltipProps;\n /** Size of the avatar. */\n size?: AvatarSize;\n /** Additional CSS class names. */\n className?: string;\n}\n\nconst Avatar = forwardRef<HTMLSpanElement, AvatarProps>(\n (\n {\n user,\n status,\n showTooltip = false,\n tooltipProps,\n size = \"default\",\n className,\n ...otherProps\n },\n ref\n ) => {\n const initials = getInitials(user?.name);\n const isXl = size === \"xl\";\n const primitiveSize = isXl ? \"lg\" : size;\n\n const avatarElement = (\n <PrimitiveAvatar\n ref={ref}\n size={primitiveSize}\n className={cn(isXl && XL_CLASSES, className)}\n {...otherProps}\n >\n {user?.imageUrl && (\n <AvatarImage src={user.imageUrl} alt={user?.name ?? \"\"} />\n )}\n <AvatarFallback>{initials}</AvatarFallback>\n {status && <AvatarBadge className={cn(STATUS_COLOR_MAP[status])} />}\n </PrimitiveAvatar>\n );\n\n const tooltipContent =\n tooltipProps?.content ?? (showTooltip ? user?.name : null);\n\n if (tooltipContent) {\n const side = SIDE_MAP[tooltipProps?.position ?? \"auto\"] ?? \"bottom\";\n\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex\">{avatarElement}</span>\n </TooltipTrigger>\n <TooltipContent side={side}>{tooltipContent}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return avatarElement;\n }\n);\n\nAvatar.displayName = \"Avatar\";\n\nconst AvatarNamespace = Object.assign(Avatar, {\n Group: AvatarGroup,\n GroupCount: AvatarGroupCount,\n});\n\nexport { AvatarNamespace as Avatar };\n"],"names":["forwardRef","_jsxs","PrimitiveAvatar","cn","_jsx","AvatarImage","AvatarFallback","AvatarBadge","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","AvatarGroup","AvatarGroupCount"],"mappings":";;;;;;;;AAAO,MAAM,gBAAgB,GAA2B;AACtD,IAAA,MAAM,EAAE,oCAAoC;AAC5C,IAAA,IAAI,EAAE,gCAAgC;AACtC,IAAA,OAAO,EAAE,8BAA8B;CACxC;AAEM,MAAM,QAAQ,GAAwD;AAC3E,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,IAAI,EAAE,QAAQ;CACf;AAEM,MAAM,UAAU,GACrB,oGAAoG;;ACfhG,SAAU,WAAW,CAAC,IAAa,EAAA;AACvC,IAAA,IAAI,CAAC,IAAI;AAAE,QAAA,OAAO,EAAE;AAEpB,IAAA,OAAO;SACJ,KAAK,CAAC,KAAK;AACX,SAAA,KAAK,CAAC,CAAC,EAAE,CAAC;AACV,SAAA,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;SACxC,IAAI,CAAC,EAAE,CAAC;AACb;;ACwCA,MAAM,MAAM,GAAGA,gBAAU,CACvB,CACE,EACE,IAAI,EACJ,MAAM,EACN,WAAW,GAAG,KAAK,EACnB,YAAY,EACZ,IAAI,GAAG,SAAS,EAChB,SAAS,EACT,GAAG,UAAU,EACd,EACD,GAAG,KACD;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;AACxC,IAAA,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI;IAC1B,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAExC,IAAA,MAAM,aAAa,IACjBC,eAAA,CAACC,wBAAe,EAAA,EACd,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,aAAa,EACnB,SAAS,EAAEC,QAAE,CAAC,IAAI,IAAI,UAAU,EAAE,SAAS,CAAC,KACxC,UAAU,EAAA,QAAA,EAAA,CAEb,IAAI,EAAE,QAAQ,KACbC,cAAA,CAACC,6BAAW,IAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,GAAI,CAC3D,EACDD,cAAA,CAACE,gCAAc,cAAE,QAAQ,EAAA,CAAkB,EAC1C,MAAM,IAAIF,cAAA,CAACG,6BAAW,EAAA,EAAC,SAAS,EAAEJ,QAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAA,CAAI,CAAA,EAAA,CACnD,CACnB;AAED,IAAA,MAAM,cAAc,GAClB,YAAY,EAAE,OAAO,KAAK,WAAW,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAE5D,IAAI,cAAc,EAAE;AAClB,QAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,EAAE,QAAQ,IAAI,MAAM,CAAC,IAAI,QAAQ;AAEnE,QAAA,QACEC,cAAA,CAACI,kCAAe,EAAA,EAAC,aAAa,EAAE,CAAC,EAAA,QAAA,EAC/BP,eAAA,CAACQ,0BAAO,eACNL,cAAA,CAACM,iCAAc,EAAA,EAAC,OAAO,kBACrBN,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,aAAa,YAAE,aAAa,EAAA,CAAQ,EAAA,CACrC,EACjBA,eAACO,iCAAc,EAAA,EAAC,IAAI,EAAE,IAAI,EAAA,QAAA,EAAG,cAAc,GAAkB,CAAA,EAAA,CACrD,EAAA,CACM;IAEtB;AAEA,IAAA,OAAO,aAAa;AACtB,CAAC,CACF;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ;AAE7B,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AAC5C,IAAA,KAAK,EAAEC,6BAAW;AAClB,IAAA,UAAU,EAAEC,kCAAgB;AAC7B,CAAA;;;;"}
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var reactI18next = require('react-i18next');
6
+ var utils = require('./utils-CTr7wn5d.js');
7
+ var renderIcon = require('./renderIcon-fLF3odqg.js');
8
+ var primitives_Badge = require('./primitives/Badge.js');
9
+ var x = require('./x-Brw3FJst.js');
10
+
11
+ const SIZE_CONFIG = {
12
+ sm: {
13
+ iconPl: "pl-1",
14
+ iconPr: "pr-1",
15
+ dismissPr: "pr-0.5",
16
+ btnSize: "size-3",
17
+ iconSize: "size-2",
18
+ },
19
+ default: {
20
+ iconPl: "pl-1.5",
21
+ iconPr: "pr-1.5",
22
+ dismissPr: "pr-1",
23
+ btnSize: "size-3.5",
24
+ iconSize: "size-2.5",
25
+ },
26
+ lg: {
27
+ iconPl: "pl-2",
28
+ iconPr: "pr-2",
29
+ dismissPr: "pr-1",
30
+ btnSize: "size-4.5",
31
+ iconSize: "size-3",
32
+ },
33
+ };
34
+ const INDICATOR_COLORS = {
35
+ default: "bg-primary",
36
+ secondary: "bg-muted-foreground",
37
+ destructive: "bg-destructive",
38
+ blue: "bg-blue-600",
39
+ green: "bg-green-600",
40
+ amber: "bg-amber-400",
41
+ red: "bg-red-600",
42
+ purple: "bg-purple-700",
43
+ pink: "bg-pink-600",
44
+ teal: "bg-teal-600",
45
+ gray: "bg-gray-400",
46
+ };
47
+
48
+ const Badge = React.forwardRef(({ variant = "default", size = "default", label, icon, iconPosition = "left", indicator, onDismiss, disabled = false, className, asChild = false, children, ...otherProps }, ref) => {
49
+ const { t } = reactI18next.useTranslation();
50
+ if (asChild) {
51
+ return (jsxRuntime.jsx(primitives_Badge.Badge, { ref: ref, asChild: true, variant: variant, size: size, className: className, ...otherProps, children: children }));
52
+ }
53
+ const renderLabel = label || children;
54
+ const iconElement = icon ? renderIcon.renderIcon(icon) : null;
55
+ const hasDismiss = !!onDismiss && !disabled;
56
+ return (jsxRuntime.jsxs(primitives_Badge.Badge, { ref: ref, variant: variant, size: size, className: utils.cn(disabled && "opacity-50 pointer-events-none", icon && iconPosition === "left" && SIZE_CONFIG[size].iconPl, icon && iconPosition === "right" && SIZE_CONFIG[size].iconPr, hasDismiss && SIZE_CONFIG[size].dismissPr, className), ...otherProps, children: [indicator && (jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn("size-1.5 shrink-0 rounded-full", INDICATOR_COLORS[indicator]) })), iconPosition === "left" && iconElement, renderLabel, iconPosition === "right" && iconElement, onDismiss && !disabled && (jsxRuntime.jsx("button", { type: "button", "aria-label": t("neetoatoms.badge.dismiss", "Dismiss"), onClick: onDismiss, className: utils.cn("inline-flex shrink-0 items-center justify-center rounded-full bg-current/15 transition-[background-color,opacity] hover:bg-current/25 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1", SIZE_CONFIG[size].btnSize), children: jsxRuntime.jsx(x.X, { className: SIZE_CONFIG[size].iconSize }) }))] }));
57
+ });
58
+ Badge.displayName = "Badge";
59
+
60
+ exports.Badge = Badge;
61
+ //# sourceMappingURL=Badge-STBHzYLs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge-STBHzYLs.js","sources":["../../../src/components/Badge/constants.ts","../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import type { IndicatorVariant } from \"./Badge\";\n\nexport const SIZE_CONFIG = {\n sm: {\n iconPl: \"pl-1\",\n iconPr: \"pr-1\",\n dismissPr: \"pr-0.5\",\n btnSize: \"size-3\",\n iconSize: \"size-2\",\n },\n default: {\n iconPl: \"pl-1.5\",\n iconPr: \"pr-1.5\",\n dismissPr: \"pr-1\",\n btnSize: \"size-3.5\",\n iconSize: \"size-2.5\",\n },\n lg: {\n iconPl: \"pl-2\",\n iconPr: \"pr-2\",\n dismissPr: \"pr-1\",\n btnSize: \"size-4.5\",\n iconSize: \"size-3\",\n },\n};\n\nexport const INDICATOR_COLORS: Record<IndicatorVariant, string> = {\n default: \"bg-primary\",\n secondary: \"bg-muted-foreground\",\n destructive: \"bg-destructive\",\n blue: \"bg-blue-600\",\n green: \"bg-green-600\",\n amber: \"bg-amber-400\",\n red: \"bg-red-600\",\n purple: \"bg-purple-700\",\n pink: \"bg-pink-600\",\n teal: \"bg-teal-600\",\n gray: \"bg-gray-400\",\n};\n","import React, { forwardRef, type ReactNode } from \"react\";\n\nimport { X } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { renderIcon, type IconProp } from \"src/lib/renderIcon\";\nimport { Badge as PrimitiveBadge } from \"src/primitives/Badge\";\n\nimport { SIZE_CONFIG, INDICATOR_COLORS } from \"./constants\";\n\ntype BadgeVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"outline\"\n | \"ghost\"\n | \"link\"\n | \"gray\"\n | \"gray-subtle\"\n | \"blue\"\n | \"blue-subtle\"\n | \"purple\"\n | \"purple-subtle\"\n | \"amber\"\n | \"amber-subtle\"\n | \"red\"\n | \"red-subtle\"\n | \"pink\"\n | \"pink-subtle\"\n | \"green\"\n | \"green-subtle\"\n | \"teal\"\n | \"teal-subtle\";\n\ntype BadgeSize = \"sm\" | \"default\" | \"lg\";\n\nexport type IndicatorVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"blue\"\n | \"green\"\n | \"amber\"\n | \"red\"\n | \"purple\"\n | \"pink\"\n | \"teal\"\n | \"gray\";\n\nexport interface BadgeProps extends Omit<\n React.ComponentProps<\"span\">,\n \"children\"\n> {\n /** Visual variant of the badge. */\n variant?: BadgeVariant;\n /** Size of the badge. */\n size?: BadgeSize;\n /** Text label rendered inside the badge. */\n label?: string;\n /** Icon component, element, or class-name string. */\n icon?: IconProp;\n /** Placement of the icon relative to the label. */\n iconPosition?: \"left\" | \"right\";\n /** Colored status indicator dot. */\n indicator?: IndicatorVariant;\n /** Callback when the badge is dismissed. Renders a dismiss button when provided. */\n onDismiss?: () => void;\n /** Disables the badge and hides the dismiss button. */\n disabled?: boolean;\n /** Render as a custom element (polymorphic via Radix Slot). */\n asChild?: boolean;\n /** Children rendered inside the badge (fallback for `label`). */\n children?: ReactNode;\n}\n\nconst Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n label,\n icon,\n iconPosition = \"left\",\n indicator,\n onDismiss,\n disabled = false,\n className,\n asChild = false,\n children,\n ...otherProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n\n if (asChild) {\n return (\n <PrimitiveBadge\n ref={ref}\n asChild\n variant={variant}\n size={size}\n className={className}\n {...otherProps}\n >\n {children}\n </PrimitiveBadge>\n );\n }\n\n const renderLabel = label || children;\n const iconElement = icon ? renderIcon(icon) : null;\n\n const hasDismiss = !!onDismiss && !disabled;\n\n return (\n <PrimitiveBadge\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n disabled && \"opacity-50 pointer-events-none\",\n icon && iconPosition === \"left\" && SIZE_CONFIG[size].iconPl,\n icon && iconPosition === \"right\" && SIZE_CONFIG[size].iconPr,\n hasDismiss && SIZE_CONFIG[size].dismissPr,\n className\n )}\n {...otherProps}\n >\n {indicator && (\n <span\n aria-hidden=\"true\"\n className={cn(\n \"size-1.5 shrink-0 rounded-full\",\n INDICATOR_COLORS[indicator]\n )}\n />\n )}\n {iconPosition === \"left\" && iconElement}\n {renderLabel}\n {iconPosition === \"right\" && iconElement}\n {onDismiss && !disabled && (\n <button\n type=\"button\"\n aria-label={t(\"neetoatoms.badge.dismiss\", \"Dismiss\")}\n onClick={onDismiss}\n className={cn(\n \"inline-flex shrink-0 items-center justify-center rounded-full bg-current/15 transition-[background-color,opacity] hover:bg-current/25 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1\",\n SIZE_CONFIG[size].btnSize\n )}\n >\n <X className={SIZE_CONFIG[size].iconSize} />\n </button>\n )}\n </PrimitiveBadge>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n\nexport { Badge };\n"],"names":["forwardRef","useTranslation","_jsx","PrimitiveBadge","renderIcon","_jsxs","cn","X"],"mappings":"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"}