@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,52 @@
1
+ import type React from "react";
2
+ import type { ComboboxContent } from "src/primitives/Combobox";
3
+ import type { OptionBase } from "./shared.types";
4
+ import type { MultiSelectOption } from "./MultiSelect.types";
5
+ export interface DropdownPassthroughProps {
6
+ resolvedOptions: MultiSelectOption[];
7
+ flatOptionsMap: Map<string, OptionBase>;
8
+ isGrouped: boolean;
9
+ isLoading: boolean;
10
+ loadingMessage: string;
11
+ emptyMessage: string;
12
+ showCreateOption: boolean;
13
+ hasMoreLazy: boolean;
14
+ loaderCallbackRef: (node: HTMLDivElement | null) => void;
15
+ }
16
+ export interface MultiSelectComboboxProps {
17
+ name?: string;
18
+ id: string;
19
+ effectiveItems?: string[] | {
20
+ label: string;
21
+ items: string[];
22
+ }[];
23
+ labelForValue: (val: string) => string;
24
+ isSearchable: boolean;
25
+ isAsync: boolean;
26
+ isCreatable: boolean;
27
+ creatableFilter: (v: string, q: string, fn?: (v: string) => string) => boolean;
28
+ isControlled: boolean;
29
+ valueProp?: string[];
30
+ defaultValue?: string[];
31
+ selectedValues: string[];
32
+ handleValueChange: (...args: unknown[]) => void;
33
+ handleInputValueChange: (...args: unknown[]) => void;
34
+ onOpenChange?: (open: boolean) => void;
35
+ isDisabled: boolean;
36
+ autoHighlight: boolean;
37
+ required: boolean;
38
+ sizeConfig: {
39
+ chips: string;
40
+ input: string;
41
+ chip: string;
42
+ };
43
+ error: string;
44
+ chipsClassName?: string;
45
+ placeholder: string;
46
+ hideChipRemove: boolean;
47
+ ariaDescribedBy?: string;
48
+ testIdPrefix?: string;
49
+ contentProps?: Omit<React.ComponentProps<typeof ComboboxContent>, "anchor" | "children">;
50
+ dropdownProps: DropdownPassthroughProps;
51
+ children?: React.ReactNode;
52
+ }
@@ -0,0 +1,9 @@
1
+ import type React from "react";
2
+ import type { DropdownPassthroughProps } from "./MultiSelectCombobox.types";
3
+ interface MultiSelectDropdownProps extends DropdownPassthroughProps {
4
+ labelForValue: (val: string) => string;
5
+ testIdPrefix?: string;
6
+ children?: React.ReactNode;
7
+ }
8
+ export declare function MultiSelectDropdown({ resolvedOptions, flatOptionsMap, isGrouped, isLoading, loadingMessage, emptyMessage, showCreateOption, labelForValue, testIdPrefix, hasMoreLazy, loaderCallbackRef, children, }: MultiSelectDropdownProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,36 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { ComboboxList, ComboboxEmpty, ComboboxCollection, ComboboxGroup, ComboboxLabel } from '../primitives/Combobox.js';
3
+ import { Spinner } from '../primitives/Spinner.js';
4
+ import { OptionItem } from './OptionItem.js';
5
+ import 'react';
6
+ import '../utils-DdHUxIdC.js';
7
+ import '../button-COIbN8dg.js';
8
+ import '../index-D7Zy7P05.js';
9
+ import '../index-CfriMyrd.js';
10
+ import '../index-BtkPdosV.js';
11
+ import '../input-group-ytECR3Hw.js';
12
+ import '../input-GLCCE2kT.js';
13
+ import '../textarea-BSZwxzjQ.js';
14
+ import '../x-_o2T3n6D.js';
15
+ import '../createLucideIcon-C8ycilSN.js';
16
+ import '../check-Cpkv29p1.js';
17
+ import '../chevron-down-BNi0ntys.js';
18
+ import '../with-selector--fY1NrB9.js';
19
+ import '../index-CSMSzzKM.js';
20
+ import 'react-dom';
21
+ import '../floating-ui.react-dom-CcGbtPEK.js';
22
+ import '../index-DZXbzIgC.js';
23
+ import 'react-i18next';
24
+ import '../loader-circle-DycHUAWN.js';
25
+ import '../useCreatableItems-B0seQA1_.js';
26
+ import './shared.js';
27
+
28
+ function MultiSelectDropdown({ resolvedOptions, flatOptionsMap, isGrouped, isLoading, loadingMessage, emptyMessage, showCreateOption, labelForValue, testIdPrefix, hasMoreLazy, loaderCallbackRef, children, }) {
29
+ return (jsxs(ComboboxList, { ...(testIdPrefix
30
+ ? { "data-testid": `${testIdPrefix}-select-menu` }
31
+ : {}), children: [isLoading && (jsx("div", { className: "flex w-full justify-center py-2 text-center text-sm text-muted-foreground", children: loadingMessage })), !isLoading && !showCreateOption && (jsx(ComboboxEmpty, { children: emptyMessage })), children ??
32
+ (resolvedOptions.length > 0 || showCreateOption ? (isGrouped ? (jsx(ComboboxCollection, { children: (group) => (jsxs(ComboboxGroup, { items: group.items, children: [group.label && jsx(ComboboxLabel, { children: group.label }), jsx(ComboboxCollection, { children: (val) => (jsx(OptionItem, { val: val, flatOptionsMap: flatOptionsMap, labelForValue: labelForValue, testIdPrefix: testIdPrefix }, val)) })] }, group.label || "__create__")) })) : (jsx(ComboboxCollection, { children: (val) => (jsx(OptionItem, { val: val, flatOptionsMap: flatOptionsMap, labelForValue: labelForValue, testIdPrefix: testIdPrefix }, val)) }))) : null), hasMoreLazy && (jsx("div", { ref: loaderCallbackRef, className: "flex w-full items-center justify-center py-3", "data-testid": testIdPrefix ? `${testIdPrefix}-lazy-loader` : "lazy-loader", children: jsx(Spinner, {}) }))] }));
33
+ }
34
+
35
+ export { MultiSelectDropdown };
36
+ //# sourceMappingURL=MultiSelectDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectDropdown.js","sources":["../../src/components/MultiSelectDropdown.tsx"],"sourcesContent":["import type React from \"react\";\n\nimport {\n ComboboxList,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n} from \"src/primitives/Combobox\";\nimport { Spinner } from \"src/primitives/Spinner\";\nimport { OptionItem } from \"./OptionItem\";\nimport type { DropdownPassthroughProps } from \"./MultiSelectCombobox.types\";\n\ninterface MultiSelectDropdownProps extends DropdownPassthroughProps {\n labelForValue: (val: string) => string;\n testIdPrefix?: string;\n children?: React.ReactNode;\n}\n\nexport function MultiSelectDropdown({\n resolvedOptions,\n flatOptionsMap,\n isGrouped,\n isLoading,\n loadingMessage,\n emptyMessage,\n showCreateOption,\n labelForValue,\n testIdPrefix,\n hasMoreLazy,\n loaderCallbackRef,\n children,\n}: MultiSelectDropdownProps) {\n return (\n <ComboboxList\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-menu` }\n : {})}\n >\n {isLoading && (\n <div className=\"flex w-full justify-center py-2 text-center text-sm text-muted-foreground\">\n {loadingMessage}\n </div>\n )}\n {!isLoading && !showCreateOption && (\n <ComboboxEmpty>{emptyMessage}</ComboboxEmpty>\n )}\n {children ??\n (resolvedOptions.length > 0 || showCreateOption ? (\n isGrouped ? (\n <ComboboxCollection>\n {(group: { label: string; items: string[] }) => (\n <ComboboxGroup\n key={group.label || \"__create__\"}\n items={group.items}\n >\n {group.label && <ComboboxLabel>{group.label}</ComboboxLabel>}\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n labelForValue={labelForValue}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n </ComboboxGroup>\n )}\n </ComboboxCollection>\n ) : (\n <ComboboxCollection>\n {(val: string) => (\n <OptionItem\n key={val}\n val={val}\n flatOptionsMap={flatOptionsMap}\n labelForValue={labelForValue}\n testIdPrefix={testIdPrefix}\n />\n )}\n </ComboboxCollection>\n )\n ) : null)}\n {hasMoreLazy && (\n <div\n ref={loaderCallbackRef}\n className=\"flex w-full items-center justify-center py-3\"\n data-testid={\n testIdPrefix ? `${testIdPrefix}-lazy-loader` : \"lazy-loader\"\n }\n >\n <Spinner />\n </div>\n )}\n </ComboboxList>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBM,SAAU,mBAAmB,CAAC,EAClC,eAAe,EACf,cAAc,EACd,SAAS,EACT,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,QAAQ,GACiB,EAAA;AACzB,IAAA,QACEA,IAAA,CAAC,YAAY,EAAA,EAAA,IACN;AACH,cAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,cAAc;AAChD,cAAE,EAAE,CAAC,EAAA,QAAA,EAAA,CAEN,SAAS,KACRC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,2EAA2E,EAAA,QAAA,EACvF,cAAc,EAAA,CACX,CACP,EACA,CAAC,SAAS,IAAI,CAAC,gBAAgB,KAC9BA,GAAA,CAAC,aAAa,EAAA,EAAA,QAAA,EAAE,YAAY,EAAA,CAAiB,CAC9C,EACA,QAAQ;AACP,iBAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,IAC7C,SAAS,IACPA,GAAA,CAAC,kBAAkB,EAAA,EAAA,QAAA,EAChB,CAAC,KAAyC,MACzCD,KAAC,aAAa,EAAA,EAEZ,KAAK,EAAE,KAAK,CAAC,KAAK,aAEjB,KAAK,CAAC,KAAK,IAAIC,GAAA,CAAC,aAAa,EAAA,EAAA,QAAA,EAAE,KAAK,CAAC,KAAK,EAAA,CAAiB,EAC5DA,IAAC,kBAAkB,EAAA,EAAA,QAAA,EAChB,CAAC,GAAW,MACXA,GAAA,CAAC,UAAU,IAET,GAAG,EAAE,GAAG,EACR,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAAA,EAJrB,GAAG,CAKR,CACH,EAAA,CACkB,KAdhB,KAAK,CAAC,KAAK,IAAI,YAAY,CAelB,CACjB,EAAA,CACkB,KAErBA,GAAA,CAAC,kBAAkB,EAAA,EAAA,QAAA,EAChB,CAAC,GAAW,MACXA,GAAA,CAAC,UAAU,EAAA,EAET,GAAG,EAAE,GAAG,EACR,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAAA,EAJrB,GAAG,CAKR,CACH,EAAA,CACkB,CACtB,IACC,IAAI,CAAC,EACV,WAAW,KACVA,aACE,GAAG,EAAE,iBAAiB,EACtB,SAAS,EAAC,8CAA8C,EAAA,aAAA,EAEtD,YAAY,GAAG,CAAA,EAAG,YAAY,CAAA,YAAA,CAAc,GAAG,aAAa,EAAA,QAAA,EAG9DA,IAAC,OAAO,EAAA,EAAA,CAAG,GACP,CACP,CAAA,EAAA,CACY;AAEnB;;;;"}
@@ -0,0 +1,9 @@
1
+ import type { OptionBase } from "./shared.types";
2
+ interface OptionItemProps {
3
+ val: string;
4
+ flatOptionsMap: Map<string, OptionBase>;
5
+ labelForValue: (val: string) => string;
6
+ testIdPrefix?: string;
7
+ }
8
+ export declare function OptionItem({ val, flatOptionsMap, labelForValue, testIdPrefix, }: OptionItemProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,32 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { ComboboxItem } from '../primitives/Combobox.js';
3
+ import { C as CREATE_PREFIX } from '../useCreatableItems-B0seQA1_.js';
4
+ import 'react';
5
+ import '../utils-DdHUxIdC.js';
6
+ import '../button-COIbN8dg.js';
7
+ import '../index-D7Zy7P05.js';
8
+ import '../index-CfriMyrd.js';
9
+ import '../index-BtkPdosV.js';
10
+ import '../input-group-ytECR3Hw.js';
11
+ import '../input-GLCCE2kT.js';
12
+ import '../textarea-BSZwxzjQ.js';
13
+ import '../x-_o2T3n6D.js';
14
+ import '../createLucideIcon-C8ycilSN.js';
15
+ import '../check-Cpkv29p1.js';
16
+ import '../chevron-down-BNi0ntys.js';
17
+ import '../with-selector--fY1NrB9.js';
18
+ import '../index-CSMSzzKM.js';
19
+ import 'react-dom';
20
+ import '../floating-ui.react-dom-CcGbtPEK.js';
21
+ import '../index-DZXbzIgC.js';
22
+ import './shared.js';
23
+
24
+ function OptionItem({ val, flatOptionsMap, labelForValue, testIdPrefix, }) {
25
+ return (jsx(ComboboxItem, { value: val, disabled: !val.startsWith(CREATE_PREFIX) &&
26
+ flatOptionsMap.get(val)?.disabled, className: val.startsWith(CREATE_PREFIX) ? "text-primary" : undefined, ...(testIdPrefix
27
+ ? { "data-testid": `${testIdPrefix}-select-option` }
28
+ : {}), children: labelForValue(val) }, val));
29
+ }
30
+
31
+ export { OptionItem };
32
+ //# sourceMappingURL=OptionItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionItem.js","sources":["../../src/components/OptionItem.tsx"],"sourcesContent":["import { ComboboxItem } from \"src/primitives/Combobox\";\nimport { CREATE_PREFIX } from \"src/hooks/useCreatableItems\";\nimport type { OptionBase } from \"./shared.types\";\n\ninterface OptionItemProps {\n val: string;\n flatOptionsMap: Map<string, OptionBase>;\n labelForValue: (val: string) => string;\n testIdPrefix?: string;\n}\n\nexport function OptionItem({\n val,\n flatOptionsMap,\n labelForValue,\n testIdPrefix,\n}: OptionItemProps) {\n return (\n <ComboboxItem\n key={val}\n value={val}\n disabled={\n !val.startsWith(CREATE_PREFIX) &&\n flatOptionsMap.get(val)?.disabled\n }\n className={val.startsWith(CREATE_PREFIX) ? \"text-primary\" : undefined}\n {...(testIdPrefix\n ? { \"data-testid\": `${testIdPrefix}-select-option` }\n : {})}\n >\n {labelForValue(val)}\n </ComboboxItem>\n );\n}\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAWM,SAAU,UAAU,CAAC,EACzB,GAAG,EACH,cAAc,EACd,aAAa,EACb,YAAY,GACI,EAAA;AAChB,IAAA,QACEA,GAAA,CAAC,YAAY,EAAA,EAEX,KAAK,EAAE,GAAG,EACV,QAAQ,EACN,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;YAC9B,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAEnC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,cAAc,GAAG,SAAS,EAAA,IAChE;AACH,cAAE,EAAE,aAAa,EAAE,CAAA,EAAG,YAAY,gBAAgB;AAClD,cAAE,EAAE,CAAC,EAAA,QAAA,EAEN,aAAa,CAAC,GAAG,CAAC,EAAA,EAXd,GAAG,CAYK;AAEnB;;;;"}
@@ -0,0 +1,47 @@
1
+ import React, { type ReactNode } from "react";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ import { HoverCardContent } from "src/primitives/HoverCard";
4
+ type PopoverPosition = "top" | "bottom" | "left" | "right" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end" | "auto";
5
+ declare const popoverVariants: (props?: ({
6
+ variant?: "default" | "primary" | null | undefined;
7
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
+ type PopoverVariant = NonNullable<VariantProps<typeof popoverVariants>["variant"]>;
9
+ /** Radix HoverCard.Content props we forward via ...otherProps. */
10
+ type HoverCardContentProps = React.ComponentProps<typeof HoverCardContent>;
11
+ export interface PopoverProps extends Omit<HoverCardContentProps, "children" | "className" | "side" | "align"> {
12
+ /** Content rendered inside the popover. */
13
+ children?: ReactNode;
14
+ /** The trigger element that opens the popover on hover. */
15
+ trigger?: ReactNode;
16
+ /** Color variant of the popover. */
17
+ variant?: PopoverVariant;
18
+ /** Disable the popover. */
19
+ disabled?: boolean;
20
+ /** Placement of the popover relative to the trigger. */
21
+ position?: PopoverPosition;
22
+ /** Additional CSS class names for the popover content. */
23
+ className?: string;
24
+ /** Whether the popover is open (controlled). */
25
+ open?: boolean;
26
+ /** Callback when open state changes. */
27
+ onOpenChange?: (open: boolean) => void;
28
+ /** Auto-hide after N milliseconds. Use -1 to disable. */
29
+ hideAfter?: number;
30
+ /** Auto-hide the popover when the trigger scrolls out of the viewport. */
31
+ hideOnTargetExit?: boolean;
32
+ /** Radix HoverCard `defaultOpen` prop. */
33
+ defaultOpen?: boolean;
34
+ /** Delay in ms before the popover opens on hover. */
35
+ openDelay?: number;
36
+ /** Delay in ms before the popover closes after hover leaves. */
37
+ closeDelay?: number;
38
+ }
39
+ interface PopoverTitleProps extends React.ComponentProps<"div"> {
40
+ children?: ReactNode;
41
+ className?: string;
42
+ }
43
+ declare const Title: React.ForwardRefExoticComponent<Omit<PopoverTitleProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
44
+ declare const Popover: React.ForwardRefExoticComponent<PopoverProps & React.RefAttributes<HTMLDivElement>> & {
45
+ Title: typeof Title;
46
+ };
47
+ export { Popover };
@@ -0,0 +1,117 @@
1
+ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
+ import React__default, { forwardRef, useState, useCallback, useRef, useEffect } from 'react';
3
+ import { c as cva } from '../index-D7Zy7P05.js';
4
+ import { c as cn } from '../utils-DdHUxIdC.js';
5
+ import { HoverCard, HoverCardTrigger, HoverCardContent } from '../primitives/HoverCard.js';
6
+ import '../index-DNzunGHb.js';
7
+ import '../index-CiyxEyB0.js';
8
+ import '../index-Cor698lu.js';
9
+ import '../index-DOzu5J1s.js';
10
+ import '../index-BtkPdosV.js';
11
+ import '../index-ByEpUy7w.js';
12
+ import '../floating-ui.react-dom-CcGbtPEK.js';
13
+ import 'react-dom';
14
+ import '../index-DhnfW8wQ.js';
15
+ import '../index-CSUSJzOJ.js';
16
+ import '../index-BYZaLNq1.js';
17
+ import '../index-fV_U4ZJM.js';
18
+ import '../index-yFgkK_AM.js';
19
+ import '../index-BNPynZWM.js';
20
+
21
+ // ---------------------------------------------------------------------------
22
+ // Variants
23
+ // ---------------------------------------------------------------------------
24
+ const popoverVariants = cva("flex flex-col gap-2.5", {
25
+ variants: {
26
+ variant: {
27
+ default: "",
28
+ primary: "bg-primary text-primary-foreground ring-0 shadow-lg",
29
+ },
30
+ },
31
+ defaultVariants: {
32
+ variant: "default",
33
+ },
34
+ });
35
+ // ---------------------------------------------------------------------------
36
+ // Position mapping
37
+ // ---------------------------------------------------------------------------
38
+ const SIDE_MAP = {
39
+ top: "top",
40
+ bottom: "bottom",
41
+ left: "left",
42
+ right: "right",
43
+ "top-start": "top",
44
+ "top-end": "top",
45
+ "bottom-start": "bottom",
46
+ "bottom-end": "bottom",
47
+ "left-start": "left",
48
+ "left-end": "left",
49
+ "right-start": "right",
50
+ "right-end": "right",
51
+ auto: "bottom",
52
+ };
53
+ const ALIGN_MAP = {
54
+ top: "center",
55
+ bottom: "center",
56
+ left: "center",
57
+ right: "center",
58
+ "top-start": "start",
59
+ "top-end": "end",
60
+ "bottom-start": "start",
61
+ "bottom-end": "end",
62
+ "left-start": "start",
63
+ "left-end": "end",
64
+ "right-start": "start",
65
+ "right-end": "end",
66
+ auto: "center",
67
+ };
68
+ const Title = forwardRef(({ children, className, ...otherProps }, ref) => (jsx("div", { ref: ref, "data-slot": "popover-title", className: cn("text-sm font-semibold", className), ...otherProps, children: children })));
69
+ Title.displayName = "Popover.Title";
70
+ // ---------------------------------------------------------------------------
71
+ // Component
72
+ // ---------------------------------------------------------------------------
73
+ const Popover = forwardRef(({ children, trigger, variant = "default", disabled = false, position = "auto", className, open: openProp, onOpenChange: onOpenChangeProp, hideAfter = -1, hideOnTargetExit = false, defaultOpen, openDelay = 200, closeDelay = 200,
74
+ // Radix HoverCardContent props forwarded
75
+ ...contentProps }, ref) => {
76
+ // Internal state for uncontrolled mode + hideAfter / hideOnTargetExit
77
+ const [internalOpen, setInternalOpen] = useState(false);
78
+ const isControlled = openProp !== undefined;
79
+ const open = isControlled ? openProp : internalOpen;
80
+ const handleOpenChange = useCallback((next) => {
81
+ if (!isControlled)
82
+ setInternalOpen(next);
83
+ onOpenChangeProp?.(next);
84
+ }, [isControlled, onOpenChangeProp]);
85
+ const triggerRef = useRef(null);
86
+ // Auto-hide after hideAfter ms
87
+ useEffect(() => {
88
+ if (!open || hideAfter <= 0)
89
+ return;
90
+ const timer = setTimeout(() => handleOpenChange(false), hideAfter);
91
+ return () => clearTimeout(timer);
92
+ }, [open, hideAfter, handleOpenChange]);
93
+ // Hide popover when trigger exits viewport
94
+ useEffect(() => {
95
+ if (!hideOnTargetExit || !open || !triggerRef.current)
96
+ return;
97
+ const observer = new IntersectionObserver(([entry]) => {
98
+ if (!entry.isIntersecting)
99
+ handleOpenChange(false);
100
+ });
101
+ observer.observe(triggerRef.current);
102
+ return () => observer.disconnect();
103
+ }, [hideOnTargetExit, open, handleOpenChange]);
104
+ if (disabled) {
105
+ return jsx(Fragment, { children: trigger });
106
+ }
107
+ const side = SIDE_MAP[position] ?? "bottom";
108
+ const align = ALIGN_MAP[position] ?? "center";
109
+ // Wrap non-element trigger in a span
110
+ const triggerElement = React__default.isValidElement(trigger) ? (trigger) : (jsx("span", { children: trigger }));
111
+ return (jsxs(HoverCard, { open: open, onOpenChange: handleOpenChange, defaultOpen: defaultOpen, openDelay: openDelay, closeDelay: closeDelay, children: [jsx(HoverCardTrigger, { ref: triggerRef, asChild: true, children: triggerElement }), jsx(HoverCardContent, { ref: ref, side: side, align: align, className: cn(popoverVariants({ variant }), className), ...contentProps, children: children })] }));
112
+ });
113
+ Popover.displayName = "Popover";
114
+ Popover.Title = Title;
115
+
116
+ export { Popover };
117
+ //# sourceMappingURL=Popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover.js","sources":["../../src/components/Popover.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n type ReactNode,\n} from \"react\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"src/primitives/HoverCard\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype PopoverPosition =\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"left-start\"\n | \"left-end\"\n | \"right-start\"\n | \"right-end\"\n | \"auto\";\n\n// ---------------------------------------------------------------------------\n// Variants\n// ---------------------------------------------------------------------------\n\nconst popoverVariants = cva(\"flex flex-col gap-2.5\", {\n variants: {\n variant: {\n default: \"\",\n primary: \"bg-primary text-primary-foreground ring-0 shadow-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\ntype PopoverVariant = NonNullable<\n VariantProps<typeof popoverVariants>[\"variant\"]\n>;\n\n/** Radix HoverCard.Content props we forward via ...otherProps. */\ntype HoverCardContentProps = React.ComponentProps<typeof HoverCardContent>;\n\nexport interface PopoverProps extends Omit<\n HoverCardContentProps,\n \"children\" | \"className\" | \"side\" | \"align\"\n> {\n /** Content rendered inside the popover. */\n children?: ReactNode;\n /** The trigger element that opens the popover on hover. */\n trigger?: ReactNode;\n /** Color variant of the popover. */\n variant?: PopoverVariant;\n /** Disable the popover. */\n disabled?: boolean;\n /** Placement of the popover relative to the trigger. */\n position?: PopoverPosition;\n /** Additional CSS class names for the popover content. */\n className?: string;\n /** Whether the popover is open (controlled). */\n open?: boolean;\n /** Callback when open state changes. */\n onOpenChange?: (open: boolean) => void;\n /** Auto-hide after N milliseconds. Use -1 to disable. */\n hideAfter?: number;\n /** Auto-hide the popover when the trigger scrolls out of the viewport. */\n hideOnTargetExit?: boolean;\n /** Radix HoverCard `defaultOpen` prop. */\n defaultOpen?: boolean;\n /** Delay in ms before the popover opens on hover. */\n openDelay?: number;\n /** Delay in ms before the popover closes after hover leaves. */\n closeDelay?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Position mapping\n// ---------------------------------------------------------------------------\n\nconst SIDE_MAP: Record<string, \"top\" | \"right\" | \"bottom\" | \"left\"> = {\n top: \"top\",\n bottom: \"bottom\",\n left: \"left\",\n right: \"right\",\n \"top-start\": \"top\",\n \"top-end\": \"top\",\n \"bottom-start\": \"bottom\",\n \"bottom-end\": \"bottom\",\n \"left-start\": \"left\",\n \"left-end\": \"left\",\n \"right-start\": \"right\",\n \"right-end\": \"right\",\n auto: \"bottom\",\n};\n\nconst ALIGN_MAP: Record<string, \"start\" | \"center\" | \"end\"> = {\n top: \"center\",\n bottom: \"center\",\n left: \"center\",\n right: \"center\",\n \"top-start\": \"start\",\n \"top-end\": \"end\",\n \"bottom-start\": \"start\",\n \"bottom-end\": \"end\",\n \"left-start\": \"start\",\n \"left-end\": \"end\",\n \"right-start\": \"start\",\n \"right-end\": \"end\",\n auto: \"center\",\n};\n\n// ---------------------------------------------------------------------------\n// Subcomponents\n// ---------------------------------------------------------------------------\n\ninterface PopoverTitleProps extends React.ComponentProps<\"div\"> {\n children?: ReactNode;\n className?: string;\n}\n\nconst Title = forwardRef<HTMLDivElement, PopoverTitleProps>(\n ({ children, className, ...otherProps }, ref) => (\n <div\n ref={ref}\n data-slot=\"popover-title\"\n className={cn(\"text-sm font-semibold\", className)}\n {...otherProps}\n >\n {children}\n </div>\n )\n);\nTitle.displayName = \"Popover.Title\";\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Popover = forwardRef<HTMLDivElement, PopoverProps>(\n (\n {\n children,\n trigger,\n variant = \"default\",\n disabled = false,\n position = \"auto\",\n className,\n open: openProp,\n onOpenChange: onOpenChangeProp,\n hideAfter = -1,\n hideOnTargetExit = false,\n defaultOpen,\n openDelay = 200,\n closeDelay = 200,\n // Radix HoverCardContent props forwarded\n ...contentProps\n },\n ref\n ) => {\n // Internal state for uncontrolled mode + hideAfter / hideOnTargetExit\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = openProp !== undefined;\n const open = isControlled ? openProp : internalOpen;\n\n const handleOpenChange = useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChangeProp?.(next);\n },\n [isControlled, onOpenChangeProp]\n );\n\n const triggerRef = useRef<HTMLElement | null>(null);\n\n // Auto-hide after hideAfter ms\n useEffect(() => {\n if (!open || hideAfter <= 0) return;\n const timer = setTimeout(() => handleOpenChange(false), hideAfter);\n return () => clearTimeout(timer);\n }, [open, hideAfter, handleOpenChange]);\n\n // Hide popover when trigger exits viewport\n useEffect(() => {\n if (!hideOnTargetExit || !open || !triggerRef.current) return;\n const observer = new IntersectionObserver(([entry]) => {\n if (!entry.isIntersecting) handleOpenChange(false);\n });\n observer.observe(triggerRef.current);\n return () => observer.disconnect();\n }, [hideOnTargetExit, open, handleOpenChange]);\n\n if (disabled) {\n return <>{trigger}</>;\n }\n\n const side = SIDE_MAP[position] ?? \"bottom\";\n const align = ALIGN_MAP[position] ?? \"center\";\n\n // Wrap non-element trigger in a span\n const triggerElement = React.isValidElement(trigger) ? (\n trigger\n ) : (\n <span>{trigger}</span>\n );\n\n return (\n <HoverCard\n open={open}\n onOpenChange={handleOpenChange}\n defaultOpen={defaultOpen}\n openDelay={openDelay}\n closeDelay={closeDelay}\n >\n <HoverCardTrigger\n ref={triggerRef as React.Ref<HTMLAnchorElement>}\n asChild\n >\n {triggerElement}\n </HoverCardTrigger>\n <HoverCardContent\n ref={ref}\n side={side}\n align={align}\n className={cn(popoverVariants({ variant }), className)}\n {...contentProps}\n >\n {children}\n </HoverCardContent>\n </HoverCard>\n );\n }\n) as React.ForwardRefExoticComponent<\n PopoverProps & React.RefAttributes<HTMLDivElement>\n> & {\n Title: typeof Title;\n};\n\nPopover.displayName = \"Popover\";\nPopover.Title = Title;\n\nexport { Popover };\n"],"names":["_jsx","_Fragment","React","_jsxs"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { Progress as PrimitiveProgress } from "src/primitives/Progress";
3
+ export interface ProgressProps extends React.ComponentProps<typeof PrimitiveProgress> {
4
+ /** Custom text to display below the bar (e.g., "3 of 10"). */
5
+ progressValue?: string;
6
+ /** Show percentage text below the bar. */
7
+ showPercentage?: boolean;
8
+ /** Additional CSS class names. */
9
+ className?: string;
10
+ }
11
+ declare const Progress: React.ForwardRefExoticComponent<Omit<ProgressProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ export { Progress };
@@ -0,0 +1,20 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { c as cn } from '../utils-DdHUxIdC.js';
4
+ import { Progress as Progress$1 } from '../primitives/Progress.js';
5
+ import '../index-CiyxEyB0.js';
6
+ import '../index-DhnfW8wQ.js';
7
+ import 'react-dom';
8
+ import '../index-BtkPdosV.js';
9
+
10
+ // ---------------------------------------------------------------------------
11
+ // Component
12
+ // ---------------------------------------------------------------------------
13
+ const Progress = forwardRef(({ progressValue, showPercentage = false, className, value, ...otherProps }, ref) => {
14
+ const displayText = progressValue ?? (showPercentage ? `${value ?? 0}%` : null);
15
+ return (jsxs("div", { className: cn("w-full", className), children: [displayText && (jsx("p", { className: "mb-1.5 text-end text-xs text-muted-foreground", children: displayText })), jsx(Progress$1, { ref: ref, value: value, ...otherProps })] }));
16
+ });
17
+ Progress.displayName = "Progress";
18
+
19
+ export { Progress };
20
+ //# sourceMappingURL=Progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Progress.js","sources":["../../src/components/Progress.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport { Progress as PrimitiveProgress } from \"src/primitives/Progress\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface ProgressProps extends React.ComponentProps<\n typeof PrimitiveProgress\n> {\n /** Custom text to display below the bar (e.g., \"3 of 10\"). */\n progressValue?: string;\n /** Show percentage text below the bar. */\n showPercentage?: boolean;\n /** Additional CSS class names. */\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nconst Progress = forwardRef<HTMLDivElement, ProgressProps>(\n (\n { progressValue, showPercentage = false, className, value, ...otherProps },\n ref\n ) => {\n const displayText =\n progressValue ?? (showPercentage ? `${value ?? 0}%` : null);\n\n return (\n <div className={cn(\"w-full\", className)}>\n {displayText && (\n <p className=\"mb-1.5 text-end text-xs text-muted-foreground\">\n {displayText}\n </p>\n )}\n <PrimitiveProgress ref={ref} value={value} {...otherProps} />\n </div>\n );\n }\n);\n\nProgress.displayName = \"Progress\";\n\nexport { Progress };\n"],"names":["_jsxs","_jsx","PrimitiveProgress"],"mappings":";;;;;;;;;AAoBA;AACA;AACA;AAEA,MAAM,QAAQ,GAAG,UAAU,CACzB,CACE,EAAE,aAAa,EAAE,cAAc,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,EAC1E,GAAG,KACD;AACF,IAAA,MAAM,WAAW,GACf,aAAa,KAAK,cAAc,GAAG,GAAG,KAAK,IAAI,CAAC,CAAA,CAAA,CAAG,GAAG,IAAI,CAAC;AAE7D,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,aACpC,WAAW,KACVC,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,+CAA+C,EAAA,QAAA,EACzD,WAAW,EAAA,CACV,CACL,EACDA,GAAA,CAACC,UAAiB,EAAA,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAA,GAAM,UAAU,EAAA,CAAI,CAAA,EAAA,CACzD;AAEV,CAAC;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
@@ -0,0 +1,32 @@
1
+ import React from "react";
2
+ import { RadioGroup as PrimitiveRadioGroup, RadioGroupItem as PrimitiveRadioGroupItem } from "src/primitives/RadioGroup";
3
+ export interface RadioGroupProps extends Omit<React.ComponentProps<typeof PrimitiveRadioGroup>, "children"> {
4
+ /** Group label displayed above the radio items. */
5
+ label?: string;
6
+ /** Error message displayed below the group. */
7
+ error?: string;
8
+ /** Helper text displayed below the group label. Accepts string or ReactNode. */
9
+ helpText?: React.ReactNode;
10
+ /** Layout orientation. Defaults to "horizontal". */
11
+ orientation?: "horizontal" | "vertical";
12
+ /** Additional class name for the outermost wrapper. */
13
+ className?: string;
14
+ /** RadioGroup.Item children. */
15
+ children?: React.ReactNode;
16
+ }
17
+ interface RadioGroupItemProps extends React.ComponentProps<typeof PrimitiveRadioGroupItem> {
18
+ /** Label displayed next to the radio. */
19
+ label?: string;
20
+ /** Helper text displayed below the item label. Accepts string or ReactNode. */
21
+ helpText?: React.ReactNode;
22
+ /** Radio value (required). */
23
+ value: string;
24
+ /** Additional class name for the item wrapper. */
25
+ className?: string;
26
+ /** Optional id override; auto-generated if omitted. */
27
+ id?: string;
28
+ }
29
+ declare const RadioGroup: React.ForwardRefExoticComponent<Omit<RadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>> & {
30
+ Item: React.ForwardRefExoticComponent<Omit<RadioGroupItemProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
31
+ };
32
+ export { RadioGroup };
@@ -0,0 +1,61 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { forwardRef, useId } from 'react';
3
+ import { c as cn } from '../utils-DdHUxIdC.js';
4
+ import { RadioGroupItem as RadioGroupItem$1, RadioGroup as RadioGroup$1 } from '../primitives/RadioGroup.js';
5
+ import { Label } from '../primitives/Label.js';
6
+ import { FieldDescription, Field, FieldLabel, FieldContent, FieldError } from '../primitives/Field.js';
7
+ import '../index-DNzunGHb.js';
8
+ import '../index-BtkPdosV.js';
9
+ import '../index-CiyxEyB0.js';
10
+ import '../index-DhnfW8wQ.js';
11
+ import 'react-dom';
12
+ import '../index-j_qxDBFl.js';
13
+ import '../index-Dd1i1d2M.js';
14
+ import '../index-zW4GjM5L.js';
15
+ import '../index-DOzu5J1s.js';
16
+ import '../index-CSUSJzOJ.js';
17
+ import '../index-Cor698lu.js';
18
+ import '../index-BA158WEj.js';
19
+ import '../index-BYZaLNq1.js';
20
+ import '../index-30QpKM0j.js';
21
+ import '../index-yFgkK_AM.js';
22
+ import '../label-B4qDF3W1.js';
23
+ import '../index-D7Zy7P05.js';
24
+ import '../separator-BbhgePmX.js';
25
+
26
+ // ---------------------------------------------------------------------------
27
+ // RadioGroup.Item
28
+ // ---------------------------------------------------------------------------
29
+ const RadioGroupItem = forwardRef(({ label, helpText, value, className, id: idProp, ...props }, ref) => {
30
+ const generatedId = useId();
31
+ const id = idProp ?? generatedId;
32
+ const helpTextId = `helpText_${id}`;
33
+ return (jsxs("div", { className: cn("flex gap-2", helpText ? "items-start" : "items-center", className), children: [jsx(RadioGroupItem$1, { ref: ref, id: id, value: value, "aria-describedby": helpText ? helpTextId : undefined, className: helpText ? "mt-0.5" : undefined, ...props }), (label || helpText) && (jsxs("div", { className: "flex flex-col gap-0.5", children: [label && (jsx(Label, { htmlFor: id, className: "cursor-pointer font-normal", children: label })), helpText && (jsx(FieldDescription, { id: helpTextId, children: helpText }))] }))] }));
34
+ });
35
+ RadioGroupItem.displayName = "RadioGroup.Item";
36
+ // ---------------------------------------------------------------------------
37
+ // RadioGroup (root)
38
+ // ---------------------------------------------------------------------------
39
+ const RadioGroupRoot = forwardRef(({ label, error, helpText, orientation = "horizontal", className, disabled, required, children, ...props }, ref) => {
40
+ const generatedId = useId();
41
+ const errorId = `error_${generatedId}`;
42
+ const helpTextId = `helpText_${generatedId}`;
43
+ const hasField = !!(label || error || helpText);
44
+ const radioGroup = (jsx(RadioGroup$1, { ref: ref, disabled: disabled, required: required, "aria-invalid": !!error || undefined, "aria-describedby": [error ? errorId : null, helpText ? helpTextId : null]
45
+ .filter(Boolean)
46
+ .join(" ") || undefined, orientation: orientation, className: cn("data-[orientation=vertical]:grid data-[orientation=vertical]:gap-2 data-[orientation=horizontal]:flex data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:flex-wrap data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-4", !hasField && className), ...props, children: children }));
47
+ if (!hasField) {
48
+ return radioGroup;
49
+ }
50
+ return (jsxs(Field, { "data-disabled": disabled || undefined, "data-invalid": !!error || undefined, className: className, children: [(label || helpText) && (jsxs("div", { children: [label && (jsxs(FieldLabel, { children: [label, required && (jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" }))] })), helpText && (jsx(FieldDescription, { id: helpTextId, children: helpText }))] })), jsxs(FieldContent, { children: [radioGroup, !!error && jsx(FieldError, { id: errorId, children: error })] })] }));
51
+ });
52
+ RadioGroupRoot.displayName = "RadioGroup";
53
+ // ---------------------------------------------------------------------------
54
+ // Compound component
55
+ // ---------------------------------------------------------------------------
56
+ const RadioGroup = Object.assign(RadioGroupRoot, {
57
+ Item: RadioGroupItem,
58
+ });
59
+
60
+ export { RadioGroup };
61
+ //# sourceMappingURL=RadioGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../src/components/RadioGroup.tsx"],"sourcesContent":["import React, { forwardRef, useId } from \"react\";\n\nimport { cn } from \"src/shadcn/lib/utils\";\nimport {\n RadioGroup as PrimitiveRadioGroup,\n RadioGroupItem as PrimitiveRadioGroupItem,\n} from \"src/primitives/RadioGroup\";\nimport { Label } from \"src/primitives/Label\";\nimport {\n Field,\n FieldLabel,\n FieldContent,\n FieldDescription,\n FieldError,\n} from \"src/primitives/Field\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface RadioGroupProps extends Omit<\n React.ComponentProps<typeof PrimitiveRadioGroup>,\n \"children\"\n> {\n /** Group label displayed above the radio items. */\n label?: string;\n /** Error message displayed below the group. */\n error?: string;\n /** Helper text displayed below the group label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Layout orientation. Defaults to \"horizontal\". */\n orientation?: \"horizontal\" | \"vertical\";\n /** Additional class name for the outermost wrapper. */\n className?: string;\n /** RadioGroup.Item children. */\n children?: React.ReactNode;\n}\n\ninterface RadioGroupItemProps extends React.ComponentProps<\n typeof PrimitiveRadioGroupItem\n> {\n /** Label displayed next to the radio. */\n label?: string;\n /** Helper text displayed below the item label. Accepts string or ReactNode. */\n helpText?: React.ReactNode;\n /** Radio value (required). */\n value: string;\n /** Additional class name for the item wrapper. */\n className?: string;\n /** Optional id override; auto-generated if omitted. */\n id?: string;\n}\n\n// ---------------------------------------------------------------------------\n// RadioGroup.Item\n// ---------------------------------------------------------------------------\n\nconst RadioGroupItem = forwardRef<\n React.ComponentRef<typeof PrimitiveRadioGroupItem>,\n RadioGroupItemProps\n>(({ label, helpText, value, className, id: idProp, ...props }, ref) => {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const helpTextId = `helpText_${id}`;\n\n return (\n <div\n className={cn(\n \"flex gap-2\",\n helpText ? \"items-start\" : \"items-center\",\n className\n )}\n >\n <PrimitiveRadioGroupItem\n ref={ref}\n id={id}\n value={value}\n aria-describedby={helpText ? helpTextId : undefined}\n className={helpText ? \"mt-0.5\" : undefined}\n {...props}\n />\n {(label || helpText) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <Label htmlFor={id} className=\"cursor-pointer font-normal\">\n {label}\n </Label>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </div>\n )}\n </div>\n );\n});\n\nRadioGroupItem.displayName = \"RadioGroup.Item\";\n\n// ---------------------------------------------------------------------------\n// RadioGroup (root)\n// ---------------------------------------------------------------------------\n\nconst RadioGroupRoot = forwardRef<\n React.ComponentRef<typeof PrimitiveRadioGroup>,\n RadioGroupProps\n>(\n (\n {\n label,\n error,\n helpText,\n orientation = \"horizontal\",\n className,\n disabled,\n required,\n children,\n ...props\n },\n ref\n ) => {\n const generatedId = useId();\n const errorId = `error_${generatedId}`;\n const helpTextId = `helpText_${generatedId}`;\n\n const hasField = !!(label || error || helpText);\n\n const radioGroup = (\n <PrimitiveRadioGroup\n ref={ref}\n disabled={disabled}\n required={required}\n aria-invalid={!!error || undefined}\n aria-describedby={\n [error ? errorId : null, helpText ? helpTextId : null]\n .filter(Boolean)\n .join(\" \") || undefined\n }\n orientation={orientation}\n className={cn(\n \"data-[orientation=vertical]:grid data-[orientation=vertical]:gap-2 data-[orientation=horizontal]:flex data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:flex-wrap data-[orientation=horizontal]:items-center data-[orientation=horizontal]:gap-4\",\n !hasField && className\n )}\n {...props}\n >\n {children}\n </PrimitiveRadioGroup>\n );\n\n if (!hasField) {\n return radioGroup;\n }\n\n return (\n <Field\n data-disabled={disabled || undefined}\n data-invalid={!!error || undefined}\n className={className}\n >\n {(label || helpText) && (\n <div>\n {label && (\n <FieldLabel>\n {label}\n {required && (\n <span aria-hidden=\"true\" className=\"text-destructive\">\n *\n </span>\n )}\n </FieldLabel>\n )}\n {helpText && (\n <FieldDescription id={helpTextId}>{helpText}</FieldDescription>\n )}\n </div>\n )}\n <FieldContent>\n {radioGroup}\n {!!error && <FieldError id={errorId}>{error}</FieldError>}\n </FieldContent>\n </Field>\n );\n }\n);\n\nRadioGroupRoot.displayName = \"RadioGroup\";\n\n// ---------------------------------------------------------------------------\n// Compound component\n// ---------------------------------------------------------------------------\n\nconst RadioGroup = Object.assign(RadioGroupRoot, {\n Item: RadioGroupItem,\n});\n\nexport { RadioGroup };\n"],"names":["_jsxs","_jsx","PrimitiveRadioGroupItem","PrimitiveRadioGroup"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const SIZE_CONFIG: Record<"small" | "medium" | "large", {
2
+ trigger: string;
3
+ size: "sm" | "default";
4
+ clearBtn: string;
5
+ }>;
@@ -0,0 +1,4 @@
1
+ import type { SelectProps } from "./Select.types";
2
+ export type { SelectProps, SelectOption, SelectOptionBase, SelectOptionGroup, } from "./Select.types";
3
+ declare const Select: import("react").ForwardRefExoticComponent<SelectProps & import("react").RefAttributes<HTMLButtonElement>>;
4
+ export { Select };
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=Select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import type React from "react";
2
+ import type { FieldLabel } from "src/primitives/Field";
3
+ import type { SelectContent } from "src/primitives/Select";
4
+ import type { OptionBase, OptionGroup, Option } from "./shared.types";
5
+ type SelectSize = "small" | "medium" | "large";
6
+ type SelectPosition = "item-aligned" | "popper";
7
+ export type SelectOptionBase = OptionBase;
8
+ export type SelectOptionGroup = OptionGroup;
9
+ export type SelectOption = Option;
10
+ export interface SelectProps {
11
+ /** Unique identifier for the select. Auto-generated if omitted. */
12
+ id?: string;
13
+ /** Name attribute forwarded to the hidden native select. */
14
+ name?: string;
15
+ /** Size of the trigger button. */
16
+ size?: SelectSize;
17
+ /** Label displayed above the select. */
18
+ label?: string;
19
+ /** Error message displayed below the select. */
20
+ error?: string;
21
+ /** Help text displayed below the select. */
22
+ helpText?: React.ReactNode;
23
+ /** Placeholder text when no value is selected. */
24
+ placeholder?: string;
25
+ /** Flat or grouped option list. */
26
+ options?: SelectOption[];
27
+ /** Controlled selected value. */
28
+ value?: string;
29
+ /** Default selected value (uncontrolled). */
30
+ defaultValue?: string;
31
+ /** Callback fired when value changes. */
32
+ onChange?: (value: string) => void;
33
+ /** Disable the select. */
34
+ isDisabled?: boolean;
35
+ /** Show a clear/reset button when a value is selected. */
36
+ isClearable?: boolean;
37
+ /** Mark as required. */
38
+ required?: boolean;
39
+ /** Positioning strategy for the dropdown content. */
40
+ position?: SelectPosition;
41
+ /** Callback fired when the dropdown menu opens. */
42
+ onMenuOpen?: () => void;
43
+ /** Callback fired when the dropdown menu closes. */
44
+ onMenuClose?: () => void;
45
+ /** Custom data-testid prefix for the component tree. */
46
+ dataTestId?: string;
47
+ /** Props forwarded to the FieldLabel. */
48
+ labelProps?: Omit<React.ComponentProps<typeof FieldLabel>, "htmlFor" | "children">;
49
+ /** Props forwarded to the SelectContent. */
50
+ contentProps?: Omit<React.ComponentProps<typeof SelectContent>, "position" | "children">;
51
+ /** Additional CSS class names for the outermost wrapper. */
52
+ className?: string;
53
+ /** Additional CSS class names for the trigger element. */
54
+ triggerClassName?: string;
55
+ /** Children rendered inside the SelectContent (overrides `options`). */
56
+ children?: React.ReactNode;
57
+ }
58
+ export {};
@@ -0,0 +1,18 @@
1
+ import type React from "react";
2
+ import { FieldLabel } from "src/primitives/Field";
3
+ interface SelectFieldWrapperProps {
4
+ id: string;
5
+ label: string;
6
+ error: string;
7
+ helpText: React.ReactNode;
8
+ errorId: string;
9
+ helpTextId: string;
10
+ isDisabled: boolean;
11
+ required: boolean;
12
+ testIdPrefix?: string;
13
+ labelProps?: Omit<React.ComponentProps<typeof FieldLabel>, "htmlFor" | "children">;
14
+ className?: string;
15
+ children: React.ReactNode;
16
+ }
17
+ export declare function SelectFieldWrapper({ id, label, error, helpText, errorId, helpTextId, isDisabled, required, testIdPrefix, labelProps, className, children, }: SelectFieldWrapperProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};