@j2-health/design-system 0.5.0 → 0.5.2

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 (377) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +35 -0
  2. package/dist/_virtual/_rolldown/runtime.js +27 -0
  3. package/dist/index.cjs +118 -113
  4. package/dist/index.js +22 -81
  5. package/dist/src/AppConfigProvider.cjs +22 -11
  6. package/dist/src/AppConfigProvider.cjs.map +1 -1
  7. package/dist/src/AppConfigProvider.js +19 -10
  8. package/dist/src/AppConfigProvider.js.map +1 -1
  9. package/dist/src/appTheme.cjs +239 -266
  10. package/dist/src/appTheme.cjs.map +1 -1
  11. package/dist/src/appTheme.js +240 -267
  12. package/dist/src/appTheme.js.map +1 -1
  13. package/dist/src/components/alert/Alert.cjs +81 -103
  14. package/dist/src/components/alert/Alert.cjs.map +1 -1
  15. package/dist/src/components/alert/Alert.js +78 -86
  16. package/dist/src/components/alert/Alert.js.map +1 -1
  17. package/dist/src/components/alert/Alert.module.css.cjs +7 -8
  18. package/dist/src/components/alert/Alert.module.css.cjs.map +1 -1
  19. package/dist/src/components/alert/Alert.module.css.js +7 -9
  20. package/dist/src/components/alert/Alert.module.css.js.map +1 -1
  21. package/dist/src/components/barchart/BarChart.cjs +123 -151
  22. package/dist/src/components/barchart/BarChart.cjs.map +1 -1
  23. package/dist/src/components/barchart/BarChart.d.ts +1 -1
  24. package/dist/src/components/barchart/BarChart.js +121 -149
  25. package/dist/src/components/barchart/BarChart.js.map +1 -1
  26. package/dist/src/components/barchart/chart.module.css.cjs +7 -8
  27. package/dist/src/components/barchart/chart.module.css.cjs.map +1 -1
  28. package/dist/src/components/barchart/chart.module.css.js +7 -9
  29. package/dist/src/components/barchart/chart.module.css.js.map +1 -1
  30. package/dist/src/components/barchart/index.js +3 -0
  31. package/dist/src/components/breadcrumb/Breadcrumb.cjs +23 -36
  32. package/dist/src/components/breadcrumb/Breadcrumb.cjs.map +1 -1
  33. package/dist/src/components/breadcrumb/Breadcrumb.js +20 -19
  34. package/dist/src/components/breadcrumb/Breadcrumb.js.map +1 -1
  35. package/dist/src/components/bulkActionBar/BulkActionBar.cjs +66 -79
  36. package/dist/src/components/bulkActionBar/BulkActionBar.cjs.map +1 -1
  37. package/dist/src/components/bulkActionBar/BulkActionBar.d.ts +1 -1
  38. package/dist/src/components/bulkActionBar/BulkActionBar.js +63 -78
  39. package/dist/src/components/bulkActionBar/BulkActionBar.js.map +1 -1
  40. package/dist/src/components/button/Button.cjs +16 -18
  41. package/dist/src/components/button/Button.cjs.map +1 -1
  42. package/dist/src/components/button/Button.d.ts +1 -1
  43. package/dist/src/components/button/Button.js +17 -19
  44. package/dist/src/components/button/Button.js.map +1 -1
  45. package/dist/src/components/card/Card.cjs +19 -33
  46. package/dist/src/components/card/Card.cjs.map +1 -1
  47. package/dist/src/components/card/Card.d.ts +1 -1
  48. package/dist/src/components/card/Card.js +17 -33
  49. package/dist/src/components/card/Card.js.map +1 -1
  50. package/dist/src/components/checkbox/Checkbox.cjs +8 -7
  51. package/dist/src/components/checkbox/Checkbox.cjs.map +1 -1
  52. package/dist/src/components/checkbox/Checkbox.d.ts +1 -1
  53. package/dist/src/components/checkbox/Checkbox.js +9 -8
  54. package/dist/src/components/checkbox/Checkbox.js.map +1 -1
  55. package/dist/src/components/checkboxTree/CheckboxTree.cjs +112 -138
  56. package/dist/src/components/checkboxTree/CheckboxTree.cjs.map +1 -1
  57. package/dist/src/components/checkboxTree/CheckboxTree.js +110 -138
  58. package/dist/src/components/checkboxTree/CheckboxTree.js.map +1 -1
  59. package/dist/src/components/checkboxTree/TreeNode.cjs +57 -90
  60. package/dist/src/components/checkboxTree/TreeNode.cjs.map +1 -1
  61. package/dist/src/components/checkboxTree/TreeNode.d.ts +1 -1
  62. package/dist/src/components/checkboxTree/TreeNode.js +57 -90
  63. package/dist/src/components/checkboxTree/TreeNode.js.map +1 -1
  64. package/dist/src/components/checkboxTree/utils.cjs +46 -51
  65. package/dist/src/components/checkboxTree/utils.cjs.map +1 -1
  66. package/dist/src/components/checkboxTree/utils.js +47 -55
  67. package/dist/src/components/checkboxTree/utils.js.map +1 -1
  68. package/dist/src/components/collapse/Collapse.cjs +54 -78
  69. package/dist/src/components/collapse/Collapse.cjs.map +1 -1
  70. package/dist/src/components/collapse/Collapse.js +51 -61
  71. package/dist/src/components/collapse/Collapse.js.map +1 -1
  72. package/dist/src/components/collapse/Collapse.module.css.cjs +11 -10
  73. package/dist/src/components/collapse/Collapse.module.css.cjs.map +1 -1
  74. package/dist/src/components/collapse/Collapse.module.css.js +11 -12
  75. package/dist/src/components/collapse/Collapse.module.css.js.map +1 -1
  76. package/dist/src/components/drawer/Drawer.cjs +26 -38
  77. package/dist/src/components/drawer/Drawer.cjs.map +1 -1
  78. package/dist/src/components/drawer/Drawer.d.ts +1 -1
  79. package/dist/src/components/drawer/Drawer.js +27 -39
  80. package/dist/src/components/drawer/Drawer.js.map +1 -1
  81. package/dist/src/components/dropdown/Dropdown.cjs +54 -54
  82. package/dist/src/components/dropdown/Dropdown.cjs.map +1 -1
  83. package/dist/src/components/dropdown/Dropdown.d.ts +1 -1
  84. package/dist/src/components/dropdown/Dropdown.js +53 -55
  85. package/dist/src/components/dropdown/Dropdown.js.map +1 -1
  86. package/dist/src/components/filterform/FilterGroup.cjs +41 -62
  87. package/dist/src/components/filterform/FilterGroup.cjs.map +1 -1
  88. package/dist/src/components/filterform/FilterGroup.d.ts +1 -1
  89. package/dist/src/components/filterform/FilterGroup.js +38 -61
  90. package/dist/src/components/filterform/FilterGroup.js.map +1 -1
  91. package/dist/src/components/filterform/FilterInput.cjs +169 -233
  92. package/dist/src/components/filterform/FilterInput.cjs.map +1 -1
  93. package/dist/src/components/filterform/FilterInput.js +164 -216
  94. package/dist/src/components/filterform/FilterInput.js.map +1 -1
  95. package/dist/src/components/filterform/FiltersForm.cjs +144 -178
  96. package/dist/src/components/filterform/FiltersForm.cjs.map +1 -1
  97. package/dist/src/components/filterform/FiltersForm.d.ts +1 -1
  98. package/dist/src/components/filterform/FiltersForm.js +140 -176
  99. package/dist/src/components/filterform/FiltersForm.js.map +1 -1
  100. package/dist/src/components/filterform/FiltersForm.module.css.cjs +16 -15
  101. package/dist/src/components/filterform/FiltersForm.module.css.cjs.map +1 -1
  102. package/dist/src/components/filterform/FiltersForm.module.css.js +16 -20
  103. package/dist/src/components/filterform/FiltersForm.module.css.js.map +1 -1
  104. package/dist/src/components/filterform/filterHelpers.cjs +50 -59
  105. package/dist/src/components/filterform/filterHelpers.cjs.map +1 -1
  106. package/dist/src/components/filterform/filterHelpers.js +51 -66
  107. package/dist/src/components/filterform/filterHelpers.js.map +1 -1
  108. package/dist/src/components/filterform/useFilterField.cjs +268 -236
  109. package/dist/src/components/filterform/useFilterField.cjs.map +1 -1
  110. package/dist/src/components/filterform/useFilterField.js +265 -222
  111. package/dist/src/components/filterform/useFilterField.js.map +1 -1
  112. package/dist/src/components/filterform/useFiltersForm.cjs +120 -154
  113. package/dist/src/components/filterform/useFiltersForm.cjs.map +1 -1
  114. package/dist/src/components/filterform/useFiltersForm.js +117 -153
  115. package/dist/src/components/filterform/useFiltersForm.js.map +1 -1
  116. package/dist/src/components/form/Form.cjs +23 -25
  117. package/dist/src/components/form/Form.cjs.map +1 -1
  118. package/dist/src/components/form/Form.d.ts +2 -2
  119. package/dist/src/components/form/Form.js +23 -25
  120. package/dist/src/components/form/Form.js.map +1 -1
  121. package/dist/src/components/form/FormItem.cjs +35 -40
  122. package/dist/src/components/form/FormItem.cjs.map +1 -1
  123. package/dist/src/components/form/FormItem.d.ts +1 -1
  124. package/dist/src/components/form/FormItem.js +35 -40
  125. package/dist/src/components/form/FormItem.js.map +1 -1
  126. package/dist/src/components/form/FormItemFieldContext.cjs +5 -7
  127. package/dist/src/components/form/FormItemFieldContext.cjs.map +1 -1
  128. package/dist/src/components/form/FormItemFieldContext.js +6 -7
  129. package/dist/src/components/form/FormItemFieldContext.js.map +1 -1
  130. package/dist/src/components/form/FormikField.cjs +15 -18
  131. package/dist/src/components/form/FormikField.cjs.map +1 -1
  132. package/dist/src/components/form/FormikField.d.ts +1 -1
  133. package/dist/src/components/form/FormikField.js +14 -17
  134. package/dist/src/components/form/FormikField.js.map +1 -1
  135. package/dist/src/components/icons/index.cjs +21 -26
  136. package/dist/src/components/icons/index.cjs.map +1 -1
  137. package/dist/src/components/icons/index.js +9 -2
  138. package/dist/src/components/icons/index.js.map +1 -1
  139. package/dist/src/components/input/AntdInput.cjs +14 -11
  140. package/dist/src/components/input/AntdInput.cjs.map +1 -1
  141. package/dist/src/components/input/AntdInput.js +13 -10
  142. package/dist/src/components/input/AntdInput.js.map +1 -1
  143. package/dist/src/components/input/AntdSearchInput.cjs +14 -11
  144. package/dist/src/components/input/AntdSearchInput.cjs.map +1 -1
  145. package/dist/src/components/input/AntdSearchInput.js +13 -10
  146. package/dist/src/components/input/AntdSearchInput.js.map +1 -1
  147. package/dist/src/components/input/Input.cjs +28 -33
  148. package/dist/src/components/input/Input.cjs.map +1 -1
  149. package/dist/src/components/input/Input.d.ts +1 -1
  150. package/dist/src/components/input/Input.js +28 -33
  151. package/dist/src/components/input/Input.js.map +1 -1
  152. package/dist/src/components/inputnumber/InputNumber.cjs +45 -45
  153. package/dist/src/components/inputnumber/InputNumber.cjs.map +1 -1
  154. package/dist/src/components/inputnumber/InputNumber.d.ts +1 -1
  155. package/dist/src/components/inputnumber/InputNumber.js +42 -44
  156. package/dist/src/components/inputnumber/InputNumber.js.map +1 -1
  157. package/dist/src/components/inputnumber/InputNumber.module.css.cjs +7 -8
  158. package/dist/src/components/inputnumber/InputNumber.module.css.cjs.map +1 -1
  159. package/dist/src/components/inputnumber/InputNumber.module.css.js +7 -9
  160. package/dist/src/components/inputnumber/InputNumber.module.css.js.map +1 -1
  161. package/dist/src/components/legacyNavMenu/LegacyNavMenu.cjs +72 -50
  162. package/dist/src/components/legacyNavMenu/LegacyNavMenu.cjs.map +1 -1
  163. package/dist/src/components/legacyNavMenu/LegacyNavMenu.js +69 -49
  164. package/dist/src/components/legacyNavMenu/LegacyNavMenu.js.map +1 -1
  165. package/dist/src/components/legacyNavMenu/LegacyNavMenu.module.css.cjs +43 -33
  166. package/dist/src/components/legacyNavMenu/LegacyNavMenu.module.css.cjs.map +1 -1
  167. package/dist/src/components/legacyNavMenu/LegacyNavMenu.module.css.js +40 -47
  168. package/dist/src/components/legacyNavMenu/LegacyNavMenu.module.css.js.map +1 -1
  169. package/dist/src/components/legacyNavMenu/UserProfile.cjs +76 -76
  170. package/dist/src/components/legacyNavMenu/UserProfile.cjs.map +1 -1
  171. package/dist/src/components/legacyNavMenu/UserProfile.js +74 -76
  172. package/dist/src/components/legacyNavMenu/UserProfile.js.map +1 -1
  173. package/dist/src/components/legacyNavMenu/UserProfile.module.css.cjs +33 -29
  174. package/dist/src/components/legacyNavMenu/UserProfile.module.css.cjs.map +1 -1
  175. package/dist/src/components/legacyNavMenu/UserProfile.module.css.js +32 -41
  176. package/dist/src/components/legacyNavMenu/UserProfile.module.css.js.map +1 -1
  177. package/dist/src/components/listpopover/ListPopover.cjs +89 -120
  178. package/dist/src/components/listpopover/ListPopover.cjs.map +1 -1
  179. package/dist/src/components/listpopover/ListPopover.d.ts +1 -1
  180. package/dist/src/components/listpopover/ListPopover.js +86 -119
  181. package/dist/src/components/listpopover/ListPopover.js.map +1 -1
  182. package/dist/src/components/listpopover/ListPopover.module.css.cjs +7 -8
  183. package/dist/src/components/listpopover/ListPopover.module.css.cjs.map +1 -1
  184. package/dist/src/components/listpopover/ListPopover.module.css.js +7 -9
  185. package/dist/src/components/listpopover/ListPopover.module.css.js.map +1 -1
  186. package/dist/src/components/manageColumns/ManageColumnsItem.cjs +53 -74
  187. package/dist/src/components/manageColumns/ManageColumnsItem.cjs.map +1 -1
  188. package/dist/src/components/manageColumns/ManageColumnsItem.js +48 -71
  189. package/dist/src/components/manageColumns/ManageColumnsItem.js.map +1 -1
  190. package/dist/src/components/manageColumns/ManageColumnsPanel.cjs +66 -77
  191. package/dist/src/components/manageColumns/ManageColumnsPanel.cjs.map +1 -1
  192. package/dist/src/components/manageColumns/ManageColumnsPanel.d.ts +1 -1
  193. package/dist/src/components/manageColumns/ManageColumnsPanel.js +65 -76
  194. package/dist/src/components/manageColumns/ManageColumnsPanel.js.map +1 -1
  195. package/dist/src/components/manageColumns/SelectAll.cjs +31 -24
  196. package/dist/src/components/manageColumns/SelectAll.cjs.map +1 -1
  197. package/dist/src/components/manageColumns/SelectAll.d.ts +1 -1
  198. package/dist/src/components/manageColumns/SelectAll.js +31 -24
  199. package/dist/src/components/manageColumns/SelectAll.js.map +1 -1
  200. package/dist/src/components/menu/Menu.cjs +16 -16
  201. package/dist/src/components/menu/Menu.cjs.map +1 -1
  202. package/dist/src/components/menu/Menu.d.ts +1 -1
  203. package/dist/src/components/menu/Menu.js +13 -15
  204. package/dist/src/components/menu/Menu.js.map +1 -1
  205. package/dist/src/components/menu/Menu.module.css.cjs +10 -9
  206. package/dist/src/components/menu/Menu.module.css.cjs.map +1 -1
  207. package/dist/src/components/menu/Menu.module.css.js +10 -11
  208. package/dist/src/components/menu/Menu.module.css.js.map +1 -1
  209. package/dist/src/components/message/Message.module.css.cjs +7 -8
  210. package/dist/src/components/message/Message.module.css.cjs.map +1 -1
  211. package/dist/src/components/message/Message.module.css.js +7 -9
  212. package/dist/src/components/message/Message.module.css.js.map +1 -1
  213. package/dist/src/components/message/useMessage.cjs +46 -52
  214. package/dist/src/components/message/useMessage.cjs.map +1 -1
  215. package/dist/src/components/message/useMessage.js +43 -51
  216. package/dist/src/components/message/useMessage.js.map +1 -1
  217. package/dist/src/components/modal/Modal.cjs +27 -28
  218. package/dist/src/components/modal/Modal.cjs.map +1 -1
  219. package/dist/src/components/modal/Modal.d.ts +1 -1
  220. package/dist/src/components/modal/Modal.js +25 -28
  221. package/dist/src/components/modal/Modal.js.map +1 -1
  222. package/dist/src/components/navMenu/NavMenu.cjs +75 -130
  223. package/dist/src/components/navMenu/NavMenu.cjs.map +1 -1
  224. package/dist/src/components/navMenu/NavMenu.js +68 -110
  225. package/dist/src/components/navMenu/NavMenu.js.map +1 -1
  226. package/dist/src/components/navMenu/NavMenu.module.css.cjs +14 -13
  227. package/dist/src/components/navMenu/NavMenu.module.css.cjs.map +1 -1
  228. package/dist/src/components/navMenu/NavMenu.module.css.js +14 -17
  229. package/dist/src/components/navMenu/NavMenu.module.css.js.map +1 -1
  230. package/dist/src/components/notification/Notification.module.css.cjs +7 -8
  231. package/dist/src/components/notification/Notification.module.css.cjs.map +1 -1
  232. package/dist/src/components/notification/Notification.module.css.js +7 -9
  233. package/dist/src/components/notification/Notification.module.css.js.map +1 -1
  234. package/dist/src/components/notification/useNotification.cjs +61 -52
  235. package/dist/src/components/notification/useNotification.cjs.map +1 -1
  236. package/dist/src/components/notification/useNotification.js +57 -51
  237. package/dist/src/components/notification/useNotification.js.map +1 -1
  238. package/dist/src/components/notificationModal/NotifcationModal.module.css.cjs +16 -15
  239. package/dist/src/components/notificationModal/NotifcationModal.module.css.cjs.map +1 -1
  240. package/dist/src/components/notificationModal/NotifcationModal.module.css.js +16 -20
  241. package/dist/src/components/notificationModal/NotifcationModal.module.css.js.map +1 -1
  242. package/dist/src/components/notificationModal/NotificationModal.cjs +56 -54
  243. package/dist/src/components/notificationModal/NotificationModal.cjs.map +1 -1
  244. package/dist/src/components/notificationModal/NotificationModal.d.ts +1 -1
  245. package/dist/src/components/notificationModal/NotificationModal.js +56 -54
  246. package/dist/src/components/notificationModal/NotificationModal.js.map +1 -1
  247. package/dist/src/components/pagination/Pagination.cjs +66 -61
  248. package/dist/src/components/pagination/Pagination.cjs.map +1 -1
  249. package/dist/src/components/pagination/Pagination.d.ts +1 -1
  250. package/dist/src/components/pagination/Pagination.js +63 -61
  251. package/dist/src/components/pagination/Pagination.js.map +1 -1
  252. package/dist/src/components/pagination/Pagination.module.css.cjs +6 -6
  253. package/dist/src/components/pagination/Pagination.module.css.cjs.map +1 -1
  254. package/dist/src/components/pagination/Pagination.module.css.js +6 -7
  255. package/dist/src/components/pagination/Pagination.module.css.js.map +1 -1
  256. package/dist/src/components/popover/Popover.cjs +22 -41
  257. package/dist/src/components/popover/Popover.cjs.map +1 -1
  258. package/dist/src/components/popover/Popover.d.ts +1 -1
  259. package/dist/src/components/popover/Popover.js +19 -40
  260. package/dist/src/components/popover/Popover.js.map +1 -1
  261. package/dist/src/components/popover/Popover.module.css.cjs +24 -23
  262. package/dist/src/components/popover/Popover.module.css.cjs.map +1 -1
  263. package/dist/src/components/popover/Popover.module.css.js +24 -32
  264. package/dist/src/components/popover/Popover.module.css.js.map +1 -1
  265. package/dist/src/components/progress/Progress.cjs +8 -7
  266. package/dist/src/components/progress/Progress.cjs.map +1 -1
  267. package/dist/src/components/progress/Progress.d.ts +1 -1
  268. package/dist/src/components/progress/Progress.js +8 -7
  269. package/dist/src/components/progress/Progress.js.map +1 -1
  270. package/dist/src/components/radio/Radio.cjs +14 -20
  271. package/dist/src/components/radio/Radio.cjs.map +1 -1
  272. package/dist/src/components/radio/Radio.d.ts +2 -2
  273. package/dist/src/components/radio/Radio.js +14 -21
  274. package/dist/src/components/radio/Radio.js.map +1 -1
  275. package/dist/src/components/rate/Rate.cjs +17 -19
  276. package/dist/src/components/rate/Rate.cjs.map +1 -1
  277. package/dist/src/components/rate/Rate.d.ts +1 -1
  278. package/dist/src/components/rate/Rate.js +18 -20
  279. package/dist/src/components/rate/Rate.js.map +1 -1
  280. package/dist/src/components/select/AntdSelect.cjs +57 -74
  281. package/dist/src/components/select/AntdSelect.cjs.map +1 -1
  282. package/dist/src/components/select/AntdSelect.js +53 -56
  283. package/dist/src/components/select/AntdSelect.js.map +1 -1
  284. package/dist/src/components/select/Select.cjs +119 -120
  285. package/dist/src/components/select/Select.cjs.map +1 -1
  286. package/dist/src/components/select/Select.js +117 -120
  287. package/dist/src/components/select/Select.js.map +1 -1
  288. package/dist/src/components/select/SummarizedSelect.cjs +384 -450
  289. package/dist/src/components/select/SummarizedSelect.cjs.map +1 -1
  290. package/dist/src/components/select/SummarizedSelect.d.ts +1 -1
  291. package/dist/src/components/select/SummarizedSelect.js +382 -450
  292. package/dist/src/components/select/SummarizedSelect.js.map +1 -1
  293. package/dist/src/components/select/SummarizedSelect.module.css.cjs +22 -21
  294. package/dist/src/components/select/SummarizedSelect.module.css.cjs.map +1 -1
  295. package/dist/src/components/select/SummarizedSelect.module.css.js +22 -29
  296. package/dist/src/components/select/SummarizedSelect.module.css.js.map +1 -1
  297. package/dist/src/components/skeleton/Skeleton.cjs +8 -7
  298. package/dist/src/components/skeleton/Skeleton.cjs.map +1 -1
  299. package/dist/src/components/skeleton/Skeleton.d.ts +1 -1
  300. package/dist/src/components/skeleton/Skeleton.js +13 -12
  301. package/dist/src/components/skeleton/Skeleton.js.map +1 -1
  302. package/dist/src/components/spinner/Spinner.cjs +27 -17
  303. package/dist/src/components/spinner/Spinner.cjs.map +1 -1
  304. package/dist/src/components/spinner/Spinner.d.ts +1 -1
  305. package/dist/src/components/spinner/Spinner.js +24 -16
  306. package/dist/src/components/spinner/Spinner.js.map +1 -1
  307. package/dist/src/components/steps/Steps.cjs +40 -57
  308. package/dist/src/components/steps/Steps.cjs.map +1 -1
  309. package/dist/src/components/steps/Steps.d.ts +1 -1
  310. package/dist/src/components/steps/Steps.js +37 -56
  311. package/dist/src/components/steps/Steps.js.map +1 -1
  312. package/dist/src/components/steps/useSteps.cjs +35 -54
  313. package/dist/src/components/steps/useSteps.cjs.map +1 -1
  314. package/dist/src/components/steps/useSteps.js +36 -55
  315. package/dist/src/components/steps/useSteps.js.map +1 -1
  316. package/dist/src/components/switch/Switch.cjs +16 -25
  317. package/dist/src/components/switch/Switch.cjs.map +1 -1
  318. package/dist/src/components/switch/Switch.d.ts +1 -1
  319. package/dist/src/components/switch/Switch.js +17 -26
  320. package/dist/src/components/switch/Switch.js.map +1 -1
  321. package/dist/src/components/table/Table.cjs +103 -109
  322. package/dist/src/components/table/Table.cjs.map +1 -1
  323. package/dist/src/components/table/Table.d.ts +3 -3
  324. package/dist/src/components/table/Table.js +102 -111
  325. package/dist/src/components/table/Table.js.map +1 -1
  326. package/dist/src/components/table/Table.module.css.cjs +10 -9
  327. package/dist/src/components/table/Table.module.css.cjs.map +1 -1
  328. package/dist/src/components/table/Table.module.css.js +10 -11
  329. package/dist/src/components/table/Table.module.css.js.map +1 -1
  330. package/dist/src/components/tabs/Tabs.cjs +12 -8
  331. package/dist/src/components/tabs/Tabs.cjs.map +1 -1
  332. package/dist/src/components/tabs/Tabs.d.ts +1 -1
  333. package/dist/src/components/tabs/Tabs.js +12 -8
  334. package/dist/src/components/tabs/Tabs.js.map +1 -1
  335. package/dist/src/components/tag/Tag.cjs +53 -73
  336. package/dist/src/components/tag/Tag.cjs.map +1 -1
  337. package/dist/src/components/tag/Tag.js +49 -56
  338. package/dist/src/components/tag/Tag.js.map +1 -1
  339. package/dist/src/components/tooltip/Tooltip.cjs +13 -12
  340. package/dist/src/components/tooltip/Tooltip.cjs.map +1 -1
  341. package/dist/src/components/tooltip/Tooltip.d.ts +1 -1
  342. package/dist/src/components/tooltip/Tooltip.js +13 -12
  343. package/dist/src/components/tooltip/Tooltip.js.map +1 -1
  344. package/dist/src/components/vennDiagram/VennDiagram.cjs +39 -50
  345. package/dist/src/components/vennDiagram/VennDiagram.cjs.map +1 -1
  346. package/dist/src/components/vennDiagram/VennDiagram.d.ts +1 -1
  347. package/dist/src/components/vennDiagram/VennDiagram.js +38 -49
  348. package/dist/src/components/vennDiagram/VennDiagram.js.map +1 -1
  349. package/dist/src/index.d.ts +5 -4
  350. package/dist/src/svgs/ProgressCircle.svg.cjs +38 -22
  351. package/dist/src/svgs/ProgressCircle.svg.cjs.map +1 -1
  352. package/dist/src/svgs/ProgressCircle.svg.js +36 -6
  353. package/dist/src/svgs/ProgressCircle.svg.js.map +1 -1
  354. package/dist/src/svgs/j2-logo-menu-collapse.svg.cjs +24 -22
  355. package/dist/src/svgs/j2-logo-menu-collapse.svg.cjs.map +1 -1
  356. package/dist/src/svgs/j2-logo-menu-collapse.svg.js +22 -6
  357. package/dist/src/svgs/j2-logo-menu-collapse.svg.js.map +1 -1
  358. package/dist/src/svgs/j2-logo-menu.svg.cjs +55 -22
  359. package/dist/src/svgs/j2-logo-menu.svg.cjs.map +1 -1
  360. package/dist/src/svgs/j2-logo-menu.svg.js +53 -6
  361. package/dist/src/svgs/j2-logo-menu.svg.js.map +1 -1
  362. package/dist/src/svgs/menu-sidebar-collapse.svg.cjs +78 -22
  363. package/dist/src/svgs/menu-sidebar-collapse.svg.cjs.map +1 -1
  364. package/dist/src/svgs/menu-sidebar-collapse.svg.js +76 -6
  365. package/dist/src/svgs/menu-sidebar-collapse.svg.js.map +1 -1
  366. package/dist/src/svgs/menu-sidebar-expand.svg.cjs +78 -22
  367. package/dist/src/svgs/menu-sidebar-expand.svg.cjs.map +1 -1
  368. package/dist/src/svgs/menu-sidebar-expand.svg.js +76 -6
  369. package/dist/src/svgs/menu-sidebar-expand.svg.js.map +1 -1
  370. package/dist/style.css +649 -624
  371. package/dist/tailwind.cjs +159 -175
  372. package/dist/tailwind.cjs.map +1 -1
  373. package/dist/tailwind.js +155 -176
  374. package/dist/tailwind.js.map +1 -1
  375. package/package.json +18 -18
  376. package/dist/index.cjs.map +0 -1
  377. package/dist/index.js.map +0 -1
@@ -1,60 +1,57 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
1
  import * as React from "react";
3
2
  import { useState } from "react";
4
- import { Spin, Select } from "antd";
3
+ import { Select, Spin } from "antd";
4
+ import { CaretDownIcon, MagnifyingGlassIcon, XCircleIcon } from "@phosphor-icons/react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
5
6
  import { LoadingOutlined } from "@ant-design/icons";
6
- import { XCircleIcon, MagnifyingGlassIcon, CaretDownIcon } from "@phosphor-icons/react";
7
- const AntdSelect = (props) => {
8
- var _a;
9
- const [isFocused, setIsFocused] = useState(false);
10
- const handleSearch = (value) => {
11
- if (props.onSearch) {
12
- props.onSearch(value);
13
- }
14
- };
15
- const dropdownRender = React.useCallback(
16
- (menu) => {
17
- if (props.loading) {
18
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between px-3 py-1", children: [
19
- /* @__PURE__ */ jsx("span", { children: "Loading..." }),
20
- /* @__PURE__ */ jsx(Spin, { indicator: /* @__PURE__ */ jsx(LoadingOutlined, { spin: true }), size: "small" })
21
- ] });
22
- }
23
- if (!props.options || props.options && props.options.length === 0) {
24
- return /* @__PURE__ */ jsx("div", { className: "px-3 py-1", children: "No options" });
25
- }
26
- return menu;
27
- },
28
- [props.loading, (_a = props.options) == null ? void 0 : _a.length]
29
- );
30
- return /* @__PURE__ */ jsx(
31
- Select,
32
- {
33
- suffixIcon: props.loading ? /* @__PURE__ */ jsx(
34
- Spin,
35
- {
36
- indicator: /* @__PURE__ */ jsx(LoadingOutlined, { spin: true }),
37
- size: "small",
38
- "data-testid": "loading-spinner"
39
- }
40
- ) : props.showSearch && isFocused ? /* @__PURE__ */ jsx(MagnifyingGlassIcon, { size: 14, "data-testid": "magnifying-glass" }) : /* @__PURE__ */ jsx(CaretDownIcon, { size: 14, "data-testid": "caret-down" }),
41
- ...props,
42
- popupRender: dropdownRender,
43
- removeIcon: /* @__PURE__ */ jsx(XCircleIcon, { size: 12 }),
44
- allowClear: props.allowClear ? { clearIcon: /* @__PURE__ */ jsx(XCircleIcon, { size: 14 }) } : false,
45
- showSearch: props.showSearch,
46
- onSearch: props.onSearch ? handleSearch : void 0,
47
- onFocus: () => {
48
- setIsFocused(true);
49
- },
50
- onBlur: () => {
51
- setIsFocused(false);
52
- },
53
- size: props.size || "large"
54
- }
55
- );
7
+ //#region src/components/select/AntdSelect.tsx
8
+ var AntdSelect = (props) => {
9
+ const [isFocused, setIsFocused] = useState(false);
10
+ const handleSearch = (value) => {
11
+ if (props.onSearch) props.onSearch(value);
12
+ };
13
+ const dropdownRender = React.useCallback((menu) => {
14
+ if (props.loading) return /* @__PURE__ */ jsxs("div", {
15
+ className: "flex items-center justify-between px-3 py-1",
16
+ children: [/* @__PURE__ */ jsx("span", { children: "Loading..." }), /* @__PURE__ */ jsx(Spin, {
17
+ indicator: /* @__PURE__ */ jsx(LoadingOutlined, { spin: true }),
18
+ size: "small"
19
+ })]
20
+ });
21
+ if (!props.options || props.options && props.options.length === 0) return /* @__PURE__ */ jsx("div", {
22
+ className: "px-3 py-1",
23
+ children: "No options"
24
+ });
25
+ return menu;
26
+ }, [props.loading, props.options?.length]);
27
+ return /* @__PURE__ */ jsx(Select, {
28
+ suffixIcon: props.loading ? /* @__PURE__ */ jsx(Spin, {
29
+ indicator: /* @__PURE__ */ jsx(LoadingOutlined, { spin: true }),
30
+ size: "small",
31
+ "data-testid": "loading-spinner"
32
+ }) : props.showSearch && isFocused ? /* @__PURE__ */ jsx(MagnifyingGlassIcon, {
33
+ size: 14,
34
+ "data-testid": "magnifying-glass"
35
+ }) : /* @__PURE__ */ jsx(CaretDownIcon, {
36
+ size: 14,
37
+ "data-testid": "caret-down"
38
+ }),
39
+ ...props,
40
+ popupRender: dropdownRender,
41
+ removeIcon: /* @__PURE__ */ jsx(XCircleIcon, { size: 12 }),
42
+ allowClear: props.allowClear ? { clearIcon: /* @__PURE__ */ jsx(XCircleIcon, { size: 14 }) } : false,
43
+ showSearch: props.showSearch,
44
+ onSearch: props.onSearch ? handleSearch : void 0,
45
+ onFocus: () => {
46
+ setIsFocused(true);
47
+ },
48
+ onBlur: () => {
49
+ setIsFocused(false);
50
+ },
51
+ size: props.size || "large"
52
+ });
56
53
  };
57
- export {
58
- AntdSelect
59
- };
60
- //# sourceMappingURL=AntdSelect.js.map
54
+ //#endregion
55
+ export { AntdSelect };
56
+
57
+ //# sourceMappingURL=AntdSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AntdSelect.js","sources":["../../../../src/components/select/AntdSelect.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Select as RawAntDSelect, Spin } from 'antd'\nimport { LoadingOutlined } from '@ant-design/icons'\nimport type { SelectProps as AntDSelectProps } from 'antd'\nimport {\n CaretDownIcon,\n MagnifyingGlassIcon,\n XCircleIcon,\n} from '@phosphor-icons/react'\nimport { useState } from 'react'\n\ntype AntdSelectProps = Expand<AntDSelectProps>\n\nexport const AntdSelect = (props: AntdSelectProps) => {\n const [isFocused, setIsFocused] = useState(false)\n\n const handleSearch = (value: string) => {\n if (props.onSearch) {\n props.onSearch(value)\n }\n }\n\n const dropdownRender = React.useCallback(\n (menu: React.ReactElement): React.ReactElement => {\n if (props.loading) {\n return (\n <div className=\"flex items-center justify-between px-3 py-1\">\n <span>Loading...</span>\n <Spin indicator={<LoadingOutlined spin />} size=\"small\" />\n </div>\n )\n }\n\n if (!props.options || (props.options && props.options.length === 0)) {\n return <div className=\"px-3 py-1\">No options</div>\n }\n\n return menu\n },\n [props.loading, props.options?.length]\n )\n\n return (\n <RawAntDSelect\n suffixIcon={\n props.loading ? (\n <Spin\n indicator={<LoadingOutlined spin />}\n size=\"small\"\n data-testid=\"loading-spinner\"\n />\n ) : props.showSearch && isFocused ? (\n <MagnifyingGlassIcon size={14} data-testid=\"magnifying-glass\" />\n ) : (\n <CaretDownIcon size={14} data-testid=\"caret-down\" />\n )\n }\n {...props}\n popupRender={dropdownRender}\n removeIcon={<XCircleIcon size={12} />}\n allowClear={\n props.allowClear ? { clearIcon: <XCircleIcon size={14} /> } : false\n }\n showSearch={props.showSearch}\n onSearch={props.onSearch ? handleSearch : undefined}\n onFocus={() => {\n setIsFocused(true)\n }}\n onBlur={() => {\n setIsFocused(false)\n }}\n size={props.size || 'large'}\n />\n )\n}\n"],"names":["RawAntDSelect"],"mappings":";;;;;;AAaO,MAAM,aAAa,CAAC,UAA2B;;AACpD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,eAAe,CAAC,UAAkB;AACtC,QAAI,MAAM,UAAU;AAClB,YAAM,SAAS,KAAK;AAAA,IACtB;AAAA,EACF;AAEA,QAAM,iBAAiB,MAAM;AAAA,IAC3B,CAAC,SAAiD;AAChD,UAAI,MAAM,SAAS;AACjB,eACE,qBAAC,OAAA,EAAI,WAAU,+CACb,UAAA;AAAA,UAAA,oBAAC,UAAK,UAAA,aAAA,CAAU;AAAA,UAChB,oBAAC,QAAK,WAAW,oBAAC,mBAAgB,MAAI,KAAA,CAAC,GAAI,MAAK,QAAA,CAAQ;AAAA,QAAA,GAC1D;AAAA,MAEJ;AAEA,UAAI,CAAC,MAAM,WAAY,MAAM,WAAW,MAAM,QAAQ,WAAW,GAAI;AACnE,eAAO,oBAAC,OAAA,EAAI,WAAU,aAAY,UAAA,cAAU;AAAA,MAC9C;AAEA,aAAO;AAAA,IACT;AAAA,IACA,CAAC,MAAM,UAAS,WAAM,YAAN,mBAAe,MAAM;AAAA,EAAA;AAGvC,SACE;AAAA,IAACA;AAAAA,IAAA;AAAA,MACC,YACE,MAAM,UACJ;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,oBAAC,iBAAA,EAAgB,MAAI,KAAA,CAAC;AAAA,UACjC,MAAK;AAAA,UACL,eAAY;AAAA,QAAA;AAAA,MAAA,IAEZ,MAAM,cAAc,YACtB,oBAAC,uBAAoB,MAAM,IAAI,eAAY,oBAAmB,IAE9D,oBAAC,eAAA,EAAc,MAAM,IAAI,eAAY,cAAa;AAAA,MAGrD,GAAG;AAAA,MACJ,aAAa;AAAA,MACb,YAAY,oBAAC,aAAA,EAAY,MAAM,GAAA,CAAI;AAAA,MACnC,YACE,MAAM,aAAa,EAAE,+BAAY,aAAA,EAAY,MAAM,GAAA,CAAI,EAAA,IAAO;AAAA,MAEhE,YAAY,MAAM;AAAA,MAClB,UAAU,MAAM,WAAW,eAAe;AAAA,MAC1C,SAAS,MAAM;AACb,qBAAa,IAAI;AAAA,MACnB;AAAA,MACA,QAAQ,MAAM;AACZ,qBAAa,KAAK;AAAA,MACpB;AAAA,MACA,MAAM,MAAM,QAAQ;AAAA,IAAA;AAAA,EAAA;AAG1B;"}
1
+ {"version":3,"file":"AntdSelect.js","names":["RawAntDSelect"],"sources":["../../../../src/components/select/AntdSelect.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Select as RawAntDSelect, Spin } from 'antd'\nimport { LoadingOutlined } from '@ant-design/icons'\nimport type { SelectProps as AntDSelectProps } from 'antd'\nimport {\n CaretDownIcon,\n MagnifyingGlassIcon,\n XCircleIcon,\n} from '@phosphor-icons/react'\nimport { useState } from 'react'\n\ntype AntdSelectProps = Expand<AntDSelectProps>\n\nexport const AntdSelect = (props: AntdSelectProps) => {\n const [isFocused, setIsFocused] = useState(false)\n\n const handleSearch = (value: string) => {\n if (props.onSearch) {\n props.onSearch(value)\n }\n }\n\n const dropdownRender = React.useCallback(\n (menu: React.ReactElement): React.ReactElement => {\n if (props.loading) {\n return (\n <div className=\"flex items-center justify-between px-3 py-1\">\n <span>Loading...</span>\n <Spin indicator={<LoadingOutlined spin />} size=\"small\" />\n </div>\n )\n }\n\n if (!props.options || (props.options && props.options.length === 0)) {\n return <div className=\"px-3 py-1\">No options</div>\n }\n\n return menu\n },\n [props.loading, props.options?.length]\n )\n\n return (\n <RawAntDSelect\n suffixIcon={\n props.loading ? (\n <Spin\n indicator={<LoadingOutlined spin />}\n size=\"small\"\n data-testid=\"loading-spinner\"\n />\n ) : props.showSearch && isFocused ? (\n <MagnifyingGlassIcon size={14} data-testid=\"magnifying-glass\" />\n ) : (\n <CaretDownIcon size={14} data-testid=\"caret-down\" />\n )\n }\n {...props}\n popupRender={dropdownRender}\n removeIcon={<XCircleIcon size={12} />}\n allowClear={\n props.allowClear ? { clearIcon: <XCircleIcon size={14} /> } : false\n }\n showSearch={props.showSearch}\n onSearch={props.onSearch ? handleSearch : undefined}\n onFocus={() => {\n setIsFocused(true)\n }}\n onBlur={() => {\n setIsFocused(false)\n }}\n size={props.size || 'large'}\n />\n )\n}\n"],"mappings":";;;;;;;AAaA,IAAa,cAAc,UAA2B;CACpD,MAAM,CAAC,WAAW,gBAAgB,SAAS,KAAK;CAEhD,MAAM,gBAAgB,UAAkB;EACtC,IAAI,MAAM,UACR,MAAM,SAAS,KAAK;CAExB;CAEA,MAAM,iBAAiB,MAAM,aAC1B,SAAiD;EAChD,IAAI,MAAM,SACR,OACE,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,QAAD,EAAA,UAAM,aAAgB,CAAA,GACtB,oBAAC,MAAD;IAAM,WAAW,oBAAC,iBAAD,EAAiB,MAAA,KAAM,CAAA;IAAG,MAAK;GAAS,CAAA,CACtD;;EAIT,IAAI,CAAC,MAAM,WAAY,MAAM,WAAW,MAAM,QAAQ,WAAW,GAC/D,OAAO,oBAAC,OAAD;GAAK,WAAU;GAAY,UAAA;EAAe,CAAA;EAGnD,OAAO;CACT,GACA,CAAC,MAAM,SAAS,MAAM,SAAS,MAAM,CACvC;CAEA,OACE,oBAACA,QAAD;EACE,YACE,MAAM,UACJ,oBAAC,MAAD;GACE,WAAW,oBAAC,iBAAD,EAAiB,MAAA,KAAM,CAAA;GAClC,MAAK;GACL,eAAY;EACb,CAAA,IACC,MAAM,cAAc,YACtB,oBAAC,qBAAD;GAAqB,MAAM;GAAI,eAAY;EAAoB,CAAA,IAE/D,oBAAC,eAAD;GAAe,MAAM;GAAI,eAAY;EAAc,CAAA;EAGvD,GAAI;EACJ,aAAa;EACb,YAAY,oBAAC,aAAD,EAAa,MAAM,GAAK,CAAA;EACpC,YACE,MAAM,aAAa,EAAE,WAAW,oBAAC,aAAD,EAAa,MAAM,GAAK,CAAA,EAAE,IAAI;EAEhE,YAAY,MAAM;EAClB,UAAU,MAAM,WAAW,eAAe,KAAA;EAC1C,eAAe;GACb,aAAa,IAAI;EACnB;EACA,cAAc;GACZ,aAAa,KAAK;EACpB;EACA,MAAM,MAAM,QAAQ;CACrB,CAAA;AAEL"}
@@ -1,123 +1,122 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const antd = require("antd");
5
- const Icon = require("@ant-design/icons");
6
- const react = require("@phosphor-icons/react");
7
- const React = require("react");
8
- const FormikField = require("../form/FormikField.cjs");
9
- const isGroupOption = (opt) => "options" in opt && Array.isArray(opt.options);
10
- const flattenOptions = (opts) => {
11
- if (!opts) return [];
12
- return opts.flatMap(
13
- (o) => isGroupOption(o) ? flattenOptions(o.options) : [o]
14
- );
1
+ const require_runtime = require("../../../_virtual/_rolldown/runtime.cjs");
2
+ const require_FormikField = require("../form/FormikField.cjs");
3
+ ;/* empty css */
4
+ let react = require("react");
5
+ react = require_runtime.__toESM(react, 1);
6
+ let antd = require("antd");
7
+ let _phosphor_icons_react = require("@phosphor-icons/react");
8
+ let react_jsx_runtime = require("react/jsx-runtime");
9
+ let _ant_design_icons = require("@ant-design/icons");
10
+ //#region src/components/select/Select.tsx
11
+ var isGroupOption = (opt) => "options" in opt && Array.isArray(opt.options);
12
+ var flattenOptions = (opts) => {
13
+ if (!opts) return [];
14
+ return opts.flatMap((o) => isGroupOption(o) ? flattenOptions(o.options) : [o]);
15
15
  };
16
- const Select = (props) => /* @__PURE__ */ jsxRuntime.jsx(FormikField.FormikField, { name: props.name, children: ({ field, form }) => /* @__PURE__ */ jsxRuntime.jsx(SelectControl, { props, field, form }) });
17
- const SelectControl = ({
18
- props,
19
- field,
20
- form
21
- }) => {
22
- var _a;
23
- const [isFocused, setIsFocused] = React.useState(false);
24
- const [isSearching, setIsSearching] = React.useState(false);
25
- const helpers = form.getFieldHelpers(props.name);
26
- const isMultiple = props.mode === "multiple";
27
- const isSearchable = props.mode === "tags" || (props.showSearch ?? isMultiple);
28
- const hasOptions = (((_a = props.options) == null ? void 0 : _a.length) ?? 0) > 0;
29
- const currentValue = Array.isArray(field.value) ? field.value : [];
30
- const showSelectAllFooter = isMultiple && !props.loading && !props.disabled && hasOptions && !isSearching;
31
- const handleSearch = (value) => {
32
- setIsSearching(value.length > 0);
33
- const onSearch = typeof props.showSearch === "object" ? props.showSearch.onSearch ?? props.onSearch : props.onSearch;
34
- onSearch == null ? void 0 : onSearch(value);
35
- };
36
- const handleToggleAll = () => {
37
- var _a2, _b;
38
- if (props.disabled) return;
39
- if (currentValue.length === 0) {
40
- const flat = flattenOptions(
41
- props.options
42
- );
43
- const allOptions = flat.filter(
44
- (opt) => opt.value !== void 0 && opt.value !== null && !opt.disabled
45
- );
46
- const payload = props.labelInValue ? allOptions.map((opt) => ({ value: opt.value, label: opt.label })) : allOptions.map((opt) => opt.value);
47
- void helpers.setValue(payload);
48
- (_a2 = props.onChange) == null ? void 0 : _a2.call(props, payload, allOptions);
49
- } else {
50
- void helpers.setValue([]);
51
- (_b = props.onChange) == null ? void 0 : _b.call(props, [], []);
52
- }
53
- };
54
- const dropdownRender = (menu) => {
55
- if (props.loading) {
56
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-3 py-1", children: [
57
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Loading..." }),
58
- /* @__PURE__ */ jsxRuntime.jsx(antd.Spin, { indicator: /* @__PURE__ */ jsxRuntime.jsx(Icon.LoadingOutlined, { spin: true }), size: "small" })
59
- ] });
60
- }
61
- if (!props.options || props.options && props.options.length === 0) {
62
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-3 py-1", children: "No options" });
63
- }
64
- if (!showSelectAllFooter) return menu;
65
- const label = currentValue.length === 0 ? "Select all" : "Clear all";
66
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
67
- menu,
68
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 pt-1 border-t border-j2-border-secondary", children: /* @__PURE__ */ jsxRuntime.jsx(
69
- "button",
70
- {
71
- type: "button",
72
- "aria-label": label,
73
- title: label,
74
- onMouseDown: (e) => e.preventDefault(),
75
- onClick: handleToggleAll,
76
- className: "w-full text-center font-semibold text-sm py-1.5 rounded cursor-pointer text-j2-primary hover:bg-j2-primary-bg-hover bg-transparent border-0",
77
- children: label
78
- }
79
- ) })
80
- ] });
81
- };
82
- return /* @__PURE__ */ jsxRuntime.jsx(
83
- antd.Select,
84
- {
85
- suffixIcon: props.loading ? /* @__PURE__ */ jsxRuntime.jsx(
86
- antd.Spin,
87
- {
88
- indicator: /* @__PURE__ */ jsxRuntime.jsx(Icon.LoadingOutlined, { spin: true }),
89
- size: "small",
90
- "data-testid": "loading-spinner"
91
- }
92
- ) : isSearchable && isFocused ? /* @__PURE__ */ jsxRuntime.jsx(react.MagnifyingGlassIcon, { size: 14, "data-testid": "magnifying-glass" }) : /* @__PURE__ */ jsxRuntime.jsx(react.CaretDownIcon, { size: 14, "data-testid": "caret-down" }),
93
- ...props,
94
- id: props.id ?? props.name,
95
- value: field.value === "" || field.value === null ? void 0 : field.value,
96
- onChange: (value, option) => {
97
- var _a2;
98
- void helpers.setValue(value);
99
- (_a2 = props.onChange) == null ? void 0 : _a2.call(props, value, option);
100
- },
101
- popupRender: dropdownRender,
102
- removeIcon: /* @__PURE__ */ jsxRuntime.jsx(react.XCircleIcon, { size: 12 }),
103
- allowClear: props.allowClear ? { clearIcon: /* @__PURE__ */ jsxRuntime.jsx(react.XCircleIcon, { size: 14 }) } : false,
104
- showSearch: typeof props.showSearch === "object" ? { ...props.showSearch, onSearch: handleSearch } : props.showSearch,
105
- onSearch: isSearchable ? handleSearch : void 0,
106
- onFocus: (event) => {
107
- var _a2;
108
- setIsFocused(true);
109
- (_a2 = props.onFocus) == null ? void 0 : _a2.call(props, event);
110
- },
111
- onBlur: (event) => {
112
- var _a2;
113
- void helpers.setTouched(true);
114
- setIsFocused(false);
115
- setIsSearching(false);
116
- (_a2 = props.onBlur) == null ? void 0 : _a2.call(props, event);
117
- },
118
- size: props.size || "large"
119
- }
120
- );
16
+ var Select = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_FormikField.FormikField, {
17
+ name: props.name,
18
+ children: ({ field, form }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectControl, {
19
+ props,
20
+ field,
21
+ form
22
+ })
23
+ });
24
+ var SelectControl = ({ props, field, form }) => {
25
+ const [isFocused, setIsFocused] = (0, react.useState)(false);
26
+ const [isSearching, setIsSearching] = (0, react.useState)(false);
27
+ const helpers = form.getFieldHelpers(props.name);
28
+ const isMultiple = props.mode === "multiple";
29
+ const isSearchable = props.mode === "tags" || (props.showSearch ?? isMultiple);
30
+ const hasOptions = (props.options?.length ?? 0) > 0;
31
+ const currentValue = Array.isArray(field.value) ? field.value : [];
32
+ const showSelectAllFooter = isMultiple && !props.loading && !props.disabled && hasOptions && !isSearching;
33
+ const handleSearch = (value) => {
34
+ setIsSearching(value.length > 0);
35
+ (typeof props.showSearch === "object" ? props.showSearch.onSearch ?? props.onSearch : props.onSearch)?.(value);
36
+ };
37
+ const handleToggleAll = () => {
38
+ if (props.disabled) return;
39
+ if (currentValue.length === 0) {
40
+ const allOptions = flattenOptions(props.options).filter((opt) => opt.value !== void 0 && opt.value !== null && !opt.disabled);
41
+ const payload = props.labelInValue ? allOptions.map((opt) => ({
42
+ value: opt.value,
43
+ label: opt.label
44
+ })) : allOptions.map((opt) => opt.value);
45
+ helpers.setValue(payload);
46
+ props.onChange?.(payload, allOptions);
47
+ } else {
48
+ helpers.setValue([]);
49
+ props.onChange?.([], []);
50
+ }
51
+ };
52
+ const dropdownRender = (menu) => {
53
+ if (props.loading) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
54
+ className: "flex items-center justify-between px-3 py-1",
55
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "Loading..." }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Spin, {
56
+ indicator: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ant_design_icons.LoadingOutlined, { spin: true }),
57
+ size: "small"
58
+ })]
59
+ });
60
+ if (!props.options || props.options && props.options.length === 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
61
+ className: "px-3 py-1",
62
+ children: "No options"
63
+ });
64
+ if (!showSelectAllFooter) return menu;
65
+ const label = currentValue.length === 0 ? "Select all" : "Clear all";
66
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [menu, /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
67
+ className: "mt-1 pt-1 border-t border-j2-border-secondary",
68
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
69
+ type: "button",
70
+ "aria-label": label,
71
+ title: label,
72
+ onMouseDown: (e) => e.preventDefault(),
73
+ onClick: handleToggleAll,
74
+ className: "w-full text-center font-semibold text-sm py-1.5 rounded cursor-pointer text-j2-primary hover:bg-j2-primary-bg-hover bg-transparent border-0",
75
+ children: label
76
+ })
77
+ })] });
78
+ };
79
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Select, {
80
+ suffixIcon: props.loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(antd.Spin, {
81
+ indicator: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_ant_design_icons.LoadingOutlined, { spin: true }),
82
+ size: "small",
83
+ "data-testid": "loading-spinner"
84
+ }) : isSearchable && isFocused ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_phosphor_icons_react.MagnifyingGlassIcon, {
85
+ size: 14,
86
+ "data-testid": "magnifying-glass"
87
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_phosphor_icons_react.CaretDownIcon, {
88
+ size: 14,
89
+ "data-testid": "caret-down"
90
+ }),
91
+ ...props,
92
+ id: props.id ?? props.name,
93
+ value: field.value === "" || field.value === null ? void 0 : field.value,
94
+ onChange: (value, option) => {
95
+ helpers.setValue(value);
96
+ props.onChange?.(value, option);
97
+ },
98
+ popupRender: dropdownRender,
99
+ removeIcon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_phosphor_icons_react.XCircleIcon, { size: 12 }),
100
+ allowClear: props.allowClear ? { clearIcon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_phosphor_icons_react.XCircleIcon, { size: 14 }) } : false,
101
+ showSearch: typeof props.showSearch === "object" ? {
102
+ ...props.showSearch,
103
+ onSearch: handleSearch
104
+ } : props.showSearch,
105
+ onSearch: isSearchable ? handleSearch : void 0,
106
+ onFocus: (event) => {
107
+ setIsFocused(true);
108
+ props.onFocus?.(event);
109
+ },
110
+ onBlur: (event) => {
111
+ helpers.setTouched(true);
112
+ setIsFocused(false);
113
+ setIsSearching(false);
114
+ props.onBlur?.(event);
115
+ },
116
+ size: props.size || "large"
117
+ });
121
118
  };
119
+ //#endregion
122
120
  exports.Select = Select;
123
- //# sourceMappingURL=Select.cjs.map
121
+
122
+ //# sourceMappingURL=Select.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.cjs","sources":["../../../../src/components/select/Select.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Select as AntDSelect, Spin } from 'antd'\nimport { LoadingOutlined } from '@ant-design/icons'\nimport type {\n SelectProps as AntDSelectProps,\n DefaultOptionType,\n} from 'antd/es/select'\nimport {\n CaretDownIcon,\n MagnifyingGlassIcon,\n XCircleIcon,\n} from '@phosphor-icons/react'\nimport { useState } from 'react'\nimport type { FieldProps } from 'formik'\nimport { FormikField } from '../form/FormikField'\n\ntype SelectProps = Expand<AntDSelectProps> & {\n name: string\n}\n\ntype GroupOption = { label?: React.ReactNode; options: DefaultOptionType[] }\n\nconst isGroupOption = (\n opt: DefaultOptionType | GroupOption\n): opt is GroupOption =>\n 'options' in opt && Array.isArray((opt as GroupOption).options)\n\nconst flattenOptions = (\n opts: (DefaultOptionType | GroupOption)[] | undefined\n): DefaultOptionType[] => {\n if (!opts) return []\n return opts.flatMap((o) =>\n isGroupOption(o) ? flattenOptions(o.options) : [o]\n )\n}\n\nexport const Select = (props: SelectProps) => (\n <FormikField name={props.name}>\n {({ field, form }) => (\n <SelectControl props={props} field={field} form={form} />\n )}\n </FormikField>\n)\n\nconst SelectControl = ({\n props,\n field,\n form,\n}: { props: SelectProps } & Pick<FieldProps, 'field' | 'form'>) => {\n const [isFocused, setIsFocused] = useState(false)\n const [isSearching, setIsSearching] = useState(false)\n const helpers = form.getFieldHelpers(props.name)\n\n const isMultiple = props.mode === 'multiple'\n const isSearchable = props.mode === 'tags' || (props.showSearch ?? isMultiple)\n const hasOptions = (props.options?.length ?? 0) > 0\n const currentValue: unknown[] = Array.isArray(field.value) ? field.value : []\n const showSelectAllFooter =\n isMultiple &&\n !props.loading &&\n !props.disabled &&\n hasOptions &&\n !isSearching\n\n const handleSearch = (value: string) => {\n setIsSearching(value.length > 0)\n const onSearch =\n typeof props.showSearch === 'object'\n ? (props.showSearch.onSearch ?? props.onSearch)\n : props.onSearch\n onSearch?.(value)\n }\n\n const handleToggleAll = () => {\n if (props.disabled) return\n\n if (currentValue.length === 0) {\n const flat = flattenOptions(\n props.options as (DefaultOptionType | GroupOption)[] | undefined\n )\n const allOptions = flat.filter(\n (opt) => opt.value !== undefined && opt.value !== null && !opt.disabled\n )\n // antd's labelInValue mode expects values shaped as { value, label }\n // rather than raw scalars; mirror that contract so the field state\n // and downstream onChange payload match what consumers expect.\n const payload = props.labelInValue\n ? allOptions.map((opt) => ({ value: opt.value, label: opt.label }))\n : allOptions.map((opt) => opt.value as string | number)\n void helpers.setValue(payload)\n props.onChange?.(payload, allOptions)\n } else {\n void helpers.setValue([])\n props.onChange?.([], [])\n }\n }\n\n const dropdownRender = (menu: React.ReactElement): React.ReactElement => {\n if (props.loading) {\n return (\n <div className=\"flex items-center justify-between px-3 py-1\">\n <span>Loading...</span>\n <Spin indicator={<LoadingOutlined spin />} size=\"small\" />\n </div>\n )\n }\n\n if (!props.options || (props.options && props.options.length === 0)) {\n return <div className=\"px-3 py-1\">No options</div>\n }\n\n if (!showSelectAllFooter) return menu\n\n const label = currentValue.length === 0 ? 'Select all' : 'Clear all'\n\n return (\n <>\n {menu}\n <div className=\"mt-1 pt-1 border-t border-j2-border-secondary\">\n <button\n type=\"button\"\n aria-label={label}\n title={label}\n onMouseDown={(e) => e.preventDefault()}\n onClick={handleToggleAll}\n className=\"w-full text-center font-semibold text-sm py-1.5 rounded cursor-pointer text-j2-primary hover:bg-j2-primary-bg-hover bg-transparent border-0\"\n >\n {label}\n </button>\n </div>\n </>\n )\n }\n\n return (\n <AntDSelect\n suffixIcon={\n props.loading ? (\n <Spin\n indicator={<LoadingOutlined spin />}\n size=\"small\"\n data-testid=\"loading-spinner\"\n />\n ) : isSearchable && isFocused ? (\n <MagnifyingGlassIcon size={14} data-testid=\"magnifying-glass\" />\n ) : (\n <CaretDownIcon size={14} data-testid=\"caret-down\" />\n )\n }\n {...props}\n id={props.id ?? props.name}\n value={\n field.value === '' || field.value === null ? undefined : field.value\n }\n onChange={(value, option) => {\n void helpers.setValue(value)\n props.onChange?.(value, option)\n }}\n popupRender={dropdownRender}\n removeIcon={<XCircleIcon size={12} />}\n allowClear={\n props.allowClear ? { clearIcon: <XCircleIcon size={14} /> } : false\n }\n showSearch={\n typeof props.showSearch === 'object'\n ? { ...props.showSearch, onSearch: handleSearch }\n : props.showSearch\n }\n onSearch={isSearchable ? handleSearch : undefined}\n onFocus={(event) => {\n setIsFocused(true)\n props.onFocus?.(event)\n }}\n onBlur={(event) => {\n void helpers.setTouched(true)\n setIsFocused(false)\n setIsSearching(false)\n props.onBlur?.(event)\n }}\n size={props.size || 'large'}\n />\n )\n}\n"],"names":["FormikField","jsx","useState","_a","jsxs","Spin","LoadingOutlined","Fragment","AntDSelect","MagnifyingGlassIcon","CaretDownIcon","XCircleIcon"],"mappings":"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"}
1
+ {"version":3,"file":"Select.cjs","names":["FormikField","useState","Spin","LoadingOutlined","_Fragment","AntDSelect","MagnifyingGlassIcon","CaretDownIcon","XCircleIcon"],"sources":["../../../../src/components/select/Select.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Select as AntDSelect, Spin } from 'antd'\nimport { LoadingOutlined } from '@ant-design/icons'\nimport type {\n SelectProps as AntDSelectProps,\n DefaultOptionType,\n} from 'antd/es/select'\nimport {\n CaretDownIcon,\n MagnifyingGlassIcon,\n XCircleIcon,\n} from '@phosphor-icons/react'\nimport { useState } from 'react'\nimport type { FieldProps } from 'formik'\nimport { FormikField } from '../form/FormikField'\nimport './Select.css'\n\ntype SelectProps = Expand<AntDSelectProps> & {\n name: string\n}\n\ntype GroupOption = { label?: React.ReactNode; options: DefaultOptionType[] }\n\nconst isGroupOption = (\n opt: DefaultOptionType | GroupOption\n): opt is GroupOption =>\n 'options' in opt && Array.isArray((opt as GroupOption).options)\n\nconst flattenOptions = (\n opts: (DefaultOptionType | GroupOption)[] | undefined\n): DefaultOptionType[] => {\n if (!opts) return []\n return opts.flatMap((o) =>\n isGroupOption(o) ? flattenOptions(o.options) : [o]\n )\n}\n\nexport const Select = (props: SelectProps) => (\n <FormikField name={props.name}>\n {({ field, form }) => (\n <SelectControl props={props} field={field} form={form} />\n )}\n </FormikField>\n)\n\nconst SelectControl = ({\n props,\n field,\n form,\n}: { props: SelectProps } & Pick<FieldProps, 'field' | 'form'>) => {\n const [isFocused, setIsFocused] = useState(false)\n const [isSearching, setIsSearching] = useState(false)\n const helpers = form.getFieldHelpers(props.name)\n\n const isMultiple = props.mode === 'multiple'\n const isSearchable = props.mode === 'tags' || (props.showSearch ?? isMultiple)\n const hasOptions = (props.options?.length ?? 0) > 0\n const currentValue: unknown[] = Array.isArray(field.value) ? field.value : []\n const showSelectAllFooter =\n isMultiple &&\n !props.loading &&\n !props.disabled &&\n hasOptions &&\n !isSearching\n\n const handleSearch = (value: string) => {\n setIsSearching(value.length > 0)\n const onSearch =\n typeof props.showSearch === 'object'\n ? (props.showSearch.onSearch ?? props.onSearch)\n : props.onSearch\n onSearch?.(value)\n }\n\n const handleToggleAll = () => {\n if (props.disabled) return\n\n if (currentValue.length === 0) {\n const flat = flattenOptions(\n props.options as (DefaultOptionType | GroupOption)[] | undefined\n )\n const allOptions = flat.filter(\n (opt) => opt.value !== undefined && opt.value !== null && !opt.disabled\n )\n // antd's labelInValue mode expects values shaped as { value, label }\n // rather than raw scalars; mirror that contract so the field state\n // and downstream onChange payload match what consumers expect.\n const payload = props.labelInValue\n ? allOptions.map((opt) => ({ value: opt.value, label: opt.label }))\n : allOptions.map((opt) => opt.value as string | number)\n void helpers.setValue(payload)\n props.onChange?.(payload, allOptions)\n } else {\n void helpers.setValue([])\n props.onChange?.([], [])\n }\n }\n\n const dropdownRender = (menu: React.ReactElement): React.ReactElement => {\n if (props.loading) {\n return (\n <div className=\"flex items-center justify-between px-3 py-1\">\n <span>Loading...</span>\n <Spin indicator={<LoadingOutlined spin />} size=\"small\" />\n </div>\n )\n }\n\n if (!props.options || (props.options && props.options.length === 0)) {\n return <div className=\"px-3 py-1\">No options</div>\n }\n\n if (!showSelectAllFooter) return menu\n\n const label = currentValue.length === 0 ? 'Select all' : 'Clear all'\n\n return (\n <>\n {menu}\n <div className=\"mt-1 pt-1 border-t border-j2-border-secondary\">\n <button\n type=\"button\"\n aria-label={label}\n title={label}\n onMouseDown={(e) => e.preventDefault()}\n onClick={handleToggleAll}\n className=\"w-full text-center font-semibold text-sm py-1.5 rounded cursor-pointer text-j2-primary hover:bg-j2-primary-bg-hover bg-transparent border-0\"\n >\n {label}\n </button>\n </div>\n </>\n )\n }\n\n return (\n <AntDSelect\n suffixIcon={\n props.loading ? (\n <Spin\n indicator={<LoadingOutlined spin />}\n size=\"small\"\n data-testid=\"loading-spinner\"\n />\n ) : isSearchable && isFocused ? (\n <MagnifyingGlassIcon size={14} data-testid=\"magnifying-glass\" />\n ) : (\n <CaretDownIcon size={14} data-testid=\"caret-down\" />\n )\n }\n {...props}\n id={props.id ?? props.name}\n value={\n field.value === '' || field.value === null ? undefined : field.value\n }\n onChange={(value, option) => {\n void helpers.setValue(value)\n props.onChange?.(value, option)\n }}\n popupRender={dropdownRender}\n removeIcon={<XCircleIcon size={12} />}\n allowClear={\n props.allowClear ? { clearIcon: <XCircleIcon size={14} /> } : false\n }\n showSearch={\n typeof props.showSearch === 'object'\n ? { ...props.showSearch, onSearch: handleSearch }\n : props.showSearch\n }\n onSearch={isSearchable ? handleSearch : undefined}\n onFocus={(event) => {\n setIsFocused(true)\n props.onFocus?.(event)\n }}\n onBlur={(event) => {\n void helpers.setTouched(true)\n setIsFocused(false)\n setIsSearching(false)\n props.onBlur?.(event)\n }}\n size={props.size || 'large'}\n />\n )\n}\n"],"mappings":"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"}