@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,15 +1,3 @@
1
- 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); }
2
- 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; }
3
- 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; }
4
- 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; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
- 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); }
7
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
- 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."); }
9
- 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); }
10
- 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; }
11
- 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; } }
12
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
1
  import * as React from "react";
14
2
 
15
3
  /**
@@ -49,113 +37,104 @@ import * as React from "react";
49
37
  */
50
38
 
51
39
  /** Width delta (px) applied per Arrow key press in keyboard resize. */
52
- var KEYBOARD_STEP = 16;
53
- export default function useColumnResize(columnWidths, onColumnWidthsChange) {
54
- var _options$minWidth;
55
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
56
- var minWidth = (_options$minWidth = options.minWidth) !== null && _options$minWidth !== void 0 ? _options$minWidth : 50;
40
+ const KEYBOARD_STEP = 16;
41
+ export default function useColumnResize(columnWidths, onColumnWidthsChange, options = {}) {
42
+ const minWidth = options.minWidth ?? 50;
57
43
 
58
44
  // React state for "draggingKey" + "liveWidth" drives the rendered
59
45
  // width during drag. Refs carry the latest values across the
60
46
  // mouseup closure (avoids the stale-closure bug).
61
- var _React$useState = React.useState(null),
62
- _React$useState2 = _slicedToArray(_React$useState, 2),
63
- draggingKey = _React$useState2[0],
64
- setDraggingKey = _React$useState2[1];
65
- var _React$useState3 = React.useState(null),
66
- _React$useState4 = _slicedToArray(_React$useState3, 2),
67
- liveWidth = _React$useState4[0],
68
- setLiveWidth = _React$useState4[1];
69
- var liveWidthRef = React.useRef(null);
70
- var dragStateRef = React.useRef(null);
47
+ const [draggingKey, setDraggingKey] = React.useState(null);
48
+ const [liveWidth, setLiveWidth] = React.useState(null);
49
+ const liveWidthRef = React.useRef(null);
50
+ const dragStateRef = React.useRef(null);
71
51
 
72
52
  // Keep the latest columnWidths reference reachable from the
73
53
  // mouseup closure without re-binding listeners on every prop
74
54
  // change. Avoids tearing down + re-adding the window listeners
75
55
  // on each parent re-render that ships a fresh widths object.
76
- var columnWidthsRef = React.useRef(columnWidths);
77
- React.useEffect(function () {
56
+ const columnWidthsRef = React.useRef(columnWidths);
57
+ React.useEffect(() => {
78
58
  columnWidthsRef.current = columnWidths;
79
59
  }, [columnWidths]);
80
60
 
81
61
  // Shared RTL probe for a grip's owning <th>: -1 in RTL, 1 otherwise.
82
- var cellDirection = function cellDirection(grip) {
83
- var cell = grip.closest("th");
62
+ const cellDirection = grip => {
63
+ const cell = grip.closest("th");
84
64
  return cell && typeof window !== "undefined" && typeof window.getComputedStyle === "function" && window.getComputedStyle(cell).direction === "rtl" ? -1 : 1;
85
65
  };
86
- var handleMouseDown = React.useCallback(function (key) {
87
- return function (e) {
88
- var _ref;
89
- // Block native browser drag (text selection, image drag, the
90
- // ancestor `<th draggable>` if reorder is also on) and the
91
- // sortable-header click that lives next door in the same `<th>`.
92
- e.preventDefault();
93
- e.stopPropagation();
94
- var grip = e.currentTarget;
95
- var cell = grip.closest("th");
96
- if (!cell) return;
66
+ const handleMouseDown = React.useCallback(key => e => {
67
+ // Block native browser drag (text selection, image drag, the
68
+ // ancestor `<th draggable>` if reorder is also on) and the
69
+ // sortable-header click that lives next door in the same `<th>`.
70
+ e.preventDefault();
71
+ e.stopPropagation();
72
+ const grip = e.currentTarget;
73
+ const cell = grip.closest("th");
74
+ if (!cell) return;
97
75
 
98
- // RTL detection at the cell level — most accurate (a `dir`
99
- // attribute may be set anywhere up the ancestor chain).
100
- var direction = cellDirection(grip);
76
+ // RTL detection at the cell level — most accurate (a `dir`
77
+ // attribute may be set anywhere up the ancestor chain).
78
+ const direction = cellDirection(grip);
101
79
 
102
- // Starting width: prefer the host-controlled value, fall back to
103
- // the rendered offsetWidth for a column the host hasn't sized.
104
- var currentWidth = (_ref = columnWidthsRef.current && columnWidthsRef.current[key]) !== null && _ref !== void 0 ? _ref : cell.offsetWidth;
105
- dragStateRef.current = {
106
- x: e.clientX,
107
- width: currentWidth,
108
- key: key,
109
- direction: direction
110
- };
111
- liveWidthRef.current = currentWidth;
112
- setLiveWidth(currentWidth);
113
- setDraggingKey(key);
80
+ // Starting width: prefer the host-controlled value, fall back to
81
+ // the rendered offsetWidth for a column the host hasn't sized.
82
+ const currentWidth = (columnWidthsRef.current && columnWidthsRef.current[key]) ?? cell.offsetWidth;
83
+ dragStateRef.current = {
84
+ x: e.clientX,
85
+ width: currentWidth,
86
+ key,
87
+ direction
114
88
  };
89
+ liveWidthRef.current = currentWidth;
90
+ setLiveWidth(currentWidth);
91
+ setDraggingKey(key);
115
92
  }, []);
116
93
 
117
94
  // DG-2 — keyboard resize on the focusable grip. Commits immediately;
118
95
  // no drag session / window listeners involved.
119
- var handleKeyDown = React.useCallback(function (key) {
120
- return function (e) {
121
- var _ref2;
122
- var isLeft = e.key === "ArrowLeft";
123
- var isRight = e.key === "ArrowRight";
124
- var isHome = e.key === "Home";
125
- if (!isLeft && !isRight && !isHome) return;
126
- e.preventDefault();
127
- e.stopPropagation();
128
- var grip = e.currentTarget;
129
- var cell = grip.closest("th");
130
- var direction = cellDirection(grip);
131
- var current = (_ref2 = columnWidthsRef.current && columnWidthsRef.current[key]) !== null && _ref2 !== void 0 ? _ref2 : cell ? cell.offsetWidth : minWidth;
96
+ const handleKeyDown = React.useCallback(key => e => {
97
+ const isLeft = e.key === "ArrowLeft";
98
+ const isRight = e.key === "ArrowRight";
99
+ const isHome = e.key === "Home";
100
+ if (!isLeft && !isRight && !isHome) return;
101
+ e.preventDefault();
102
+ e.stopPropagation();
103
+ const grip = e.currentTarget;
104
+ const cell = grip.closest("th");
105
+ const direction = cellDirection(grip);
106
+ const current = (columnWidthsRef.current && columnWidthsRef.current[key]) ?? (cell ? cell.offsetWidth : minWidth);
132
107
 
133
- // RTL-aware so ArrowRight matches a rightward drag (which grows the
134
- // column in LTR and shrinks it in RTL, the grip being on the
135
- // inline-end edge).
136
- var next = isHome ? minWidth : current + (isRight ? 1 : -1) * KEYBOARD_STEP * direction;
137
- var clamped = Math.max(minWidth, Math.round(next));
138
- if (onColumnWidthsChange) {
139
- onColumnWidthsChange(_objectSpread(_objectSpread({}, columnWidthsRef.current || {}), {}, _defineProperty({}, key, clamped)));
140
- }
141
- };
108
+ // RTL-aware so ArrowRight matches a rightward drag (which grows the
109
+ // column in LTR and shrinks it in RTL, the grip being on the
110
+ // inline-end edge).
111
+ const next = isHome ? minWidth : current + (isRight ? 1 : -1) * KEYBOARD_STEP * direction;
112
+ const clamped = Math.max(minWidth, Math.round(next));
113
+ if (onColumnWidthsChange) {
114
+ onColumnWidthsChange({
115
+ ...(columnWidthsRef.current || {}),
116
+ [key]: clamped
117
+ });
118
+ }
142
119
  }, [minWidth, onColumnWidthsChange]);
143
- React.useEffect(function () {
120
+ React.useEffect(() => {
144
121
  if (!draggingKey) return undefined;
145
- var onMove = function onMove(e) {
146
- var start = dragStateRef.current;
122
+ const onMove = e => {
123
+ const start = dragStateRef.current;
147
124
  if (!start) return;
148
- var delta = (e.clientX - start.x) * start.direction;
149
- var next = Math.max(minWidth, start.width + delta);
125
+ const delta = (e.clientX - start.x) * start.direction;
126
+ const next = Math.max(minWidth, start.width + delta);
150
127
  liveWidthRef.current = next;
151
128
  setLiveWidth(next);
152
129
  };
153
- var onUp = function onUp() {
154
- var _liveWidthRef$current;
155
- var start = dragStateRef.current;
156
- var finalWidth = (_liveWidthRef$current = liveWidthRef.current) !== null && _liveWidthRef$current !== void 0 ? _liveWidthRef$current : start ? start.width : null;
130
+ const onUp = () => {
131
+ const start = dragStateRef.current;
132
+ const finalWidth = liveWidthRef.current ?? (start ? start.width : null);
157
133
  if (start && finalWidth != null && onColumnWidthsChange) {
158
- onColumnWidthsChange(_objectSpread(_objectSpread({}, columnWidthsRef.current || {}), {}, _defineProperty({}, start.key, finalWidth)));
134
+ onColumnWidthsChange({
135
+ ...(columnWidthsRef.current || {}),
136
+ [start.key]: finalWidth
137
+ });
159
138
  }
160
139
  dragStateRef.current = null;
161
140
  liveWidthRef.current = null;
@@ -164,7 +143,7 @@ export default function useColumnResize(columnWidths, onColumnWidthsChange) {
164
143
  };
165
144
  window.addEventListener("mousemove", onMove);
166
145
  window.addEventListener("mouseup", onUp);
167
- return function () {
146
+ return () => {
168
147
  window.removeEventListener("mousemove", onMove);
169
148
  window.removeEventListener("mouseup", onUp);
170
149
  };
@@ -176,16 +155,19 @@ export default function useColumnResize(columnWidths, onColumnWidthsChange) {
176
155
  // Live widths map = host columnWidths with the in-flight drag value
177
156
  // patched in. Memoised on [draggingKey, liveWidth, columnWidths] so
178
157
  // the reference is stable when nothing is dragging.
179
- var liveWidths = React.useMemo(function () {
158
+ const liveWidths = React.useMemo(() => {
180
159
  if (!draggingKey || liveWidth == null) return columnWidths;
181
- return _objectSpread(_objectSpread({}, columnWidths || {}), {}, _defineProperty({}, draggingKey, liveWidth));
160
+ return {
161
+ ...(columnWidths || {}),
162
+ [draggingKey]: liveWidth
163
+ };
182
164
  }, [draggingKey, liveWidth, columnWidths]);
183
165
  return {
184
- handleMouseDown: handleMouseDown,
185
- handleKeyDown: handleKeyDown,
186
- liveWidths: liveWidths,
166
+ handleMouseDown,
167
+ handleKeyDown,
168
+ liveWidths,
187
169
  isResizing: draggingKey != null,
188
- minWidth: minWidth
170
+ minWidth
189
171
  };
190
172
  }
191
173
  //# sourceMappingURL=_useColumnResize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_useColumnResize.js","names":["React","KEYBOARD_STEP","useColumnResize","columnWidths","onColumnWidthsChange","_options$minWidth","options","arguments","length","undefined","minWidth","_React$useState","useState","_React$useState2","_slicedToArray","draggingKey","setDraggingKey","_React$useState3","_React$useState4","liveWidth","setLiveWidth","liveWidthRef","useRef","dragStateRef","columnWidthsRef","useEffect","current","cellDirection","grip","cell","closest","window","getComputedStyle","direction","handleMouseDown","useCallback","key","e","_ref","preventDefault","stopPropagation","currentTarget","currentWidth","offsetWidth","x","clientX","width","handleKeyDown","_ref2","isLeft","isRight","isHome","next","clamped","Math","max","round","_objectSpread","_defineProperty","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","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","e","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,102 @@
1
+ /**
2
+ * filterCriteria — active search criteria as removable chips
3
+ * (capability gap G-42).
4
+ *
5
+ * ─────────────────────────────────────────────────────────────────────────────
6
+ * WHY THIS BELONGS IN THE LIBRARY
7
+ *
8
+ * The library owns HALF of this already, and the half it owns is the rendering:
9
+ * `DataGridToolbar.filterChips` draws one removable chip per criterion, and
10
+ * `DataGridToolbarFilterChip` describes an entry. That type's own docstring
11
+ * records where the request came from — `refonte-frontend`, whose ten listings
12
+ * each had to build the array — and that §Filters and §Search make removable
13
+ * active criteria a MUST.
14
+ *
15
+ * What was missing is the BUILDER. Ten local copies would have drifted on the
16
+ * two things that are not obvious:
17
+ *
18
+ * 1. WHAT COUNTS AS SET. `0` is the "unset" value of a reference mirror on
19
+ * some hosts (`villeEntreeId: 0`), `""` on others, `null` elsewhere. A
20
+ * chip that appears for `0` announces a filter nobody chose.
21
+ * 2. WHAT A REMOVAL MUST CLEAR. Reference criteria are held as PAIRS — a
22
+ * scalar mirror for the payload and an object for display
23
+ * (`importateurCode` / `importateurId`). Clearing only the displayed key
24
+ * removes the chip from the screen while the criterion STAYS IN THE
25
+ * PAYLOAD: the worst of both worlds, an invisible filter that still
26
+ * filters. Hence `linkedKeys`.
27
+ *
28
+ * >>> THIS BUILDER DOES NOT RE-RUN THE SEARCH, and that is deliberate. `onRemove`
29
+ * >>> hands the host the keys to clear and gives the turn back: only the host
30
+ * >>> knows whether to clear Formik fields, rebuild its payload and redispatch —
31
+ * >>> and on server-paginated listings a removal is a REQUEST, not a local
32
+ * >>> filtering pass. A builder that dispatched would be wrong on every screen
33
+ * >>> whose payload it cannot know. <<<
34
+ * ─────────────────────────────────────────────────────────────────────────────
35
+ *
36
+ * Promoted from `refonte-frontend` (Area 5), where it served ten listings.
37
+ * Pair it with `useAppliedFilters`: this builds the chips, that decides which
38
+ * criteria they may show — chips built from live form values announce a filter
39
+ * that is being typed and filters nothing.
40
+ */
41
+
42
+ /** A filterable criterion, as the screen describes it. */
43
+
44
+ /** Values that mean "not set" — see point 1 of the note above. */
45
+ function isEmpty(value) {
46
+ if (value === null || value === undefined || value === "") return true;
47
+ /* `0` is the "unset" value of reference mirrors on several hosts
48
+ * (`villeEntreeId: 0`, `importateurId: 0`). A chip for `0` would announce a
49
+ * criterion nobody chose. */
50
+ if (value === 0) return true;
51
+ if (Array.isArray(value) && value.length === 0) return true;
52
+ return false;
53
+ }
54
+
55
+ /** Default rendering: a reference object's description, or the value. */
56
+ function formatDefault(value) {
57
+ if (value !== null && typeof value === "object") {
58
+ const object = value;
59
+ const readable = object["description"] ?? object["libelle"] ?? object["label"] ?? object["code"] ?? object["id"];
60
+ return readable === undefined ? "" : String(readable);
61
+ }
62
+ return String(value);
63
+ }
64
+
65
+ /**
66
+ * `true` if a criterion is SET — exactly the rule the chips use.
67
+ *
68
+ * Exported so a "Filters" button counter can count the same criteria the chips
69
+ * render. Screens used to count non-empty `formik.values`, which counts every
70
+ * reference criterion TWICE — the pair again — so picking one category showed
71
+ * "2 filters".
72
+ */
73
+ export function isCriterionSet(value) {
74
+ return !isEmpty(value);
75
+ }
76
+
77
+ /** Every key of every descriptor — for a "clear all". */
78
+ export function filterCriteriaKeys(criteria) {
79
+ return criteria.flatMap(c => [c.key, ...(c.linkedKeys ?? [])]);
80
+ }
81
+
82
+ /**
83
+ * Builds the chips of the criteria that are SET.
84
+ *
85
+ * @param values current values of the search form (or the applied snapshot)
86
+ * @param criteria criteria to watch, in display order
87
+ * @param onRemove called with every key to clear for that criterion
88
+ */
89
+ export function buildFilterChips(values, criteria, onRemove) {
90
+ return criteria.filter(criterion => !isEmpty(values[criterion.key])).map(criterion => {
91
+ const render = criterion.format ?? formatDefault;
92
+ const value = render(values[criterion.key]);
93
+ return {
94
+ key: criterion.key,
95
+ /* "Label: value" rather than the value alone: "AFFECTE" does not say
96
+ * WHICH criterion it is when three chips sit side by side. */
97
+ label: value ? `${criterion.label} : ${value}` : criterion.label,
98
+ onRemove: () => onRemove([criterion.key, ...(criterion.linkedKeys ?? [])])
99
+ };
100
+ });
101
+ }
102
+ //# 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;AACA,OAAO,SAASS,cAAcA,CAACT,KAAc,EAAW;EACtD,OAAO,CAACD,OAAO,CAACC,KAAK,CAAC;AACxB;;AAEA;AACA,OAAO,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;AACA,OAAO,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":[]}
@@ -1,5 +1,38 @@
1
1
  export { default as ActionBar } from "./ActionBar";
2
+ /**
3
+ * AppMain — the `<main>` landmark (gap G-53).
4
+ *
5
+ * The library shipped HALF of a two-part contract: `SkipLink`'s docblock
6
+ * prescribes `<main id="main-content">` as its target and the library never
7
+ * provided it, so every module wrote the landmark — with `tabIndex={-1}`
8
+ * (without which the skip link scrolls but does not move focus in Safari),
9
+ * `outline: none` (R-F.1: the ring belongs on controls, not on a whole page),
10
+ * and the content measure of R-L.5, a MUST nothing here honoured:
11
+ * `PageContent` owns the canonical padding and caps NOTHING, so a certified
12
+ * module still stretched its tables across a 1920 px display.
13
+ *
14
+ * Two copies existed in the portfolio (autorisation-admis-pour-conforme-fe and
15
+ * the reference module ms-ti-fe), which is what a gap looks like from the
16
+ * outside.
17
+ */
18
+ export { default as AppMain } from "./AppMain";
2
19
  export { default as BulkActionBar } from "./BulkActionBar";
20
+ /**
21
+ * ChartFigure — a chart, its title, and its TEXT EQUIVALENT (gap G-55).
22
+ *
23
+ * `tokens/chart` states the obligation and shipped nothing to meet it, in its
24
+ * own words: the palette "does not make a chart accessible. Every consumer
25
+ * still owes a legend with text labels, and a text equivalent of the data —
26
+ * 1.1.1 for the chart as a whole." A rule stated without a component to carry
27
+ * it is met by whoever remembers it, and the text equivalent is the part that
28
+ * goes missing first — the only one nobody SEES missing.
29
+ *
30
+ * Hence `caption` being REQUIRED: a chart rendered through here cannot ship
31
+ * without its numbers in text. The canvas is `aria-hidden` (a renderer emits
32
+ * dozens of unstructured SVG text nodes, which is noise worse than silence) —
33
+ * so no interactive control goes inside it.
34
+ */
35
+ export { default as ChartFigure } from "./ChartFigure";
3
36
  export { default as ColumnsToggle } from "./ColumnsToggle";
4
37
  export { default as FormSection } from "./FormSection";
5
38
  export { default as FormPageShell } from "./FormPageShell";
@@ -7,11 +40,130 @@ export { default as FormErrorSummary } from "./FormErrorSummary";
7
40
  // R-FV.3 companion to FormErrorSummary (R-FV.2) — renders nothing, moves
8
41
  // focus to the first field in error after a failed submit. Adopt both.
9
42
  export { default as FormikErrorFocus } from "./FormikErrorFocus";
43
+ /**
44
+ * FormikErrorSummary — the Formik bridge for FormErrorSummary (R-FV.2).
45
+ *
46
+ * The library owned all three parts of the failed-submit recipe and no way to
47
+ * assemble them inside the form shape modules actually write:
48
+ * `FormErrorSummary` renders the banner from a flat list,
49
+ * `flattenFormikErrors` (G-38) produces that list, `focusFieldByName`
50
+ * (R-FV.3) resolves an item back to its control.
51
+ *
52
+ * Reaching `errors` / `submitCount` needs the Formik CONTEXT, and the
53
+ * prevailing shape is `<Formik><Form>…</Form></Formik>` with STATIC children —
54
+ * the host's body sits outside the provider, and `innerRef` does not help
55
+ * because mutating a ref does not re-render the holder when `errors` changes.
56
+ * So each host had to convert its form to a render-prop purely to reach the
57
+ * errors, or write a local null-rendering context reader.
58
+ *
59
+ * Raised from ms-ti-fe (Area 11), where ONE of eleven Formik forms had the
60
+ * banner: wiring the other ten meant ten copies of that wrapper. The sibling
61
+ * rule HAS a bridge (`FormikErrorFocus`), which is why field adoption of the
62
+ * two MUSTs diverged — the one needing boilerplate is the one nobody applied.
63
+ */
64
+ export { default as FormikErrorSummary } from "./FormikErrorSummary";
10
65
  export { default as PageContent } from "./PageContent";
66
+ /**
67
+ * DetailSplit — content + progression rail on a consultation page (gap G-44).
68
+ *
69
+ * §Detail / Consultation Pattern makes the vertical progress rail a MUST on
70
+ * every consultation page, and §07 R-L.7 fixes the skeleton. The library shipped
71
+ * the rail (`VStepper`) and not the geometry that places it beside the record,
72
+ * so each host wrote the same three-value flex row by hand.
73
+ *
74
+ * Promoted from `refonte-frontend` (Area 4), where the SAME row existed twice
75
+ * — `DetailPage` and `TraitementDemande` — with `560` / `300` / `260` written
76
+ * out in both (R-2.3), and already drifting: neither `<aside>` had an
77
+ * accessible name. Widths now live in `tokens.layout.detail`.
78
+ */
79
+ export { default as DetailSplit } from "./DetailSplit";
80
+ /**
81
+ * PreviewDrawer — the listing preview, body included (gap G-40).
82
+ *
83
+ * §Row Interaction and §Preview Drawer are MUST on every listing page of the
84
+ * platform, and the library shipped only `Drawer`, the empty shell. Each module
85
+ * assembled the same summary by hand, and the copies drifted where it shows
86
+ * least: `ms-ti-fe` uses `KVGrid` + `KV`, `refonte-frontend` had built a local
87
+ * `<dl>` with its own grid — one concept, two renderings (R-2.1).
88
+ *
89
+ * Promoted from `refonte-frontend` (Area 5). Reads NO field of `row`, which is
90
+ * what removed the `as unknown as` assertion its single-component ancestor
91
+ * needed; business defaults live in a host wrapper over a concrete row type.
92
+ */
93
+ export { default as PreviewDrawer } from "./PreviewDrawer";
11
94
  export { default as DataGrid, applySort } from "./DataGrid";
95
+ /**
96
+ * DataGridVirtualized — la seconde table, pour les grands volumes.
97
+ *
98
+ * Sa frontière d'emploi est énoncée dans son propre en-tête : au-delà de mille
99
+ * lignes où la pagination paraîtrait artificielle (journaux d'audit, « tout
100
+ * afficher ») ; sous cent lignes, `DataGrid` est plus simple.
101
+ *
102
+ * >>> LES TYPES SONT AJOUTÉS ICI (audit lot 12, Area 13) — MÊME CLASSE
103
+ * >>> GAP-TS-003 QUE CE FICHIER DOCUMENTE DÉJÀ CINQ FOIS. La VALEUR était
104
+ * >>> exportée, les types décrivant ses props ne l'étaient pas : un hôte ne
105
+ * >>> pouvait donc ni écrire un adaptateur typé autour de ce composant, ni
106
+ * >>> nommer `DataGridVirtualizedDensity` — dont il a besoin, puisque ce
107
+ * >>> palier de HAUTEUR DE LIGNE compte quatre valeurs là où le `Density`
108
+ * >>> canonique en a deux. Le repli aurait été un jumeau local, que les
109
+ * >>> Platform TypeScript Guidelines interdisent.
110
+ * >>>
111
+ * >>> Relevé depuis `autorisation-admis-pour-conforme-fe` (Area 13) : ce
112
+ * >>> module n'utilise pas ce composant — il pagine côté serveur — mais son
113
+ * >>> audit RGESN a dû établir où vivait la virtualisation, et a trouvé une
114
+ * >>> capacité complète dont la surface type était muette.
115
+ * >>>
116
+ * >>> Additif et purement typographique : aucun changement d'exécution. <<<
117
+ */
12
118
  export { default as DataGridVirtualized } from "./DataGridVirtualized";
13
119
  export { default as DataGridSettingsMenu } from "./DataGridSettingsMenu";
14
120
  export { default as DataGridToolbar } from "./DataGridToolbar";
121
+ /**
122
+ * rowActions — business descriptors → the row's kebab menu (gap G-41).
123
+ *
124
+ * The library shipped both halves — `OverflowMenu` renders flat actions,
125
+ * `DataGrid.rowActions` takes a `(row) => ReactNode` — and not the step
126
+ * between them, which every listing wrote for itself while carrying three
127
+ * Charter rules (R-3.3, R-B.6, R-K.1).
128
+ *
129
+ * `buildRowActionMenu` is exported alongside the renderer on purpose: a row
130
+ * appears twice, as a table row and as a `MobileRowCard` whose `actions` prop
131
+ * takes `OverflowMenuAction[]` rather than a node. Without it, hosts rebuilt
132
+ * the menu by hand for the card and the two copies drifted — the same failure
133
+ * the library records for `RowFavoriteToggle` (G-36).
134
+ *
135
+ * Promoted from `refonte-frontend` (Area 5), where it served twelve screens.
136
+ */
137
+ export { buildRowActions, buildRowActionMenu, MAX_ROW_ACTIONS } from "./rowActions";
138
+ /**
139
+ * FilterTabBar — the status-chip bar of a listing card (gap G-45).
140
+ *
141
+ * §Status Chips is a MUST on every listing, and the library shipped the PILL
142
+ * (`FilterTab`) without the bar that seats it — so each listing re-derived the
143
+ * row geometry, the card-header separator, and the split between the status
144
+ * group and the personalization controls.
145
+ *
146
+ * Promoted from `refonte-frontend` (Area 5), where FOUR listings carried the
147
+ * same `BARRE_CHIPS_STATUT` + `GROUPE_BARRE` pair — and had already drifted:
148
+ * one of the four omitted `justifyContent: "space-between"`, so the same
149
+ * listing family rendered two different layouts (R-2.1).
150
+ */
151
+ export { default as FilterTabBar } from "./FilterTabBar";
152
+ /**
153
+ * filterCriteria — active criteria as removable chips (gap G-42).
154
+ *
155
+ * The library owned the RENDERING (`DataGridToolbar.filterChips` and the
156
+ * `DataGridToolbarFilterChip` type, itself added at this module's request) and
157
+ * not the builder. Ten local copies would have drifted on the two things that
158
+ * are not obvious: what counts as SET (`0` is the unset value of a reference
159
+ * mirror on several hosts) and what a removal must CLEAR (reference criteria
160
+ * are held as pairs, so clearing only the displayed key leaves an invisible
161
+ * filter that still filters).
162
+ *
163
+ * Pair with `useAppliedFilters`. Promoted from `refonte-frontend` (Area 5).
164
+ */
165
+ export { buildFilterChips, filterCriteriaKeys, isCriterionSet } from "./filterCriteria";
166
+
15
167
  /**
16
168
  * DataGridToolbar contracts — public typed surface (gap G-I).
17
169
  *