@bigbinary/neeto-atoms 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/dist/ColorPicker-D-7QGnf9.js +277 -0
  2. package/dist/ColorPicker-D-7QGnf9.js.map +1 -0
  3. package/dist/{DataTable-Y4POx0WN.js → DataTable-DWR9gX9d.js} +146 -138
  4. package/dist/DataTable-DWR9gX9d.js.map +1 -0
  5. package/dist/TranslationProvider-Ba9rn47H.js +96 -0
  6. package/dist/TranslationProvider-Ba9rn47H.js.map +1 -0
  7. package/dist/cjs/ColorPicker-DEELmqH8.js +279 -0
  8. package/dist/cjs/ColorPicker-DEELmqH8.js.map +1 -0
  9. package/dist/cjs/{DataTable-DJw2SZ7b.js → DataTable-CWs96k8n.js} +146 -138
  10. package/dist/cjs/DataTable-CWs96k8n.js.map +1 -0
  11. package/dist/cjs/TranslationProvider-DBZHXmzX.js +103 -0
  12. package/dist/cjs/TranslationProvider-DBZHXmzX.js.map +1 -0
  13. package/dist/cjs/components/Accordion.js +49 -0
  14. package/dist/cjs/components/Accordion.js.map +1 -0
  15. package/dist/cjs/components/Alert.js +105 -0
  16. package/dist/cjs/components/Alert.js.map +1 -0
  17. package/dist/cjs/components/Avatar.js +75 -0
  18. package/dist/cjs/components/Avatar.js.map +1 -0
  19. package/dist/cjs/components/Badge.js +73 -0
  20. package/dist/cjs/components/Badge.js.map +1 -0
  21. package/dist/cjs/components/Button.js +122 -0
  22. package/dist/cjs/components/Button.js.map +1 -0
  23. package/dist/cjs/components/Callout.js +73 -0
  24. package/dist/cjs/components/Callout.js.map +1 -0
  25. package/dist/cjs/components/Checkbox.js +44 -0
  26. package/dist/cjs/components/Checkbox.js.map +1 -0
  27. package/dist/cjs/components/ColorPicker.js +36 -0
  28. package/dist/cjs/components/ColorPicker.js.map +1 -0
  29. package/dist/cjs/components/DataTable.js +4 -3
  30. package/dist/cjs/components/DataTable.js.map +1 -1
  31. package/dist/cjs/components/Dialog.js +89 -0
  32. package/dist/cjs/components/Dialog.js.map +1 -0
  33. package/dist/cjs/components/DropdownMenu.js +182 -0
  34. package/dist/cjs/components/DropdownMenu.js.map +1 -0
  35. package/dist/cjs/components/Empty.js +59 -0
  36. package/dist/cjs/components/Empty.js.map +1 -0
  37. package/dist/cjs/components/Input.js +167 -0
  38. package/dist/cjs/components/Input.js.map +1 -0
  39. package/dist/cjs/components/Kbd.js +63 -0
  40. package/dist/cjs/components/Kbd.js.map +1 -0
  41. package/dist/cjs/components/Label.js +91 -0
  42. package/dist/cjs/components/Label.js.map +1 -0
  43. package/dist/cjs/components/MultiSelect.js +13 -0
  44. package/dist/cjs/components/MultiSelect.js.map +1 -0
  45. package/dist/cjs/components/MultiSelectCombobox.js +3 -0
  46. package/dist/cjs/components/MultiSelectCombobox.js.map +1 -0
  47. package/dist/cjs/components/MultiSelectDropdown.js +38 -0
  48. package/dist/cjs/components/MultiSelectDropdown.js.map +1 -0
  49. package/dist/cjs/components/OptionItem.js +34 -0
  50. package/dist/cjs/components/OptionItem.js.map +1 -0
  51. package/dist/cjs/components/Popover.js +123 -0
  52. package/dist/cjs/components/Popover.js.map +1 -0
  53. package/dist/cjs/components/Progress.js +22 -0
  54. package/dist/cjs/components/Progress.js.map +1 -0
  55. package/dist/cjs/components/RadioGroup.js +63 -0
  56. package/dist/cjs/components/RadioGroup.js.map +1 -0
  57. package/dist/cjs/components/Select.js +3 -0
  58. package/dist/cjs/components/Select.js.map +1 -0
  59. package/dist/cjs/components/SelectFieldWrapper.js +33 -0
  60. package/dist/cjs/components/SelectFieldWrapper.js.map +1 -0
  61. package/dist/cjs/components/SelectOptions.js +43 -0
  62. package/dist/cjs/components/SelectOptions.js.map +1 -0
  63. package/dist/cjs/components/SelectTriggerContent.js +47 -0
  64. package/dist/cjs/components/SelectTriggerContent.js.map +1 -0
  65. package/dist/cjs/components/Sheet.js +91 -0
  66. package/dist/cjs/components/Sheet.js.map +1 -0
  67. package/dist/cjs/components/Slider.js +45 -0
  68. package/dist/cjs/components/Slider.js.map +1 -0
  69. package/dist/cjs/components/Spinner.js +27 -0
  70. package/dist/cjs/components/Spinner.js.map +1 -0
  71. package/dist/cjs/components/Stepper.js +39 -0
  72. package/dist/cjs/components/Stepper.js.map +1 -0
  73. package/dist/cjs/components/Switch.js +35 -0
  74. package/dist/cjs/components/Switch.js.map +1 -0
  75. package/dist/cjs/components/Tabs.js +74 -0
  76. package/dist/cjs/components/Tabs.js.map +1 -0
  77. package/dist/cjs/components/Textarea.js +89 -0
  78. package/dist/cjs/components/Textarea.js.map +1 -0
  79. package/dist/cjs/components/Toastr.js +133 -0
  80. package/dist/cjs/components/Toastr.js.map +1 -0
  81. package/dist/cjs/components/Tooltip.js +109 -0
  82. package/dist/cjs/components/Tooltip.js.map +1 -0
  83. package/dist/cjs/components/TranslationProvider.js +12 -0
  84. package/dist/cjs/components/TranslationProvider.js.map +1 -0
  85. package/dist/cjs/{primitives → components}/Typography.js +6 -6
  86. package/dist/cjs/components/Typography.js.map +1 -0
  87. package/dist/cjs/components/shared.js +8 -0
  88. package/dist/cjs/components/shared.js.map +1 -0
  89. package/dist/cjs/{dialog-DzNWLbJ6.js → dialog-Bvyrshz3.js} +5 -3
  90. package/dist/cjs/dialog-Bvyrshz3.js.map +1 -0
  91. package/dist/cjs/{index-DAds6mf_.js → index-BLGrl3PF.js} +31 -31
  92. package/dist/cjs/{index-DAds6mf_.js.map → index-BLGrl3PF.js.map} +1 -1
  93. package/dist/cjs/{index-BqCr1H3u.js → index-BiGm7NEA.js} +11 -11
  94. package/dist/cjs/{index-BqCr1H3u.js.map → index-BiGm7NEA.js.map} +1 -1
  95. package/dist/cjs/{index-CGet1HH4.js → index-PdtYHwPi.js} +66 -66
  96. package/dist/cjs/{index-CGet1HH4.js.map → index-PdtYHwPi.js.map} +1 -1
  97. package/dist/cjs/index-Vlwnyfvs.js +1145 -0
  98. package/dist/cjs/index-Vlwnyfvs.js.map +1 -0
  99. package/dist/cjs/{index-DR7GJU4J.js → index-hQmfI1O7.js} +17 -17
  100. package/dist/cjs/{index-DR7GJU4J.js.map → index-hQmfI1O7.js.map} +1 -1
  101. package/dist/cjs/index.js +497 -26
  102. package/dist/cjs/index.js.map +1 -1
  103. package/dist/cjs/primitives/Accordion.js +16 -16
  104. package/dist/cjs/primitives/Accordion.js.map +1 -1
  105. package/dist/cjs/primitives/AlertDialog.js +1 -1
  106. package/dist/cjs/primitives/Badge.js +58 -6
  107. package/dist/cjs/primitives/Badge.js.map +1 -1
  108. package/dist/cjs/primitives/Breadcrumb.js +5 -2
  109. package/dist/cjs/primitives/Breadcrumb.js.map +1 -1
  110. package/dist/cjs/primitives/Carousel.js +5 -2
  111. package/dist/cjs/primitives/Carousel.js.map +1 -1
  112. package/dist/cjs/primitives/Chart.js +137 -137
  113. package/dist/cjs/primitives/Chart.js.map +1 -1
  114. package/dist/cjs/primitives/Collapsible.js +1 -1
  115. package/dist/cjs/primitives/Combobox.js +4 -4
  116. package/dist/cjs/primitives/Combobox.js.map +1 -1
  117. package/dist/cjs/primitives/Command.js +7 -3
  118. package/dist/cjs/primitives/Command.js.map +1 -1
  119. package/dist/cjs/primitives/ContextMenu.js +2 -2
  120. package/dist/cjs/primitives/Dialog.js +11 -6
  121. package/dist/cjs/primitives/Dialog.js.map +1 -1
  122. package/dist/cjs/primitives/Drawer.js +1 -1
  123. package/dist/cjs/primitives/DropdownMenu.js +38 -38
  124. package/dist/cjs/primitives/DropdownMenu.js.map +1 -1
  125. package/dist/cjs/primitives/HoverCard.js +16 -16
  126. package/dist/cjs/primitives/Menubar.js +2 -2
  127. package/dist/cjs/primitives/Pagination.js +11 -5
  128. package/dist/cjs/primitives/Pagination.js.map +1 -1
  129. package/dist/cjs/primitives/Popover.js +13 -13
  130. package/dist/cjs/primitives/RadioGroup.js +27 -26
  131. package/dist/cjs/primitives/RadioGroup.js.map +1 -1
  132. package/dist/cjs/primitives/Select.js +77 -77
  133. package/dist/cjs/primitives/Sheet.js +11 -6
  134. package/dist/cjs/primitives/Sheet.js.map +1 -1
  135. package/dist/cjs/primitives/Sidebar.js +10 -6
  136. package/dist/cjs/primitives/Sidebar.js.map +1 -1
  137. package/dist/cjs/primitives/Sonner.js +19 -1180
  138. package/dist/cjs/primitives/Sonner.js.map +1 -1
  139. package/dist/cjs/primitives/Spinner.js +3 -1
  140. package/dist/cjs/primitives/Spinner.js.map +1 -1
  141. package/dist/cjs/primitives/Switch.js +4 -8
  142. package/dist/cjs/primitives/Switch.js.map +1 -1
  143. package/dist/cjs/primitives/Tabs.js +11 -11
  144. package/dist/cjs/primitives/ToggleGroup.js +1 -1
  145. package/dist/cjs/primitives/Tooltip.js +1 -1
  146. package/dist/cjs/primitives/index.js +11 -11
  147. package/dist/cjs/renderIcon-fLF3odqg.js +26 -0
  148. package/dist/cjs/renderIcon-fLF3odqg.js.map +1 -0
  149. package/dist/cjs/{sheet-nHSYZxAA.js → sheet-BZHMKVH1.js} +5 -3
  150. package/dist/cjs/sheet-BZHMKVH1.js.map +1 -0
  151. package/dist/cjs/{tooltip-CRkOMh1b.js → tooltip-C-568jEL.js} +17 -17
  152. package/dist/cjs/{tooltip-CRkOMh1b.js.map → tooltip-C-568jEL.js.map} +1 -1
  153. package/dist/cjs/triangle-alert-ZUMRpmzW.js +43 -0
  154. package/dist/cjs/triangle-alert-ZUMRpmzW.js.map +1 -0
  155. package/dist/cjs/useCreatableItems-BTHtd7uo.js +100 -0
  156. package/dist/cjs/useCreatableItems-BTHtd7uo.js.map +1 -0
  157. package/dist/cjs/{reselect-CeyIIDM-.js → with-selector-u4xTSzCv.js} +111 -111
  158. package/dist/cjs/with-selector-u4xTSzCv.js.map +1 -0
  159. package/dist/components/Accordion.d.ts +18 -0
  160. package/dist/components/Accordion.js +43 -0
  161. package/dist/components/Accordion.js.map +1 -0
  162. package/dist/components/Alert.d.ts +51 -0
  163. package/dist/components/Alert.js +103 -0
  164. package/dist/components/Alert.js.map +1 -0
  165. package/dist/components/Avatar.d.ts +31 -0
  166. package/dist/components/Avatar.js +73 -0
  167. package/dist/components/Avatar.js.map +1 -0
  168. package/dist/components/Badge.d.ts +29 -0
  169. package/dist/components/Badge.js +71 -0
  170. package/dist/components/Badge.js.map +1 -0
  171. package/dist/components/Button.d.ts +47 -0
  172. package/dist/components/Button.js +120 -0
  173. package/dist/components/Button.js.map +1 -0
  174. package/dist/components/Callout.d.ts +17 -0
  175. package/dist/components/Callout.js +71 -0
  176. package/dist/components/Callout.js.map +1 -0
  177. package/dist/components/Checkbox.d.ts +16 -0
  178. package/dist/components/Checkbox.js +42 -0
  179. package/dist/components/Checkbox.js.map +1 -0
  180. package/dist/components/ColorPicker/ColorPicker.d.ts +4 -0
  181. package/dist/components/ColorPicker/Palette.d.ts +12 -0
  182. package/dist/components/ColorPicker/Target.d.ts +15 -0
  183. package/dist/components/ColorPicker/constants.d.ts +10 -0
  184. package/dist/components/ColorPicker/hooks/useEyeDropper.d.ts +15 -0
  185. package/dist/components/ColorPicker/hooks/useRecentlyUsedColors.d.ts +11 -0
  186. package/dist/components/ColorPicker/index.d.ts +2 -0
  187. package/dist/components/ColorPicker/types.d.ts +42 -0
  188. package/dist/components/ColorPicker/utils.d.ts +31 -0
  189. package/dist/components/ColorPicker.js +30 -0
  190. package/dist/components/ColorPicker.js.map +1 -0
  191. package/dist/components/DataTable/components/EmptyState.d.ts +1 -1
  192. package/dist/components/DataTable.js +3 -2
  193. package/dist/components/DataTable.js.map +1 -1
  194. package/dist/components/Dialog.d.ts +56 -0
  195. package/dist/components/Dialog.js +87 -0
  196. package/dist/components/Dialog.js.map +1 -0
  197. package/dist/components/DropdownMenu/Divider.d.ts +3 -0
  198. package/dist/components/DropdownMenu/DropdownBase.d.ts +3 -0
  199. package/dist/components/DropdownMenu/Label.d.ts +7 -0
  200. package/dist/components/DropdownMenu/Menu.d.ts +7 -0
  201. package/dist/components/DropdownMenu/MenuItem.d.ts +10 -0
  202. package/dist/components/DropdownMenu/MenuItemButton.d.ts +4 -0
  203. package/dist/components/DropdownMenu/SplitTrigger.d.ts +13 -0
  204. package/dist/components/DropdownMenu/SubMenu.d.ts +10 -0
  205. package/dist/components/DropdownMenu/TriggerButton.d.ts +10 -0
  206. package/dist/components/DropdownMenu/constants.d.ts +7 -0
  207. package/dist/components/DropdownMenu/index.d.ts +16 -0
  208. package/dist/components/DropdownMenu/types.d.ts +88 -0
  209. package/dist/components/DropdownMenu.js +180 -0
  210. package/dist/components/DropdownMenu.js.map +1 -0
  211. package/dist/components/Empty.d.ts +27 -0
  212. package/dist/components/Empty.js +57 -0
  213. package/dist/components/Empty.js.map +1 -0
  214. package/dist/components/Input.d.ts +39 -0
  215. package/dist/components/Input.js +165 -0
  216. package/dist/components/Input.js.map +1 -0
  217. package/dist/components/Kbd.d.ts +15 -0
  218. package/dist/components/Kbd.js +61 -0
  219. package/dist/components/Kbd.js.map +1 -0
  220. package/dist/components/Label.d.ts +40 -0
  221. package/dist/components/Label.js +89 -0
  222. package/dist/components/Label.js.map +1 -0
  223. package/dist/components/MultiSelect.constants.d.ts +5 -0
  224. package/dist/components/MultiSelect.d.ts +4 -0
  225. package/dist/components/MultiSelect.js +4 -0
  226. package/dist/components/MultiSelect.js.map +1 -0
  227. package/dist/components/MultiSelect.types.d.ts +121 -0
  228. package/dist/components/MultiSelect.utils.d.ts +18 -0
  229. package/dist/components/MultiSelectCombobox.d.ts +3 -0
  230. package/dist/components/MultiSelectCombobox.js +2 -0
  231. package/dist/components/MultiSelectCombobox.js.map +1 -0
  232. package/dist/components/MultiSelectCombobox.types.d.ts +52 -0
  233. package/dist/components/MultiSelectDropdown.d.ts +9 -0
  234. package/dist/components/MultiSelectDropdown.js +36 -0
  235. package/dist/components/MultiSelectDropdown.js.map +1 -0
  236. package/dist/components/OptionItem.d.ts +9 -0
  237. package/dist/components/OptionItem.js +32 -0
  238. package/dist/components/OptionItem.js.map +1 -0
  239. package/dist/components/Popover.d.ts +47 -0
  240. package/dist/components/Popover.js +117 -0
  241. package/dist/components/Popover.js.map +1 -0
  242. package/dist/components/Progress.d.ts +12 -0
  243. package/dist/components/Progress.js +20 -0
  244. package/dist/components/Progress.js.map +1 -0
  245. package/dist/components/RadioGroup.d.ts +32 -0
  246. package/dist/components/RadioGroup.js +61 -0
  247. package/dist/components/RadioGroup.js.map +1 -0
  248. package/dist/components/Select.constants.d.ts +5 -0
  249. package/dist/components/Select.d.ts +4 -0
  250. package/dist/components/Select.js +2 -0
  251. package/dist/components/Select.js.map +1 -0
  252. package/dist/components/Select.types.d.ts +58 -0
  253. package/dist/components/SelectFieldWrapper.d.ts +18 -0
  254. package/dist/components/SelectFieldWrapper.js +31 -0
  255. package/dist/components/SelectFieldWrapper.js.map +1 -0
  256. package/dist/components/SelectOptions.d.ts +2 -0
  257. package/dist/components/SelectOptions.js +41 -0
  258. package/dist/components/SelectOptions.js.map +1 -0
  259. package/dist/components/SelectTriggerContent.d.ts +18 -0
  260. package/dist/components/SelectTriggerContent.js +45 -0
  261. package/dist/components/SelectTriggerContent.js.map +1 -0
  262. package/dist/components/Sheet.d.ts +54 -0
  263. package/dist/components/Sheet.js +89 -0
  264. package/dist/components/Sheet.js.map +1 -0
  265. package/dist/components/Slider.d.ts +19 -0
  266. package/dist/components/Slider.js +43 -0
  267. package/dist/components/Slider.js.map +1 -0
  268. package/dist/components/Spinner.d.ts +10 -0
  269. package/dist/components/Spinner.js +25 -0
  270. package/dist/components/Spinner.js.map +1 -0
  271. package/dist/components/Stepper.d.ts +18 -0
  272. package/dist/components/Stepper.js +33 -0
  273. package/dist/components/Stepper.js.map +1 -0
  274. package/dist/components/Switch.d.ts +18 -0
  275. package/dist/components/Switch.js +33 -0
  276. package/dist/components/Switch.js.map +1 -0
  277. package/dist/components/Tabs.d.ts +20 -0
  278. package/dist/components/Tabs.js +72 -0
  279. package/dist/components/Tabs.js.map +1 -0
  280. package/dist/components/Textarea.d.ts +36 -0
  281. package/dist/components/Textarea.js +87 -0
  282. package/dist/components/Textarea.js.map +1 -0
  283. package/dist/components/Toastr.d.ts +30 -0
  284. package/dist/components/Toastr.js +131 -0
  285. package/dist/components/Toastr.js.map +1 -0
  286. package/dist/components/Tooltip.d.ts +29 -0
  287. package/dist/components/Tooltip.js +103 -0
  288. package/dist/components/Tooltip.js.map +1 -0
  289. package/dist/components/TranslationProvider/TranslationProvider.d.ts +6 -0
  290. package/dist/components/TranslationProvider/i18n.d.ts +1 -0
  291. package/dist/components/TranslationProvider/index.d.ts +2 -0
  292. package/dist/components/TranslationProvider/types.d.ts +7 -0
  293. package/dist/components/TranslationProvider.js +6 -0
  294. package/dist/components/TranslationProvider.js.map +1 -0
  295. package/dist/{primitives → components}/Typography.d.ts +3 -3
  296. package/dist/{primitives → components}/Typography.js +6 -6
  297. package/dist/components/Typography.js.map +1 -0
  298. package/dist/components/shared.js +6 -0
  299. package/dist/components/shared.js.map +1 -0
  300. package/dist/components/shared.types.d.ts +16 -0
  301. package/dist/{dialog-C97DOTvO.js → dialog-CrB6N_2a.js} +6 -4
  302. package/dist/dialog-CrB6N_2a.js.map +1 -0
  303. package/dist/hooks/useAsyncOptions.d.ts +13 -0
  304. package/dist/hooks/useCreatableItems.d.ts +30 -0
  305. package/dist/hooks/useLazyLoadSentinel.d.ts +6 -0
  306. package/dist/hooks/useMultiSelectOptions.d.ts +15 -0
  307. package/dist/hooks/useMultiSelectState.d.ts +37 -0
  308. package/dist/hooks/useSelectState.d.ts +27 -0
  309. package/dist/{index-PF0ms7Xn.js → index-9HvIbmnI.js} +3 -3
  310. package/dist/{index-PF0ms7Xn.js.map → index-9HvIbmnI.js.map} +1 -1
  311. package/dist/index-D_roZz8G.js +1137 -0
  312. package/dist/index-D_roZz8G.js.map +1 -0
  313. package/dist/{index-BwxI_qgh.js → index-KzJfsx-e.js} +3 -3
  314. package/dist/{index-BwxI_qgh.js.map → index-KzJfsx-e.js.map} +1 -1
  315. package/dist/index.css +25 -1
  316. package/dist/index.d.ts +61 -0
  317. package/dist/index.js +463 -24
  318. package/dist/index.js.map +1 -1
  319. package/dist/{input-group-CDBpz6Pb.js → input-group-ytECR3Hw.js} +2 -2
  320. package/dist/{input-group-CDBpz6Pb.js.map → input-group-ytECR3Hw.js.map} +1 -1
  321. package/dist/lib/renderIcon.d.ts +5 -0
  322. package/dist/primitives/Accordion.js +1 -1
  323. package/dist/primitives/AlertDialog.js +1 -1
  324. package/dist/primitives/Badge.d.ts +13 -3
  325. package/dist/primitives/Badge.js +54 -2
  326. package/dist/primitives/Badge.js.map +1 -1
  327. package/dist/primitives/Breadcrumb.js +5 -2
  328. package/dist/primitives/Breadcrumb.js.map +1 -1
  329. package/dist/primitives/Carousel.js +5 -2
  330. package/dist/primitives/Carousel.js.map +1 -1
  331. package/dist/primitives/Chart.js +1 -1
  332. package/dist/primitives/Combobox.js +3 -3
  333. package/dist/primitives/Command.js +8 -4
  334. package/dist/primitives/Command.js.map +1 -1
  335. package/dist/primitives/ContextMenu.js +1 -1
  336. package/dist/primitives/Dialog.d.ts +11 -3
  337. package/dist/primitives/Dialog.js +12 -7
  338. package/dist/primitives/Dialog.js.map +1 -1
  339. package/dist/primitives/Drawer.js +1 -1
  340. package/dist/primitives/DropdownMenu.js +2 -2
  341. package/dist/primitives/InputGroup.js +1 -1
  342. package/dist/primitives/Menubar.js +1 -1
  343. package/dist/primitives/Pagination.js +11 -5
  344. package/dist/primitives/Pagination.js.map +1 -1
  345. package/dist/primitives/RadioGroup.d.ts +8 -3
  346. package/dist/primitives/RadioGroup.js +9 -8
  347. package/dist/primitives/RadioGroup.js.map +1 -1
  348. package/dist/primitives/Select.js +3 -3
  349. package/dist/primitives/Sheet.d.ts +12 -3
  350. package/dist/primitives/Sheet.js +12 -7
  351. package/dist/primitives/Sheet.js.map +1 -1
  352. package/dist/primitives/Sidebar.js +10 -6
  353. package/dist/primitives/Sidebar.js.map +1 -1
  354. package/dist/primitives/Sonner.js +16 -1175
  355. package/dist/primitives/Sonner.js.map +1 -1
  356. package/dist/primitives/Spinner.js +3 -1
  357. package/dist/primitives/Spinner.js.map +1 -1
  358. package/dist/primitives/Switch.d.ts +6 -3
  359. package/dist/primitives/Switch.js +4 -8
  360. package/dist/primitives/Switch.js.map +1 -1
  361. package/dist/primitives/Tooltip.js +1 -1
  362. package/dist/primitives/index.d.ts +0 -1
  363. package/dist/primitives/index.js +10 -8
  364. package/dist/primitives/index.js.map +1 -1
  365. package/dist/renderIcon-tlvMyboj.js +20 -0
  366. package/dist/renderIcon-tlvMyboj.js.map +1 -0
  367. package/dist/shadcn/components/command.d.ts +1 -1
  368. package/dist/shadcn/components/pagination.d.ts +2 -2
  369. package/dist/shadcn/components/typography.d.ts +6 -6
  370. package/dist/{sheet-D1ngftfX.js → sheet-C763FqIh.js} +6 -4
  371. package/dist/sheet-C763FqIh.js.map +1 -0
  372. package/dist/{tooltip-D5soNrAP.js → tooltip-DzjIJacP.js} +3 -3
  373. package/dist/{tooltip-D5soNrAP.js.map → tooltip-DzjIJacP.js.map} +1 -1
  374. package/dist/translations/index.d.ts +66 -0
  375. package/dist/triangle-alert-PXnNWQy_.js +40 -0
  376. package/dist/triangle-alert-PXnNWQy_.js.map +1 -0
  377. package/dist/useCreatableItems-B0seQA1_.js +89 -0
  378. package/dist/useCreatableItems-B0seQA1_.js.map +1 -0
  379. package/dist/utils/fieldIds.d.ts +2 -0
  380. package/dist/utils/hyphenize.d.ts +1 -0
  381. package/dist/{reselect-CABQm5hA.js → with-selector--fY1NrB9.js} +111 -111
  382. package/dist/with-selector--fY1NrB9.js.map +1 -0
  383. package/package.json +39 -34
  384. package/dist/DataTable-Y4POx0WN.js.map +0 -1
  385. package/dist/cjs/DataTable-DJw2SZ7b.js.map +0 -1
  386. package/dist/cjs/dialog-DzNWLbJ6.js.map +0 -1
  387. package/dist/cjs/primitives/Typography.js.map +0 -1
  388. package/dist/cjs/reselect-CeyIIDM-.js.map +0 -1
  389. package/dist/cjs/sheet-nHSYZxAA.js.map +0 -1
  390. package/dist/dialog-C97DOTvO.js.map +0 -1
  391. package/dist/primitives/Typography.js.map +0 -1
  392. package/dist/reselect-CABQm5hA.js.map +0 -1
  393. package/dist/sheet-D1ngftfX.js.map +0 -1
@@ -0,0 +1,103 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var reactI18next = require('react-i18next');
6
+ var i18n = require('i18next');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var i18n__default = /*#__PURE__*/_interopDefault(i18n);
11
+
12
+ var neetoatoms = {
13
+ colorPicker: {
14
+ recentlyUsed: "Recently used",
15
+ pickColor: "Pick color from screen"
16
+ },
17
+ alert: {
18
+ "continue": "Continue",
19
+ cancel: "Cancel"
20
+ },
21
+ multiSelect: {
22
+ noResults: "No results found.",
23
+ loading: "Loading…"
24
+ },
25
+ dataTable: {
26
+ noResults: "No results.",
27
+ selectRow: "Select row"
28
+ },
29
+ pagination: {
30
+ previous: "Previous",
31
+ next: "Next",
32
+ goToPrevious: "Go to previous page",
33
+ goToNext: "Go to next page",
34
+ morePages: "More pages"
35
+ },
36
+ dialog: {
37
+ close: "Close"
38
+ },
39
+ sheet: {
40
+ close: "Close"
41
+ },
42
+ carousel: {
43
+ previousSlide: "Previous slide",
44
+ nextSlide: "Next slide"
45
+ },
46
+ sidebar: {
47
+ title: "Sidebar",
48
+ description: "Displays the mobile sidebar.",
49
+ toggleSidebar: "Toggle Sidebar"
50
+ },
51
+ badge: {
52
+ dismiss: "Dismiss"
53
+ },
54
+ spinner: {
55
+ loading: "Loading"
56
+ },
57
+ select: {
58
+ clearSelection: "Clear selection"
59
+ },
60
+ dropdownMenu: {
61
+ openMenu: "Open dropdown menu"
62
+ },
63
+ breadcrumb: {
64
+ breadcrumb: "breadcrumb",
65
+ more: "More"
66
+ },
67
+ command: {
68
+ title: "Command Palette",
69
+ description: "Search for a command to run..."
70
+ }
71
+ };
72
+ var enTranslations = {
73
+ neetoatoms: neetoatoms
74
+ };
75
+
76
+ const resources = {
77
+ en: { translation: enTranslations },
78
+ };
79
+
80
+ const initializeI18n = (language = "en") => {
81
+ i18n__default.default.use(reactI18next.initReactI18next).init({
82
+ resources,
83
+ lng: language,
84
+ fallbackLng: "en",
85
+ interpolation: { escapeValue: false },
86
+ });
87
+ return i18n__default.default;
88
+ };
89
+
90
+ const TranslationProvider = ({ children, language = "en", }) => {
91
+ const i18n = initializeI18n(language);
92
+ React.useEffect(() => {
93
+ if (i18n.language !== language) {
94
+ i18n.changeLanguage(language);
95
+ }
96
+ }, [language, i18n]);
97
+ return jsxRuntime.jsx(reactI18next.I18nextProvider, { i18n: i18n, children: children });
98
+ };
99
+ TranslationProvider.displayName = "TranslationProvider";
100
+
101
+ exports.TranslationProvider = TranslationProvider;
102
+ exports.resources = resources;
103
+ //# sourceMappingURL=TranslationProvider-DBZHXmzX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranslationProvider-DBZHXmzX.js","sources":["../../../src/translations/index.ts","../../../src/components/TranslationProvider/i18n.ts","../../../src/components/TranslationProvider/TranslationProvider.tsx"],"sourcesContent":["import enTranslations from \"./en.json\";\n\nexport const resources = {\n en: { translation: enTranslations },\n};\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\n\nimport { resources } from \"src/translations\";\n\nexport const initializeI18n = (language = \"en\") => {\n i18n.use(initReactI18next).init({\n resources,\n lng: language,\n fallbackLng: \"en\",\n interpolation: { escapeValue: false },\n });\n\n return i18n;\n};\n","import React, { useEffect } from \"react\";\n\nimport { I18nextProvider } from \"react-i18next\";\n\nimport { initializeI18n } from \"./i18n\";\nimport type { TranslationProviderProps } from \"./types\";\n\nconst TranslationProvider = ({\n children,\n language = \"en\",\n}: TranslationProviderProps) => {\n const i18n = initializeI18n(language);\n\n useEffect(() => {\n if (i18n.language !== language) {\n i18n.changeLanguage(language);\n }\n }, [language, i18n]);\n\n return <I18nextProvider i18n={i18n}>{children}</I18nextProvider>;\n};\n\nTranslationProvider.displayName = \"TranslationProvider\";\n\nexport { TranslationProvider };\n"],"names":["i18n","initReactI18next","useEffect","_jsx","I18nextProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAM,SAAS,GAAG;AACvB,IAAA,EAAE,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE;;;ACE9B,MAAM,cAAc,GAAG,CAAC,QAAQ,GAAG,IAAI,KAAI;AAChD,IAAAA,qBAAI,CAAC,GAAG,CAACC,6BAAgB,CAAC,CAAC,IAAI,CAAC;QAC9B,SAAS;AACT,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,aAAa,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;AACtC,KAAA,CAAC;AAEF,IAAA,OAAOD,qBAAI;AACb,CAAC;;ACPD,MAAM,mBAAmB,GAAG,CAAC,EAC3B,QAAQ,EACR,QAAQ,GAAG,IAAI,GACU,KAAI;AAC7B,IAAA,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC;IAErCE,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAC/B;AACF,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEpB,OAAOC,cAAA,CAACC,4BAAe,EAAA,EAAC,IAAI,EAAE,IAAI,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAmB;AAClE;AAEA,mBAAmB,CAAC,WAAW,GAAG,qBAAqB;;;;;"}
@@ -0,0 +1,49 @@
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
+ require('../chevron-down-CPsWSS51.js');
8
+ require('../createLucideIcon-D0tRgV6l.js');
9
+ require('../chevron-up-BpwpBnZU.js');
10
+ require('../index-CGUGhyIp.js');
11
+ require('../index-Ch55j1or.js');
12
+ require('../index-D-iDn9RI.js');
13
+ require('../index-COPkC3I5.js');
14
+ require('../index-CyrAgb4H.js');
15
+ require('../index-CCdG4z4E.js');
16
+ require('../index-DMbj7vXd.js');
17
+ require('react-dom');
18
+ require('../index-BiGm7NEA.js');
19
+ require('../index-DcCSSgb7.js');
20
+ require('../index-BwAq9ba8.js');
21
+ require('../index-9jC1advf.js');
22
+
23
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
24
+
25
+ var React__default = /*#__PURE__*/_interopDefault(React);
26
+
27
+ // ---------------------------------------------------------------------------
28
+ // Subcomponent – Accordion.Item
29
+ // ---------------------------------------------------------------------------
30
+ 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 })] })));
31
+ AccordionItemComponent.displayName = "Accordion.Item";
32
+ // ---------------------------------------------------------------------------
33
+ // Component
34
+ // ---------------------------------------------------------------------------
35
+ const Accordion = React.forwardRef(({ className, children, ...otherProps }, ref) => {
36
+ // Auto-generate value props for items that don't have one
37
+ const enhancedChildren = React.Children.map(children, (child, index) => {
38
+ if (!React__default.default.isValidElement(child))
39
+ return child;
40
+ const childValue = child.props.value ?? `item-${index}`;
41
+ return React__default.default.cloneElement(child, { value: childValue });
42
+ });
43
+ return (jsxRuntime.jsx(primitives_Accordion.Accordion, { ref: ref, className: utils.cn(className), ...otherProps, children: enhancedChildren }));
44
+ });
45
+ Accordion.displayName = "Accordion";
46
+ Accordion.Item = AccordionItemComponent;
47
+
48
+ exports.Accordion = Accordion;
49
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sources":["../../../../src/components/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\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype AccordionRootProps = React.ComponentProps<typeof PrimitiveAccordion>;\n\nexport interface AccordionProps extends Omit<AccordionRootProps, \"children\"> {\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\n// ---------------------------------------------------------------------------\n// Subcomponent – Accordion.Item\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\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n ({ className, children, ...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 ref={ref} className={cn(className)} {...otherProps}>\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":";;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA;AACA;AACA;AAEA,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;AACA;AACA;AAEA,MAAM,SAAS,GAAGN,gBAAU,CAC1B,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,KAAI;;AAE9C,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,eAACK,8BAAkB,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAEN,QAAE,CAAC,SAAS,CAAC,EAAA,GAAM,UAAU,YACnE,gBAAgB,EAAA,CACE;AAEzB,CAAC;AAOH,SAAS,CAAC,WAAW,GAAG,WAAW;AACnC,SAAS,CAAC,IAAI,GAAG,sBAAsB;;;;"}
@@ -0,0 +1,105 @@
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 components_Button = require('./Button.js');
9
+ require('../button-B8XGl69v.js');
10
+ require('../index-BZhTddX0.js');
11
+ require('../index-DuNgWCXZ.js');
12
+ require('../index-D-iDn9RI.js');
13
+ require('../dialog-Bvyrshz3.js');
14
+ require('../x-Brw3FJst.js');
15
+ require('../createLucideIcon-D0tRgV6l.js');
16
+ require('../index-BLGrl3PF.js');
17
+ require('../index-COPkC3I5.js');
18
+ require('../index-CGUGhyIp.js');
19
+ require('../index-BwAq9ba8.js');
20
+ require('../index-CCdG4z4E.js');
21
+ require('../index-CyrAgb4H.js');
22
+ require('../index-Bvu9MiFi.js');
23
+ require('../index-DMbj7vXd.js');
24
+ require('react-dom');
25
+ require('../index-lWVw05cs.js');
26
+ require('../index-ChSOMM8b.js');
27
+ require('../index-Df-Ffa3s.js');
28
+ require('../index-DcCSSgb7.js');
29
+ require('../renderIcon-fLF3odqg.js');
30
+ require('../primitives/Button.js');
31
+ require('../primitives/Spinner.js');
32
+ require('../loader-circle-Bw7zP2Gn.js');
33
+ require('../primitives/Tooltip.js');
34
+ require('../tooltip-C-568jEL.js');
35
+ require('../index-C9ICrOhM.js');
36
+ require('../floating-ui.react-dom-B4Aw6O7R.js');
37
+ require('../index-Bf0WsHta.js');
38
+ require('../index-CB9xFokC.js');
39
+
40
+ // ---------------------------------------------------------------------------
41
+ // Size mapping
42
+ // ---------------------------------------------------------------------------
43
+ const SIZE_CLASS_MAP = {
44
+ small: "sm:max-w-xs",
45
+ medium: "sm:max-w-sm",
46
+ large: "sm:max-w-md",
47
+ };
48
+ // ---------------------------------------------------------------------------
49
+ // Style to variant mapping
50
+ // ---------------------------------------------------------------------------
51
+ const STYLE_VARIANT_MAP = {
52
+ danger: "destructive",
53
+ warning: "default",
54
+ };
55
+ // ---------------------------------------------------------------------------
56
+ // Component
57
+ // ---------------------------------------------------------------------------
58
+ 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,
59
+ // Radix content handlers — we intercept and merge
60
+ onOpenAutoFocus: onOpenAutoFocusProp, onCloseAutoFocus: onCloseAutoFocusProp, ...otherProps }, ref) => {
61
+ const { t } = reactI18next.useTranslation();
62
+ const submitButtonLabel = submitButtonLabelProp ?? t("neetoatoms.alert.continue", "Continue");
63
+ const cancelButtonLabel = cancelButtonLabelProp ?? t("neetoatoms.alert.cancel", "Cancel");
64
+ const baseId = React.useId();
65
+ const titleId = `alert-title-${baseId}`;
66
+ const messageId = `alert-message-${baseId}`;
67
+ const submitButtonRef = React.useRef(null);
68
+ const cancelButtonRef = React.useRef(null);
69
+ const handleOpenChange = (open) => {
70
+ if (!open)
71
+ onClose();
72
+ };
73
+ const handleInteractOutside = (e) => {
74
+ if (!closeOnOutsideClick)
75
+ e.preventDefault();
76
+ };
77
+ const handleEscapeKeyDown = (e) => {
78
+ if (!closeOnEsc)
79
+ e.preventDefault();
80
+ };
81
+ const handleOpenAutoFocus = (e) => {
82
+ // Custom focus ref takes highest priority
83
+ if (initialFocusRef?.current) {
84
+ e.preventDefault();
85
+ initialFocusRef.current.focus();
86
+ }
87
+ else if (initialFocusElement === "submit" && submitButtonRef.current) {
88
+ e.preventDefault();
89
+ submitButtonRef.current.focus();
90
+ }
91
+ else if (initialFocusElement === "cancel" && cancelButtonRef.current) {
92
+ e.preventDefault();
93
+ cancelButtonRef.current.focus();
94
+ }
95
+ onOpenAutoFocusProp?.(e);
96
+ };
97
+ const handleCloseAutoFocus = (e) => {
98
+ onCloseAutoFocusProp?.(e);
99
+ };
100
+ 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(components_Button.Button, { ref: cancelButtonRef, variant: "outline", label: cancelButtonLabel, onClick: onClose, "data-testid": "alert-cancel-button" })), jsxRuntime.jsx(components_Button.Button, { ref: submitButtonRef, variant: STYLE_VARIANT_MAP[style], label: submitButtonLabel, loading: isSubmitting, disabled: isSubmitting || !isOpen, onClick: onSubmit, "data-testid": "alert-submit-button" })] })] }) }));
101
+ });
102
+ Alert.displayName = "Alert";
103
+
104
+ exports.Alert = Alert;
105
+ //# sourceMappingURL=Alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.js","sources":["../../../../src/components/Alert.tsx"],"sourcesContent":["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\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype AlertStyle = \"danger\" | \"warning\";\ntype 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\n// ---------------------------------------------------------------------------\n// Size mapping\n// ---------------------------------------------------------------------------\n\nconst 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\n// ---------------------------------------------------------------------------\n// Style to variant mapping\n// ---------------------------------------------------------------------------\n\nconst STYLE_VARIANT_MAP: Record<AlertStyle, \"destructive\" | \"default\"> = {\n danger: \"destructive\",\n warning: \"default\",\n};\n\n// ---------------------------------------------------------------------------\n// Component\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmFA;AACA;AACA;AAEA,MAAM,cAAc,GAA8B;AAChD,IAAA,KAAK,EAAE,aAAa;AACpB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,KAAK,EAAE,aAAa;CACrB;AAED;AACA;AACA;AAEA,MAAM,iBAAiB,GAAkD;AACvE,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,OAAO,EAAE,SAAS;CACnB;AAED;AACA;AACA;AAEA,MAAM,KAAK,GAAGA,gBAAU,CACtB,CACE,EACE,IAAI,GAAG,QAAQ,EACf,MAAM,GAAG,KAAK,EACd,YAAY,GAAG,KAAK,EACpB,SAAS,EACT,UAAU,GAAG,IAAI,EACjB,WAAW,GAAG,IAAI,EAClB,iBAAiB,EACjB,mBAAmB,GAAG,IAAI,EAC1B,OAAO,GAAG,MAAK,EAAE,CAAC,EAClB,QAAQ,GAAG,MAAK,EAAE,CAAC,EACnB,KAAK,GAAG,EAAE,EACV,OAAO,GAAG,EAAE,EACZ,iBAAiB,EAAE,qBAAqB,EACxC,iBAAiB,EAAE,qBAAqB,EACxC,gBAAgB,GAAG,KAAK,EACxB,KAAK,GAAG,QAAQ,EAChB,eAAe,EACf,mBAAmB,EACnB,KAAK,EACL,WAAW;AACX;AACA,eAAe,EAAE,mBAAmB,EACpC,gBAAgB,EAAE,oBAAoB,EACtC,GAAG,UAAU,EACd,EACD,GAAG,KACD;AACF,IAAA,MAAM,EAAE,CAAC,EAAE,GAAGC,2BAAc,EAAE;IAC9B,MAAM,iBAAiB,GACrB,qBAAqB,IAAI,CAAC,CAAC,2BAA2B,EAAE,UAAU,CAAC;IACrE,MAAM,iBAAiB,GACrB,qBAAqB,IAAI,CAAC,CAAC,yBAAyB,EAAE,QAAQ,CAAC;AACjE,IAAA,MAAM,MAAM,GAAGC,WAAK,EAAE;AACtB,IAAA,MAAM,OAAO,GAAG,CAAA,YAAA,EAAe,MAAM,EAAE;AACvC,IAAA,MAAM,SAAS,GAAG,CAAA,cAAA,EAAiB,MAAM,EAAE;AAC3C,IAAA,MAAM,eAAe,GAAGC,YAAM,CAAoB,IAAI,CAAC;AACvD,IAAA,MAAM,eAAe,GAAGA,YAAM,CAAoB,IAAI,CAAC;AAEvD,IAAA,MAAM,gBAAgB,GAAG,CAAC,IAAa,KAAI;AACzC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,EAAE;AACtB,IAAA,CAAC;AAED,IAAA,MAAM,qBAAqB,GAAG,CAAC,CAAQ,KAAI;AACzC,QAAA,IAAI,CAAC,mBAAmB;YAAE,CAAC,CAAC,cAAc,EAAE;AAC9C,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAgB,KAAI;AAC/C,QAAA,IAAI,CAAC,UAAU;YAAE,CAAC,CAAC,cAAc,EAAE;AACrC,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAQ,KAAI;;AAEvC,QAAA,IAAI,eAAe,EAAE,OAAO,EAAE;YAC5B,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;QACjC;aAAO,IAAI,mBAAmB,KAAK,QAAQ,IAAI,eAAe,CAAC,OAAO,EAAE;YACtE,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;QACjC;aAAO,IAAI,mBAAmB,KAAK,QAAQ,IAAI,eAAe,CAAC,OAAO,EAAE;YACtE,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;QACjC;AACA,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,CAAQ,KAAI;AACxC,QAAA,oBAAoB,GAAG,CAAC,CAAC;AAC3B,IAAA,CAAC;IAED,QACEC,eAACC,wBAAM,EAAA,EACL,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EAAA,QAAA,EAExBC,eAAA,CAACC,+BAAa,EAAA,EACZ,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,aAAa,EAAA,iBAAA,EACD,KAAK,GAAG,OAAO,GAAG,SAAS,EAAA,kBAAA,EAC1B,OAAO,GAAG,SAAS,GAAG,SAAS,EACjD,eAAe,EAAE,WAAW,EAC5B,gBAAgB,EAAE,iBAAiB,EACnC,iBAAiB,EAAE,qBAAqB,EACxC,eAAe,EAAE,mBAAmB,EACpC,eAAe,EAAE,mBAAmB,EACpC,gBAAgB,EAAE,oBAAoB,EACtC,SAAS,EAAEC,QAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,EAAA,aAAA,EAClC,WAAW,KACnB,UAAU,EAAA,QAAA,EAAA,CAEdF,gBAACG,8BAAY,EAAA,EAAA,QAAA,EAAA,CACXL,cAAA,CAACM,6BAAW,EAAA,EACV,EAAE,EAAE,OAAO,EAAA,aAAA,EACC,aAAa,EACzB,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAEjC,KAAK,EAAA,CACM,EACb,OAAO,KACNN,eAACO,mCAAiB,EAAA,EAAC,EAAE,EAAE,SAAS,EAAA,aAAA,EAAc,eAAe,EAAA,QAAA,EAC1D,OAAO,GACU,CACrB,CAAA,EAAA,CACY,EACfL,eAAA,CAACM,8BAAY,eACV,CAAC,gBAAgB,KAChBR,cAAA,CAACS,wBAAM,EAAA,EACL,GAAG,EAAE,eAAe,EACpB,OAAO,EAAC,SAAS,EACjB,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,OAAO,EAAA,aAAA,EACJ,qBAAqB,GACjC,CACH,EACDT,eAACS,wBAAM,EAAA,EACL,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,EACjC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,YAAY,IAAI,CAAC,MAAM,EACjC,OAAO,EAAE,QAAQ,EAAA,aAAA,EACL,qBAAqB,GACjC,CAAA,EAAA,CACW,CAAA,EAAA,CACD,EAAA,CACT;AAEb,CAAC;AAGH,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
@@ -0,0 +1,75 @@
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
+ require('../index-CGUGhyIp.js');
9
+ require('../index-lWVw05cs.js');
10
+ require('../index-CCdG4z4E.js');
11
+ require('../index-DMbj7vXd.js');
12
+ require('react-dom');
13
+ require('../index-D-iDn9RI.js');
14
+ require('../index-DnKJmaCq.js');
15
+ require('../index-BrpkRQoS.js');
16
+ require('../tooltip-C-568jEL.js');
17
+ require('../index-COPkC3I5.js');
18
+ require('../index-Bvu9MiFi.js');
19
+ require('../index-BwAq9ba8.js');
20
+ require('../index-C9ICrOhM.js');
21
+ require('../floating-ui.react-dom-B4Aw6O7R.js');
22
+ require('../index-Bf0WsHta.js');
23
+ require('../index-Df-Ffa3s.js');
24
+ require('../index-DcCSSgb7.js');
25
+ require('../index-CyrAgb4H.js');
26
+ require('../index-CB9xFokC.js');
27
+
28
+ // ---------------------------------------------------------------------------
29
+ // Helpers
30
+ // ---------------------------------------------------------------------------
31
+ const STATUS_COLOR_MAP = {
32
+ online: "bg-emerald-500 dark:bg-emerald-400",
33
+ idle: "bg-amber-500 dark:bg-amber-400",
34
+ offline: "bg-gray-400 dark:bg-gray-500",
35
+ };
36
+ const SIDE_MAP = {
37
+ top: "top",
38
+ bottom: "bottom",
39
+ left: "left",
40
+ right: "right",
41
+ auto: "bottom",
42
+ };
43
+ const XL_CLASSES = "data-[size=lg]:size-16 [&>[data-slot=avatar-badge]]:size-4 [&>[data-slot=avatar-fallback]]:text-lg";
44
+ function getInitials(name) {
45
+ if (!name)
46
+ return "";
47
+ return name
48
+ .split(/\s+/)
49
+ .slice(0, 2)
50
+ .map(word => word.charAt(0).toUpperCase())
51
+ .join("");
52
+ }
53
+ // ---------------------------------------------------------------------------
54
+ // Component
55
+ // ---------------------------------------------------------------------------
56
+ const Avatar = React.forwardRef(({ user, status, showTooltip = false, tooltipProps, size = "default", className, ...otherProps }, ref) => {
57
+ const initials = getInitials(user?.name);
58
+ const isXl = size === "xl";
59
+ const primitiveSize = isXl ? "lg" : size;
60
+ 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]) })] }));
61
+ const tooltipContent = tooltipProps?.content ?? (showTooltip ? user?.name : null);
62
+ if (tooltipContent) {
63
+ const side = SIDE_MAP[tooltipProps?.position ?? "auto"] ?? "bottom";
64
+ 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 })] }) }));
65
+ }
66
+ return avatarElement;
67
+ });
68
+ Avatar.displayName = "Avatar";
69
+ const AvatarNamespace = Object.assign(Avatar, {
70
+ Group: primitives_Avatar.AvatarGroup,
71
+ GroupCount: primitives_Avatar.AvatarGroupCount,
72
+ });
73
+
74
+ exports.Avatar = AvatarNamespace;
75
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sources":["../../../../src/components/Avatar.tsx"],"sourcesContent":["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\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\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\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst 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\nconst 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\nconst XL_CLASSES =\n \"data-[size=lg]:size-16 [&>[data-slot=avatar-badge]]:size-4 [&>[data-slot=avatar-fallback]]:text-lg\";\n\nfunction 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\n// ---------------------------------------------------------------------------\n// Component\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":"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"}
@@ -0,0 +1,73 @@
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
+ require('../index-BZhTddX0.js');
11
+ require('../index-DuNgWCXZ.js');
12
+ require('../index-D-iDn9RI.js');
13
+ require('../createLucideIcon-D0tRgV6l.js');
14
+
15
+ // ---------------------------------------------------------------------------
16
+ // Size config
17
+ // ---------------------------------------------------------------------------
18
+ const SIZE_CONFIG = {
19
+ sm: {
20
+ iconPl: "pl-1",
21
+ iconPr: "pr-1",
22
+ dismissPr: "pr-0.5",
23
+ btnSize: "size-3",
24
+ iconSize: "size-2",
25
+ },
26
+ default: {
27
+ iconPl: "pl-1.5",
28
+ iconPr: "pr-1.5",
29
+ dismissPr: "pr-1",
30
+ btnSize: "size-3.5",
31
+ iconSize: "size-2.5",
32
+ },
33
+ lg: {
34
+ iconPl: "pl-2",
35
+ iconPr: "pr-2",
36
+ dismissPr: "pr-1",
37
+ btnSize: "size-4.5",
38
+ iconSize: "size-3",
39
+ },
40
+ };
41
+ // ---------------------------------------------------------------------------
42
+ // Indicator colors
43
+ // ---------------------------------------------------------------------------
44
+ const INDICATOR_COLORS = {
45
+ default: "bg-primary",
46
+ secondary: "bg-muted-foreground",
47
+ destructive: "bg-destructive",
48
+ blue: "bg-blue-600",
49
+ green: "bg-green-600",
50
+ amber: "bg-amber-400",
51
+ red: "bg-red-600",
52
+ purple: "bg-purple-700",
53
+ pink: "bg-pink-600",
54
+ teal: "bg-teal-600",
55
+ gray: "bg-gray-400",
56
+ };
57
+ // ---------------------------------------------------------------------------
58
+ // Component
59
+ // ---------------------------------------------------------------------------
60
+ const Badge = React.forwardRef(({ variant = "default", size = "default", label, icon, iconPosition = "left", indicator, onDismiss, disabled = false, className, asChild = false, children, ...otherProps }, ref) => {
61
+ const { t } = reactI18next.useTranslation();
62
+ if (asChild) {
63
+ return (jsxRuntime.jsx(primitives_Badge.Badge, { ref: ref, asChild: true, variant: variant, size: size, className: className, ...otherProps, children: children }));
64
+ }
65
+ const renderLabel = label || children;
66
+ const iconElement = icon ? renderIcon.renderIcon(icon) : null;
67
+ const hasDismiss = !!onDismiss && !disabled;
68
+ 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 }) }))] }));
69
+ });
70
+ Badge.displayName = "Badge";
71
+
72
+ exports.Badge = Badge;
73
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sources":["../../../../src/components/Badge.tsx"],"sourcesContent":["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\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\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\ntype 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\n// ---------------------------------------------------------------------------\n// Size config\n// ---------------------------------------------------------------------------\n\nconst 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\n// ---------------------------------------------------------------------------\n// Indicator colors\n// ---------------------------------------------------------------------------\n\nconst 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\n// ---------------------------------------------------------------------------\n// Component\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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"}
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var utils = require('../utils-CTr7wn5d.js');
6
+ var renderIcon = require('../renderIcon-fLF3odqg.js');
7
+ var primitives_Button = require('../primitives/Button.js');
8
+ var primitives_Spinner = require('../primitives/Spinner.js');
9
+ var primitives_Tooltip = require('../primitives/Tooltip.js');
10
+ require('../button-B8XGl69v.js');
11
+ require('../index-BZhTddX0.js');
12
+ require('../index-DuNgWCXZ.js');
13
+ require('../index-D-iDn9RI.js');
14
+ require('react-i18next');
15
+ require('../loader-circle-Bw7zP2Gn.js');
16
+ require('../createLucideIcon-D0tRgV6l.js');
17
+ require('../tooltip-C-568jEL.js');
18
+ require('../index-COPkC3I5.js');
19
+ require('../index-CGUGhyIp.js');
20
+ require('../index-Bvu9MiFi.js');
21
+ require('../index-DMbj7vXd.js');
22
+ require('react-dom');
23
+ require('../index-lWVw05cs.js');
24
+ require('../index-BwAq9ba8.js');
25
+ require('../index-CCdG4z4E.js');
26
+ require('../index-C9ICrOhM.js');
27
+ require('../floating-ui.react-dom-B4Aw6O7R.js');
28
+ require('../index-Bf0WsHta.js');
29
+ require('../index-Df-Ffa3s.js');
30
+ require('../index-DcCSSgb7.js');
31
+ require('../index-CyrAgb4H.js');
32
+ require('../index-CB9xFokC.js');
33
+
34
+ // ---------------------------------------------------------------------------
35
+ // Mappings
36
+ // ---------------------------------------------------------------------------
37
+ const ICON_ONLY_SIZE_MAP = {
38
+ xs: "icon-xs",
39
+ sm: "icon-sm",
40
+ default: "icon",
41
+ lg: "icon-lg",
42
+ };
43
+ const SPINNER_SIZE_MAP = {
44
+ xs: "size-3",
45
+ sm: "size-3.5",
46
+ default: "size-3.5",
47
+ lg: "size-4",
48
+ icon: "size-3.5",
49
+ "icon-xs": "size-3",
50
+ "icon-sm": "size-3.5",
51
+ "icon-lg": "size-4",
52
+ };
53
+ // Map NeetoUI tooltip `position` values to Radix side values
54
+ const TOOLTIP_SIDE_MAP = {
55
+ top: "top",
56
+ bottom: "bottom",
57
+ left: "left",
58
+ right: "right",
59
+ "top-start": "top",
60
+ "top-end": "top",
61
+ "bottom-start": "bottom",
62
+ "bottom-end": "bottom",
63
+ "left-start": "left",
64
+ "left-end": "left",
65
+ "right-start": "right",
66
+ "right-end": "right",
67
+ };
68
+ // ---------------------------------------------------------------------------
69
+ // Component
70
+ // ---------------------------------------------------------------------------
71
+ const Button = React.forwardRef(({ variant = "default", size = "default", label, icon = null, iconPosition = "right", loading = false, disabled = false, onClick, to, href, type = "button", fullWidth = false, className, tooltipProps = null, asChild = false, children, ...otherProps }, ref) => {
72
+ const isIconSize = size.startsWith("icon");
73
+ const renderLabel = isIconSize ? null : label || children;
74
+ const isIconOnly = !renderLabel && !!icon;
75
+ const resolvedSize = isIconOnly ? (ICON_ONLY_SIZE_MAP[size] ?? size) : size;
76
+ // --- Loading / disabled state ---
77
+ const isDisabled = disabled || loading;
78
+ // --- Click handler ---
79
+ const handleClick = (e) => {
80
+ if (loading || disabled) {
81
+ e.preventDefault();
82
+ return;
83
+ }
84
+ onClick?.(e);
85
+ };
86
+ // --- Icon elements ---
87
+ const iconElement = icon ? renderIcon.renderIcon(icon) : null;
88
+ // --- Build the inner content ---
89
+ const buttonContent = (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [loading && (jsxRuntime.jsx("span", { className: "absolute inset-0 flex items-center justify-center", children: jsxRuntime.jsx(primitives_Spinner.Spinner, { "aria-hidden": "true", className: SPINNER_SIZE_MAP[resolvedSize] }) })), jsxRuntime.jsxs("span", { className: utils.cn("inline-flex items-center gap-1.5", loading && "invisible"), children: [iconPosition === "left" && iconElement && (jsxRuntime.jsx("span", { "data-icon": "inline-start", children: iconElement })), renderLabel && jsxRuntime.jsx("span", { children: renderLabel }), iconPosition === "right" && iconElement && (jsxRuntime.jsx("span", { "data-icon": "inline-end", children: iconElement }))] })] }));
90
+ // --- Merged className ---
91
+ const mergedClassName = utils.cn(fullWidth && "w-full", loading && "relative pointer-events-none", className);
92
+ // --- Determine render element ---
93
+ let buttonElement;
94
+ if (asChild) {
95
+ buttonElement = (jsxRuntime.jsx(primitives_Button.Button, { ref: ref, asChild: true, variant: variant, size: resolvedSize, className: mergedClassName, disabled: isDisabled, ...otherProps, children: children }));
96
+ }
97
+ else if (!disabled && to) {
98
+ buttonElement = (jsxRuntime.jsx(primitives_Button.Button, { asChild: true, variant: variant, size: resolvedSize, className: mergedClassName, disabled: isDisabled, ...otherProps, children: jsxRuntime.jsx("a", { ref: ref, href: to, onClick: handleClick, children: buttonContent }) }));
99
+ }
100
+ else if (!disabled && href) {
101
+ buttonElement = (jsxRuntime.jsx(primitives_Button.Button, { asChild: true, variant: variant, size: resolvedSize, className: mergedClassName, disabled: isDisabled, ...otherProps, children: jsxRuntime.jsx("a", { ref: ref, href: href, onClick: handleClick, children: buttonContent }) }));
102
+ }
103
+ else {
104
+ buttonElement = (jsxRuntime.jsx(primitives_Button.Button, { ref: ref, type: type, variant: variant, size: resolvedSize, className: mergedClassName, disabled: isDisabled, onClick: handleClick, ...otherProps, children: buttonContent }));
105
+ }
106
+ // --- Tooltip wrapper ---
107
+ if (tooltipProps) {
108
+ const { content, position, disabled: tooltipDisabled } = tooltipProps;
109
+ if (tooltipDisabled || !content) {
110
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: buttonElement });
111
+ }
112
+ const side = position ? TOOLTIP_SIDE_MAP[position] : undefined;
113
+ // Wrap disabled buttons in a span so tooltip still triggers
114
+ const triggerContent = isDisabled ? (jsxRuntime.jsx("span", { className: "inline-flex", children: buttonElement })) : (buttonElement);
115
+ return (jsxRuntime.jsx(primitives_Tooltip.TooltipProvider, { children: jsxRuntime.jsxs(primitives_Tooltip.Tooltip, { children: [jsxRuntime.jsx(primitives_Tooltip.TooltipTrigger, { asChild: true, children: triggerContent }), jsxRuntime.jsx(primitives_Tooltip.TooltipContent, { side: side, children: content })] }) }));
116
+ }
117
+ return jsxRuntime.jsx(jsxRuntime.Fragment, { children: buttonElement });
118
+ });
119
+ Button.displayName = "Button";
120
+
121
+ exports.Button = Button;
122
+ //# sourceMappingURL=Button.js.map