@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,455 +1,387 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { Dropdown, Typography, Select, Spin, Input } from "antd";
3
- import { useState, useRef, useMemo, useEffect } from "react";
4
- import { LoadingOutlined } from "@ant-design/icons";
1
+ import { icons_exports } from "../icons/index.js";
2
+ import { Tag as Tag$1 } from "../tag/Tag.js";
3
+ import SummarizedSelect_module_default from "./SummarizedSelect.module.css.js";
4
+ import { Fragment, useEffect, useMemo, useRef, useState } from "react";
5
+ import { Dropdown, Input, Select, Spin, Typography } from "antd";
6
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
5
7
  import cx from "classnames";
6
- import styles from "./SummarizedSelect.module.css.js";
7
- import { Tag } from "../tag/Tag.js";
8
- import { CaretDownIcon, MagnifyingGlassIcon } from "@phosphor-icons/react";
9
- const isGroupOption = (option) => {
10
- return "options" in option;
8
+ import { LoadingOutlined } from "@ant-design/icons";
9
+ //#region src/components/select/SummarizedSelect.tsx
10
+ var isGroupOption = (option) => {
11
+ return "options" in option;
11
12
  };
12
- const getAllOptions = (options) => {
13
- if (!options) return [];
14
- return options.flatMap(
15
- (option) => isGroupOption(option) ? option.options : [option]
16
- );
13
+ var getAllOptions = (options) => {
14
+ if (!options) return [];
15
+ return options.flatMap((option) => isGroupOption(option) ? option.options : [option]);
17
16
  };
18
- const filterOptions = (options, searchValue) => {
19
- if (!options) return [];
20
- if (!searchValue) return options;
21
- return options.map((option) => {
22
- var _a;
23
- if (isGroupOption(option)) {
24
- const filteredSubOptions = option.options.filter(
25
- (subOption) => {
26
- var _a2;
27
- return (_a2 = subOption.label) == null ? void 0 : _a2.toString().toLowerCase().includes(searchValue.toLowerCase());
28
- }
29
- );
30
- return filteredSubOptions.length > 0 ? { ...option, options: filteredSubOptions } : null;
31
- } else {
32
- return ((_a = option.label) == null ? void 0 : _a.toString().toLowerCase().includes(searchValue.toLowerCase())) ? option : null;
33
- }
34
- }).filter((option) => option !== null);
17
+ var filterOptions = (options, searchValue) => {
18
+ if (!options) return [];
19
+ if (!searchValue) return options;
20
+ return options.map((option) => {
21
+ if (isGroupOption(option)) {
22
+ const filteredSubOptions = option.options.filter((subOption) => subOption.label?.toString().toLowerCase().includes(searchValue.toLowerCase()));
23
+ return filteredSubOptions.length > 0 ? {
24
+ ...option,
25
+ options: filteredSubOptions
26
+ } : null;
27
+ } else return option.label?.toString().toLowerCase().includes(searchValue.toLowerCase()) ? option : null;
28
+ }).filter((option) => option !== null);
35
29
  };
36
- function SummarizedSelect({
37
- searchPlaceholder,
38
- formControlPlaceholder,
39
- loading,
40
- multiple,
41
- value,
42
- onChange,
43
- options,
44
- renderLabel,
45
- rootClassName,
46
- popupClassName,
47
- variant,
48
- trigger = "select",
49
- defaultOpen = false,
50
- ...props
51
- }) {
52
- const isHeadline = variant === "headlined";
53
- const antVariant = isHeadline ? "borderless" : variant;
54
- const [searchValue, setSearchValue] = useState("");
55
- const [focusTrigger, setFocusTrigger] = useState(defaultOpen ? 1 : 0);
56
- const [isOpen, setIsOpen] = useState(defaultOpen);
57
- const inputRef = useRef(null);
58
- const measureSpanRef = useRef(null);
59
- const [measuredWidth, setMeasuredWidth] = useState();
60
- const displayText = useMemo(() => {
61
- if (multiple && value.length > 0) {
62
- return renderLabel(value.length);
63
- }
64
- if (!multiple && value) {
65
- const option = getAllOptions(options).find((opt) => opt.value === value);
66
- return option ? String(option.label) : String(value);
67
- }
68
- return formControlPlaceholder ?? "";
69
- }, [multiple, value, options, renderLabel, formControlPlaceholder]);
70
- useEffect(() => {
71
- if (!measureSpanRef.current) return;
72
- setMeasuredWidth(Math.ceil(measureSpanRef.current.offsetWidth) + 46);
73
- }, [displayText]);
74
- useEffect(() => {
75
- if (focusTrigger > 0) {
76
- requestAnimationFrame(() => {
77
- requestAnimationFrame(() => {
78
- setTimeout(() => {
79
- var _a;
80
- (_a = inputRef.current) == null ? void 0 : _a.focus({ cursor: "end" });
81
- }, 100);
82
- });
83
- });
84
- }
85
- }, [focusTrigger]);
86
- const filteredOptions = useMemo(() => {
87
- return filterOptions(options, searchValue);
88
- }, [searchValue, options]);
89
- const flatFilteredOptions = useMemo(() => {
90
- return getAllOptions(filteredOptions);
91
- }, [filteredOptions]);
92
- const allFlatOptions = useMemo(() => {
93
- return getAllOptions(options);
94
- }, [options]);
95
- const handleTagClose = (removedValue) => {
96
- if (!multiple) return;
97
- onChange(value.filter((x) => x !== removedValue));
98
- };
99
- const handleToggleAll = () => {
100
- if (!multiple) return;
101
- const allFilteredValues = getAllOptions(filteredOptions).map(
102
- (opt) => opt.value
103
- );
104
- const someSelected = allFilteredValues.some((val) => value.includes(val));
105
- if (someSelected) {
106
- onChange(value.filter((val) => !allFilteredValues.includes(val)));
107
- }
108
- };
109
- const handleSelectFirstOption = () => {
110
- if (flatFilteredOptions.length === 0) return;
111
- const firstOption = flatFilteredOptions[0];
112
- if (!firstOption) return;
113
- const optionValue = firstOption.value;
114
- if (multiple) {
115
- if (value.includes(optionValue)) {
116
- onChange(value.filter((v) => v !== optionValue));
117
- } else {
118
- onChange([...value, optionValue]);
119
- }
120
- } else {
121
- onChange(optionValue);
122
- setIsOpen(false);
123
- }
124
- };
125
- const handleOptionClick = (optionValue) => {
126
- if (multiple) {
127
- if (value.includes(optionValue)) {
128
- onChange(value.filter((v) => v !== optionValue));
129
- } else {
130
- onChange([...value, optionValue]);
131
- }
132
- } else {
133
- onChange(optionValue);
134
- setIsOpen(false);
135
- }
136
- };
137
- const handleKeyDown = (e) => {
138
- const navigationKeys = ["ArrowUp", "ArrowDown"];
139
- if (e.key === "Enter") {
140
- e.preventDefault();
141
- e.stopPropagation();
142
- handleSelectFirstOption();
143
- return;
144
- }
145
- if (e.key === "Escape") {
146
- e.preventDefault();
147
- e.stopPropagation();
148
- setIsOpen(false);
149
- return;
150
- }
151
- if (navigationKeys.includes(e.key)) {
152
- e.preventDefault();
153
- return;
154
- }
155
- e.stopPropagation();
156
- };
157
- const optionRender = (option) => {
158
- if ("logo" in option.data && option.data.logo) {
159
- return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
160
- /* @__PURE__ */ jsx("div", { className: "h-4 shrink-0", children: option.data.logo }),
161
- /* @__PURE__ */ jsx("span", { className: "overflow-ellipsis overflow-hidden", children: option.label })
162
- ] });
163
- }
164
- return /* @__PURE__ */ jsx("div", { children: option.label });
165
- };
166
- const popupRender = (menu) => {
167
- const valueToLabel = (val) => {
168
- const option = allFlatOptions.find((opt) => opt.value === val);
169
- return option ? option.label : val;
170
- };
171
- return /* @__PURE__ */ jsxs("div", { children: [
172
- /* @__PURE__ */ jsx("div", { className: "mb-2 px-2 pb-2 border-b -mx-1 mt-1", children: /* @__PURE__ */ jsx(
173
- Input,
174
- {
175
- ref: inputRef,
176
- autoFocus: true,
177
- placeholder: searchPlaceholder || "Search...",
178
- value: searchValue,
179
- onChange: (e) => {
180
- setSearchValue(e.target.value);
181
- e.stopPropagation();
182
- e.preventDefault();
183
- },
184
- onKeyDown: handleKeyDown,
185
- onClick: (e) => e.stopPropagation(),
186
- prefix: /* @__PURE__ */ jsx(
187
- MagnifyingGlassIcon,
188
- {
189
- size: 16,
190
- className: "text-j2-text-placeholder"
191
- }
192
- ),
193
- allowClear: true
194
- },
195
- focusTrigger
196
- ) }),
197
- multiple && value.length > 0 ? /* @__PURE__ */ jsx("div", { className: "px-2 pb-2", children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-y-1", children: value.map((value2) => /* @__PURE__ */ jsx(
198
- Tag,
199
- {
200
- className: "opacity-100 z-10 flex max-w-full",
201
- status: "default",
202
- closable: true,
203
- onClose: () => handleTagClose(value2),
204
- children: /* @__PURE__ */ jsx(
205
- "span",
206
- {
207
- className: "overflow-ellipsis overflow-hidden",
208
- title: valueToLabel(value2),
209
- children: valueToLabel(value2)
210
- }
211
- )
212
- },
213
- value2
214
- )) }) }) : null,
215
- /* @__PURE__ */ jsx(
216
- "div",
217
- {
218
- className: cx(styles.menuContainer, "rounded-lg", {
219
- [styles.headlinedMenuContainer]: isHeadline,
220
- [styles.menuContainerMultiple]: multiple
221
- }),
222
- children: menu
223
- }
224
- ),
225
- /* @__PURE__ */ jsx("div", { className: "flex justify-between items-center", children: multiple && /* @__PURE__ */ jsx("div", { className: "w-full mt-1 pt-1 border-t border-j2-border-secondary", children: /* @__PURE__ */ jsx(
226
- "div",
227
- {
228
- "aria-selected": "false",
229
- className: cx(
230
- "ant-select-item ant-select-item-option w-full",
231
- styles.clearAllButton
232
- ),
233
- title: "Clear all",
234
- onClick: handleToggleAll,
235
- children: /* @__PURE__ */ jsx("div", { className: "ant-select-item-option-content text-center font-semibold", children: "Clear all" })
236
- }
237
- ) }) })
238
- ] });
239
- };
240
- const handleOpenChange = (open) => {
241
- setIsOpen(open);
242
- if (open) {
243
- setFocusTrigger((prev) => prev + 1);
244
- } else {
245
- setSearchValue("");
246
- }
247
- };
248
- const renderDropdownOptionRow = (option) => {
249
- const optionValue = option.value;
250
- const isSelected = multiple ? value.includes(optionValue) : value === optionValue;
251
- const hasLogo = "logo" in option && option.logo;
252
- return /* @__PURE__ */ jsx(
253
- "div",
254
- {
255
- role: "option",
256
- "aria-selected": isSelected,
257
- onClick: () => handleOptionClick(optionValue),
258
- className: cx(
259
- "px-3 py-1.5 rounded cursor-pointer text-sm",
260
- isSelected ? "bg-[var(--j2-color-primary)] text-white hover:bg-[var(--j2-color-primary)]" : "hover:bg-[var(--j2-color-bg-hover)]"
261
- ),
262
- children: hasLogo ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
263
- /* @__PURE__ */ jsx("div", { className: "h-4 shrink-0", children: option.logo }),
264
- /* @__PURE__ */ jsx("span", { className: "overflow-hidden overflow-ellipsis", children: option.label })
265
- ] }) : option.label
266
- },
267
- optionValue
268
- );
269
- };
270
- const dropdownPopupRender = () => {
271
- const valueToLabel = (val) => {
272
- const option = allFlatOptions.find((opt) => opt.value === val);
273
- return option ? option.label : val;
274
- };
275
- return /* @__PURE__ */ jsxs("div", { className: "bg-white rounded-lg shadow-md p-2 min-w-[240px]", children: [
276
- /* @__PURE__ */ jsx("div", { className: "pb-2 border-b border-j2-border-secondary", children: /* @__PURE__ */ jsx(
277
- Input,
278
- {
279
- ref: inputRef,
280
- autoFocus: true,
281
- placeholder: searchPlaceholder || "Search...",
282
- value: searchValue,
283
- onChange: (e) => {
284
- setSearchValue(e.target.value);
285
- e.stopPropagation();
286
- },
287
- onKeyDown: handleKeyDown,
288
- onClick: (e) => e.stopPropagation(),
289
- prefix: /* @__PURE__ */ jsx(
290
- MagnifyingGlassIcon,
291
- {
292
- size: 16,
293
- className: "text-j2-text-placeholder"
294
- }
295
- ),
296
- allowClear: true
297
- },
298
- focusTrigger
299
- ) }),
300
- multiple && value.length > 0 && /* @__PURE__ */ jsx("div", { className: "px-1 pt-2", children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-y-1", children: value.map((v) => /* @__PURE__ */ jsx(
301
- Tag,
302
- {
303
- className: "opacity-100 z-10 flex max-w-full",
304
- status: "default",
305
- closable: true,
306
- onClose: () => handleTagClose(v),
307
- children: /* @__PURE__ */ jsx(
308
- "span",
309
- {
310
- className: "overflow-ellipsis overflow-hidden",
311
- title: valueToLabel(v),
312
- children: valueToLabel(v)
313
- }
314
- )
315
- },
316
- v
317
- )) }) }),
318
- /* @__PURE__ */ jsx(
319
- "div",
320
- {
321
- className: "max-h-72 overflow-y-auto py-1",
322
- role: "listbox",
323
- "aria-multiselectable": multiple || void 0,
324
- children: filteredOptions.length === 0 ? /* @__PURE__ */ jsx("div", { className: "px-3 py-2 text-sm text-[var(--j2-color-text-secondary)]", children: "No options found" }) : filteredOptions.map((opt) => {
325
- if (isGroupOption(opt)) {
326
- return /* @__PURE__ */ jsxs("div", { children: [
327
- /* @__PURE__ */ jsx("div", { className: "px-3 pt-2 pb-1 text-xs font-semibold uppercase tracking-wide text-[var(--j2-color-text-tertiary)]", children: opt.label }),
328
- opt.options.map(renderDropdownOptionRow)
329
- ] }, `group-${opt.label}`);
330
- }
331
- return renderDropdownOptionRow(opt);
332
- })
333
- }
334
- ),
335
- multiple && value.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-1 pt-1 border-t border-j2-border-secondary", children: /* @__PURE__ */ jsx(
336
- "div",
337
- {
338
- role: "button",
339
- "aria-label": "Clear all",
340
- title: "Clear all",
341
- onClick: handleToggleAll,
342
- className: cx(
343
- "text-center font-semibold text-sm py-1.5 rounded cursor-pointer",
344
- styles.clearAllButton
345
- ),
346
- children: "Clear all"
347
- }
348
- ) })
349
- ] });
350
- };
351
- if (trigger === "dropdown") {
352
- const hasSelection = multiple ? value.length > 0 : Boolean(value);
353
- const triggerContent = /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1", children: [
354
- hasSelection ? displayText : formControlPlaceholder ?? "Select",
355
- loading ? /* @__PURE__ */ jsx(
356
- Spin,
357
- {
358
- indicator: /* @__PURE__ */ jsx(LoadingOutlined, { spin: true }),
359
- size: "small",
360
- "data-testid": "loading-spinner"
361
- }
362
- ) : /* @__PURE__ */ jsx(CaretDownIcon, { weight: "regular", "data-testid": "caret-down" })
363
- ] });
364
- return /* @__PURE__ */ jsx(
365
- Dropdown,
366
- {
367
- open: isOpen,
368
- onOpenChange: handleOpenChange,
369
- trigger: ["click"],
370
- disabled: props.disabled,
371
- popupRender: dropdownPopupRender,
372
- children: /* @__PURE__ */ jsx(
373
- Typography.Link,
374
- {
375
- disabled: props.disabled,
376
- className: cx("inline-flex", rootClassName),
377
- children: triggerContent
378
- }
379
- )
380
- }
381
- );
382
- }
383
- return /* @__PURE__ */ jsxs(Fragment, { children: [
384
- /* @__PURE__ */ jsx(
385
- "span",
386
- {
387
- ref: measureSpanRef,
388
- "aria-hidden": true,
389
- style: {
390
- position: "absolute",
391
- visibility: "hidden",
392
- whiteSpace: "nowrap",
393
- fontSize: "inherit"
394
- },
395
- children: displayText
396
- }
397
- ),
398
- /* @__PURE__ */ jsx(
399
- Select,
400
- {
401
- open: isOpen,
402
- showSearch: false,
403
- style: { width: measuredWidth },
404
- suffixIcon: loading ? /* @__PURE__ */ jsx(
405
- Spin,
406
- {
407
- indicator: /* @__PURE__ */ jsx(LoadingOutlined, { spin: true }),
408
- size: "small",
409
- "data-testid": "loading-spinner"
410
- }
411
- ) : /* @__PURE__ */ jsx(CaretDownIcon, { size: 14, "data-testid": "caret-down" }),
412
- placeholder: formControlPlaceholder,
413
- mode: multiple ? "multiple" : void 0,
414
- value,
415
- maxTagCount: 0,
416
- maxTagPlaceholder: multiple ? () => renderLabel(value.length) : value,
417
- options: filteredOptions,
418
- onChange: (val) => {
419
- if (multiple) {
420
- if (Array.isArray(val)) {
421
- onChange(val);
422
- } else {
423
- throw new Error("Value should be an array in multiple mode");
424
- }
425
- } else {
426
- if (typeof val === "string") {
427
- onChange(val);
428
- } else {
429
- throw new Error(
430
- "Value should be a string in single selection mode"
431
- );
432
- }
433
- }
434
- },
435
- popupRender,
436
- optionRender,
437
- onOpenChange: handleOpenChange,
438
- classNames: {
439
- root: cx(rootClassName, styles.summarizedSelect, {
440
- [styles.hemisphericSelect]: variant !== "underlined" && variant !== "headlined",
441
- [styles.isActive]: multiple && value.length > 0 && variant !== "underlined" && variant !== "headlined",
442
- [styles.headlinedSelect]: isHeadline
443
- }),
444
- popup: { root: popupClassName }
445
- },
446
- variant: antVariant,
447
- ...props
448
- }
449
- )
450
- ] });
30
+ function SummarizedSelect({ searchPlaceholder, formControlPlaceholder, loading, multiple, value, onChange, options, renderLabel, rootClassName, popupClassName, variant, trigger = "select", defaultOpen = false, ...props }) {
31
+ const isHeadline = variant === "headlined";
32
+ const antVariant = isHeadline ? "borderless" : variant;
33
+ const [searchValue, setSearchValue] = useState("");
34
+ const [focusTrigger, setFocusTrigger] = useState(defaultOpen ? 1 : 0);
35
+ const [isOpen, setIsOpen] = useState(defaultOpen);
36
+ const inputRef = useRef(null);
37
+ const measureSpanRef = useRef(null);
38
+ const [measuredWidth, setMeasuredWidth] = useState();
39
+ const displayText = useMemo(() => {
40
+ if (multiple && value.length > 0) return renderLabel(value.length);
41
+ if (!multiple && value) {
42
+ const option = getAllOptions(options).find((opt) => opt.value === value);
43
+ return option ? String(option.label) : String(value);
44
+ }
45
+ return formControlPlaceholder ?? "";
46
+ }, [
47
+ multiple,
48
+ value,
49
+ options,
50
+ renderLabel,
51
+ formControlPlaceholder
52
+ ]);
53
+ useEffect(() => {
54
+ if (!measureSpanRef.current) return;
55
+ setMeasuredWidth(Math.ceil(measureSpanRef.current.offsetWidth) + 46);
56
+ }, [displayText]);
57
+ useEffect(() => {
58
+ if (focusTrigger > 0) requestAnimationFrame(() => {
59
+ requestAnimationFrame(() => {
60
+ setTimeout(() => {
61
+ inputRef.current?.focus({ cursor: "end" });
62
+ }, 100);
63
+ });
64
+ });
65
+ }, [focusTrigger]);
66
+ const filteredOptions = useMemo(() => {
67
+ return filterOptions(options, searchValue);
68
+ }, [searchValue, options]);
69
+ const flatFilteredOptions = useMemo(() => {
70
+ return getAllOptions(filteredOptions);
71
+ }, [filteredOptions]);
72
+ const allFlatOptions = useMemo(() => {
73
+ return getAllOptions(options);
74
+ }, [options]);
75
+ const handleTagClose = (removedValue) => {
76
+ if (!multiple) return;
77
+ onChange(value.filter((x) => x !== removedValue));
78
+ };
79
+ const handleToggleAll = () => {
80
+ if (!multiple) return;
81
+ const allFilteredValues = getAllOptions(filteredOptions).map((opt) => opt.value);
82
+ if (allFilteredValues.some((val) => value.includes(val))) onChange(value.filter((val) => !allFilteredValues.includes(val)));
83
+ };
84
+ const handleSelectFirstOption = () => {
85
+ if (flatFilteredOptions.length === 0) return;
86
+ const firstOption = flatFilteredOptions[0];
87
+ if (!firstOption) return;
88
+ const optionValue = firstOption.value;
89
+ if (multiple) {
90
+ if (value.includes(optionValue)) onChange(value.filter((v) => v !== optionValue));
91
+ else onChange([...value, optionValue]);
92
+ } else {
93
+ onChange(optionValue);
94
+ handleOpenChange(false);
95
+ }
96
+ };
97
+ const handleOptionClick = (optionValue) => {
98
+ if (multiple) {
99
+ if (value.includes(optionValue)) onChange(value.filter((v) => v !== optionValue));
100
+ else onChange([...value, optionValue]);
101
+ } else {
102
+ onChange(optionValue);
103
+ handleOpenChange(false);
104
+ }
105
+ };
106
+ const handleKeyDown = (e) => {
107
+ const navigationKeys = ["ArrowUp", "ArrowDown"];
108
+ if (e.key === "Enter") {
109
+ e.preventDefault();
110
+ e.stopPropagation();
111
+ handleSelectFirstOption();
112
+ return;
113
+ }
114
+ if (e.key === "Escape") {
115
+ e.preventDefault();
116
+ e.stopPropagation();
117
+ handleOpenChange(false);
118
+ return;
119
+ }
120
+ if (navigationKeys.includes(e.key)) {
121
+ e.preventDefault();
122
+ return;
123
+ }
124
+ e.stopPropagation();
125
+ };
126
+ const optionRender = (option) => {
127
+ if ("logo" in option.data && option.data.logo) return /* @__PURE__ */ jsxs("div", {
128
+ className: "flex items-center gap-2",
129
+ children: [/* @__PURE__ */ jsx("div", {
130
+ className: "h-4 shrink-0",
131
+ children: option.data.logo
132
+ }), /* @__PURE__ */ jsx("span", {
133
+ className: "overflow-ellipsis overflow-hidden",
134
+ children: option.label
135
+ })]
136
+ });
137
+ return /* @__PURE__ */ jsx("div", { children: option.label });
138
+ };
139
+ const popupRender = (menu) => {
140
+ const valueToLabel = (val) => {
141
+ const option = allFlatOptions.find((opt) => opt.value === val);
142
+ return option ? option.label : val;
143
+ };
144
+ return /* @__PURE__ */ jsxs("div", { children: [
145
+ /* @__PURE__ */ jsx("div", {
146
+ className: "mb-2 px-2 pb-2 border-b -mx-1 mt-1",
147
+ children: /* @__PURE__ */ jsx(Input, {
148
+ ref: inputRef,
149
+ autoFocus: true,
150
+ placeholder: searchPlaceholder || "Search...",
151
+ value: searchValue,
152
+ onChange: (e) => {
153
+ setSearchValue(e.target.value);
154
+ e.stopPropagation();
155
+ e.preventDefault();
156
+ },
157
+ onKeyDown: handleKeyDown,
158
+ onClick: (e) => e.stopPropagation(),
159
+ prefix: /* @__PURE__ */ jsx(icons_exports.MagnifyingGlassIcon, {
160
+ size: 16,
161
+ className: "text-j2-text-placeholder"
162
+ }),
163
+ allowClear: true
164
+ }, focusTrigger)
165
+ }),
166
+ multiple && value.length > 0 ? /* @__PURE__ */ jsx("div", {
167
+ className: "px-2 pb-2",
168
+ children: /* @__PURE__ */ jsx("div", {
169
+ className: "flex flex-wrap gap-y-1",
170
+ children: value.map((value) => /* @__PURE__ */ jsx(Tag$1, {
171
+ className: "opacity-100 z-10 flex max-w-full",
172
+ status: "default",
173
+ closable: true,
174
+ onClose: () => handleTagClose(value),
175
+ children: /* @__PURE__ */ jsx("span", {
176
+ className: "overflow-ellipsis overflow-hidden",
177
+ title: valueToLabel(value),
178
+ children: valueToLabel(value)
179
+ })
180
+ }, value))
181
+ })
182
+ }) : null,
183
+ /* @__PURE__ */ jsx("div", {
184
+ className: cx(SummarizedSelect_module_default.menuContainer, "rounded-lg", {
185
+ [SummarizedSelect_module_default.headlinedMenuContainer]: isHeadline,
186
+ [SummarizedSelect_module_default.menuContainerMultiple]: multiple
187
+ }),
188
+ children: /* @__PURE__ */ jsx(Fragment, { children: menu }, searchValue)
189
+ }),
190
+ /* @__PURE__ */ jsx("div", {
191
+ className: "flex justify-between items-center",
192
+ children: multiple && /* @__PURE__ */ jsx("div", {
193
+ className: "w-full mt-1 pt-1 border-t border-j2-border-secondary",
194
+ children: /* @__PURE__ */ jsx("div", {
195
+ "aria-selected": "false",
196
+ className: cx("ant-select-item ant-select-item-option w-full", SummarizedSelect_module_default.clearAllButton),
197
+ title: "Clear all",
198
+ onClick: handleToggleAll,
199
+ children: /* @__PURE__ */ jsx("div", {
200
+ className: "ant-select-item-option-content text-center font-semibold",
201
+ children: "Clear all"
202
+ })
203
+ })
204
+ })
205
+ })
206
+ ] });
207
+ };
208
+ const handleOpenChange = (open) => {
209
+ setIsOpen(open);
210
+ if (open) setFocusTrigger((prev) => prev + 1);
211
+ else setSearchValue("");
212
+ };
213
+ const renderDropdownOptionRow = (option) => {
214
+ const optionValue = option.value;
215
+ const isSelected = multiple ? value.includes(optionValue) : value === optionValue;
216
+ const hasLogo = "logo" in option && option.logo;
217
+ return /* @__PURE__ */ jsx("div", {
218
+ role: "option",
219
+ "aria-selected": isSelected,
220
+ onClick: () => handleOptionClick(optionValue),
221
+ className: cx("px-3 py-1.5 rounded cursor-pointer text-sm", isSelected ? "bg-[var(--j2-color-primary)] text-white hover:bg-[var(--j2-color-primary)]" : "hover:bg-[var(--j2-color-bg-hover)]"),
222
+ children: hasLogo ? /* @__PURE__ */ jsxs("div", {
223
+ className: "flex items-center gap-2",
224
+ children: [/* @__PURE__ */ jsx("div", {
225
+ className: "h-4 shrink-0",
226
+ children: option.logo
227
+ }), /* @__PURE__ */ jsx("span", {
228
+ className: "overflow-hidden overflow-ellipsis",
229
+ children: option.label
230
+ })]
231
+ }) : option.label
232
+ }, optionValue);
233
+ };
234
+ const dropdownPopupRender = () => {
235
+ const valueToLabel = (val) => {
236
+ const option = allFlatOptions.find((opt) => opt.value === val);
237
+ return option ? option.label : val;
238
+ };
239
+ return /* @__PURE__ */ jsxs("div", {
240
+ className: "bg-white rounded-lg shadow-md p-2 min-w-[240px]",
241
+ children: [
242
+ /* @__PURE__ */ jsx("div", {
243
+ className: "pb-2 border-b border-j2-border-secondary",
244
+ children: /* @__PURE__ */ jsx(Input, {
245
+ ref: inputRef,
246
+ autoFocus: true,
247
+ placeholder: searchPlaceholder || "Search...",
248
+ value: searchValue,
249
+ onChange: (e) => {
250
+ setSearchValue(e.target.value);
251
+ e.stopPropagation();
252
+ },
253
+ onKeyDown: handleKeyDown,
254
+ onClick: (e) => e.stopPropagation(),
255
+ prefix: /* @__PURE__ */ jsx(icons_exports.MagnifyingGlassIcon, {
256
+ size: 16,
257
+ className: "text-j2-text-placeholder"
258
+ }),
259
+ allowClear: true
260
+ }, focusTrigger)
261
+ }),
262
+ multiple && value.length > 0 && /* @__PURE__ */ jsx("div", {
263
+ className: "px-1 pt-2",
264
+ children: /* @__PURE__ */ jsx("div", {
265
+ className: "flex flex-wrap gap-y-1",
266
+ children: value.map((v) => /* @__PURE__ */ jsx(Tag$1, {
267
+ className: "opacity-100 z-10 flex max-w-full",
268
+ status: "default",
269
+ closable: true,
270
+ onClose: () => handleTagClose(v),
271
+ children: /* @__PURE__ */ jsx("span", {
272
+ className: "overflow-ellipsis overflow-hidden",
273
+ title: valueToLabel(v),
274
+ children: valueToLabel(v)
275
+ })
276
+ }, v))
277
+ })
278
+ }),
279
+ /* @__PURE__ */ jsx("div", {
280
+ className: "max-h-72 overflow-y-auto py-1",
281
+ role: "listbox",
282
+ "aria-multiselectable": multiple || void 0,
283
+ children: filteredOptions.length === 0 ? /* @__PURE__ */ jsx("div", {
284
+ className: "px-3 py-2 text-sm text-[var(--j2-color-text-secondary)]",
285
+ children: "No options found"
286
+ }) : filteredOptions.map((opt) => {
287
+ if (isGroupOption(opt)) return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("div", {
288
+ className: "px-3 pt-2 pb-1 text-xs font-semibold uppercase tracking-wide text-[var(--j2-color-text-tertiary)]",
289
+ children: opt.label
290
+ }), opt.options.map(renderDropdownOptionRow)] }, `group-${opt.label}`);
291
+ return renderDropdownOptionRow(opt);
292
+ })
293
+ }),
294
+ multiple && value.length > 0 && /* @__PURE__ */ jsx("div", {
295
+ className: "mt-1 pt-1 border-t border-j2-border-secondary",
296
+ children: /* @__PURE__ */ jsx("div", {
297
+ role: "button",
298
+ "aria-label": "Clear all",
299
+ title: "Clear all",
300
+ onClick: handleToggleAll,
301
+ className: cx("text-center font-semibold text-sm py-1.5 rounded cursor-pointer", SummarizedSelect_module_default.clearAllButton),
302
+ children: "Clear all"
303
+ })
304
+ })
305
+ ]
306
+ });
307
+ };
308
+ if (trigger === "dropdown") {
309
+ const hasSelection = multiple ? value.length > 0 : Boolean(value);
310
+ const triggerContent = /* @__PURE__ */ jsxs("span", {
311
+ className: "inline-flex items-center gap-1",
312
+ children: [hasSelection ? displayText : formControlPlaceholder ?? "Select", loading ? /* @__PURE__ */ jsx(Spin, {
313
+ indicator: /* @__PURE__ */ jsx(LoadingOutlined, { spin: true }),
314
+ size: "small",
315
+ "data-testid": "loading-spinner"
316
+ }) : /* @__PURE__ */ jsx(icons_exports.CaretDownIcon, {
317
+ weight: "regular",
318
+ "data-testid": "caret-down"
319
+ })]
320
+ });
321
+ return /* @__PURE__ */ jsx(Dropdown, {
322
+ open: isOpen,
323
+ onOpenChange: handleOpenChange,
324
+ trigger: ["click"],
325
+ disabled: props.disabled,
326
+ popupRender: dropdownPopupRender,
327
+ children: /* @__PURE__ */ jsx(Typography.Link, {
328
+ disabled: props.disabled,
329
+ className: cx("inline-flex", rootClassName),
330
+ children: triggerContent
331
+ })
332
+ });
333
+ }
334
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
335
+ ref: measureSpanRef,
336
+ "aria-hidden": true,
337
+ style: {
338
+ position: "absolute",
339
+ visibility: "hidden",
340
+ whiteSpace: "nowrap",
341
+ fontSize: "inherit"
342
+ },
343
+ children: displayText
344
+ }), /* @__PURE__ */ jsx(Select, {
345
+ open: isOpen,
346
+ showSearch: false,
347
+ style: { width: measuredWidth },
348
+ suffixIcon: loading ? /* @__PURE__ */ jsx(Spin, {
349
+ indicator: /* @__PURE__ */ jsx(LoadingOutlined, { spin: true }),
350
+ size: "small",
351
+ "data-testid": "loading-spinner"
352
+ }) : /* @__PURE__ */ jsx(icons_exports.CaretDownIcon, {
353
+ size: 14,
354
+ "data-testid": "caret-down"
355
+ }),
356
+ placeholder: formControlPlaceholder,
357
+ mode: multiple ? "multiple" : void 0,
358
+ value,
359
+ maxTagCount: 0,
360
+ maxTagPlaceholder: multiple ? () => renderLabel(value.length) : value,
361
+ options: filteredOptions,
362
+ onChange: (val) => {
363
+ if (multiple) {
364
+ if (Array.isArray(val)) onChange(val);
365
+ else throw new Error("Value should be an array in multiple mode");
366
+ } else if (typeof val === "string") onChange(val);
367
+ else throw new Error("Value should be a string in single selection mode");
368
+ },
369
+ popupRender,
370
+ optionRender,
371
+ onOpenChange: handleOpenChange,
372
+ classNames: {
373
+ root: cx(rootClassName, SummarizedSelect_module_default.summarizedSelect, {
374
+ [SummarizedSelect_module_default.hemisphericSelect]: variant !== "underlined" && variant !== "headlined",
375
+ [SummarizedSelect_module_default.isActive]: multiple && value.length > 0 && variant !== "underlined" && variant !== "headlined",
376
+ [SummarizedSelect_module_default.headlinedSelect]: isHeadline
377
+ }),
378
+ popup: { root: popupClassName }
379
+ },
380
+ variant: antVariant,
381
+ ...props
382
+ })] });
451
383
  }
452
- export {
453
- SummarizedSelect
454
- };
455
- //# sourceMappingURL=SummarizedSelect.js.map
384
+ //#endregion
385
+ export { SummarizedSelect };
386
+
387
+ //# sourceMappingURL=SummarizedSelect.js.map