@portnet/ui 6.0.2 → 6.0.3

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 (980) hide show
  1. package/CHANGELOG.md +652 -0
  2. package/dist/esm/index.js +72 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
  5. package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
  7. package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
  9. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
  11. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FieldError.test.js +71 -38
  13. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  14. package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
  15. package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/FieldWidth.test.js +11 -11
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  24. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
  25. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +118 -199
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
  29. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  30. package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
  31. package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
  33. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  34. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
  35. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  36. package/dist/esm/v2/__tests__/apiError.test.js +50 -69
  37. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
  38. package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
  39. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
  40. package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
  41. package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
  42. package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
  43. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
  44. package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
  45. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
  46. package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
  47. package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
  48. package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
  49. package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
  50. package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
  51. package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
  52. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
  53. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  54. package/dist/esm/v2/__tests__/labels-merge.test.js +17 -21
  55. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  56. package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
  57. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
  58. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
  59. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  60. package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
  61. package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
  62. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
  63. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  64. package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
  65. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
  66. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
  67. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  68. package/dist/esm/v2/components/Accordion.js +48 -70
  69. package/dist/esm/v2/components/Accordion.js.map +1 -1
  70. package/dist/esm/v2/components/ActionStrip.js +31 -43
  71. package/dist/esm/v2/components/ActionStrip.js.map +1 -1
  72. package/dist/esm/v2/components/Banner.js +25 -22
  73. package/dist/esm/v2/components/Banner.js.map +1 -1
  74. package/dist/esm/v2/components/Busy.js +14 -19
  75. package/dist/esm/v2/components/Busy.js.map +1 -1
  76. package/dist/esm/v2/components/Button.js +34 -45
  77. package/dist/esm/v2/components/Button.js.map +1 -1
  78. package/dist/esm/v2/components/CategoryTag.js +44 -27
  79. package/dist/esm/v2/components/CategoryTag.js.map +1 -1
  80. package/dist/esm/v2/components/Checkbox.js +32 -38
  81. package/dist/esm/v2/components/Checkbox.js.map +1 -1
  82. package/dist/esm/v2/components/Chip.js +23 -36
  83. package/dist/esm/v2/components/Chip.js.map +1 -1
  84. package/dist/esm/v2/components/Combobox.js +112 -136
  85. package/dist/esm/v2/components/Combobox.js.map +1 -1
  86. package/dist/esm/v2/components/CommandPalette.js +113 -198
  87. package/dist/esm/v2/components/CommandPalette.js.map +1 -1
  88. package/dist/esm/v2/components/ConfirmDialog.js +36 -45
  89. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
  90. package/dist/esm/v2/components/DatePicker.js +78 -81
  91. package/dist/esm/v2/components/DatePicker.js.map +1 -1
  92. package/dist/esm/v2/components/DateRangePicker.js +63 -74
  93. package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
  94. package/dist/esm/v2/components/DateTimePicker.js +81 -86
  95. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  96. package/dist/esm/v2/components/Drawer.js +71 -65
  97. package/dist/esm/v2/components/Drawer.js.map +1 -1
  98. package/dist/esm/v2/components/Dropzone.js +130 -177
  99. package/dist/esm/v2/components/Dropzone.js.map +1 -1
  100. package/dist/esm/v2/components/EmptyState.js +9 -9
  101. package/dist/esm/v2/components/EmptyState.js.map +1 -1
  102. package/dist/esm/v2/components/FavoriteToggle.js +24 -33
  103. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
  104. package/dist/esm/v2/components/Field.js +155 -59
  105. package/dist/esm/v2/components/Field.js.map +1 -1
  106. package/dist/esm/v2/components/FieldError.js +9 -13
  107. package/dist/esm/v2/components/FieldError.js.map +1 -1
  108. package/dist/esm/v2/components/FieldHelp.js +28 -49
  109. package/dist/esm/v2/components/FieldHelp.js.map +1 -1
  110. package/dist/esm/v2/components/FileCard.js +14 -19
  111. package/dist/esm/v2/components/FileCard.js.map +1 -1
  112. package/dist/esm/v2/components/FilterTab.js +22 -31
  113. package/dist/esm/v2/components/FilterTab.js.map +1 -1
  114. package/dist/esm/v2/components/ForbiddenPage.js +28 -8
  115. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
  116. package/dist/esm/v2/components/FormGrid.js +48 -54
  117. package/dist/esm/v2/components/FormGrid.js.map +1 -1
  118. package/dist/esm/v2/components/FormikDisplay.js +98 -24
  119. package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
  120. package/dist/esm/v2/components/Input.js +75 -34
  121. package/dist/esm/v2/components/Input.js.map +1 -1
  122. package/dist/esm/v2/components/KPICard.js +42 -51
  123. package/dist/esm/v2/components/KPICard.js.map +1 -1
  124. package/dist/esm/v2/components/KPIStrip.js +9 -15
  125. package/dist/esm/v2/components/KPIStrip.js.map +1 -1
  126. package/dist/esm/v2/components/KV.js +16 -23
  127. package/dist/esm/v2/components/KV.js.map +1 -1
  128. package/dist/esm/v2/components/KVGrid.js +15 -23
  129. package/dist/esm/v2/components/KVGrid.js.map +1 -1
  130. package/dist/esm/v2/components/Layout.js +81 -117
  131. package/dist/esm/v2/components/Layout.js.map +1 -1
  132. package/dist/esm/v2/components/MobileRowCard.js +64 -75
  133. package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
  134. package/dist/esm/v2/components/Modal.js +44 -53
  135. package/dist/esm/v2/components/Modal.js.map +1 -1
  136. package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
  137. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
  138. package/dist/esm/v2/components/NotFoundPage.js +28 -9
  139. package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
  140. package/dist/esm/v2/components/NumberInput.js +77 -107
  141. package/dist/esm/v2/components/NumberInput.js.map +1 -1
  142. package/dist/esm/v2/components/OverflowMenu.js +24 -42
  143. package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
  144. package/dist/esm/v2/components/PdfViewer.js +24 -33
  145. package/dist/esm/v2/components/PdfViewer.js.map +1 -1
  146. package/dist/esm/v2/components/ProgressBar.js +28 -36
  147. package/dist/esm/v2/components/ProgressBar.js.map +1 -1
  148. package/dist/esm/v2/components/Radio.js +49 -57
  149. package/dist/esm/v2/components/Radio.js.map +1 -1
  150. package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
  151. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
  152. package/dist/esm/v2/components/SectionHeader.js +24 -31
  153. package/dist/esm/v2/components/SectionHeader.js.map +1 -1
  154. package/dist/esm/v2/components/Segmented.js +59 -84
  155. package/dist/esm/v2/components/Segmented.js.map +1 -1
  156. package/dist/esm/v2/components/Select.js +100 -138
  157. package/dist/esm/v2/components/Select.js.map +1 -1
  158. package/dist/esm/v2/components/ServerErrorPage.js +27 -10
  159. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
  160. package/dist/esm/v2/components/Skeleton.js +81 -96
  161. package/dist/esm/v2/components/Skeleton.js.map +1 -1
  162. package/dist/esm/v2/components/SkipLink.js +6 -7
  163. package/dist/esm/v2/components/SkipLink.js.map +1 -1
  164. package/dist/esm/v2/components/Spinner.js +13 -22
  165. package/dist/esm/v2/components/Spinner.js.map +1 -1
  166. package/dist/esm/v2/components/Status.js +14 -25
  167. package/dist/esm/v2/components/Status.js.map +1 -1
  168. package/dist/esm/v2/components/Stepper.js +68 -71
  169. package/dist/esm/v2/components/Stepper.js.map +1 -1
  170. package/dist/esm/v2/components/Surface.js +25 -44
  171. package/dist/esm/v2/components/Surface.js.map +1 -1
  172. package/dist/esm/v2/components/Switch.js +21 -29
  173. package/dist/esm/v2/components/Switch.js.map +1 -1
  174. package/dist/esm/v2/components/TabPanel.js +84 -0
  175. package/dist/esm/v2/components/TabPanel.js.map +1 -0
  176. package/dist/esm/v2/components/Tabs.js +43 -19
  177. package/dist/esm/v2/components/Tabs.js.map +1 -1
  178. package/dist/esm/v2/components/TelInput.js +75 -108
  179. package/dist/esm/v2/components/TelInput.js.map +1 -1
  180. package/dist/esm/v2/components/Textarea.js +21 -30
  181. package/dist/esm/v2/components/Textarea.js.map +1 -1
  182. package/dist/esm/v2/components/TimePicker.js +59 -69
  183. package/dist/esm/v2/components/TimePicker.js.map +1 -1
  184. package/dist/esm/v2/components/Toast.js +109 -163
  185. package/dist/esm/v2/components/Toast.js.map +1 -1
  186. package/dist/esm/v2/components/Tooltip.js +18 -31
  187. package/dist/esm/v2/components/Tooltip.js.map +1 -1
  188. package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
  189. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
  190. package/dist/esm/v2/components/_pickerShared.js +2 -2
  191. package/dist/esm/v2/components/_pickerShared.js.map +1 -1
  192. package/dist/esm/v2/components/index.js +37 -0
  193. package/dist/esm/v2/components/index.js.map +1 -1
  194. package/dist/esm/v2/hooks/index.js +62 -0
  195. package/dist/esm/v2/hooks/index.js.map +1 -1
  196. package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
  197. package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
  198. package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
  199. package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
  200. package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
  201. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
  202. package/dist/esm/v2/hooks/useDensity.js +13 -17
  203. package/dist/esm/v2/hooks/useDensity.js.map +1 -1
  204. package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
  205. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
  206. package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
  207. package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  208. package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
  209. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
  210. package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
  211. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
  212. package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
  213. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
  214. package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
  215. package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  216. package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
  217. package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  218. package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
  219. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
  220. package/dist/esm/v2/hooks/useSortedRows.js +3 -5
  221. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
  222. package/dist/esm/v2/hooks/useTabLoading.js +6 -21
  223. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
  224. package/dist/esm/v2/index.js +2 -3
  225. package/dist/esm/v2/index.js.map +1 -1
  226. package/dist/esm/v2/modalContext.js +2 -2
  227. package/dist/esm/v2/modalContext.js.map +1 -1
  228. package/dist/esm/v2/models/favorite.js.map +1 -1
  229. package/dist/esm/v2/models/personalization.js.map +1 -1
  230. package/dist/esm/v2/models/referentiel.js.map +1 -1
  231. package/dist/esm/v2/models/savedFilter.js.map +1 -1
  232. package/dist/esm/v2/patterns/ActionBar.js +115 -159
  233. package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
  234. package/dist/esm/v2/patterns/AppMain.js +108 -0
  235. package/dist/esm/v2/patterns/AppMain.js.map +1 -0
  236. package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
  237. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
  238. package/dist/esm/v2/patterns/ChartFigure.js +151 -0
  239. package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
  240. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
  241. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  242. package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
  243. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
  244. package/dist/esm/v2/patterns/DataGrid.js +221 -255
  245. package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
  246. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
  247. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  248. package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
  249. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
  250. package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
  251. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
  252. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
  253. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  254. package/dist/esm/v2/patterns/DetailSplit.js +108 -0
  255. package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
  256. package/dist/esm/v2/patterns/FavoriteColumn.js +15 -17
  257. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  258. package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
  259. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
  260. package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
  261. package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
  262. package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
  263. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
  264. package/dist/esm/v2/patterns/FormPageShell.js +43 -41
  265. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
  266. package/dist/esm/v2/patterns/FormSection.js +30 -38
  267. package/dist/esm/v2/patterns/FormSection.js.map +1 -1
  268. package/dist/esm/v2/patterns/FormikCheckbox.js +29 -39
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
  270. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
  271. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  272. package/dist/esm/v2/patterns/FormikCombobox.js +51 -69
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
  278. package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
  279. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
  280. package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
  281. package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
  282. package/dist/esm/v2/patterns/FormikFile.js +94 -78
  283. package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
  284. package/dist/esm/v2/patterns/FormikInput.js +40 -53
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
  288. package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
  289. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
  290. package/dist/esm/v2/patterns/FormikSelect.js +64 -87
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
  295. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  296. package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
  297. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
  298. package/dist/esm/v2/patterns/PageContent.js +10 -14
  299. package/dist/esm/v2/patterns/PageContent.js.map +1 -1
  300. package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
  301. package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
  302. package/dist/esm/v2/patterns/ReferentielField.js +327 -312
  303. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
  304. package/dist/esm/v2/patterns/RowFavoriteToggle.js +27 -22
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
  306. package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
  307. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
  308. package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
  309. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
  310. package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
  311. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
  312. package/dist/esm/v2/patterns/SortableHeader.js +22 -45
  313. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
  314. package/dist/esm/v2/patterns/Tour.js +94 -120
  315. package/dist/esm/v2/patterns/Tour.js.map +1 -1
  316. package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
  317. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
  318. package/dist/esm/v2/patterns/_pickerSerialisation.js +6 -8
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
  320. package/dist/esm/v2/patterns/_sort.js +17 -33
  321. package/dist/esm/v2/patterns/_sort.js.map +1 -1
  322. package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
  323. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
  324. package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
  325. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
  326. package/dist/esm/v2/patterns/filterCriteria.js +102 -0
  327. package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
  328. package/dist/esm/v2/patterns/index.js +152 -0
  329. package/dist/esm/v2/patterns/index.js.map +1 -1
  330. package/dist/esm/v2/patterns/rowActions.js +223 -0
  331. package/dist/esm/v2/patterns/rowActions.js.map +1 -0
  332. package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
  333. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
  334. package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
  335. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
  336. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
  337. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  338. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
  339. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  340. package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
  341. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
  342. package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
  343. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
  344. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +28 -34
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  346. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  347. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  348. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  349. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  350. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  351. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  352. package/dist/esm/v2/personalization/index.js +17 -0
  353. package/dist/esm/v2/personalization/index.js.map +1 -1
  354. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  355. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  356. package/dist/esm/v2/personalization/schema.js +8 -9
  357. package/dist/esm/v2/personalization/schema.js.map +1 -1
  358. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  359. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  360. package/dist/esm/v2/referentiel/types.js +2 -0
  361. package/dist/esm/v2/referentiel/types.js.map +1 -0
  362. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  363. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  364. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  365. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  367. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  368. package/dist/esm/v2/theme/_brand.js +8 -24
  369. package/dist/esm/v2/theme/_brand.js.map +1 -1
  370. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  371. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  372. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  373. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  374. package/dist/esm/v2/theme/cssVariables.js +62 -69
  375. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  376. package/dist/esm/v2/theme/index.js +5 -5
  377. package/dist/esm/v2/theme/index.js.map +1 -1
  378. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  379. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  380. package/dist/esm/v2/tokens/chart.js +261 -0
  381. package/dist/esm/v2/tokens/chart.js.map +1 -0
  382. package/dist/esm/v2/tokens/colors.js +22 -22
  383. package/dist/esm/v2/tokens/colors.js.map +1 -1
  384. package/dist/esm/v2/tokens/density.js +62 -7
  385. package/dist/esm/v2/tokens/density.js.map +1 -1
  386. package/dist/esm/v2/tokens/index.js +49 -34
  387. package/dist/esm/v2/tokens/index.js.map +1 -1
  388. package/dist/esm/v2/tokens/motion.js +12 -20
  389. package/dist/esm/v2/tokens/motion.js.map +1 -1
  390. package/dist/esm/v2/tokens/radius.js +1 -1
  391. package/dist/esm/v2/tokens/radius.js.map +1 -1
  392. package/dist/esm/v2/tokens/shadows.js +6 -6
  393. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  394. package/dist/esm/v2/tokens/spacing.js +2 -2
  395. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  396. package/dist/esm/v2/tokens/state.js +1 -1
  397. package/dist/esm/v2/tokens/state.js.map +1 -1
  398. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  399. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  400. package/dist/esm/v2/tokens/tokens.json +6 -1
  401. package/dist/esm/v2/tokens/typography.js +13 -13
  402. package/dist/esm/v2/tokens/typography.js.map +1 -1
  403. package/dist/esm/v2/tokens/zIndex.js +1 -1
  404. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  405. package/dist/esm/v2/types/datagrid.js.map +1 -1
  406. package/dist/esm/v2/utils/apiError.js +16 -37
  407. package/dist/esm/v2/utils/apiError.js.map +1 -1
  408. package/dist/esm/v2/utils/contrast.js +31 -32
  409. package/dist/esm/v2/utils/contrast.js.map +1 -1
  410. package/dist/esm/v2/utils/cx.js +5 -25
  411. package/dist/esm/v2/utils/cx.js.map +1 -1
  412. package/dist/esm/v2/utils/fileDownload.js +23 -26
  413. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  414. package/dist/esm/v2/utils/fileValidation.js +209 -0
  415. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  416. package/dist/esm/v2/utils/fmtDate.js +111 -0
  417. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  419. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  420. package/dist/esm/v2/utils/formikErrors.js +78 -0
  421. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  422. package/dist/esm/v2/utils/index.js +35 -2
  423. package/dist/esm/v2/utils/index.js.map +1 -1
  424. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  425. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  426. package/dist/esm/v2/utils/networkStatus.js +12 -12
  427. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  428. package/dist/index.d.ts +7 -1
  429. package/dist/index.d.ts.map +1 -1
  430. package/dist/index.js +110 -49
  431. package/dist/index.js.map +1 -1
  432. package/dist/v2/__tests__/AppMain.test.js +133 -0
  433. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  434. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  435. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  436. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  437. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  438. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  439. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  440. package/dist/v2/__tests__/FieldError.test.js +82 -49
  441. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  442. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  443. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  444. package/dist/v2/__tests__/FieldWidth.test.js +23 -25
  445. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
  446. package/dist/v2/__tests__/FileCard.test.js +29 -28
  447. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  448. package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
  449. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
  451. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  452. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  453. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
  455. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  456. package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
  457. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  458. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  459. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  460. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  461. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  462. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  463. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  464. package/dist/v2/__tests__/apiError.test.js +50 -69
  465. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  466. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  467. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  468. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  469. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  470. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  471. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  472. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  473. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  474. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  475. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  476. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  477. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  478. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  479. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  480. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  481. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  482. package/dist/v2/__tests__/labels-merge.test.js +23 -27
  483. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  484. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  485. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  486. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  487. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  488. package/dist/v2/__tests__/rowActions.test.js +186 -0
  489. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  490. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  491. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  493. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  494. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  495. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  496. package/dist/v2/components/Accordion.js +60 -82
  497. package/dist/v2/components/Accordion.js.map +1 -1
  498. package/dist/v2/components/ActionStrip.js +40 -52
  499. package/dist/v2/components/ActionStrip.js.map +1 -1
  500. package/dist/v2/components/Banner.js +42 -41
  501. package/dist/v2/components/Banner.js.map +1 -1
  502. package/dist/v2/components/Busy.js +22 -27
  503. package/dist/v2/components/Busy.js.map +1 -1
  504. package/dist/v2/components/Button.js +39 -50
  505. package/dist/v2/components/Button.js.map +1 -1
  506. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  507. package/dist/v2/components/CategoryTag.js +49 -32
  508. package/dist/v2/components/CategoryTag.js.map +1 -1
  509. package/dist/v2/components/Checkbox.js +39 -45
  510. package/dist/v2/components/Checkbox.js.map +1 -1
  511. package/dist/v2/components/Chip.js +29 -42
  512. package/dist/v2/components/Chip.js.map +1 -1
  513. package/dist/v2/components/Combobox.js +122 -144
  514. package/dist/v2/components/Combobox.js.map +1 -1
  515. package/dist/v2/components/CommandPalette.js +138 -225
  516. package/dist/v2/components/CommandPalette.js.map +1 -1
  517. package/dist/v2/components/ConfirmDialog.js +46 -56
  518. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  519. package/dist/v2/components/DatePicker.js +81 -86
  520. package/dist/v2/components/DatePicker.js.map +1 -1
  521. package/dist/v2/components/DateRangePicker.js +77 -87
  522. package/dist/v2/components/DateRangePicker.js.map +1 -1
  523. package/dist/v2/components/DateTimePicker.js +84 -91
  524. package/dist/v2/components/DateTimePicker.js.map +1 -1
  525. package/dist/v2/components/Drawer.d.ts.map +1 -1
  526. package/dist/v2/components/Drawer.js +93 -88
  527. package/dist/v2/components/Drawer.js.map +1 -1
  528. package/dist/v2/components/Dropzone.js +150 -196
  529. package/dist/v2/components/Dropzone.js.map +1 -1
  530. package/dist/v2/components/EmptyState.js +18 -20
  531. package/dist/v2/components/EmptyState.js.map +1 -1
  532. package/dist/v2/components/FavoriteToggle.js +28 -39
  533. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  534. package/dist/v2/components/Field.d.ts +62 -4
  535. package/dist/v2/components/Field.d.ts.map +1 -1
  536. package/dist/v2/components/Field.js +169 -70
  537. package/dist/v2/components/Field.js.map +1 -1
  538. package/dist/v2/components/FieldError.js +18 -21
  539. package/dist/v2/components/FieldError.js.map +1 -1
  540. package/dist/v2/components/FieldHelp.js +40 -60
  541. package/dist/v2/components/FieldHelp.js.map +1 -1
  542. package/dist/v2/components/FileCard.js +27 -31
  543. package/dist/v2/components/FileCard.js.map +1 -1
  544. package/dist/v2/components/FilterTab.js +30 -38
  545. package/dist/v2/components/FilterTab.js.map +1 -1
  546. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  547. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  548. package/dist/v2/components/ForbiddenPage.js +37 -17
  549. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  550. package/dist/v2/components/FormGrid.js +53 -59
  551. package/dist/v2/components/FormGrid.js.map +1 -1
  552. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  553. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  554. package/dist/v2/components/FormikDisplay.js +108 -33
  555. package/dist/v2/components/FormikDisplay.js.map +1 -1
  556. package/dist/v2/components/Input.d.ts +40 -0
  557. package/dist/v2/components/Input.d.ts.map +1 -1
  558. package/dist/v2/components/Input.js +81 -41
  559. package/dist/v2/components/Input.js.map +1 -1
  560. package/dist/v2/components/KPICard.js +57 -67
  561. package/dist/v2/components/KPICard.js.map +1 -1
  562. package/dist/v2/components/KPIStrip.js +16 -22
  563. package/dist/v2/components/KPIStrip.js.map +1 -1
  564. package/dist/v2/components/KV.js +25 -31
  565. package/dist/v2/components/KV.js.map +1 -1
  566. package/dist/v2/components/KVGrid.js +19 -26
  567. package/dist/v2/components/KVGrid.js.map +1 -1
  568. package/dist/v2/components/Layout.js +91 -120
  569. package/dist/v2/components/Layout.js.map +1 -1
  570. package/dist/v2/components/MobileRowCard.js +79 -91
  571. package/dist/v2/components/MobileRowCard.js.map +1 -1
  572. package/dist/v2/components/Modal.js +61 -69
  573. package/dist/v2/components/Modal.js.map +1 -1
  574. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  575. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  576. package/dist/v2/components/NetworkErrorPage.js +38 -21
  577. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  578. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  579. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  580. package/dist/v2/components/NotFoundPage.js +37 -18
  581. package/dist/v2/components/NotFoundPage.js.map +1 -1
  582. package/dist/v2/components/NumberInput.js +88 -118
  583. package/dist/v2/components/NumberInput.js.map +1 -1
  584. package/dist/v2/components/OverflowMenu.js +38 -56
  585. package/dist/v2/components/OverflowMenu.js.map +1 -1
  586. package/dist/v2/components/PdfViewer.js +34 -45
  587. package/dist/v2/components/PdfViewer.js.map +1 -1
  588. package/dist/v2/components/ProgressBar.js +42 -49
  589. package/dist/v2/components/ProgressBar.js.map +1 -1
  590. package/dist/v2/components/Radio.js +59 -67
  591. package/dist/v2/components/Radio.js.map +1 -1
  592. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  593. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  594. package/dist/v2/components/SectionHeader.js +34 -41
  595. package/dist/v2/components/SectionHeader.js.map +1 -1
  596. package/dist/v2/components/Segmented.js +69 -93
  597. package/dist/v2/components/Segmented.js.map +1 -1
  598. package/dist/v2/components/Select.d.ts +26 -2
  599. package/dist/v2/components/Select.d.ts.map +1 -1
  600. package/dist/v2/components/Select.js +120 -155
  601. package/dist/v2/components/Select.js.map +1 -1
  602. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  603. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  604. package/dist/v2/components/ServerErrorPage.js +37 -20
  605. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  606. package/dist/v2/components/Skeleton.js +86 -100
  607. package/dist/v2/components/Skeleton.js.map +1 -1
  608. package/dist/v2/components/SkipLink.js +9 -12
  609. package/dist/v2/components/SkipLink.js.map +1 -1
  610. package/dist/v2/components/Spinner.js +16 -25
  611. package/dist/v2/components/Spinner.js.map +1 -1
  612. package/dist/v2/components/Status.js +18 -29
  613. package/dist/v2/components/Status.js.map +1 -1
  614. package/dist/v2/components/Stepper.js +80 -82
  615. package/dist/v2/components/Stepper.js.map +1 -1
  616. package/dist/v2/components/Surface.js +34 -49
  617. package/dist/v2/components/Surface.js.map +1 -1
  618. package/dist/v2/components/Switch.js +29 -37
  619. package/dist/v2/components/Switch.js.map +1 -1
  620. package/dist/v2/components/TabPanel.d.ts +17 -0
  621. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  622. package/dist/v2/components/TabPanel.js +90 -0
  623. package/dist/v2/components/TabPanel.js.map +1 -0
  624. package/dist/v2/components/Tabs.d.ts +25 -0
  625. package/dist/v2/components/Tabs.d.ts.map +1 -1
  626. package/dist/v2/components/Tabs.js +53 -29
  627. package/dist/v2/components/Tabs.js.map +1 -1
  628. package/dist/v2/components/TelInput.js +80 -115
  629. package/dist/v2/components/TelInput.js.map +1 -1
  630. package/dist/v2/components/Textarea.js +26 -35
  631. package/dist/v2/components/Textarea.js.map +1 -1
  632. package/dist/v2/components/TimePicker.js +62 -74
  633. package/dist/v2/components/TimePicker.js.map +1 -1
  634. package/dist/v2/components/Toast.js +119 -174
  635. package/dist/v2/components/Toast.js.map +1 -1
  636. package/dist/v2/components/Tooltip.js +23 -38
  637. package/dist/v2/components/Tooltip.js.map +1 -1
  638. package/dist/v2/components/_ErrorPageBody.js +15 -16
  639. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  640. package/dist/v2/components/_pickerShared.js +5 -5
  641. package/dist/v2/components/_pickerShared.js.map +1 -1
  642. package/dist/v2/components/index.d.ts +40 -1
  643. package/dist/v2/components/index.d.ts.map +1 -1
  644. package/dist/v2/components/index.js +153 -136
  645. package/dist/v2/components/index.js.map +1 -1
  646. package/dist/v2/hooks/index.d.ts +65 -0
  647. package/dist/v2/hooks/index.d.ts.map +1 -1
  648. package/dist/v2/hooks/index.js +63 -24
  649. package/dist/v2/hooks/index.js.map +1 -1
  650. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  651. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  652. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  653. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  654. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  655. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  656. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  657. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  658. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  659. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  660. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  661. package/dist/v2/hooks/useDensity.js +14 -18
  662. package/dist/v2/hooks/useDensity.js.map +1 -1
  663. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  664. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  665. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  666. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  667. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  668. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  669. package/dist/v2/hooks/useFocusTrap.js +20 -24
  670. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  671. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  672. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  673. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  674. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  675. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  676. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  677. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  678. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  679. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  680. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  681. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  682. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  683. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  684. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  685. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  687. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  688. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  689. package/dist/v2/hooks/useSortedRows.js +4 -6
  690. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  691. package/dist/v2/hooks/useTabLoading.js +7 -22
  692. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  693. package/dist/v2/index.js +143 -145
  694. package/dist/v2/index.js.map +1 -1
  695. package/dist/v2/modalContext.js +2 -2
  696. package/dist/v2/modalContext.js.map +1 -1
  697. package/dist/v2/models/favorite.d.ts +8 -9
  698. package/dist/v2/models/favorite.d.ts.map +1 -1
  699. package/dist/v2/models/favorite.js.map +1 -1
  700. package/dist/v2/models/index.js +4 -4
  701. package/dist/v2/models/index.js.map +1 -1
  702. package/dist/v2/models/personalization.d.ts +44 -48
  703. package/dist/v2/models/personalization.d.ts.map +1 -1
  704. package/dist/v2/models/personalization.js.map +1 -1
  705. package/dist/v2/models/referentiel.d.ts +32 -50
  706. package/dist/v2/models/referentiel.d.ts.map +1 -1
  707. package/dist/v2/models/referentiel.js.map +1 -1
  708. package/dist/v2/models/savedFilter.d.ts +8 -17
  709. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  710. package/dist/v2/models/savedFilter.js.map +1 -1
  711. package/dist/v2/patterns/ActionBar.js +152 -187
  712. package/dist/v2/patterns/ActionBar.js.map +1 -1
  713. package/dist/v2/patterns/AppMain.d.ts +109 -0
  714. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  715. package/dist/v2/patterns/AppMain.js +115 -0
  716. package/dist/v2/patterns/AppMain.js.map +1 -0
  717. package/dist/v2/patterns/BulkActionBar.js +40 -42
  718. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  719. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  720. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  721. package/dist/v2/patterns/ChartFigure.js +159 -0
  722. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  723. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  724. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  725. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  726. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  727. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  728. package/dist/v2/patterns/DataGrid.js +262 -297
  729. package/dist/v2/patterns/DataGrid.js.map +1 -1
  730. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  731. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  733. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  734. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  735. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  736. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  737. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  738. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  739. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  740. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  741. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  742. package/dist/v2/patterns/DetailSplit.js +116 -0
  743. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  744. package/dist/v2/patterns/FavoriteColumn.js +22 -23
  745. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  746. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  747. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  748. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  749. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  750. package/dist/v2/patterns/FilterTabBar.js +120 -0
  751. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  752. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  753. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  754. package/dist/v2/patterns/FormPageShell.js +53 -50
  755. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  756. package/dist/v2/patterns/FormSection.d.ts +8 -3
  757. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  758. package/dist/v2/patterns/FormSection.js +44 -51
  759. package/dist/v2/patterns/FormSection.js.map +1 -1
  760. package/dist/v2/patterns/FormikCheckbox.js +36 -45
  761. package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
  762. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  763. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  765. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  766. package/dist/v2/patterns/FormikCombobox.js +55 -72
  767. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  768. package/dist/v2/patterns/FormikDatePicker.js +50 -64
  769. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  770. package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
  771. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
  772. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  773. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  774. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  775. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  776. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  777. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  778. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  779. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikFile.js +99 -83
  781. package/dist/v2/patterns/FormikFile.js.map +1 -1
  782. package/dist/v2/patterns/FormikInput.js +45 -58
  783. package/dist/v2/patterns/FormikInput.js.map +1 -1
  784. package/dist/v2/patterns/FormikRadioGroup.js +45 -56
  785. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
  786. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  787. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  788. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  789. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  790. package/dist/v2/patterns/FormikSelect.js +70 -92
  791. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  792. package/dist/v2/patterns/FormikTextarea.js +35 -51
  793. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  794. package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
  795. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  796. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  797. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  798. package/dist/v2/patterns/PageContent.js +17 -20
  799. package/dist/v2/patterns/PageContent.js.map +1 -1
  800. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  801. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  802. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  803. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  804. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  805. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/ReferentielField.js +347 -327
  807. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
  809. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
  810. package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
  811. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
  812. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  813. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  814. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  815. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  816. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  817. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  818. package/dist/v2/patterns/SortableHeader.js +35 -57
  819. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  820. package/dist/v2/patterns/Tour.js +121 -142
  821. package/dist/v2/patterns/Tour.js.map +1 -1
  822. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  823. package/dist/v2/patterns/_dataGridShared.js +131 -147
  824. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  825. package/dist/v2/patterns/_pickerSerialisation.js +9 -10
  826. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
  827. package/dist/v2/patterns/_sort.js +17 -33
  828. package/dist/v2/patterns/_sort.js.map +1 -1
  829. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  830. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  831. package/dist/v2/patterns/_useColumnResize.js +80 -99
  832. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  833. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  834. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  835. package/dist/v2/patterns/filterCriteria.js +110 -0
  836. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  837. package/dist/v2/patterns/index.d.ts +160 -0
  838. package/dist/v2/patterns/index.d.ts.map +1 -1
  839. package/dist/v2/patterns/index.js +157 -79
  840. package/dist/v2/patterns/index.js.map +1 -1
  841. package/dist/v2/patterns/rowActions.d.ts +150 -0
  842. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  843. package/dist/v2/patterns/rowActions.js +232 -0
  844. package/dist/v2/patterns/rowActions.js.map +1 -0
  845. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  846. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  847. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  848. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  849. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  850. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  851. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  852. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  853. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  854. package/dist/v2/personalization/adapters/index.js +5 -5
  855. package/dist/v2/personalization/adapters/index.js.map +1 -1
  856. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  857. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  858. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  859. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  860. package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
  861. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  862. package/dist/v2/personalization/capabilities/index.js +12 -12
  863. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  864. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  865. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  866. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  867. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  868. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  869. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  870. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  871. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  872. package/dist/v2/personalization/index.d.ts +16 -0
  873. package/dist/v2/personalization/index.d.ts.map +1 -1
  874. package/dist/v2/personalization/index.js +30 -23
  875. package/dist/v2/personalization/index.js.map +1 -1
  876. package/dist/v2/personalization/personalizationContext.js +10 -12
  877. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  878. package/dist/v2/personalization/schema.js +8 -9
  879. package/dist/v2/personalization/schema.js.map +1 -1
  880. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  881. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  882. package/dist/v2/referentiel/index.js +11 -13
  883. package/dist/v2/referentiel/index.js.map +1 -1
  884. package/dist/v2/referentiel/types.d.ts +105 -0
  885. package/dist/v2/referentiel/types.d.ts.map +1 -0
  886. package/dist/v2/referentiel/types.js +6 -0
  887. package/dist/v2/referentiel/types.js.map +1 -0
  888. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  889. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  890. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  891. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  892. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  893. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  894. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  895. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  896. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  897. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  898. package/dist/v2/theme/_brand.js +12 -26
  899. package/dist/v2/theme/_brand.js.map +1 -1
  900. package/dist/v2/theme/_brandSecondary.js +12 -26
  901. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  902. package/dist/v2/theme/createPortnetTheme.js +41 -49
  903. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  904. package/dist/v2/theme/cssVariables.d.ts +3 -3
  905. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  906. package/dist/v2/theme/cssVariables.js +65 -70
  907. package/dist/v2/theme/cssVariables.js.map +1 -1
  908. package/dist/v2/theme/index.js +10 -10
  909. package/dist/v2/theme/index.js.map +1 -1
  910. package/dist/v2/tokens/breakpoints.js +16 -16
  911. package/dist/v2/tokens/breakpoints.js.map +1 -1
  912. package/dist/v2/tokens/chart.d.ts +103 -0
  913. package/dist/v2/tokens/chart.d.ts.map +1 -0
  914. package/dist/v2/tokens/chart.js +270 -0
  915. package/dist/v2/tokens/chart.js.map +1 -0
  916. package/dist/v2/tokens/colors.js +24 -24
  917. package/dist/v2/tokens/colors.js.map +1 -1
  918. package/dist/v2/tokens/density.d.ts +104 -0
  919. package/dist/v2/tokens/density.d.ts.map +1 -1
  920. package/dist/v2/tokens/density.js +67 -12
  921. package/dist/v2/tokens/density.js.map +1 -1
  922. package/dist/v2/tokens/index.d.ts +50 -1
  923. package/dist/v2/tokens/index.d.ts.map +1 -1
  924. package/dist/v2/tokens/index.js +116 -68
  925. package/dist/v2/tokens/index.js.map +1 -1
  926. package/dist/v2/tokens/motion.js +16 -22
  927. package/dist/v2/tokens/motion.js.map +1 -1
  928. package/dist/v2/tokens/radius.js +3 -3
  929. package/dist/v2/tokens/radius.js.map +1 -1
  930. package/dist/v2/tokens/shadows.js +8 -8
  931. package/dist/v2/tokens/shadows.js.map +1 -1
  932. package/dist/v2/tokens/spacing.js +4 -4
  933. package/dist/v2/tokens/spacing.js.map +1 -1
  934. package/dist/v2/tokens/state.js +3 -3
  935. package/dist/v2/tokens/state.js.map +1 -1
  936. package/dist/v2/tokens/statusPalette.js +21 -23
  937. package/dist/v2/tokens/statusPalette.js.map +1 -1
  938. package/dist/v2/tokens/tokens.json +6 -1
  939. package/dist/v2/tokens/typography.js +15 -15
  940. package/dist/v2/tokens/typography.js.map +1 -1
  941. package/dist/v2/tokens/zIndex.js +3 -3
  942. package/dist/v2/tokens/zIndex.js.map +1 -1
  943. package/dist/v2/types/datagrid.d.ts +9 -1
  944. package/dist/v2/types/datagrid.d.ts.map +1 -1
  945. package/dist/v2/types/datagrid.js.map +1 -1
  946. package/dist/v2/types/index.js +2 -2
  947. package/dist/v2/types/index.js.map +1 -1
  948. package/dist/v2/utils/apiError.js +16 -37
  949. package/dist/v2/utils/apiError.js.map +1 -1
  950. package/dist/v2/utils/contrast.js +31 -32
  951. package/dist/v2/utils/contrast.js.map +1 -1
  952. package/dist/v2/utils/cx.js +7 -27
  953. package/dist/v2/utils/cx.js.map +1 -1
  954. package/dist/v2/utils/fileDownload.js +25 -28
  955. package/dist/v2/utils/fileDownload.js.map +1 -1
  956. package/dist/v2/utils/fileValidation.d.ts +116 -0
  957. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  958. package/dist/v2/utils/fileValidation.js +220 -0
  959. package/dist/v2/utils/fileValidation.js.map +1 -0
  960. package/dist/v2/utils/fmtDate.d.ts +103 -0
  961. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  962. package/dist/v2/utils/fmtDate.js +119 -0
  963. package/dist/v2/utils/fmtDate.js.map +1 -0
  964. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  965. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  966. package/dist/v2/utils/fmtMoney.js +9 -11
  967. package/dist/v2/utils/fmtMoney.js.map +1 -1
  968. package/dist/v2/utils/formikErrors.d.ts +67 -0
  969. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  970. package/dist/v2/utils/formikErrors.js +85 -0
  971. package/dist/v2/utils/formikErrors.js.map +1 -0
  972. package/dist/v2/utils/index.d.ts +5 -0
  973. package/dist/v2/utils/index.d.ts.map +1 -1
  974. package/dist/v2/utils/index.js +67 -18
  975. package/dist/v2/utils/index.js.map +1 -1
  976. package/dist/v2/utils/mergeLabels.js +9 -14
  977. package/dist/v2/utils/mergeLabels.js.map +1 -1
  978. package/dist/v2/utils/networkStatus.js +14 -14
  979. package/dist/v2/utils/networkStatus.js.map +1 -1
  980. package/package.json +26 -9
@@ -1,24 +1,11 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports["default"] = useColumnResize;
6
+ exports.default = useColumnResize;
8
7
  var React = _interopRequireWildcard(require("react"));
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
14
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
15
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
16
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
17
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
19
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
20
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
21
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
9
  /**
23
10
  * useColumnResize — Portnet UI v2 (private)
24
11
  *
@@ -56,113 +43,104 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
56
43
  */
57
44
 
58
45
  /** Width delta (px) applied per Arrow key press in keyboard resize. */
59
- var KEYBOARD_STEP = 16;
60
- function useColumnResize(columnWidths, onColumnWidthsChange) {
61
- var _options$minWidth;
62
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
63
- var minWidth = (_options$minWidth = options.minWidth) !== null && _options$minWidth !== void 0 ? _options$minWidth : 50;
46
+ const KEYBOARD_STEP = 16;
47
+ function useColumnResize(columnWidths, onColumnWidthsChange, options = {}) {
48
+ const minWidth = options.minWidth ?? 50;
64
49
 
65
50
  // React state for "draggingKey" + "liveWidth" drives the rendered
66
51
  // width during drag. Refs carry the latest values across the
67
52
  // mouseup closure (avoids the stale-closure bug).
68
- var _React$useState = React.useState(null),
69
- _React$useState2 = _slicedToArray(_React$useState, 2),
70
- draggingKey = _React$useState2[0],
71
- setDraggingKey = _React$useState2[1];
72
- var _React$useState3 = React.useState(null),
73
- _React$useState4 = _slicedToArray(_React$useState3, 2),
74
- liveWidth = _React$useState4[0],
75
- setLiveWidth = _React$useState4[1];
76
- var liveWidthRef = React.useRef(null);
77
- var dragStateRef = React.useRef(null);
53
+ const [draggingKey, setDraggingKey] = React.useState(null);
54
+ const [liveWidth, setLiveWidth] = React.useState(null);
55
+ const liveWidthRef = React.useRef(null);
56
+ const dragStateRef = React.useRef(null);
78
57
 
79
58
  // Keep the latest columnWidths reference reachable from the
80
59
  // mouseup closure without re-binding listeners on every prop
81
60
  // change. Avoids tearing down + re-adding the window listeners
82
61
  // on each parent re-render that ships a fresh widths object.
83
- var columnWidthsRef = React.useRef(columnWidths);
84
- React.useEffect(function () {
62
+ const columnWidthsRef = React.useRef(columnWidths);
63
+ React.useEffect(() => {
85
64
  columnWidthsRef.current = columnWidths;
86
65
  }, [columnWidths]);
87
66
 
88
67
  // Shared RTL probe for a grip's owning <th>: -1 in RTL, 1 otherwise.
89
- var cellDirection = function cellDirection(grip) {
90
- var cell = grip.closest("th");
68
+ const cellDirection = grip => {
69
+ const cell = grip.closest("th");
91
70
  return cell && typeof window !== "undefined" && typeof window.getComputedStyle === "function" && window.getComputedStyle(cell).direction === "rtl" ? -1 : 1;
92
71
  };
93
- var handleMouseDown = React.useCallback(function (key) {
94
- return function (e) {
95
- var _ref;
96
- // Block native browser drag (text selection, image drag, the
97
- // ancestor `<th draggable>` if reorder is also on) and the
98
- // sortable-header click that lives next door in the same `<th>`.
99
- e.preventDefault();
100
- e.stopPropagation();
101
- var grip = e.currentTarget;
102
- var cell = grip.closest("th");
103
- if (!cell) return;
72
+ const handleMouseDown = React.useCallback(key => e => {
73
+ // Block native browser drag (text selection, image drag, the
74
+ // ancestor `<th draggable>` if reorder is also on) and the
75
+ // sortable-header click that lives next door in the same `<th>`.
76
+ e.preventDefault();
77
+ e.stopPropagation();
78
+ const grip = e.currentTarget;
79
+ const cell = grip.closest("th");
80
+ if (!cell) return;
104
81
 
105
- // RTL detection at the cell level — most accurate (a `dir`
106
- // attribute may be set anywhere up the ancestor chain).
107
- var direction = cellDirection(grip);
82
+ // RTL detection at the cell level — most accurate (a `dir`
83
+ // attribute may be set anywhere up the ancestor chain).
84
+ const direction = cellDirection(grip);
108
85
 
109
- // Starting width: prefer the host-controlled value, fall back to
110
- // the rendered offsetWidth for a column the host hasn't sized.
111
- var currentWidth = (_ref = columnWidthsRef.current && columnWidthsRef.current[key]) !== null && _ref !== void 0 ? _ref : cell.offsetWidth;
112
- dragStateRef.current = {
113
- x: e.clientX,
114
- width: currentWidth,
115
- key: key,
116
- direction: direction
117
- };
118
- liveWidthRef.current = currentWidth;
119
- setLiveWidth(currentWidth);
120
- setDraggingKey(key);
86
+ // Starting width: prefer the host-controlled value, fall back to
87
+ // the rendered offsetWidth for a column the host hasn't sized.
88
+ const currentWidth = (columnWidthsRef.current && columnWidthsRef.current[key]) ?? cell.offsetWidth;
89
+ dragStateRef.current = {
90
+ x: e.clientX,
91
+ width: currentWidth,
92
+ key,
93
+ direction
121
94
  };
95
+ liveWidthRef.current = currentWidth;
96
+ setLiveWidth(currentWidth);
97
+ setDraggingKey(key);
122
98
  }, []);
123
99
 
124
100
  // DG-2 — keyboard resize on the focusable grip. Commits immediately;
125
101
  // no drag session / window listeners involved.
126
- var handleKeyDown = React.useCallback(function (key) {
127
- return function (e) {
128
- var _ref2;
129
- var isLeft = e.key === "ArrowLeft";
130
- var isRight = e.key === "ArrowRight";
131
- var isHome = e.key === "Home";
132
- if (!isLeft && !isRight && !isHome) return;
133
- e.preventDefault();
134
- e.stopPropagation();
135
- var grip = e.currentTarget;
136
- var cell = grip.closest("th");
137
- var direction = cellDirection(grip);
138
- var current = (_ref2 = columnWidthsRef.current && columnWidthsRef.current[key]) !== null && _ref2 !== void 0 ? _ref2 : cell ? cell.offsetWidth : minWidth;
102
+ const handleKeyDown = React.useCallback(key => e => {
103
+ const isLeft = e.key === "ArrowLeft";
104
+ const isRight = e.key === "ArrowRight";
105
+ const isHome = e.key === "Home";
106
+ if (!isLeft && !isRight && !isHome) return;
107
+ e.preventDefault();
108
+ e.stopPropagation();
109
+ const grip = e.currentTarget;
110
+ const cell = grip.closest("th");
111
+ const direction = cellDirection(grip);
112
+ const current = (columnWidthsRef.current && columnWidthsRef.current[key]) ?? (cell ? cell.offsetWidth : minWidth);
139
113
 
140
- // RTL-aware so ArrowRight matches a rightward drag (which grows the
141
- // column in LTR and shrinks it in RTL, the grip being on the
142
- // inline-end edge).
143
- var next = isHome ? minWidth : current + (isRight ? 1 : -1) * KEYBOARD_STEP * direction;
144
- var clamped = Math.max(minWidth, Math.round(next));
145
- if (onColumnWidthsChange) {
146
- onColumnWidthsChange(_objectSpread(_objectSpread({}, columnWidthsRef.current || {}), {}, _defineProperty({}, key, clamped)));
147
- }
148
- };
114
+ // RTL-aware so ArrowRight matches a rightward drag (which grows the
115
+ // column in LTR and shrinks it in RTL, the grip being on the
116
+ // inline-end edge).
117
+ const next = isHome ? minWidth : current + (isRight ? 1 : -1) * KEYBOARD_STEP * direction;
118
+ const clamped = Math.max(minWidth, Math.round(next));
119
+ if (onColumnWidthsChange) {
120
+ onColumnWidthsChange({
121
+ ...(columnWidthsRef.current || {}),
122
+ [key]: clamped
123
+ });
124
+ }
149
125
  }, [minWidth, onColumnWidthsChange]);
150
- React.useEffect(function () {
126
+ React.useEffect(() => {
151
127
  if (!draggingKey) return undefined;
152
- var onMove = function onMove(e) {
153
- var start = dragStateRef.current;
128
+ const onMove = e => {
129
+ const start = dragStateRef.current;
154
130
  if (!start) return;
155
- var delta = (e.clientX - start.x) * start.direction;
156
- var next = Math.max(minWidth, start.width + delta);
131
+ const delta = (e.clientX - start.x) * start.direction;
132
+ const next = Math.max(minWidth, start.width + delta);
157
133
  liveWidthRef.current = next;
158
134
  setLiveWidth(next);
159
135
  };
160
- var onUp = function onUp() {
161
- var _liveWidthRef$current;
162
- var start = dragStateRef.current;
163
- var finalWidth = (_liveWidthRef$current = liveWidthRef.current) !== null && _liveWidthRef$current !== void 0 ? _liveWidthRef$current : start ? start.width : null;
136
+ const onUp = () => {
137
+ const start = dragStateRef.current;
138
+ const finalWidth = liveWidthRef.current ?? (start ? start.width : null);
164
139
  if (start && finalWidth != null && onColumnWidthsChange) {
165
- onColumnWidthsChange(_objectSpread(_objectSpread({}, columnWidthsRef.current || {}), {}, _defineProperty({}, start.key, finalWidth)));
140
+ onColumnWidthsChange({
141
+ ...(columnWidthsRef.current || {}),
142
+ [start.key]: finalWidth
143
+ });
166
144
  }
167
145
  dragStateRef.current = null;
168
146
  liveWidthRef.current = null;
@@ -171,7 +149,7 @@ function useColumnResize(columnWidths, onColumnWidthsChange) {
171
149
  };
172
150
  window.addEventListener("mousemove", onMove);
173
151
  window.addEventListener("mouseup", onUp);
174
- return function () {
152
+ return () => {
175
153
  window.removeEventListener("mousemove", onMove);
176
154
  window.removeEventListener("mouseup", onUp);
177
155
  };
@@ -183,16 +161,19 @@ function useColumnResize(columnWidths, onColumnWidthsChange) {
183
161
  // Live widths map = host columnWidths with the in-flight drag value
184
162
  // patched in. Memoised on [draggingKey, liveWidth, columnWidths] so
185
163
  // the reference is stable when nothing is dragging.
186
- var liveWidths = React.useMemo(function () {
164
+ const liveWidths = React.useMemo(() => {
187
165
  if (!draggingKey || liveWidth == null) return columnWidths;
188
- return _objectSpread(_objectSpread({}, columnWidths || {}), {}, _defineProperty({}, draggingKey, liveWidth));
166
+ return {
167
+ ...(columnWidths || {}),
168
+ [draggingKey]: liveWidth
169
+ };
189
170
  }, [draggingKey, liveWidth, columnWidths]);
190
171
  return {
191
- handleMouseDown: handleMouseDown,
192
- handleKeyDown: handleKeyDown,
193
- liveWidths: liveWidths,
172
+ handleMouseDown,
173
+ handleKeyDown,
174
+ liveWidths,
194
175
  isResizing: draggingKey != null,
195
- minWidth: minWidth
176
+ minWidth
196
177
  };
197
178
  }
198
179
  //# sourceMappingURL=_useColumnResize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_useColumnResize.js","names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","KEYBOARD_STEP","useColumnResize","columnWidths","onColumnWidthsChange","_options$minWidth","options","minWidth","_React$useState","useState","_React$useState2","draggingKey","setDraggingKey","_React$useState3","_React$useState4","liveWidth","setLiveWidth","liveWidthRef","useRef","dragStateRef","columnWidthsRef","useEffect","current","cellDirection","grip","cell","closest","window","getComputedStyle","direction","handleMouseDown","useCallback","e","_ref","preventDefault","stopPropagation","currentTarget","currentWidth","offsetWidth","x","clientX","width","handleKeyDown","_ref2","isLeft","isRight","isHome","clamped","Math","max","round","onMove","start","delta","onUp","_liveWidthRef$current","finalWidth","addEventListener","removeEventListener","liveWidths","useMemo","isResizing"],"sources":["../../../src/lib/v2/patterns/_useColumnResize.ts"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * useColumnResize — Portnet UI v2 (private)\r\n *\r\n * Internal hook for the DataGrid + DataGridVirtualized resize\r\n * feature. NOT exported from the patterns barrel; underscore filename\r\n * prefix is the convention.\r\n *\r\n * const { handleMouseDown, handleKeyDown, liveWidths, isResizing, minWidth } =\r\n * useColumnResize(\r\n * columnWidths, // controlled\r\n * onColumnWidthsChange, // controlled\r\n * { minWidth: 50 }\r\n * );\r\n *\r\n * Behaviour (pointer):\r\n * - handleMouseDown(key) returns an onMouseDown handler. Attach to\r\n * the grip element on each `<th>` border.\r\n * - On mousedown: captures starting clientX + current width + the\r\n * direction of the cell's writing mode (LTR vs RTL). Sets\r\n * `isResizing = true` so callers (e.g. the reorder hook) can\r\n * short-circuit.\r\n * - On mousemove (window-bound): computes the resize delta\r\n * respecting RTL and updates a local \"live\" width via state.\r\n * Floors at `minWidth`.\r\n * - On mouseup (window-bound): commits the live width to the host\r\n * via `onColumnWidthsChange`. Clears all internal state.\r\n *\r\n * Behaviour (keyboard, DG-2 / WCAG 2.1.1):\r\n * - handleKeyDown(key) returns an onKeyDown handler for the SAME grip\r\n * (the grip is a focusable role=\"separator\"). ArrowRight / ArrowLeft\r\n * nudge the width by KEYBOARD_STEP px, RTL-aware so the direction\r\n * matches a rightward drag; Home resets to `minWidth`. Each press\r\n * commits immediately via `onColumnWidthsChange` (no drag session).\r\n * - `minWidth` is returned so the separator can advertise aria-valuemin.\r\n */\r\n\r\nexport type ColumnWidths = Record<string, number>;\r\n\r\n/** Width delta (px) applied per Arrow key press in keyboard resize. */\r\nconst KEYBOARD_STEP = 16;\r\n\r\nexport interface UseColumnResizeOptions {\r\n minWidth?: number | undefined;\r\n}\r\n\r\nexport interface UseColumnResizeResult {\r\n handleMouseDown: (key: string) => (e: React.MouseEvent) => void;\r\n handleKeyDown: (key: string) => (e: React.KeyboardEvent) => void;\r\n liveWidths: ColumnWidths | undefined;\r\n isResizing: boolean;\r\n minWidth: number;\r\n}\r\n\r\ninterface DragState {\r\n x: number;\r\n width: number;\r\n key: string;\r\n direction: 1 | -1;\r\n}\r\n\r\nexport default function useColumnResize(\r\n columnWidths: ColumnWidths | undefined,\r\n onColumnWidthsChange: ((widths: ColumnWidths) => void) | undefined,\r\n options: UseColumnResizeOptions = {}\r\n): UseColumnResizeResult {\r\n const minWidth = options.minWidth ?? 50;\r\n\r\n // React state for \"draggingKey\" + \"liveWidth\" drives the rendered\r\n // width during drag. Refs carry the latest values across the\r\n // mouseup closure (avoids the stale-closure bug).\r\n const [draggingKey, setDraggingKey] = React.useState<string | null>(null);\r\n const [liveWidth, setLiveWidth] = React.useState<number | null>(null);\r\n const liveWidthRef = React.useRef<number | null>(null);\r\n const dragStateRef = React.useRef<DragState | null>(null);\r\n\r\n // Keep the latest columnWidths reference reachable from the\r\n // mouseup closure without re-binding listeners on every prop\r\n // change. Avoids tearing down + re-adding the window listeners\r\n // on each parent re-render that ships a fresh widths object.\r\n const columnWidthsRef = React.useRef<ColumnWidths | undefined>(columnWidths);\r\n React.useEffect(() => {\r\n columnWidthsRef.current = columnWidths;\r\n }, [columnWidths]);\r\n\r\n // Shared RTL probe for a grip's owning <th>: -1 in RTL, 1 otherwise.\r\n const cellDirection = (grip: HTMLElement): 1 | -1 => {\r\n const cell = grip.closest(\"th\");\r\n return cell &&\r\n typeof window !== \"undefined\" &&\r\n typeof window.getComputedStyle === \"function\" &&\r\n window.getComputedStyle(cell).direction === \"rtl\"\r\n ? -1\r\n : 1;\r\n };\r\n\r\n const handleMouseDown = React.useCallback((key: string) => (e: React.MouseEvent) => {\r\n // Block native browser drag (text selection, image drag, the\r\n // ancestor `<th draggable>` if reorder is also on) and the\r\n // sortable-header click that lives next door in the same `<th>`.\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const grip = e.currentTarget as HTMLElement;\r\n const cell = grip.closest(\"th\");\r\n if (!cell) return;\r\n\r\n // RTL detection at the cell level — most accurate (a `dir`\r\n // attribute may be set anywhere up the ancestor chain).\r\n const direction = cellDirection(grip);\r\n\r\n // Starting width: prefer the host-controlled value, fall back to\r\n // the rendered offsetWidth for a column the host hasn't sized.\r\n const currentWidth =\r\n (columnWidthsRef.current && columnWidthsRef.current[key]) ??\r\n cell.offsetWidth;\r\n\r\n dragStateRef.current = {\r\n x: e.clientX,\r\n width: currentWidth,\r\n key,\r\n direction,\r\n };\r\n\r\n liveWidthRef.current = currentWidth;\r\n setLiveWidth(currentWidth);\r\n setDraggingKey(key);\r\n }, []);\r\n\r\n // DG-2 — keyboard resize on the focusable grip. Commits immediately;\r\n // no drag session / window listeners involved.\r\n const handleKeyDown = React.useCallback(\r\n (key: string) => (e: React.KeyboardEvent) => {\r\n const isLeft = e.key === \"ArrowLeft\";\r\n const isRight = e.key === \"ArrowRight\";\r\n const isHome = e.key === \"Home\";\r\n if (!isLeft && !isRight && !isHome) return;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const grip = e.currentTarget as HTMLElement;\r\n const cell = grip.closest(\"th\");\r\n const direction = cellDirection(grip);\r\n\r\n const current =\r\n (columnWidthsRef.current && columnWidthsRef.current[key]) ??\r\n (cell ? cell.offsetWidth : minWidth);\r\n\r\n // RTL-aware so ArrowRight matches a rightward drag (which grows the\r\n // column in LTR and shrinks it in RTL, the grip being on the\r\n // inline-end edge).\r\n const next = isHome\r\n ? minWidth\r\n : current + (isRight ? 1 : -1) * KEYBOARD_STEP * direction;\r\n\r\n const clamped = Math.max(minWidth, Math.round(next));\r\n if (onColumnWidthsChange) {\r\n onColumnWidthsChange({ ...(columnWidthsRef.current || {}), [key]: clamped });\r\n }\r\n },\r\n [minWidth, onColumnWidthsChange]\r\n );\r\n\r\n React.useEffect(() => {\r\n if (!draggingKey) return undefined;\r\n\r\n const onMove = (e: MouseEvent) => {\r\n const start = dragStateRef.current;\r\n if (!start) return;\r\n const delta = (e.clientX - start.x) * start.direction;\r\n const next = Math.max(minWidth, start.width + delta);\r\n liveWidthRef.current = next;\r\n setLiveWidth(next);\r\n };\r\n\r\n const onUp = () => {\r\n const start = dragStateRef.current;\r\n const finalWidth = liveWidthRef.current ?? (start ? start.width : null);\r\n if (start && finalWidth != null && onColumnWidthsChange) {\r\n onColumnWidthsChange({\r\n ...(columnWidthsRef.current || {}),\r\n [start.key]: finalWidth,\r\n });\r\n }\r\n dragStateRef.current = null;\r\n liveWidthRef.current = null;\r\n setLiveWidth(null);\r\n setDraggingKey(null);\r\n };\r\n\r\n window.addEventListener(\"mousemove\", onMove);\r\n window.addEventListener(\"mouseup\", onUp);\r\n return () => {\r\n window.removeEventListener(\"mousemove\", onMove);\r\n window.removeEventListener(\"mouseup\", onUp);\r\n };\r\n // onColumnWidthsChange is intentionally listed — re-creates the\r\n // mouseup closure with the latest setter ref. minWidth is rare\r\n // to change but listed for correctness.\r\n }, [draggingKey, onColumnWidthsChange, minWidth]);\r\n\r\n // Live widths map = host columnWidths with the in-flight drag value\r\n // patched in. Memoised on [draggingKey, liveWidth, columnWidths] so\r\n // the reference is stable when nothing is dragging.\r\n const liveWidths = React.useMemo(() => {\r\n if (!draggingKey || liveWidth == null) return columnWidths;\r\n return { ...(columnWidths || {}), [draggingKey]: liveWidth };\r\n }, [draggingKey, liveWidth, columnWidths]);\r\n\r\n return {\r\n handleMouseDown,\r\n handleKeyDown,\r\n liveWidths,\r\n isResizing: draggingKey != null,\r\n minWidth,\r\n };\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"_useColumnResize.js","names":["React","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","KEYBOARD_STEP","useColumnResize","columnWidths","onColumnWidthsChange","options","minWidth","draggingKey","setDraggingKey","useState","liveWidth","setLiveWidth","liveWidthRef","useRef","dragStateRef","columnWidthsRef","useEffect","current","cellDirection","grip","cell","closest","window","getComputedStyle","direction","handleMouseDown","useCallback","key","preventDefault","stopPropagation","currentTarget","currentWidth","offsetWidth","x","clientX","width","handleKeyDown","isLeft","isRight","isHome","next","clamped","Math","max","round","undefined","onMove","start","delta","onUp","finalWidth","addEventListener","removeEventListener","liveWidths","useMemo","isResizing"],"sources":["../../../src/lib/v2/patterns/_useColumnResize.ts"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * useColumnResize — Portnet UI v2 (private)\r\n *\r\n * Internal hook for the DataGrid + DataGridVirtualized resize\r\n * feature. NOT exported from the patterns barrel; underscore filename\r\n * prefix is the convention.\r\n *\r\n * const { handleMouseDown, handleKeyDown, liveWidths, isResizing, minWidth } =\r\n * useColumnResize(\r\n * columnWidths, // controlled\r\n * onColumnWidthsChange, // controlled\r\n * { minWidth: 50 }\r\n * );\r\n *\r\n * Behaviour (pointer):\r\n * - handleMouseDown(key) returns an onMouseDown handler. Attach to\r\n * the grip element on each `<th>` border.\r\n * - On mousedown: captures starting clientX + current width + the\r\n * direction of the cell's writing mode (LTR vs RTL). Sets\r\n * `isResizing = true` so callers (e.g. the reorder hook) can\r\n * short-circuit.\r\n * - On mousemove (window-bound): computes the resize delta\r\n * respecting RTL and updates a local \"live\" width via state.\r\n * Floors at `minWidth`.\r\n * - On mouseup (window-bound): commits the live width to the host\r\n * via `onColumnWidthsChange`. Clears all internal state.\r\n *\r\n * Behaviour (keyboard, DG-2 / WCAG 2.1.1):\r\n * - handleKeyDown(key) returns an onKeyDown handler for the SAME grip\r\n * (the grip is a focusable role=\"separator\"). ArrowRight / ArrowLeft\r\n * nudge the width by KEYBOARD_STEP px, RTL-aware so the direction\r\n * matches a rightward drag; Home resets to `minWidth`. Each press\r\n * commits immediately via `onColumnWidthsChange` (no drag session).\r\n * - `minWidth` is returned so the separator can advertise aria-valuemin.\r\n */\r\n\r\nexport type ColumnWidths = Record<string, number>;\r\n\r\n/** Width delta (px) applied per Arrow key press in keyboard resize. */\r\nconst KEYBOARD_STEP = 16;\r\n\r\nexport interface UseColumnResizeOptions {\r\n minWidth?: number | undefined;\r\n}\r\n\r\nexport interface UseColumnResizeResult {\r\n handleMouseDown: (key: string) => (e: React.MouseEvent) => void;\r\n handleKeyDown: (key: string) => (e: React.KeyboardEvent) => void;\r\n liveWidths: ColumnWidths | undefined;\r\n isResizing: boolean;\r\n minWidth: number;\r\n}\r\n\r\ninterface DragState {\r\n x: number;\r\n width: number;\r\n key: string;\r\n direction: 1 | -1;\r\n}\r\n\r\nexport default function useColumnResize(\r\n columnWidths: ColumnWidths | undefined,\r\n onColumnWidthsChange: ((widths: ColumnWidths) => void) | undefined,\r\n options: UseColumnResizeOptions = {}\r\n): UseColumnResizeResult {\r\n const minWidth = options.minWidth ?? 50;\r\n\r\n // React state for \"draggingKey\" + \"liveWidth\" drives the rendered\r\n // width during drag. Refs carry the latest values across the\r\n // mouseup closure (avoids the stale-closure bug).\r\n const [draggingKey, setDraggingKey] = React.useState<string | null>(null);\r\n const [liveWidth, setLiveWidth] = React.useState<number | null>(null);\r\n const liveWidthRef = React.useRef<number | null>(null);\r\n const dragStateRef = React.useRef<DragState | null>(null);\r\n\r\n // Keep the latest columnWidths reference reachable from the\r\n // mouseup closure without re-binding listeners on every prop\r\n // change. Avoids tearing down + re-adding the window listeners\r\n // on each parent re-render that ships a fresh widths object.\r\n const columnWidthsRef = React.useRef<ColumnWidths | undefined>(columnWidths);\r\n React.useEffect(() => {\r\n columnWidthsRef.current = columnWidths;\r\n }, [columnWidths]);\r\n\r\n // Shared RTL probe for a grip's owning <th>: -1 in RTL, 1 otherwise.\r\n const cellDirection = (grip: HTMLElement): 1 | -1 => {\r\n const cell = grip.closest(\"th\");\r\n return cell &&\r\n typeof window !== \"undefined\" &&\r\n typeof window.getComputedStyle === \"function\" &&\r\n window.getComputedStyle(cell).direction === \"rtl\"\r\n ? -1\r\n : 1;\r\n };\r\n\r\n const handleMouseDown = React.useCallback((key: string) => (e: React.MouseEvent) => {\r\n // Block native browser drag (text selection, image drag, the\r\n // ancestor `<th draggable>` if reorder is also on) and the\r\n // sortable-header click that lives next door in the same `<th>`.\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const grip = e.currentTarget as HTMLElement;\r\n const cell = grip.closest(\"th\");\r\n if (!cell) return;\r\n\r\n // RTL detection at the cell level — most accurate (a `dir`\r\n // attribute may be set anywhere up the ancestor chain).\r\n const direction = cellDirection(grip);\r\n\r\n // Starting width: prefer the host-controlled value, fall back to\r\n // the rendered offsetWidth for a column the host hasn't sized.\r\n const currentWidth =\r\n (columnWidthsRef.current && columnWidthsRef.current[key]) ??\r\n cell.offsetWidth;\r\n\r\n dragStateRef.current = {\r\n x: e.clientX,\r\n width: currentWidth,\r\n key,\r\n direction,\r\n };\r\n\r\n liveWidthRef.current = currentWidth;\r\n setLiveWidth(currentWidth);\r\n setDraggingKey(key);\r\n }, []);\r\n\r\n // DG-2 — keyboard resize on the focusable grip. Commits immediately;\r\n // no drag session / window listeners involved.\r\n const handleKeyDown = React.useCallback(\r\n (key: string) => (e: React.KeyboardEvent) => {\r\n const isLeft = e.key === \"ArrowLeft\";\r\n const isRight = e.key === \"ArrowRight\";\r\n const isHome = e.key === \"Home\";\r\n if (!isLeft && !isRight && !isHome) return;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const grip = e.currentTarget as HTMLElement;\r\n const cell = grip.closest(\"th\");\r\n const direction = cellDirection(grip);\r\n\r\n const current =\r\n (columnWidthsRef.current && columnWidthsRef.current[key]) ??\r\n (cell ? cell.offsetWidth : minWidth);\r\n\r\n // RTL-aware so ArrowRight matches a rightward drag (which grows the\r\n // column in LTR and shrinks it in RTL, the grip being on the\r\n // inline-end edge).\r\n const next = isHome\r\n ? minWidth\r\n : current + (isRight ? 1 : -1) * KEYBOARD_STEP * direction;\r\n\r\n const clamped = Math.max(minWidth, Math.round(next));\r\n if (onColumnWidthsChange) {\r\n onColumnWidthsChange({ ...(columnWidthsRef.current || {}), [key]: clamped });\r\n }\r\n },\r\n [minWidth, onColumnWidthsChange]\r\n );\r\n\r\n React.useEffect(() => {\r\n if (!draggingKey) return undefined;\r\n\r\n const onMove = (e: MouseEvent) => {\r\n const start = dragStateRef.current;\r\n if (!start) return;\r\n const delta = (e.clientX - start.x) * start.direction;\r\n const next = Math.max(minWidth, start.width + delta);\r\n liveWidthRef.current = next;\r\n setLiveWidth(next);\r\n };\r\n\r\n const onUp = () => {\r\n const start = dragStateRef.current;\r\n const finalWidth = liveWidthRef.current ?? (start ? start.width : null);\r\n if (start && finalWidth != null && onColumnWidthsChange) {\r\n onColumnWidthsChange({\r\n ...(columnWidthsRef.current || {}),\r\n [start.key]: finalWidth,\r\n });\r\n }\r\n dragStateRef.current = null;\r\n liveWidthRef.current = null;\r\n setLiveWidth(null);\r\n setDraggingKey(null);\r\n };\r\n\r\n window.addEventListener(\"mousemove\", onMove);\r\n window.addEventListener(\"mouseup\", onUp);\r\n return () => {\r\n window.removeEventListener(\"mousemove\", onMove);\r\n window.removeEventListener(\"mouseup\", onUp);\r\n };\r\n // onColumnWidthsChange is intentionally listed — re-creates the\r\n // mouseup closure with the latest setter ref. minWidth is rare\r\n // to change but listed for correctness.\r\n }, [draggingKey, onColumnWidthsChange, minWidth]);\r\n\r\n // Live widths map = host columnWidths with the in-flight drag value\r\n // patched in. Memoised on [draggingKey, liveWidth, columnWidths] so\r\n // the reference is stable when nothing is dragging.\r\n const liveWidths = React.useMemo(() => {\r\n if (!draggingKey || liveWidth == null) return columnWidths;\r\n return { ...(columnWidths || {}), [draggingKey]: liveWidth };\r\n }, [draggingKey, liveWidth, columnWidths]);\r\n\r\n return {\r\n handleMouseDown,\r\n handleKeyDown,\r\n liveWidths,\r\n isResizing: draggingKey != null,\r\n minWidth,\r\n };\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ import type { DataGridToolbarFilterChip } from "./DataGridToolbar";
2
+ /**
3
+ * filterCriteria — active search criteria as removable chips
4
+ * (capability gap G-42).
5
+ *
6
+ * ─────────────────────────────────────────────────────────────────────────────
7
+ * WHY THIS BELONGS IN THE LIBRARY
8
+ *
9
+ * The library owns HALF of this already, and the half it owns is the rendering:
10
+ * `DataGridToolbar.filterChips` draws one removable chip per criterion, and
11
+ * `DataGridToolbarFilterChip` describes an entry. That type's own docstring
12
+ * records where the request came from — `refonte-frontend`, whose ten listings
13
+ * each had to build the array — and that §Filters and §Search make removable
14
+ * active criteria a MUST.
15
+ *
16
+ * What was missing is the BUILDER. Ten local copies would have drifted on the
17
+ * two things that are not obvious:
18
+ *
19
+ * 1. WHAT COUNTS AS SET. `0` is the "unset" value of a reference mirror on
20
+ * some hosts (`villeEntreeId: 0`), `""` on others, `null` elsewhere. A
21
+ * chip that appears for `0` announces a filter nobody chose.
22
+ * 2. WHAT A REMOVAL MUST CLEAR. Reference criteria are held as PAIRS — a
23
+ * scalar mirror for the payload and an object for display
24
+ * (`importateurCode` / `importateurId`). Clearing only the displayed key
25
+ * removes the chip from the screen while the criterion STAYS IN THE
26
+ * PAYLOAD: the worst of both worlds, an invisible filter that still
27
+ * filters. Hence `linkedKeys`.
28
+ *
29
+ * >>> THIS BUILDER DOES NOT RE-RUN THE SEARCH, and that is deliberate. `onRemove`
30
+ * >>> hands the host the keys to clear and gives the turn back: only the host
31
+ * >>> knows whether to clear Formik fields, rebuild its payload and redispatch —
32
+ * >>> and on server-paginated listings a removal is a REQUEST, not a local
33
+ * >>> filtering pass. A builder that dispatched would be wrong on every screen
34
+ * >>> whose payload it cannot know. <<<
35
+ * ─────────────────────────────────────────────────────────────────────────────
36
+ *
37
+ * Promoted from `refonte-frontend` (Area 5), where it served ten listings.
38
+ * Pair it with `useAppliedFilters`: this builds the chips, that decides which
39
+ * criteria they may show — chips built from live form values announce a filter
40
+ * that is being typed and filters nothing.
41
+ */
42
+ /** A filterable criterion, as the screen describes it. */
43
+ export interface FilterCriterion {
44
+ /** Form field holding the displayed value. */
45
+ key: string;
46
+ /** Label the user reads on the chip. */
47
+ label: string;
48
+ /**
49
+ * Fields to clear IN ADDITION to `key` — scalar mirrors, ids. See the note
50
+ * on pairs above: omitting them leaves the criterion in the payload.
51
+ */
52
+ linkedKeys?: string[] | undefined;
53
+ /**
54
+ * Renders the value on the chip. Defaults to the description of a reference
55
+ * object, otherwise the value as-is.
56
+ */
57
+ format?: ((value: unknown) => string) | undefined;
58
+ }
59
+ /**
60
+ * `true` if a criterion is SET — exactly the rule the chips use.
61
+ *
62
+ * Exported so a "Filters" button counter can count the same criteria the chips
63
+ * render. Screens used to count non-empty `formik.values`, which counts every
64
+ * reference criterion TWICE — the pair again — so picking one category showed
65
+ * "2 filters".
66
+ */
67
+ export declare function isCriterionSet(value: unknown): boolean;
68
+ /** Every key of every descriptor — for a "clear all". */
69
+ export declare function filterCriteriaKeys(criteria: readonly FilterCriterion[]): string[];
70
+ /**
71
+ * Builds the chips of the criteria that are SET.
72
+ *
73
+ * @param values current values of the search form (or the applied snapshot)
74
+ * @param criteria criteria to watch, in display order
75
+ * @param onRemove called with every key to clear for that criterion
76
+ */
77
+ export declare function buildFilterChips(values: Record<string, unknown>, criteria: readonly FilterCriterion[], onRemove: (keys: string[]) => void): DataGridToolbarFilterChip[];
78
+ //# sourceMappingURL=filterCriteria.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterCriteria.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/filterCriteria.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;CACnD;AAyBD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,EAAE,CAEjF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,GACjC,yBAAyB,EAAE,CAc7B"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.buildFilterChips = buildFilterChips;
7
+ exports.filterCriteriaKeys = filterCriteriaKeys;
8
+ exports.isCriterionSet = isCriterionSet;
9
+ /**
10
+ * filterCriteria — active search criteria as removable chips
11
+ * (capability gap G-42).
12
+ *
13
+ * ─────────────────────────────────────────────────────────────────────────────
14
+ * WHY THIS BELONGS IN THE LIBRARY
15
+ *
16
+ * The library owns HALF of this already, and the half it owns is the rendering:
17
+ * `DataGridToolbar.filterChips` draws one removable chip per criterion, and
18
+ * `DataGridToolbarFilterChip` describes an entry. That type's own docstring
19
+ * records where the request came from — `refonte-frontend`, whose ten listings
20
+ * each had to build the array — and that §Filters and §Search make removable
21
+ * active criteria a MUST.
22
+ *
23
+ * What was missing is the BUILDER. Ten local copies would have drifted on the
24
+ * two things that are not obvious:
25
+ *
26
+ * 1. WHAT COUNTS AS SET. `0` is the "unset" value of a reference mirror on
27
+ * some hosts (`villeEntreeId: 0`), `""` on others, `null` elsewhere. A
28
+ * chip that appears for `0` announces a filter nobody chose.
29
+ * 2. WHAT A REMOVAL MUST CLEAR. Reference criteria are held as PAIRS — a
30
+ * scalar mirror for the payload and an object for display
31
+ * (`importateurCode` / `importateurId`). Clearing only the displayed key
32
+ * removes the chip from the screen while the criterion STAYS IN THE
33
+ * PAYLOAD: the worst of both worlds, an invisible filter that still
34
+ * filters. Hence `linkedKeys`.
35
+ *
36
+ * >>> THIS BUILDER DOES NOT RE-RUN THE SEARCH, and that is deliberate. `onRemove`
37
+ * >>> hands the host the keys to clear and gives the turn back: only the host
38
+ * >>> knows whether to clear Formik fields, rebuild its payload and redispatch —
39
+ * >>> and on server-paginated listings a removal is a REQUEST, not a local
40
+ * >>> filtering pass. A builder that dispatched would be wrong on every screen
41
+ * >>> whose payload it cannot know. <<<
42
+ * ─────────────────────────────────────────────────────────────────────────────
43
+ *
44
+ * Promoted from `refonte-frontend` (Area 5), where it served ten listings.
45
+ * Pair it with `useAppliedFilters`: this builds the chips, that decides which
46
+ * criteria they may show — chips built from live form values announce a filter
47
+ * that is being typed and filters nothing.
48
+ */
49
+
50
+ /** A filterable criterion, as the screen describes it. */
51
+
52
+ /** Values that mean "not set" — see point 1 of the note above. */
53
+ function isEmpty(value) {
54
+ if (value === null || value === undefined || value === "") return true;
55
+ /* `0` is the "unset" value of reference mirrors on several hosts
56
+ * (`villeEntreeId: 0`, `importateurId: 0`). A chip for `0` would announce a
57
+ * criterion nobody chose. */
58
+ if (value === 0) return true;
59
+ if (Array.isArray(value) && value.length === 0) return true;
60
+ return false;
61
+ }
62
+
63
+ /** Default rendering: a reference object's description, or the value. */
64
+ function formatDefault(value) {
65
+ if (value !== null && typeof value === "object") {
66
+ const object = value;
67
+ const readable = object["description"] ?? object["libelle"] ?? object["label"] ?? object["code"] ?? object["id"];
68
+ return readable === undefined ? "" : String(readable);
69
+ }
70
+ return String(value);
71
+ }
72
+
73
+ /**
74
+ * `true` if a criterion is SET — exactly the rule the chips use.
75
+ *
76
+ * Exported so a "Filters" button counter can count the same criteria the chips
77
+ * render. Screens used to count non-empty `formik.values`, which counts every
78
+ * reference criterion TWICE — the pair again — so picking one category showed
79
+ * "2 filters".
80
+ */
81
+ function isCriterionSet(value) {
82
+ return !isEmpty(value);
83
+ }
84
+
85
+ /** Every key of every descriptor — for a "clear all". */
86
+ function filterCriteriaKeys(criteria) {
87
+ return criteria.flatMap(c => [c.key, ...(c.linkedKeys ?? [])]);
88
+ }
89
+
90
+ /**
91
+ * Builds the chips of the criteria that are SET.
92
+ *
93
+ * @param values current values of the search form (or the applied snapshot)
94
+ * @param criteria criteria to watch, in display order
95
+ * @param onRemove called with every key to clear for that criterion
96
+ */
97
+ function buildFilterChips(values, criteria, onRemove) {
98
+ return criteria.filter(criterion => !isEmpty(values[criterion.key])).map(criterion => {
99
+ const render = criterion.format ?? formatDefault;
100
+ const value = render(values[criterion.key]);
101
+ return {
102
+ key: criterion.key,
103
+ /* "Label: value" rather than the value alone: "AFFECTE" does not say
104
+ * WHICH criterion it is when three chips sit side by side. */
105
+ label: value ? `${criterion.label} : ${value}` : criterion.label,
106
+ onRemove: () => onRemove([criterion.key, ...(criterion.linkedKeys ?? [])])
107
+ };
108
+ });
109
+ }
110
+ //# sourceMappingURL=filterCriteria.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filterCriteria.js","names":["isEmpty","value","undefined","Array","isArray","length","formatDefault","object","readable","String","isCriterionSet","filterCriteriaKeys","criteria","flatMap","c","key","linkedKeys","buildFilterChips","values","onRemove","filter","criterion","map","render","format","label"],"sources":["../../../src/lib/v2/patterns/filterCriteria.ts"],"sourcesContent":["import type { DataGridToolbarFilterChip } from \"./DataGridToolbar\";\r\n\r\n/**\r\n * filterCriteria — active search criteria as removable chips\r\n * (capability gap G-42).\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY\r\n *\r\n * The library owns HALF of this already, and the half it owns is the rendering:\r\n * `DataGridToolbar.filterChips` draws one removable chip per criterion, and\r\n * `DataGridToolbarFilterChip` describes an entry. That type's own docstring\r\n * records where the request came from — `refonte-frontend`, whose ten listings\r\n * each had to build the array — and that §Filters and §Search make removable\r\n * active criteria a MUST.\r\n *\r\n * What was missing is the BUILDER. Ten local copies would have drifted on the\r\n * two things that are not obvious:\r\n *\r\n * 1. WHAT COUNTS AS SET. `0` is the \"unset\" value of a reference mirror on\r\n * some hosts (`villeEntreeId: 0`), `\"\"` on others, `null` elsewhere. A\r\n * chip that appears for `0` announces a filter nobody chose.\r\n * 2. WHAT A REMOVAL MUST CLEAR. Reference criteria are held as PAIRS — a\r\n * scalar mirror for the payload and an object for display\r\n * (`importateurCode` / `importateurId`). Clearing only the displayed key\r\n * removes the chip from the screen while the criterion STAYS IN THE\r\n * PAYLOAD: the worst of both worlds, an invisible filter that still\r\n * filters. Hence `linkedKeys`.\r\n *\r\n * >>> THIS BUILDER DOES NOT RE-RUN THE SEARCH, and that is deliberate. `onRemove`\r\n * >>> hands the host the keys to clear and gives the turn back: only the host\r\n * >>> knows whether to clear Formik fields, rebuild its payload and redispatch —\r\n * >>> and on server-paginated listings a removal is a REQUEST, not a local\r\n * >>> filtering pass. A builder that dispatched would be wrong on every screen\r\n * >>> whose payload it cannot know. <<<\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * Promoted from `refonte-frontend` (Area 5), where it served ten listings.\r\n * Pair it with `useAppliedFilters`: this builds the chips, that decides which\r\n * criteria they may show — chips built from live form values announce a filter\r\n * that is being typed and filters nothing.\r\n */\r\n\r\n/** A filterable criterion, as the screen describes it. */\r\nexport interface FilterCriterion {\r\n /** Form field holding the displayed value. */\r\n key: string;\r\n /** Label the user reads on the chip. */\r\n label: string;\r\n /**\r\n * Fields to clear IN ADDITION to `key` — scalar mirrors, ids. See the note\r\n * on pairs above: omitting them leaves the criterion in the payload.\r\n */\r\n linkedKeys?: string[] | undefined;\r\n /**\r\n * Renders the value on the chip. Defaults to the description of a reference\r\n * object, otherwise the value as-is.\r\n */\r\n format?: ((value: unknown) => string) | undefined;\r\n}\r\n\r\n/** Values that mean \"not set\" — see point 1 of the note above. */\r\nfunction isEmpty(value: unknown): boolean {\r\n if (value === null || value === undefined || value === \"\") return true;\r\n /* `0` is the \"unset\" value of reference mirrors on several hosts\r\n * (`villeEntreeId: 0`, `importateurId: 0`). A chip for `0` would announce a\r\n * criterion nobody chose. */\r\n if (value === 0) return true;\r\n if (Array.isArray(value) && value.length === 0) return true;\r\n return false;\r\n}\r\n\r\n/** Default rendering: a reference object's description, or the value. */\r\nfunction formatDefault(value: unknown): string {\r\n if (value !== null && typeof value === \"object\") {\r\n const object = value as Record<string, unknown>;\r\n const readable =\r\n object[\"description\"] ?? object[\"libelle\"] ?? object[\"label\"] ??\r\n object[\"code\"] ?? object[\"id\"];\r\n return readable === undefined ? \"\" : String(readable);\r\n }\r\n return String(value);\r\n}\r\n\r\n/**\r\n * `true` if a criterion is SET — exactly the rule the chips use.\r\n *\r\n * Exported so a \"Filters\" button counter can count the same criteria the chips\r\n * render. Screens used to count non-empty `formik.values`, which counts every\r\n * reference criterion TWICE — the pair again — so picking one category showed\r\n * \"2 filters\".\r\n */\r\nexport function isCriterionSet(value: unknown): boolean {\r\n return !isEmpty(value);\r\n}\r\n\r\n/** Every key of every descriptor — for a \"clear all\". */\r\nexport function filterCriteriaKeys(criteria: readonly FilterCriterion[]): string[] {\r\n return criteria.flatMap((c) => [c.key, ...(c.linkedKeys ?? [])]);\r\n}\r\n\r\n/**\r\n * Builds the chips of the criteria that are SET.\r\n *\r\n * @param values current values of the search form (or the applied snapshot)\r\n * @param criteria criteria to watch, in display order\r\n * @param onRemove called with every key to clear for that criterion\r\n */\r\nexport function buildFilterChips(\r\n values: Record<string, unknown>,\r\n criteria: readonly FilterCriterion[],\r\n onRemove: (keys: string[]) => void\r\n): DataGridToolbarFilterChip[] {\r\n return criteria\r\n .filter((criterion) => !isEmpty(values[criterion.key]))\r\n .map((criterion) => {\r\n const render = criterion.format ?? formatDefault;\r\n const value = render(values[criterion.key]);\r\n return {\r\n key: criterion.key,\r\n /* \"Label: value\" rather than the value alone: \"AFFECTE\" does not say\r\n * WHICH criterion it is when three chips sit side by side. */\r\n label: value ? `${criterion.label} : ${value}` : criterion.label,\r\n onRemove: () => onRemove([criterion.key, ...(criterion.linkedKeys ?? [])]),\r\n };\r\n });\r\n}\r\n"],"mappings":";;;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAkBA;AACA,SAASA,OAAOA,CAACC,KAAc,EAAW;EACxC,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,KAAK,EAAE,EAAE,OAAO,IAAI;EACtE;AACF;AACA;EACE,IAAIA,KAAK,KAAK,CAAC,EAAE,OAAO,IAAI;EAC5B,IAAIE,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,IAAIA,KAAK,CAACI,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAC3D,OAAO,KAAK;AACd;;AAEA;AACA,SAASC,aAAaA,CAACL,KAAc,EAAU;EAC7C,IAAIA,KAAK,KAAK,IAAI,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC/C,MAAMM,MAAM,GAAGN,KAAgC;IAC/C,MAAMO,QAAQ,GACZD,MAAM,CAAC,aAAa,CAAC,IAAIA,MAAM,CAAC,SAAS,CAAC,IAAIA,MAAM,CAAC,OAAO,CAAC,IAC7DA,MAAM,CAAC,MAAM,CAAC,IAAIA,MAAM,CAAC,IAAI,CAAC;IAChC,OAAOC,QAAQ,KAAKN,SAAS,GAAG,EAAE,GAAGO,MAAM,CAACD,QAAQ,CAAC;EACvD;EACA,OAAOC,MAAM,CAACR,KAAK,CAAC;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASS,cAAcA,CAACT,KAAc,EAAW;EACtD,OAAO,CAACD,OAAO,CAACC,KAAK,CAAC;AACxB;;AAEA;AACO,SAASU,kBAAkBA,CAACC,QAAoC,EAAY;EACjF,OAAOA,QAAQ,CAACC,OAAO,CAAEC,CAAC,IAAK,CAACA,CAAC,CAACC,GAAG,EAAE,IAAID,CAAC,CAACE,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAC9BC,MAA+B,EAC/BN,QAAoC,EACpCO,QAAkC,EACL;EAC7B,OAAOP,QAAQ,CACZQ,MAAM,CAAEC,SAAS,IAAK,CAACrB,OAAO,CAACkB,MAAM,CAACG,SAAS,CAACN,GAAG,CAAC,CAAC,CAAC,CACtDO,GAAG,CAAED,SAAS,IAAK;IAClB,MAAME,MAAM,GAAGF,SAAS,CAACG,MAAM,IAAIlB,aAAa;IAChD,MAAML,KAAK,GAAGsB,MAAM,CAACL,MAAM,CAACG,SAAS,CAACN,GAAG,CAAC,CAAC;IAC3C,OAAO;MACLA,GAAG,EAAEM,SAAS,CAACN,GAAG;MAClB;AACR;MACQU,KAAK,EAAExB,KAAK,GAAG,GAAGoB,SAAS,CAACI,KAAK,MAAMxB,KAAK,EAAE,GAAGoB,SAAS,CAACI,KAAK;MAChEN,QAAQ,EAAEA,CAAA,KAAMA,QAAQ,CAAC,CAACE,SAAS,CAACN,GAAG,EAAE,IAAIM,SAAS,CAACL,UAAU,IAAI,EAAE,CAAC,CAAC;IAC3E,CAAC;EACH,CAAC,CAAC;AACN","ignoreList":[]}