@portnet/ui 6.0.1 → 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 (1011) hide show
  1. package/CHANGELOG.md +737 -0
  2. package/dist/esm/index.js +90 -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 -39
  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 +146 -0
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -18
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +173 -0
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +236 -0
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  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 +299 -0
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -43
  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 -22
  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 +118 -90
  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 +210 -52
  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 +64 -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 +14 -4
  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 +26 -75
  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 +130 -0
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  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 -66
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +51 -99
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +136 -0
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  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 -50
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +129 -0
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  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 -84
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -43
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +64 -65
  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 +127 -0
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  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 +72 -0
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  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 +235 -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 +203 -0
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  346. package/dist/esm/v2/personalization/capabilities/index.js +5 -0
  347. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
  348. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  349. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  350. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  351. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  352. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  353. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  354. package/dist/esm/v2/personalization/index.js +35 -0
  355. package/dist/esm/v2/personalization/index.js.map +1 -1
  356. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  357. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  358. package/dist/esm/v2/personalization/schema.js +8 -9
  359. package/dist/esm/v2/personalization/schema.js.map +1 -1
  360. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  361. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  362. package/dist/esm/v2/referentiel/types.js +2 -0
  363. package/dist/esm/v2/referentiel/types.js.map +1 -0
  364. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  365. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  367. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  368. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  369. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  370. package/dist/esm/v2/theme/_brand.js +8 -24
  371. package/dist/esm/v2/theme/_brand.js.map +1 -1
  372. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  373. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  374. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  375. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  376. package/dist/esm/v2/theme/cssVariables.js +62 -69
  377. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  378. package/dist/esm/v2/theme/index.js +5 -5
  379. package/dist/esm/v2/theme/index.js.map +1 -1
  380. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  381. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  382. package/dist/esm/v2/tokens/chart.js +261 -0
  383. package/dist/esm/v2/tokens/chart.js.map +1 -0
  384. package/dist/esm/v2/tokens/colors.js +22 -22
  385. package/dist/esm/v2/tokens/colors.js.map +1 -1
  386. package/dist/esm/v2/tokens/density.js +62 -7
  387. package/dist/esm/v2/tokens/density.js.map +1 -1
  388. package/dist/esm/v2/tokens/index.js +49 -34
  389. package/dist/esm/v2/tokens/index.js.map +1 -1
  390. package/dist/esm/v2/tokens/motion.js +12 -20
  391. package/dist/esm/v2/tokens/motion.js.map +1 -1
  392. package/dist/esm/v2/tokens/radius.js +1 -1
  393. package/dist/esm/v2/tokens/radius.js.map +1 -1
  394. package/dist/esm/v2/tokens/shadows.js +6 -6
  395. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  396. package/dist/esm/v2/tokens/spacing.js +2 -2
  397. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  398. package/dist/esm/v2/tokens/state.js +1 -1
  399. package/dist/esm/v2/tokens/state.js.map +1 -1
  400. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  401. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  402. package/dist/esm/v2/tokens/tokens.json +6 -1
  403. package/dist/esm/v2/tokens/typography.js +13 -13
  404. package/dist/esm/v2/tokens/typography.js.map +1 -1
  405. package/dist/esm/v2/tokens/zIndex.js +1 -1
  406. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  407. package/dist/esm/v2/types/datagrid.js.map +1 -1
  408. package/dist/esm/v2/utils/apiError.js +16 -37
  409. package/dist/esm/v2/utils/apiError.js.map +1 -1
  410. package/dist/esm/v2/utils/contrast.js +31 -32
  411. package/dist/esm/v2/utils/contrast.js.map +1 -1
  412. package/dist/esm/v2/utils/cx.js +5 -25
  413. package/dist/esm/v2/utils/cx.js.map +1 -1
  414. package/dist/esm/v2/utils/fileDownload.js +23 -26
  415. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  416. package/dist/esm/v2/utils/fileValidation.js +209 -0
  417. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtDate.js +111 -0
  419. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  420. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  421. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  422. package/dist/esm/v2/utils/formikErrors.js +78 -0
  423. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  424. package/dist/esm/v2/utils/index.js +35 -2
  425. package/dist/esm/v2/utils/index.js.map +1 -1
  426. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  427. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  428. package/dist/esm/v2/utils/networkStatus.js +12 -12
  429. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  430. package/dist/index.d.ts +9 -1
  431. package/dist/index.d.ts.map +1 -1
  432. package/dist/index.js +122 -47
  433. package/dist/index.js.map +1 -1
  434. package/dist/v2/__tests__/AppMain.test.js +133 -0
  435. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  436. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  437. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  438. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  439. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  440. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  441. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  442. package/dist/v2/__tests__/FieldError.test.js +98 -69
  443. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  444. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  445. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  446. package/dist/v2/__tests__/FieldWidth.test.js +148 -0
  447. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  448. package/dist/v2/__tests__/FileCard.test.js +45 -48
  449. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikCheckbox.test.js +175 -0
  451. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  452. package/dist/v2/__tests__/FormikDateTimePicker.test.js +237 -0
  453. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  455. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  456. package/dist/v2/__tests__/FormikRadioGroup.test.js +300 -0
  457. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  458. package/dist/v2/__tests__/MobileRowCard.test.js +100 -102
  459. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  460. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  461. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  462. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  463. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  464. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  465. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  466. package/dist/v2/__tests__/apiError.test.js +50 -69
  467. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  468. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  469. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  470. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  471. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  472. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  473. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  474. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  475. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  476. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  477. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  478. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  479. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  480. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  481. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  482. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  483. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  484. package/dist/v2/__tests__/labels-merge.test.js +38 -46
  485. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  486. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  487. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  488. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  489. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  490. package/dist/v2/__tests__/rowActions.test.js +186 -0
  491. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  493. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  494. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  495. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  496. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  497. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  498. package/dist/v2/components/Accordion.js +60 -82
  499. package/dist/v2/components/Accordion.js.map +1 -1
  500. package/dist/v2/components/ActionStrip.js +40 -52
  501. package/dist/v2/components/ActionStrip.js.map +1 -1
  502. package/dist/v2/components/Banner.js +42 -41
  503. package/dist/v2/components/Banner.js.map +1 -1
  504. package/dist/v2/components/Busy.js +22 -27
  505. package/dist/v2/components/Busy.js.map +1 -1
  506. package/dist/v2/components/Button.js +39 -50
  507. package/dist/v2/components/Button.js.map +1 -1
  508. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  509. package/dist/v2/components/CategoryTag.js +49 -32
  510. package/dist/v2/components/CategoryTag.js.map +1 -1
  511. package/dist/v2/components/Checkbox.js +39 -45
  512. package/dist/v2/components/Checkbox.js.map +1 -1
  513. package/dist/v2/components/Chip.js +29 -42
  514. package/dist/v2/components/Chip.js.map +1 -1
  515. package/dist/v2/components/Combobox.js +122 -144
  516. package/dist/v2/components/Combobox.js.map +1 -1
  517. package/dist/v2/components/CommandPalette.js +138 -225
  518. package/dist/v2/components/CommandPalette.js.map +1 -1
  519. package/dist/v2/components/ConfirmDialog.js +46 -56
  520. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  521. package/dist/v2/components/DatePicker.js +81 -86
  522. package/dist/v2/components/DatePicker.js.map +1 -1
  523. package/dist/v2/components/DateRangePicker.js +77 -87
  524. package/dist/v2/components/DateRangePicker.js.map +1 -1
  525. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  526. package/dist/v2/components/DateTimePicker.js +121 -95
  527. package/dist/v2/components/DateTimePicker.js.map +1 -1
  528. package/dist/v2/components/Drawer.d.ts.map +1 -1
  529. package/dist/v2/components/Drawer.js +93 -88
  530. package/dist/v2/components/Drawer.js.map +1 -1
  531. package/dist/v2/components/Dropzone.js +150 -196
  532. package/dist/v2/components/Dropzone.js.map +1 -1
  533. package/dist/v2/components/EmptyState.js +18 -20
  534. package/dist/v2/components/EmptyState.js.map +1 -1
  535. package/dist/v2/components/FavoriteToggle.js +28 -39
  536. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  537. package/dist/v2/components/Field.d.ts +121 -5
  538. package/dist/v2/components/Field.d.ts.map +1 -1
  539. package/dist/v2/components/Field.js +221 -62
  540. package/dist/v2/components/Field.js.map +1 -1
  541. package/dist/v2/components/FieldError.js +18 -21
  542. package/dist/v2/components/FieldError.js.map +1 -1
  543. package/dist/v2/components/FieldHelp.js +40 -60
  544. package/dist/v2/components/FieldHelp.js.map +1 -1
  545. package/dist/v2/components/FileCard.js +27 -31
  546. package/dist/v2/components/FileCard.js.map +1 -1
  547. package/dist/v2/components/FilterTab.js +30 -38
  548. package/dist/v2/components/FilterTab.js.map +1 -1
  549. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  550. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  551. package/dist/v2/components/ForbiddenPage.js +37 -17
  552. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  553. package/dist/v2/components/FormGrid.js +53 -59
  554. package/dist/v2/components/FormGrid.js.map +1 -1
  555. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  556. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  557. package/dist/v2/components/FormikDisplay.js +108 -33
  558. package/dist/v2/components/FormikDisplay.js.map +1 -1
  559. package/dist/v2/components/Input.d.ts +40 -0
  560. package/dist/v2/components/Input.d.ts.map +1 -1
  561. package/dist/v2/components/Input.js +81 -41
  562. package/dist/v2/components/Input.js.map +1 -1
  563. package/dist/v2/components/KPICard.js +57 -67
  564. package/dist/v2/components/KPICard.js.map +1 -1
  565. package/dist/v2/components/KPIStrip.js +16 -22
  566. package/dist/v2/components/KPIStrip.js.map +1 -1
  567. package/dist/v2/components/KV.js +25 -31
  568. package/dist/v2/components/KV.js.map +1 -1
  569. package/dist/v2/components/KVGrid.js +19 -26
  570. package/dist/v2/components/KVGrid.js.map +1 -1
  571. package/dist/v2/components/Layout.js +91 -120
  572. package/dist/v2/components/Layout.js.map +1 -1
  573. package/dist/v2/components/MobileRowCard.js +79 -91
  574. package/dist/v2/components/MobileRowCard.js.map +1 -1
  575. package/dist/v2/components/Modal.js +61 -69
  576. package/dist/v2/components/Modal.js.map +1 -1
  577. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  578. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  579. package/dist/v2/components/NetworkErrorPage.js +38 -21
  580. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  581. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  582. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  583. package/dist/v2/components/NotFoundPage.js +37 -18
  584. package/dist/v2/components/NotFoundPage.js.map +1 -1
  585. package/dist/v2/components/NumberInput.js +88 -118
  586. package/dist/v2/components/NumberInput.js.map +1 -1
  587. package/dist/v2/components/OverflowMenu.js +38 -56
  588. package/dist/v2/components/OverflowMenu.js.map +1 -1
  589. package/dist/v2/components/PdfViewer.js +34 -45
  590. package/dist/v2/components/PdfViewer.js.map +1 -1
  591. package/dist/v2/components/ProgressBar.js +42 -49
  592. package/dist/v2/components/ProgressBar.js.map +1 -1
  593. package/dist/v2/components/Radio.js +59 -67
  594. package/dist/v2/components/Radio.js.map +1 -1
  595. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  596. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  597. package/dist/v2/components/SectionHeader.js +34 -41
  598. package/dist/v2/components/SectionHeader.js.map +1 -1
  599. package/dist/v2/components/Segmented.js +69 -93
  600. package/dist/v2/components/Segmented.js.map +1 -1
  601. package/dist/v2/components/Select.d.ts +26 -2
  602. package/dist/v2/components/Select.d.ts.map +1 -1
  603. package/dist/v2/components/Select.js +120 -155
  604. package/dist/v2/components/Select.js.map +1 -1
  605. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  606. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  607. package/dist/v2/components/ServerErrorPage.js +37 -20
  608. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  609. package/dist/v2/components/Skeleton.js +86 -100
  610. package/dist/v2/components/Skeleton.js.map +1 -1
  611. package/dist/v2/components/SkipLink.js +9 -12
  612. package/dist/v2/components/SkipLink.js.map +1 -1
  613. package/dist/v2/components/Spinner.js +16 -25
  614. package/dist/v2/components/Spinner.js.map +1 -1
  615. package/dist/v2/components/Status.js +18 -29
  616. package/dist/v2/components/Status.js.map +1 -1
  617. package/dist/v2/components/Stepper.js +80 -82
  618. package/dist/v2/components/Stepper.js.map +1 -1
  619. package/dist/v2/components/Surface.js +34 -49
  620. package/dist/v2/components/Surface.js.map +1 -1
  621. package/dist/v2/components/Switch.js +29 -37
  622. package/dist/v2/components/Switch.js.map +1 -1
  623. package/dist/v2/components/TabPanel.d.ts +17 -0
  624. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  625. package/dist/v2/components/TabPanel.js +90 -0
  626. package/dist/v2/components/TabPanel.js.map +1 -0
  627. package/dist/v2/components/Tabs.d.ts +25 -0
  628. package/dist/v2/components/Tabs.d.ts.map +1 -1
  629. package/dist/v2/components/Tabs.js +53 -29
  630. package/dist/v2/components/Tabs.js.map +1 -1
  631. package/dist/v2/components/TelInput.js +80 -115
  632. package/dist/v2/components/TelInput.js.map +1 -1
  633. package/dist/v2/components/Textarea.js +26 -35
  634. package/dist/v2/components/Textarea.js.map +1 -1
  635. package/dist/v2/components/TimePicker.js +62 -74
  636. package/dist/v2/components/TimePicker.js.map +1 -1
  637. package/dist/v2/components/Toast.js +119 -174
  638. package/dist/v2/components/Toast.js.map +1 -1
  639. package/dist/v2/components/Tooltip.js +23 -38
  640. package/dist/v2/components/Tooltip.js.map +1 -1
  641. package/dist/v2/components/_ErrorPageBody.js +15 -16
  642. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  643. package/dist/v2/components/_pickerShared.js +5 -5
  644. package/dist/v2/components/_pickerShared.js.map +1 -1
  645. package/dist/v2/components/index.d.ts +67 -1
  646. package/dist/v2/components/index.d.ts.map +1 -1
  647. package/dist/v2/components/index.js +153 -136
  648. package/dist/v2/components/index.js.map +1 -1
  649. package/dist/v2/hooks/index.d.ts +65 -0
  650. package/dist/v2/hooks/index.d.ts.map +1 -1
  651. package/dist/v2/hooks/index.js +63 -24
  652. package/dist/v2/hooks/index.js.map +1 -1
  653. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  654. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  655. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  656. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  657. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  658. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  659. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  660. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  661. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  662. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  663. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  664. package/dist/v2/hooks/useDensity.js +14 -18
  665. package/dist/v2/hooks/useDensity.js.map +1 -1
  666. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  667. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  668. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  669. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  670. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  671. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  672. package/dist/v2/hooks/useFocusTrap.js +20 -24
  673. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  674. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  675. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  676. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  677. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  678. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  679. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  680. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  681. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  682. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  683. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  684. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  685. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  687. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  688. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  689. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  690. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  691. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  692. package/dist/v2/hooks/useSortedRows.js +4 -6
  693. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  694. package/dist/v2/hooks/useTabLoading.js +7 -22
  695. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  696. package/dist/v2/index.d.ts.map +1 -1
  697. package/dist/v2/index.js +143 -145
  698. package/dist/v2/index.js.map +1 -1
  699. package/dist/v2/modalContext.js +2 -2
  700. package/dist/v2/modalContext.js.map +1 -1
  701. package/dist/v2/models/favorite.d.ts +8 -9
  702. package/dist/v2/models/favorite.d.ts.map +1 -1
  703. package/dist/v2/models/favorite.js.map +1 -1
  704. package/dist/v2/models/index.js +4 -4
  705. package/dist/v2/models/index.js.map +1 -1
  706. package/dist/v2/models/personalization.d.ts +44 -48
  707. package/dist/v2/models/personalization.d.ts.map +1 -1
  708. package/dist/v2/models/personalization.js.map +1 -1
  709. package/dist/v2/models/referentiel.d.ts +32 -50
  710. package/dist/v2/models/referentiel.d.ts.map +1 -1
  711. package/dist/v2/models/referentiel.js.map +1 -1
  712. package/dist/v2/models/savedFilter.d.ts +8 -17
  713. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  714. package/dist/v2/models/savedFilter.js.map +1 -1
  715. package/dist/v2/patterns/ActionBar.js +152 -187
  716. package/dist/v2/patterns/ActionBar.js.map +1 -1
  717. package/dist/v2/patterns/AppMain.d.ts +109 -0
  718. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  719. package/dist/v2/patterns/AppMain.js +115 -0
  720. package/dist/v2/patterns/AppMain.js.map +1 -0
  721. package/dist/v2/patterns/BulkActionBar.js +40 -42
  722. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  723. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  724. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  725. package/dist/v2/patterns/ChartFigure.js +159 -0
  726. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  727. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  728. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  729. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  730. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  731. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGrid.js +262 -297
  733. package/dist/v2/patterns/DataGrid.js.map +1 -1
  734. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  735. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  736. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  737. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  738. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  739. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  740. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  741. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  742. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  743. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  744. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  745. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  746. package/dist/v2/patterns/DetailSplit.js +116 -0
  747. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  748. package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
  749. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  750. package/dist/v2/patterns/FavoriteColumn.js +32 -80
  751. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  752. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  753. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  754. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  755. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  756. package/dist/v2/patterns/FilterTabBar.js +120 -0
  757. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  758. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  759. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  760. package/dist/v2/patterns/FormPageShell.js +53 -50
  761. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  762. package/dist/v2/patterns/FormSection.d.ts +8 -3
  763. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormSection.js +44 -51
  765. package/dist/v2/patterns/FormSection.js.map +1 -1
  766. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  767. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  768. package/dist/v2/patterns/FormikCheckbox.js +138 -0
  769. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  770. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  771. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  772. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  773. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  774. package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
  775. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  776. package/dist/v2/patterns/FormikCombobox.js +55 -69
  777. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  778. package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
  779. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikDatePicker.js +59 -106
  781. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  782. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  783. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  784. package/dist/v2/patterns/FormikDateTimePicker.js +144 -0
  785. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  786. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  787. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  788. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  789. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  790. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  791. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  792. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  793. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  794. package/dist/v2/patterns/FormikFile.js +99 -83
  795. package/dist/v2/patterns/FormikFile.js.map +1 -1
  796. package/dist/v2/patterns/FormikInput.d.ts +11 -1
  797. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  798. package/dist/v2/patterns/FormikInput.js +45 -55
  799. package/dist/v2/patterns/FormikInput.js.map +1 -1
  800. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  801. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  802. package/dist/v2/patterns/FormikRadioGroup.js +137 -0
  803. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  804. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  805. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  807. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/FormikSelect.d.ts +9 -1
  809. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  810. package/dist/v2/patterns/FormikSelect.js +70 -89
  811. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  812. package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
  813. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  814. package/dist/v2/patterns/FormikTextarea.js +35 -48
  815. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  816. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
  817. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  818. package/dist/v2/patterns/KeyboardShortcutsHelp.js +71 -74
  819. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  820. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  821. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  822. package/dist/v2/patterns/PageContent.js +17 -20
  823. package/dist/v2/patterns/PageContent.js.map +1 -1
  824. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  825. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  826. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  827. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  828. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  829. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  830. package/dist/v2/patterns/ReferentielField.js +347 -327
  831. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  832. package/dist/v2/patterns/RowFavoriteToggle.d.ts +98 -0
  833. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  834. package/dist/v2/patterns/RowFavoriteToggle.js +135 -0
  835. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  836. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  837. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  838. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  839. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  840. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  841. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  842. package/dist/v2/patterns/SortableHeader.js +35 -57
  843. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  844. package/dist/v2/patterns/Tour.js +121 -142
  845. package/dist/v2/patterns/Tour.js.map +1 -1
  846. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  847. package/dist/v2/patterns/_dataGridShared.js +131 -147
  848. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  849. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  850. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  851. package/dist/v2/patterns/_pickerSerialisation.js +80 -0
  852. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  853. package/dist/v2/patterns/_sort.js +17 -33
  854. package/dist/v2/patterns/_sort.js.map +1 -1
  855. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  856. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  857. package/dist/v2/patterns/_useColumnResize.js +80 -99
  858. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  859. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  860. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  861. package/dist/v2/patterns/filterCriteria.js +110 -0
  862. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  863. package/dist/v2/patterns/index.d.ts +247 -0
  864. package/dist/v2/patterns/index.d.ts.map +1 -1
  865. package/dist/v2/patterns/index.js +182 -70
  866. package/dist/v2/patterns/index.js.map +1 -1
  867. package/dist/v2/patterns/rowActions.d.ts +150 -0
  868. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  869. package/dist/v2/patterns/rowActions.js +232 -0
  870. package/dist/v2/patterns/rowActions.js.map +1 -0
  871. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  872. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  873. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  874. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  875. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  876. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  877. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  878. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  879. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  880. package/dist/v2/personalization/adapters/index.js +5 -5
  881. package/dist/v2/personalization/adapters/index.js.map +1 -1
  882. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  883. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  884. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  885. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  886. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  887. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  888. package/dist/v2/personalization/capabilities/gridPreferences.js +210 -0
  889. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  890. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  891. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  892. package/dist/v2/personalization/capabilities/index.js +23 -10
  893. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  894. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  895. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  896. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  897. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  898. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  899. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  900. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  901. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  902. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  903. package/dist/v2/personalization/index.d.ts +34 -0
  904. package/dist/v2/personalization/index.d.ts.map +1 -1
  905. package/dist/v2/personalization/index.js +41 -21
  906. package/dist/v2/personalization/index.js.map +1 -1
  907. package/dist/v2/personalization/personalizationContext.js +10 -12
  908. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  909. package/dist/v2/personalization/schema.js +8 -9
  910. package/dist/v2/personalization/schema.js.map +1 -1
  911. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  912. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  913. package/dist/v2/referentiel/index.js +11 -13
  914. package/dist/v2/referentiel/index.js.map +1 -1
  915. package/dist/v2/referentiel/types.d.ts +105 -0
  916. package/dist/v2/referentiel/types.d.ts.map +1 -0
  917. package/dist/v2/referentiel/types.js +6 -0
  918. package/dist/v2/referentiel/types.js.map +1 -0
  919. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  920. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  921. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  922. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  923. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  924. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  925. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  926. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  927. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  928. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  929. package/dist/v2/theme/_brand.js +12 -26
  930. package/dist/v2/theme/_brand.js.map +1 -1
  931. package/dist/v2/theme/_brandSecondary.js +12 -26
  932. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  933. package/dist/v2/theme/createPortnetTheme.js +41 -49
  934. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  935. package/dist/v2/theme/cssVariables.d.ts +3 -3
  936. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  937. package/dist/v2/theme/cssVariables.js +65 -70
  938. package/dist/v2/theme/cssVariables.js.map +1 -1
  939. package/dist/v2/theme/index.js +10 -10
  940. package/dist/v2/theme/index.js.map +1 -1
  941. package/dist/v2/tokens/breakpoints.js +16 -16
  942. package/dist/v2/tokens/breakpoints.js.map +1 -1
  943. package/dist/v2/tokens/chart.d.ts +103 -0
  944. package/dist/v2/tokens/chart.d.ts.map +1 -0
  945. package/dist/v2/tokens/chart.js +270 -0
  946. package/dist/v2/tokens/chart.js.map +1 -0
  947. package/dist/v2/tokens/colors.js +24 -24
  948. package/dist/v2/tokens/colors.js.map +1 -1
  949. package/dist/v2/tokens/density.d.ts +104 -0
  950. package/dist/v2/tokens/density.d.ts.map +1 -1
  951. package/dist/v2/tokens/density.js +67 -12
  952. package/dist/v2/tokens/density.js.map +1 -1
  953. package/dist/v2/tokens/index.d.ts +50 -1
  954. package/dist/v2/tokens/index.d.ts.map +1 -1
  955. package/dist/v2/tokens/index.js +116 -68
  956. package/dist/v2/tokens/index.js.map +1 -1
  957. package/dist/v2/tokens/motion.js +16 -22
  958. package/dist/v2/tokens/motion.js.map +1 -1
  959. package/dist/v2/tokens/radius.js +3 -3
  960. package/dist/v2/tokens/radius.js.map +1 -1
  961. package/dist/v2/tokens/shadows.js +8 -8
  962. package/dist/v2/tokens/shadows.js.map +1 -1
  963. package/dist/v2/tokens/spacing.js +4 -4
  964. package/dist/v2/tokens/spacing.js.map +1 -1
  965. package/dist/v2/tokens/state.js +3 -3
  966. package/dist/v2/tokens/state.js.map +1 -1
  967. package/dist/v2/tokens/statusPalette.js +21 -23
  968. package/dist/v2/tokens/statusPalette.js.map +1 -1
  969. package/dist/v2/tokens/tokens.json +6 -1
  970. package/dist/v2/tokens/typography.js +15 -15
  971. package/dist/v2/tokens/typography.js.map +1 -1
  972. package/dist/v2/tokens/zIndex.js +3 -3
  973. package/dist/v2/tokens/zIndex.js.map +1 -1
  974. package/dist/v2/types/datagrid.d.ts +9 -1
  975. package/dist/v2/types/datagrid.d.ts.map +1 -1
  976. package/dist/v2/types/datagrid.js.map +1 -1
  977. package/dist/v2/types/index.js +2 -2
  978. package/dist/v2/types/index.js.map +1 -1
  979. package/dist/v2/utils/apiError.js +16 -37
  980. package/dist/v2/utils/apiError.js.map +1 -1
  981. package/dist/v2/utils/contrast.js +31 -32
  982. package/dist/v2/utils/contrast.js.map +1 -1
  983. package/dist/v2/utils/cx.js +7 -27
  984. package/dist/v2/utils/cx.js.map +1 -1
  985. package/dist/v2/utils/fileDownload.js +25 -28
  986. package/dist/v2/utils/fileDownload.js.map +1 -1
  987. package/dist/v2/utils/fileValidation.d.ts +116 -0
  988. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  989. package/dist/v2/utils/fileValidation.js +220 -0
  990. package/dist/v2/utils/fileValidation.js.map +1 -0
  991. package/dist/v2/utils/fmtDate.d.ts +103 -0
  992. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  993. package/dist/v2/utils/fmtDate.js +119 -0
  994. package/dist/v2/utils/fmtDate.js.map +1 -0
  995. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  996. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  997. package/dist/v2/utils/fmtMoney.js +9 -11
  998. package/dist/v2/utils/fmtMoney.js.map +1 -1
  999. package/dist/v2/utils/formikErrors.d.ts +67 -0
  1000. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  1001. package/dist/v2/utils/formikErrors.js +85 -0
  1002. package/dist/v2/utils/formikErrors.js.map +1 -0
  1003. package/dist/v2/utils/index.d.ts +5 -0
  1004. package/dist/v2/utils/index.d.ts.map +1 -1
  1005. package/dist/v2/utils/index.js +67 -18
  1006. package/dist/v2/utils/index.js.map +1 -1
  1007. package/dist/v2/utils/mergeLabels.js +9 -14
  1008. package/dist/v2/utils/mergeLabels.js.map +1 -1
  1009. package/dist/v2/utils/networkStatus.js +14 -14
  1010. package/dist/v2/utils/networkStatus.js.map +1 -1
  1011. package/package.json +26 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartFigure.js","names":["React","SectionErrorBoundary","SectionHeader","Surface","jsx","_jsx","jsxs","_jsxs","ChartFigure","title","caption","children","level","minHeight","hideCanvasFromScreenReaders","className","component","padding","elevation","sx","margin","display","flexDirection","gap","undefined","style","fontSize","lineHeight","color"],"sources":["../../../../src/lib/v2/patterns/ChartFigure.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport SectionErrorBoundary from \"../components/SectionErrorBoundary\";\r\nimport SectionHeader from \"../components/SectionHeader\";\r\nimport Surface from \"../components/Surface\";\r\nimport type { SectionHeaderLevel } from \"../components/SectionHeader\";\r\n\r\n/**\r\n * ChartFigure — a chart, its title, and its TEXT EQUIVALENT (pattern)\r\n *\r\n * Usage:\r\n *\r\n * <ChartFigure\r\n * title=\"Dossiers par type de demande\"\r\n * caption=\"Admission : 128 dossiers (64 %). Renouvellement : 72 (36 %).\"\r\n * >\r\n * <HighchartsReact highcharts={Highcharts} options={options} />\r\n * </ChartFigure>\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY (capability gap G-55)\r\n *\r\n * `tokens/chart` states the obligation and provides nothing to meet it, in its\r\n * own words: \"COLOUR IS NEVER THE ONLY CHANNEL (WCAG 1.4.1). This palette makes\r\n * slices distinguishable; it does not make a chart accessible. Every consumer\r\n * still owes a legend with text labels, and a text equivalent of the data —\r\n * 1.1.1 for the chart as a whole.\"\r\n *\r\n * A rule stated without a component to carry it gets met by whoever remembers\r\n * it. So the same three-part assembly was written per screen — a `Surface`, a\r\n * `SectionHeader`, and a paragraph of numbers under the canvas — and it is the\r\n * third part that goes missing first, because it is the only one nobody SEES\r\n * missing. A chart with no text equivalent looks finished.\r\n *\r\n * `caption` is therefore REQUIRED, not optional. That is the whole design\r\n * decision of this component: a chart rendered through here cannot ship without\r\n * its numbers in text. Making it optional would reproduce, one layer up, the\r\n * situation this closes.\r\n *\r\n * Observed in `autorisation-admis-pour-conforme-fe` (Area 5): three bilan\r\n * screens repeating Surface + SectionHeader + an `aria-hidden` canvas + a\r\n * caption paragraph, with the caption's own styling (`--text-xs`,\r\n * `--fg-subtle`) copied along with it.\r\n *\r\n * `Surface`'s docblock already points here: \"Surface deliberately has NO title,\r\n * NO actions and NO header. A titled section is FormSection; a metric tile is\r\n * KPICard […]. Those compose this.\"\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * WHY THE CANVAS IS `aria-hidden`. A chart renderer emits dozens of SVG text\r\n * nodes — axis ticks, slice percentages, tooltips — which a screen reader walks\r\n * one by one, in visual order, with no structure. That is noise, not\r\n * information, and it is WORSE than silence because it takes minutes to get\r\n * through. The canvas is hidden and the `figcaption` speaks for it.\r\n *\r\n * COROLLARY, and it is a hard constraint: do NOT put interactive controls\r\n * inside. `aria-hidden` on a focusable ancestor produces an element that can be\r\n * tabbed to and cannot be announced, which fails WCAG 4.1.2 more plainly than\r\n * the noise it was meant to avoid. A period selector or an export button goes\r\n * OUTSIDE this component. (A renderer's own accessibility module, which builds\r\n * a proper keyboard-navigable data table, is a different story — a consumer\r\n * enabling one should pass `hideCanvasFromScreenReaders={false}` and own the\r\n * result.)\r\n *\r\n * The caption is VISIBLE, deliberately, and not a visually-hidden string: the\r\n * numbers under a chart help the reader who can see it too — that is the whole\r\n * point of a `figcaption` — and a caption nobody can see is a caption nobody\r\n * notices has gone stale.\r\n *\r\n * ── THE CANVAS IS FAULT-ISOLATED (ISO/IEC 25010 § Reliability) ────\r\n *\r\n * The chart slot is wrapped in `SectionErrorBoundary`. Hosting a THIRD-PARTY\r\n * renderer is what this component is for, and that renderer is fed aggregates\r\n * from a back-end whose wire models declare every field optional — the exact\r\n * situation `SectionErrorBoundary`'s own header describes: \"an `articles` field\r\n * arriving as an object where `.map` is called\". React's default behaviour on a\r\n * render exception is to unmount the WHOLE tree, so one malformed series took\r\n * down the entire page, KPI strip and data table included — the table that\r\n * carries the same numbers the chart was drawing.\r\n *\r\n * With the boundary, a failing chart shows a banner INSIDE its own card, and\r\n * everything around it keeps working. The `figcaption` survives too, which\r\n * matters more here than anywhere else: the caption holds the figures in text,\r\n * so the reader still gets the DATA when the drawing is gone.\r\n *\r\n * The boundary sits ABOVE the `aria-hidden` canvas wrapper, not inside it —\r\n * placed inside, its error banner would inherit that `aria-hidden` and no\r\n * screen reader would announce the failure. A sighted user would see the\r\n * breakage; a blind user would get silence.\r\n *\r\n * Not opt-out. A host rendering a hand-written inline SVG gains nothing from\r\n * the boundary but loses nothing either — an unconditional guarantee is worth\r\n * more than a prop nobody remembers to pass.\r\n */\r\n\r\nexport interface ChartFigureProps {\r\n /**\r\n * Visible heading of the figure. Keep the chart renderer's own `title` option\r\n * EMPTY and use this: real HTML text is selectable, translatable, sized by\r\n * the token scale, and reachable by a screen reader — an SVG title is none of\r\n * those. Two titles is the failure this prop exists to prevent.\r\n */\r\n title: React.ReactNode;\r\n /**\r\n * The text equivalent of the data (WCAG 1.1.1). REQUIRED — see the header.\r\n * Give the figures, not a description of the chart: \"Approuvés : 128 (64 %)\"\r\n * tells a reader what the slices say; \"répartition des statuts\" does not.\r\n */\r\n caption: React.ReactNode;\r\n /** The chart itself. */\r\n children?: React.ReactNode | undefined;\r\n /** Heading level. Default `\"h3\"` — one below the page's `ActionBar` h1. */\r\n level?: SectionHeaderLevel | undefined;\r\n /**\r\n * Height reserved for the canvas before the chart paints (R-R.4, anti-CLS).\r\n * Pass it when the renderer sizes itself from its container, otherwise the\r\n * caption jumps down the page on first render.\r\n */\r\n minHeight?: number | string | undefined;\r\n /**\r\n * Escape hatch for a renderer that exposes its own accessible data table.\r\n * Defaults to `true`; setting it to `false` un-hides the canvas and hands the\r\n * screen-reader experience to that renderer. The caption stays required.\r\n */\r\n hideCanvasFromScreenReaders?: boolean | undefined;\r\n className?: string | undefined;\r\n}\r\n\r\nfunction ChartFigure({\r\n title,\r\n caption,\r\n children,\r\n level = \"h3\",\r\n minHeight,\r\n hideCanvasFromScreenReaders = true,\r\n className,\r\n}: ChartFigureProps) {\r\n return (\r\n /* `figure` + `figcaption` is the native pairing for \"content plus its\r\n description\", so the association needs no ARIA. Rendered THROUGH\r\n `Surface` via its `component` prop rather than nested inside it — one\r\n element instead of two, and the card padding lands on the figure itself.\r\n `margin: 0` because the UA stylesheet gives a figure large margins. */\r\n <Surface\r\n component=\"figure\"\r\n padding=\"default\"\r\n elevation=\"xs\"\r\n sx={{\r\n margin: 0,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-3)\",\r\n }}\r\n {...(className !== undefined ? { className } : {})}\r\n >\r\n <SectionHeader level={level} title={title} />\r\n\r\n {/* La frontière enveloppe le canevas AU-DESSUS du `div` `aria-hidden`, et\r\n l'ordre n'est pas indifférent : placée à l'intérieur, sa bannière\r\n d'erreur hériterait de l'`aria-hidden` du canevas et aucun lecteur\r\n d'écran ne l'annoncerait — un voyant verrait la panne, un non-voyant\r\n n'entendrait rien. Ici, le canevas reste masqué aux technologies\r\n d'assistance ET l'erreur leur parvient.\r\n\r\n `title` n'est transmis que s'il est une chaîne : `SectionErrorBoundary`\r\n nomme la panne dans sa bannière et dans le journal, et un nœud JSX n'y\r\n a pas sa place. */}\r\n <SectionErrorBoundary {...(typeof title === \"string\" ? { title } : {})}>\r\n <div\r\n {...(hideCanvasFromScreenReaders ? { \"aria-hidden\": true } : {})}\r\n style={minHeight !== undefined ? { minHeight } : {}}\r\n >\r\n {children}\r\n </div>\r\n </SectionErrorBoundary>\r\n\r\n <figcaption\r\n style={{\r\n fontSize: \"var(--text-xs)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n color: \"var(--fg-subtle)\",\r\n }}\r\n >\r\n {caption}\r\n </figcaption>\r\n </Surface>\r\n );\r\n}\r\n\r\nexport default ChartFigure;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAOC,oBAAoB,MAAM,oCAAoC;AACrE,OAAOC,aAAa,MAAM,6BAA6B;AACvD,OAAOC,OAAO,MAAM,uBAAuB;;AAG3C;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtFA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAyHA,SAASC,WAAWA,CAAC;EACnBC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRC,KAAK,GAAG,IAAI;EACZC,SAAS;EACTC,2BAA2B,GAAG,IAAI;EAClCC;AACgB,CAAC,EAAE;EACnB;IAAA;IACE;AACJ;AACA;AACA;AACA;IACIR,KAAA,CAACJ,OAAO;MACNa,SAAS,EAAC,QAAQ;MAClBC,OAAO,EAAC,SAAS;MACjBC,SAAS,EAAC,IAAI;MACdC,EAAE,EAAE;QACFC,MAAM,EAAE,CAAC;QACTC,OAAO,EAAE,MAAM;QACfC,aAAa,EAAE,QAAQ;QACvBC,GAAG,EAAE;MACP,CAAE;MAAA,IACGR,SAAS,KAAKS,SAAS,GAAG;QAAET;MAAU,CAAC,GAAG,CAAC,CAAC;MAAAJ,QAAA,gBAEjDN,IAAA,CAACH,aAAa;QAACU,KAAK,EAAEA,KAAM;QAACH,KAAK,EAAEA;MAAM,CAAE,CAAC,eAY7CJ,IAAA,CAACJ,oBAAoB;QAAA,IAAM,OAAOQ,KAAK,KAAK,QAAQ,GAAG;UAAEA;QAAM,CAAC,GAAG,CAAC,CAAC;QAAAE,QAAA,eACnEN,IAAA;UAAA,IACOS,2BAA2B,GAAG;YAAE,aAAa,EAAE;UAAK,CAAC,GAAG,CAAC,CAAC;UAC/DW,KAAK,EAAEZ,SAAS,KAAKW,SAAS,GAAG;YAAEX;UAAU,CAAC,GAAG,CAAC,CAAE;UAAAF,QAAA,EAEnDA;QAAQ,CACN;MAAC,CACc,CAAC,eAEvBN,IAAA;QACEoB,KAAK,EAAE;UACLC,QAAQ,EAAE,gBAAgB;UAC1BC,UAAU,EAAE,kBAAkB;UAC9BC,KAAK,EAAE;QACT,CAAE;QAAAjB,QAAA,EAEDD;MAAO,CACE,CAAC;IAAA,CACN;EAAC;AAEd;AAEA,eAAeF,WAAW","ignoreList":[]}
@@ -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 _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
3
- 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."); }
4
- 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); }
5
- 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; }
6
- 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; } }
7
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8
- 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; }
9
- 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; }
10
- 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; }
11
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
12
- 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); }
13
1
  import * as React from "react";
14
2
  import Box from "@mui/material/Box";
15
3
  import Table from "@mui/material/Table";
@@ -57,7 +45,7 @@ import { mergeLabels, TABLE_BY_DENSITY, CONTAINER_SX, DEFAULT_MAX_BODY_HEIGHT, R
57
45
 
58
46
  /** DataGrid labels + the expansion-specific names. */
59
47
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
60
- var EMPTY = "—";
48
+ const EMPTY = "—";
61
49
 
62
50
  /* Default value accessor for an unconstrained row type — typed against
63
51
  * `unknown` so the single assertion is legal (mirrors DataGrid). */
@@ -67,101 +55,78 @@ function readCellValue(row, key) {
67
55
 
68
56
  /* Default getRowId (`(r) => r.id`); `(unknown) => RowId` is assignable to
69
57
  * the declared `(row: T) => RowId` by parameter contravariance. */
70
- var defaultGetRowId = function defaultGetRowId(row) {
71
- return row.id;
72
- };
58
+ const defaultGetRowId = row => row.id;
73
59
  function resolveCell(col, row) {
74
60
  if (col.render) return col.render(row);
75
- var value = col.getValue ? col.getValue(row) : readCellValue(row, col.key);
61
+ const value = col.getValue ? col.getValue(row) : readCellValue(row, col.key);
76
62
  return value == null || value === "" ? EMPTY : value;
77
63
  }
78
64
  function alignOf(col) {
79
65
  return col.align || (col.numeric ? "right" : "left");
80
66
  }
81
67
  function numericSx(col) {
82
- return _objectSpread(_objectSpread({}, col.mono ? {
83
- fontFamily: "var(--font-mono)"
84
- } : {}), col.numeric || col.mono ? {
85
- fontVariantNumeric: "tabular-nums"
86
- } : {});
68
+ return {
69
+ ...(col.mono ? {
70
+ fontFamily: "var(--font-mono)"
71
+ } : {}),
72
+ ...(col.numeric || col.mono ? {
73
+ fontVariantNumeric: "tabular-nums"
74
+ } : {})
75
+ };
87
76
  }
88
- function CollapsibleDataGrid(_ref) {
89
- var _labels$expandRow, _labels$collapseRow, _labels$detailAria;
90
- var _ref$rows = _ref.rows,
91
- rows = _ref$rows === void 0 ? [] : _ref$rows,
92
- _ref$columns = _ref.columns,
93
- columns = _ref$columns === void 0 ? [] : _ref$columns,
94
- _ref$detailColumns = _ref.detailColumns,
95
- detailColumns = _ref$detailColumns === void 0 ? [] : _ref$detailColumns,
96
- _ref$getRowId = _ref.getRowId,
97
- getRowId = _ref$getRowId === void 0 ? defaultGetRowId : _ref$getRowId,
98
- hasDetail = _ref.hasDetail,
99
- _ref$density = _ref.density,
100
- density = _ref$density === void 0 ? "comfortable" : _ref$density,
101
- ariaLabel = _ref.ariaLabel,
102
- _ref$locale = _ref.locale,
103
- locale = _ref$locale === void 0 ? "fr-FR" : _ref$locale,
104
- labels = _ref.labels,
105
- _ref$loading = _ref.loading,
106
- loading = _ref$loading === void 0 ? false : _ref$loading,
107
- _ref$pageSize = _ref.pageSize,
108
- pageSizeProp = _ref$pageSize === void 0 ? 10 : _ref$pageSize,
109
- _ref$pageSizes = _ref.pageSizes,
110
- pageSizes = _ref$pageSizes === void 0 ? [10, 25, 100] : _ref$pageSizes,
111
- _ref$maxBodyHeight = _ref.maxBodyHeight,
112
- maxBodyHeight = _ref$maxBodyHeight === void 0 ? DEFAULT_MAX_BODY_HEIGHT : _ref$maxBodyHeight;
113
- var L = React.useMemo(function () {
114
- return mergeLabels(labels);
115
- }, [labels]);
116
- var tableAria = ariaLabel != null ? ariaLabel : L.tableAria;
117
- var expandLabel = (_labels$expandRow = labels === null || labels === void 0 ? void 0 : labels.expandRow) !== null && _labels$expandRow !== void 0 ? _labels$expandRow : "Afficher le détail";
118
- var collapseLabel = (_labels$collapseRow = labels === null || labels === void 0 ? void 0 : labels.collapseRow) !== null && _labels$collapseRow !== void 0 ? _labels$collapseRow : "Réduire le détail";
119
- var detailAria = (_labels$detailAria = labels === null || labels === void 0 ? void 0 : labels.detailAria) !== null && _labels$detailAria !== void 0 ? _labels$detailAria : "Détail de la ligne";
120
- var rowHasDetail = React.useCallback(function (row) {
77
+ function CollapsibleDataGrid({
78
+ rows = [],
79
+ columns = [],
80
+ detailColumns = [],
81
+ getRowId = defaultGetRowId,
82
+ hasDetail,
83
+ density = "comfortable",
84
+ ariaLabel,
85
+ locale = "fr-FR",
86
+ labels,
87
+ loading = false,
88
+ pageSize: pageSizeProp = 10,
89
+ pageSizes = [10, 25, 100],
90
+ maxBodyHeight = DEFAULT_MAX_BODY_HEIGHT
91
+ }) {
92
+ const L = React.useMemo(() => mergeLabels(labels), [labels]);
93
+ const tableAria = ariaLabel != null ? ariaLabel : L.tableAria;
94
+ const expandLabel = labels?.expandRow ?? "Afficher le détail";
95
+ const collapseLabel = labels?.collapseRow ?? "Réduire le détail";
96
+ const detailAria = labels?.detailAria ?? "Détail de la ligne";
97
+ const rowHasDetail = React.useCallback(row => {
121
98
  if (typeof hasDetail === "function") return hasDetail(row);
122
99
  if (!detailColumns.length) return false;
123
- var first = detailColumns[0];
100
+ const first = detailColumns[0];
124
101
  if (!first) return false;
125
- var v = first.getValue ? first.getValue(row) : readCellValue(row, first.key);
102
+ const v = first.getValue ? first.getValue(row) : readCellValue(row, first.key);
126
103
  return v != null && v !== "";
127
104
  }, [hasDetail, detailColumns]);
128
- var _React$useState = React.useState(1),
129
- _React$useState2 = _slicedToArray(_React$useState, 2),
130
- page = _React$useState2[0],
131
- setPage = _React$useState2[1];
132
- var _React$useState3 = React.useState(pageSizeProp),
133
- _React$useState4 = _slicedToArray(_React$useState3, 2),
134
- pageSize = _React$useState4[0],
135
- setPageSize = _React$useState4[1];
136
- var _React$useState5 = React.useState({}),
137
- _React$useState6 = _slicedToArray(_React$useState5, 2),
138
- open = _React$useState6[0],
139
- setOpen = _React$useState6[1];
105
+ const [page, setPage] = React.useState(1);
106
+ const [pageSize, setPageSize] = React.useState(pageSizeProp);
107
+ const [open, setOpen] = React.useState({});
140
108
 
141
109
  // Reset to the first page when the data set size changes so the slice
142
110
  // never lands past the end of a shrunken list.
143
- var total = rows.length;
144
- React.useEffect(function () {
111
+ const total = rows.length;
112
+ React.useEffect(() => {
145
113
  setPage(1);
146
114
  }, [total]);
147
- var tableSx = React.useMemo(function () {
148
- return _objectSpread(_objectSpread({}, TABLE_BY_DENSITY[density] || TABLE_BY_DENSITY.comfortable), {}, {
149
- width: "100%"
150
- });
151
- }, [density]);
152
- var detailTableSx = React.useMemo(function () {
153
- return _objectSpread(_objectSpread({}, TABLE_BY_DENSITY.compact), {}, {
154
- width: "100%"
155
- });
156
- }, []);
157
- var start = (page - 1) * pageSize;
158
- var paged = rows.slice(start, start + pageSize);
159
- var masterColCount = columns.length;
160
- var toggle = function toggle(id) {
161
- return setOpen(function (prev) {
162
- return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, id, !prev[id]));
163
- });
164
- };
115
+ const tableSx = React.useMemo(() => ({
116
+ ...(TABLE_BY_DENSITY[density] || TABLE_BY_DENSITY.comfortable),
117
+ width: "100%"
118
+ }), [density]);
119
+ const detailTableSx = React.useMemo(() => ({
120
+ ...TABLE_BY_DENSITY.compact,
121
+ width: "100%"
122
+ }), []);
123
+ const start = (page - 1) * pageSize;
124
+ const paged = rows.slice(start, start + pageSize);
125
+ const masterColCount = columns.length;
126
+ const toggle = id => setOpen(prev => ({
127
+ ...prev,
128
+ [id]: !prev[id]
129
+ }));
165
130
  return /*#__PURE__*/_jsxs(Box, {
166
131
  sx: CONTAINER_SX,
167
132
  children: [/*#__PURE__*/_jsx(Box, {
@@ -176,59 +141,57 @@ function CollapsibleDataGrid(_ref) {
176
141
  sx: tableSx,
177
142
  children: [/*#__PURE__*/_jsx(TableHead, {
178
143
  children: /*#__PURE__*/_jsx(TableRow, {
179
- children: columns.map(function (col) {
180
- return /*#__PURE__*/_jsx(TableCell, {
181
- align: alignOf(col),
182
- sx: _objectSpread({
183
- position: "sticky",
184
- top: 0,
185
- zIndex: 1
186
- }, col.width != null ? {
144
+ children: columns.map(col => /*#__PURE__*/_jsx(TableCell, {
145
+ align: alignOf(col),
146
+ sx: {
147
+ position: "sticky",
148
+ top: 0,
149
+ zIndex: 1,
150
+ ...(col.width != null ? {
187
151
  width: col.width
188
- } : {}),
189
- children: col.header
190
- }, col.key);
191
- })
152
+ } : {})
153
+ },
154
+ children: col.header
155
+ }, col.key))
192
156
  })
193
157
  }), /*#__PURE__*/_jsx(TableBody, {
194
- children: paged.map(function (row) {
195
- var id = getRowId(row);
196
- var expandable = rowHasDetail(row);
197
- var isOpen = Boolean(open[id]);
198
- var detailId = "pui-cdg-detail-".concat(id);
158
+ children: paged.map(row => {
159
+ const id = getRowId(row);
160
+ const expandable = rowHasDetail(row);
161
+ const isOpen = Boolean(open[id]);
162
+ const detailId = `pui-cdg-detail-${id}`;
199
163
  return /*#__PURE__*/_jsxs(React.Fragment, {
200
164
  children: [/*#__PURE__*/_jsx(TableRow, {
201
165
  hover: true,
202
166
  sx: ROW_STATIC_SX,
203
- children: columns.map(function (col, index) {
204
- return /*#__PURE__*/_jsx(TableCell, {
205
- align: alignOf(col),
206
- sx: _objectSpread(_objectSpread({}, numericSx(col)), col.width != null ? {
167
+ children: columns.map((col, index) => /*#__PURE__*/_jsx(TableCell, {
168
+ align: alignOf(col),
169
+ sx: {
170
+ ...numericSx(col),
171
+ ...(col.width != null ? {
207
172
  width: col.width
208
- } : {}),
209
- children: /*#__PURE__*/_jsxs(Box, {
210
- sx: {
211
- display: "flex",
212
- alignItems: "center",
213
- gap: "var(--s-1)"
214
- },
215
- children: [index === 0 && expandable && /*#__PURE__*/_jsx(IconButton, {
216
- size: "small",
217
- "aria-label": isOpen ? collapseLabel : expandLabel,
218
- "aria-expanded": isOpen,
219
- "aria-controls": detailId,
220
- onClick: function onClick() {
221
- return toggle(id);
222
- },
223
- children: isOpen ? /*#__PURE__*/_jsx(KeyboardArrowUpIcon, {
224
- fontSize: "small"
225
- }) : /*#__PURE__*/_jsx(KeyboardArrowDownIcon, {
226
- fontSize: "small"
227
- })
228
- }), resolveCell(col, row)]
229
- })
230
- }, col.key);
231
- })
173
+ } : {})
174
+ },
175
+ children: /*#__PURE__*/_jsxs(Box, {
176
+ sx: {
177
+ display: "flex",
178
+ alignItems: "center",
179
+ gap: "var(--s-1)"
180
+ },
181
+ children: [index === 0 && expandable && /*#__PURE__*/_jsx(IconButton, {
182
+ size: "small",
183
+ "aria-label": isOpen ? collapseLabel : expandLabel,
184
+ "aria-expanded": isOpen,
185
+ "aria-controls": detailId,
186
+ onClick: () => toggle(id),
187
+ children: isOpen ? /*#__PURE__*/_jsx(KeyboardArrowUpIcon, {
188
+ fontSize: "small"
189
+ }) : /*#__PURE__*/_jsx(KeyboardArrowDownIcon, {
190
+ fontSize: "small"
191
+ })
192
+ }), resolveCell(col, row)]
193
+ })
194
+ }, col.key))
232
195
  }), expandable && /*#__PURE__*/_jsx(TableRow, {
233
196
  children: /*#__PURE__*/_jsx(TableCell, {
234
197
  colSpan: masterColCount,
@@ -238,7 +201,7 @@ function CollapsibleDataGrid(_ref) {
238
201
  },
239
202
  children: /*#__PURE__*/_jsx(Collapse, {
240
203
  id: detailId,
241
- "in": isOpen,
204
+ in: isOpen,
242
205
  timeout: "auto",
243
206
  unmountOnExit: true,
244
207
  children: /*#__PURE__*/_jsx(Box, {
@@ -252,26 +215,22 @@ function CollapsibleDataGrid(_ref) {
252
215
  sx: detailTableSx,
253
216
  children: [/*#__PURE__*/_jsx(TableHead, {
254
217
  children: /*#__PURE__*/_jsx(TableRow, {
255
- children: detailColumns.map(function (col) {
256
- return /*#__PURE__*/_jsx(TableCell, {
257
- align: alignOf(col),
258
- sx: col.width != null ? {
259
- width: col.width
260
- } : {},
261
- children: col.header
262
- }, col.key);
263
- })
218
+ children: detailColumns.map(col => /*#__PURE__*/_jsx(TableCell, {
219
+ align: alignOf(col),
220
+ sx: col.width != null ? {
221
+ width: col.width
222
+ } : {},
223
+ children: col.header
224
+ }, col.key))
264
225
  })
265
226
  }), /*#__PURE__*/_jsx(TableBody, {
266
227
  children: /*#__PURE__*/_jsx(TableRow, {
267
228
  sx: ROW_STATIC_SX,
268
- children: detailColumns.map(function (col) {
269
- return /*#__PURE__*/_jsx(TableCell, {
270
- align: alignOf(col),
271
- sx: numericSx(col),
272
- children: resolveCell(col, row)
273
- }, col.key);
274
- })
229
+ children: detailColumns.map(col => /*#__PURE__*/_jsx(TableCell, {
230
+ align: alignOf(col),
231
+ sx: numericSx(col),
232
+ children: resolveCell(col, row)
233
+ }, col.key))
275
234
  })
276
235
  })]
277
236
  })
@@ -288,7 +247,7 @@ function CollapsibleDataGrid(_ref) {
288
247
  pageSize: pageSize,
289
248
  total: total,
290
249
  onPageChange: setPage,
291
- onPageSizeChange: function onPageSizeChange(s) {
250
+ onPageSizeChange: s => {
292
251
  setPageSize(s);
293
252
  setPage(1);
294
253
  },
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleDataGrid.js","names":["React","Box","Table","TableHead","TableBody","TableRow","TableCell","IconButton","Collapse","KeyboardArrowDownIcon","KeyboardArrowUpIcon","mergeLabels","TABLE_BY_DENSITY","CONTAINER_SX","DEFAULT_MAX_BODY_HEIGHT","ROW_STATIC_SX","Pagination","jsx","_jsx","jsxs","_jsxs","EMPTY","readCellValue","row","key","defaultGetRowId","id","resolveCell","col","render","value","getValue","alignOf","align","numeric","numericSx","_objectSpread","mono","fontFamily","fontVariantNumeric","CollapsibleDataGrid","_ref","_labels$expandRow","_labels$collapseRow","_labels$detailAria","_ref$rows","rows","_ref$columns","columns","_ref$detailColumns","detailColumns","_ref$getRowId","getRowId","hasDetail","_ref$density","density","ariaLabel","_ref$locale","locale","labels","_ref$loading","loading","_ref$pageSize","pageSize","pageSizeProp","_ref$pageSizes","pageSizes","_ref$maxBodyHeight","maxBodyHeight","L","useMemo","tableAria","expandLabel","expandRow","collapseLabel","collapseRow","detailAria","rowHasDetail","useCallback","length","first","v","_React$useState","useState","_React$useState2","_slicedToArray","page","setPage","_React$useState3","_React$useState4","setPageSize","_React$useState5","_React$useState6","open","setOpen","total","useEffect","tableSx","comfortable","width","detailTableSx","compact","start","paged","slice","masterColCount","toggle","prev","_defineProperty","sx","children","overflow","maxHeight","stickyHeader","map","position","top","zIndex","header","expandable","isOpen","Boolean","detailId","concat","Fragment","hover","index","display","alignItems","gap","size","onClick","fontSize","colSpan","paddingTop","paddingBottom","timeout","unmountOnExit","onPageChange","onPageSizeChange","s","pagination"],"sources":["../../../../src/lib/v2/patterns/CollapsibleDataGrid.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Table from \"@mui/material/Table\";\r\nimport TableHead from \"@mui/material/TableHead\";\r\nimport TableBody from \"@mui/material/TableBody\";\r\nimport TableRow from \"@mui/material/TableRow\";\r\nimport TableCell from \"@mui/material/TableCell\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport Collapse from \"@mui/material/Collapse\";\r\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\n\r\nimport {\r\n mergeLabels,\r\n TABLE_BY_DENSITY,\r\n CONTAINER_SX,\r\n DEFAULT_MAX_BODY_HEIGHT,\r\n ROW_STATIC_SX,\r\n Pagination,\r\n} from \"./_dataGridShared\";\r\nimport type { DataGridColumn, DataGridLabels } from \"../types/datagrid\";\r\nimport type { Alignment, Density, RowId } from \"../types/common\";\r\n\r\n/**\r\n * CollapsibleDataGrid — Portnet UI v2 (pattern)\r\n *\r\n * Charter §03 · master/detail table with per-row expansion. Companion to\r\n * DataGrid for the case DataGrid intentionally does not cover: a row that\r\n * expands to reveal a secondary record (e.g. a decision and its visa\r\n * detail). Refactor of the legacy host-local CollapsibleTableClientSide\r\n * (ms-dfd-fe), lifted into the lib so modules consume it instead of\r\n * re-implementing an expandable MUI Table.\r\n *\r\n * Columns use the v2-native shape, identical to DataGrid:\r\n * { key, header, render(row), getValue(row), width, align, numeric, mono }\r\n *\r\n * `columns` master row cells (the first cell hosts the expand toggle).\r\n * `detailColumns` the expanded panel; values are read from the SAME row\r\n * object (a row carries both its master and detail fields).\r\n *\r\n * A row is expandable when `hasDetail(row)` is true. Default: the first\r\n * detail column resolves to a non-nullish value. Pass `hasDetail` to override.\r\n *\r\n * Pagination is client-side (the host passes the full row set) and uses the\r\n * shared v2 Pagination — 1-based, tabular range, optional page-size select.\r\n *\r\n * Accessibility (WCAG 2.2 AA · Charter R-DG):\r\n * - the expand control is a real <button> with aria-expanded +\r\n * aria-controls pointing at the detail region id;\r\n * - the detail region is labelled (labels.detailAria);\r\n * - the table carries a contextual name (ariaLabel | labels.tableAria).\r\n */\r\n\r\n/** The read subset of the DataGrid column contract that this pattern honours. */\r\nexport type CollapsibleColumn<T> = Pick<\r\n DataGridColumn<T>,\r\n \"key\" | \"header\" | \"align\" | \"numeric\" | \"mono\" | \"width\" | \"render\" | \"getValue\"\r\n>;\r\n\r\n/** DataGrid labels + the expansion-specific names. */\r\nexport interface CollapsibleDataGridLabels extends DataGridLabels {\r\n expandRow?: string | undefined;\r\n collapseRow?: string | undefined;\r\n detailAria?: string | undefined;\r\n}\r\n\r\nexport interface CollapsibleDataGridProps<T> {\r\n rows?: T[] | undefined;\r\n columns: CollapsibleColumn<T>[];\r\n detailColumns?: CollapsibleColumn<T>[] | undefined;\r\n /** Row identity (default `(row) => row.id`). */\r\n getRowId?: ((row: T) => RowId) | undefined;\r\n /** Override the \"row is expandable\" test (default: first detail value is non-nullish). */\r\n hasDetail?: ((row: T) => boolean) | undefined;\r\n density?: Density | undefined;\r\n /** Contextual accessible table name (WCAG 1.3.1 / Charter R-DG). */\r\n ariaLabel?: string | undefined;\r\n /** BCP-47 locale for pagination number formatting (default \"fr-FR\"). */\r\n locale?: string | undefined;\r\n labels?: CollapsibleDataGridLabels | undefined;\r\n loading?: boolean | undefined;\r\n pageSize?: number | undefined;\r\n pageSizes?: number[] | undefined;\r\n maxBodyHeight?: number | string | undefined;\r\n}\r\n\r\nconst EMPTY = \"—\";\r\n\r\n/* Default value accessor for an unconstrained row type — typed against\r\n * `unknown` so the single assertion is legal (mirrors DataGrid). */\r\nfunction readCellValue(row: unknown, key: string): unknown {\r\n return (row as Record<string, unknown>)[key];\r\n}\r\n\r\n/* Default getRowId (`(r) => r.id`); `(unknown) => RowId` is assignable to\r\n * the declared `(row: T) => RowId` by parameter contravariance. */\r\nconst defaultGetRowId = (row: unknown): RowId => (row as { id: RowId }).id;\r\n\r\nfunction resolveCell<T>(col: CollapsibleColumn<T>, row: T): React.ReactNode {\r\n if (col.render) return col.render(row);\r\n const value = col.getValue ? col.getValue(row) : readCellValue(row, col.key);\r\n return value == null || value === \"\" ? EMPTY : (value as React.ReactNode);\r\n}\r\n\r\nfunction alignOf(col: Pick<DataGridColumn<unknown>, \"align\" | \"numeric\">): Alignment {\r\n return col.align || (col.numeric ? \"right\" : \"left\");\r\n}\r\n\r\nfunction numericSx(\r\n col: Pick<DataGridColumn<unknown>, \"numeric\" | \"mono\">\r\n): SystemStyleObject<Theme> {\r\n return {\r\n ...(col.mono ? { fontFamily: \"var(--font-mono)\" } : {}),\r\n ...(col.numeric || col.mono ? { fontVariantNumeric: \"tabular-nums\" } : {}),\r\n };\r\n}\r\n\r\nfunction CollapsibleDataGrid<T>({\r\n rows = [],\r\n columns = [],\r\n detailColumns = [],\r\n getRowId = defaultGetRowId,\r\n hasDetail,\r\n density = \"comfortable\",\r\n ariaLabel,\r\n locale = \"fr-FR\",\r\n labels,\r\n loading = false,\r\n pageSize: pageSizeProp = 10,\r\n pageSizes = [10, 25, 100],\r\n maxBodyHeight = DEFAULT_MAX_BODY_HEIGHT,\r\n}: CollapsibleDataGridProps<T>) {\r\n const L = React.useMemo(() => mergeLabels(labels), [labels]);\r\n const tableAria = ariaLabel != null ? ariaLabel : L.tableAria;\r\n const expandLabel = labels?.expandRow ?? \"Afficher le détail\";\r\n const collapseLabel = labels?.collapseRow ?? \"Réduire le détail\";\r\n const detailAria = labels?.detailAria ?? \"Détail de la ligne\";\r\n\r\n const rowHasDetail = React.useCallback(\r\n (row: T): boolean => {\r\n if (typeof hasDetail === \"function\") return hasDetail(row);\r\n if (!detailColumns.length) return false;\r\n const first = detailColumns[0];\r\n if (!first) return false;\r\n const v = first.getValue ? first.getValue(row) : readCellValue(row, first.key);\r\n return v != null && v !== \"\";\r\n },\r\n [hasDetail, detailColumns]\r\n );\r\n\r\n const [page, setPage] = React.useState(1);\r\n const [pageSize, setPageSize] = React.useState(pageSizeProp);\r\n const [open, setOpen] = React.useState<Record<RowId, boolean>>({});\r\n\r\n // Reset to the first page when the data set size changes so the slice\r\n // never lands past the end of a shrunken list.\r\n const total = rows.length;\r\n React.useEffect(() => {\r\n setPage(1);\r\n }, [total]);\r\n\r\n const tableSx = React.useMemo<SxProps<Theme>>(\r\n () => ({\r\n ...((TABLE_BY_DENSITY[density] ||\r\n TABLE_BY_DENSITY.comfortable) as SystemStyleObject<Theme>),\r\n width: \"100%\",\r\n }),\r\n [density]\r\n );\r\n const detailTableSx = React.useMemo<SxProps<Theme>>(\r\n () => ({\r\n ...(TABLE_BY_DENSITY.compact as SystemStyleObject<Theme>),\r\n width: \"100%\",\r\n }),\r\n []\r\n );\r\n\r\n const start = (page - 1) * pageSize;\r\n const paged = rows.slice(start, start + pageSize);\r\n const masterColCount = columns.length;\r\n\r\n const toggle = (id: RowId) =>\r\n setOpen((prev) => ({ ...prev, [id]: !prev[id] }));\r\n\r\n return (\r\n <Box sx={CONTAINER_SX}>\r\n <Box sx={{ overflow: \"auto\", maxHeight: maxBodyHeight, width: \"100%\" }}>\r\n <Table aria-label={tableAria} stickyHeader sx={tableSx}>\r\n <TableHead>\r\n <TableRow>\r\n {columns.map((col) => (\r\n <TableCell\r\n key={col.key}\r\n align={alignOf(col)}\r\n sx={{\r\n position: \"sticky\",\r\n top: 0,\r\n zIndex: 1,\r\n ...(col.width != null ? { width: col.width } : {}),\r\n }}\r\n >\r\n {col.header}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {paged.map((row) => {\r\n const id = getRowId(row);\r\n const expandable = rowHasDetail(row);\r\n const isOpen = Boolean(open[id]);\r\n const detailId = `pui-cdg-detail-${id}`;\r\n return (\r\n <React.Fragment key={id}>\r\n <TableRow hover sx={ROW_STATIC_SX}>\r\n {columns.map((col, index) => (\r\n <TableCell\r\n key={col.key}\r\n align={alignOf(col)}\r\n sx={{\r\n ...numericSx(col),\r\n ...(col.width != null ? { width: col.width } : {}),\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n }}\r\n >\r\n {index === 0 && expandable && (\r\n <IconButton\r\n size=\"small\"\r\n aria-label={isOpen ? collapseLabel : expandLabel}\r\n aria-expanded={isOpen}\r\n aria-controls={detailId}\r\n onClick={() => toggle(id)}\r\n >\r\n {isOpen ? (\r\n <KeyboardArrowUpIcon fontSize=\"small\" />\r\n ) : (\r\n <KeyboardArrowDownIcon fontSize=\"small\" />\r\n )}\r\n </IconButton>\r\n )}\r\n {resolveCell(col, row)}\r\n </Box>\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n\r\n {expandable && (\r\n <TableRow>\r\n <TableCell\r\n colSpan={masterColCount}\r\n sx={{ paddingTop: 0, paddingBottom: 0 }}\r\n >\r\n <Collapse\r\n id={detailId}\r\n in={isOpen}\r\n timeout=\"auto\"\r\n unmountOnExit\r\n >\r\n <Box\r\n sx={{\r\n paddingTop: \"var(--s-3)\",\r\n paddingBottom: \"var(--s-3)\",\r\n }}\r\n >\r\n <Table\r\n size=\"small\"\r\n aria-label={detailAria}\r\n sx={detailTableSx}\r\n >\r\n <TableHead>\r\n <TableRow>\r\n {detailColumns.map((col) => (\r\n <TableCell\r\n key={col.key}\r\n align={alignOf(col)}\r\n sx={\r\n col.width != null\r\n ? { width: col.width }\r\n : {}\r\n }\r\n >\r\n {col.header}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n <TableRow sx={ROW_STATIC_SX}>\r\n {detailColumns.map((col) => (\r\n <TableCell\r\n key={col.key}\r\n align={alignOf(col)}\r\n sx={numericSx(col)}\r\n >\r\n {resolveCell(col, row)}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </TableBody>\r\n </Table>\r\n </Box>\r\n </Collapse>\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </TableBody>\r\n </Table>\r\n </Box>\r\n <Pagination\r\n page={page}\r\n pageSize={pageSize}\r\n total={total}\r\n onPageChange={setPage}\r\n onPageSizeChange={(s) => {\r\n setPageSize(s);\r\n setPage(1);\r\n }}\r\n pageSizes={pageSizes}\r\n loading={loading}\r\n locale={locale}\r\n labels={L.pagination}\r\n />\r\n </Box>\r\n );\r\n}\r\n\r\nexport default CollapsibleDataGrid;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CollapsibleDataGrid.js","names":["React","Box","Table","TableHead","TableBody","TableRow","TableCell","IconButton","Collapse","KeyboardArrowDownIcon","KeyboardArrowUpIcon","mergeLabels","TABLE_BY_DENSITY","CONTAINER_SX","DEFAULT_MAX_BODY_HEIGHT","ROW_STATIC_SX","Pagination","jsx","_jsx","jsxs","_jsxs","EMPTY","readCellValue","row","key","defaultGetRowId","id","resolveCell","col","render","value","getValue","alignOf","align","numeric","numericSx","mono","fontFamily","fontVariantNumeric","CollapsibleDataGrid","rows","columns","detailColumns","getRowId","hasDetail","density","ariaLabel","locale","labels","loading","pageSize","pageSizeProp","pageSizes","maxBodyHeight","L","useMemo","tableAria","expandLabel","expandRow","collapseLabel","collapseRow","detailAria","rowHasDetail","useCallback","length","first","v","page","setPage","useState","setPageSize","open","setOpen","total","useEffect","tableSx","comfortable","width","detailTableSx","compact","start","paged","slice","masterColCount","toggle","prev","sx","children","overflow","maxHeight","stickyHeader","map","position","top","zIndex","header","expandable","isOpen","Boolean","detailId","Fragment","hover","index","display","alignItems","gap","size","onClick","fontSize","colSpan","paddingTop","paddingBottom","in","timeout","unmountOnExit","onPageChange","onPageSizeChange","s","pagination"],"sources":["../../../../src/lib/v2/patterns/CollapsibleDataGrid.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Table from \"@mui/material/Table\";\r\nimport TableHead from \"@mui/material/TableHead\";\r\nimport TableBody from \"@mui/material/TableBody\";\r\nimport TableRow from \"@mui/material/TableRow\";\r\nimport TableCell from \"@mui/material/TableCell\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport Collapse from \"@mui/material/Collapse\";\r\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\n\r\nimport {\r\n mergeLabels,\r\n TABLE_BY_DENSITY,\r\n CONTAINER_SX,\r\n DEFAULT_MAX_BODY_HEIGHT,\r\n ROW_STATIC_SX,\r\n Pagination,\r\n} from \"./_dataGridShared\";\r\nimport type { DataGridColumn, DataGridLabels } from \"../types/datagrid\";\r\nimport type { Alignment, Density, RowId } from \"../types/common\";\r\n\r\n/**\r\n * CollapsibleDataGrid — Portnet UI v2 (pattern)\r\n *\r\n * Charter §03 · master/detail table with per-row expansion. Companion to\r\n * DataGrid for the case DataGrid intentionally does not cover: a row that\r\n * expands to reveal a secondary record (e.g. a decision and its visa\r\n * detail). Refactor of the legacy host-local CollapsibleTableClientSide\r\n * (ms-dfd-fe), lifted into the lib so modules consume it instead of\r\n * re-implementing an expandable MUI Table.\r\n *\r\n * Columns use the v2-native shape, identical to DataGrid:\r\n * { key, header, render(row), getValue(row), width, align, numeric, mono }\r\n *\r\n * `columns` master row cells (the first cell hosts the expand toggle).\r\n * `detailColumns` the expanded panel; values are read from the SAME row\r\n * object (a row carries both its master and detail fields).\r\n *\r\n * A row is expandable when `hasDetail(row)` is true. Default: the first\r\n * detail column resolves to a non-nullish value. Pass `hasDetail` to override.\r\n *\r\n * Pagination is client-side (the host passes the full row set) and uses the\r\n * shared v2 Pagination — 1-based, tabular range, optional page-size select.\r\n *\r\n * Accessibility (WCAG 2.2 AA · Charter R-DG):\r\n * - the expand control is a real <button> with aria-expanded +\r\n * aria-controls pointing at the detail region id;\r\n * - the detail region is labelled (labels.detailAria);\r\n * - the table carries a contextual name (ariaLabel | labels.tableAria).\r\n */\r\n\r\n/** The read subset of the DataGrid column contract that this pattern honours. */\r\nexport type CollapsibleColumn<T> = Pick<\r\n DataGridColumn<T>,\r\n \"key\" | \"header\" | \"align\" | \"numeric\" | \"mono\" | \"width\" | \"render\" | \"getValue\"\r\n>;\r\n\r\n/** DataGrid labels + the expansion-specific names. */\r\nexport interface CollapsibleDataGridLabels extends DataGridLabels {\r\n expandRow?: string | undefined;\r\n collapseRow?: string | undefined;\r\n detailAria?: string | undefined;\r\n}\r\n\r\nexport interface CollapsibleDataGridProps<T> {\r\n rows?: T[] | undefined;\r\n columns: CollapsibleColumn<T>[];\r\n detailColumns?: CollapsibleColumn<T>[] | undefined;\r\n /** Row identity (default `(row) => row.id`). */\r\n getRowId?: ((row: T) => RowId) | undefined;\r\n /** Override the \"row is expandable\" test (default: first detail value is non-nullish). */\r\n hasDetail?: ((row: T) => boolean) | undefined;\r\n density?: Density | undefined;\r\n /** Contextual accessible table name (WCAG 1.3.1 / Charter R-DG). */\r\n ariaLabel?: string | undefined;\r\n /** BCP-47 locale for pagination number formatting (default \"fr-FR\"). */\r\n locale?: string | undefined;\r\n labels?: CollapsibleDataGridLabels | undefined;\r\n loading?: boolean | undefined;\r\n pageSize?: number | undefined;\r\n pageSizes?: number[] | undefined;\r\n maxBodyHeight?: number | string | undefined;\r\n}\r\n\r\nconst EMPTY = \"—\";\r\n\r\n/* Default value accessor for an unconstrained row type — typed against\r\n * `unknown` so the single assertion is legal (mirrors DataGrid). */\r\nfunction readCellValue(row: unknown, key: string): unknown {\r\n return (row as Record<string, unknown>)[key];\r\n}\r\n\r\n/* Default getRowId (`(r) => r.id`); `(unknown) => RowId` is assignable to\r\n * the declared `(row: T) => RowId` by parameter contravariance. */\r\nconst defaultGetRowId = (row: unknown): RowId => (row as { id: RowId }).id;\r\n\r\nfunction resolveCell<T>(col: CollapsibleColumn<T>, row: T): React.ReactNode {\r\n if (col.render) return col.render(row);\r\n const value = col.getValue ? col.getValue(row) : readCellValue(row, col.key);\r\n return value == null || value === \"\" ? EMPTY : (value as React.ReactNode);\r\n}\r\n\r\nfunction alignOf(col: Pick<DataGridColumn<unknown>, \"align\" | \"numeric\">): Alignment {\r\n return col.align || (col.numeric ? \"right\" : \"left\");\r\n}\r\n\r\nfunction numericSx(\r\n col: Pick<DataGridColumn<unknown>, \"numeric\" | \"mono\">\r\n): SystemStyleObject<Theme> {\r\n return {\r\n ...(col.mono ? { fontFamily: \"var(--font-mono)\" } : {}),\r\n ...(col.numeric || col.mono ? { fontVariantNumeric: \"tabular-nums\" } : {}),\r\n };\r\n}\r\n\r\nfunction CollapsibleDataGrid<T>({\r\n rows = [],\r\n columns = [],\r\n detailColumns = [],\r\n getRowId = defaultGetRowId,\r\n hasDetail,\r\n density = \"comfortable\",\r\n ariaLabel,\r\n locale = \"fr-FR\",\r\n labels,\r\n loading = false,\r\n pageSize: pageSizeProp = 10,\r\n pageSizes = [10, 25, 100],\r\n maxBodyHeight = DEFAULT_MAX_BODY_HEIGHT,\r\n}: CollapsibleDataGridProps<T>) {\r\n const L = React.useMemo(() => mergeLabels(labels), [labels]);\r\n const tableAria = ariaLabel != null ? ariaLabel : L.tableAria;\r\n const expandLabel = labels?.expandRow ?? \"Afficher le détail\";\r\n const collapseLabel = labels?.collapseRow ?? \"Réduire le détail\";\r\n const detailAria = labels?.detailAria ?? \"Détail de la ligne\";\r\n\r\n const rowHasDetail = React.useCallback(\r\n (row: T): boolean => {\r\n if (typeof hasDetail === \"function\") return hasDetail(row);\r\n if (!detailColumns.length) return false;\r\n const first = detailColumns[0];\r\n if (!first) return false;\r\n const v = first.getValue ? first.getValue(row) : readCellValue(row, first.key);\r\n return v != null && v !== \"\";\r\n },\r\n [hasDetail, detailColumns]\r\n );\r\n\r\n const [page, setPage] = React.useState(1);\r\n const [pageSize, setPageSize] = React.useState(pageSizeProp);\r\n const [open, setOpen] = React.useState<Record<RowId, boolean>>({});\r\n\r\n // Reset to the first page when the data set size changes so the slice\r\n // never lands past the end of a shrunken list.\r\n const total = rows.length;\r\n React.useEffect(() => {\r\n setPage(1);\r\n }, [total]);\r\n\r\n const tableSx = React.useMemo<SxProps<Theme>>(\r\n () => ({\r\n ...((TABLE_BY_DENSITY[density] ||\r\n TABLE_BY_DENSITY.comfortable) as SystemStyleObject<Theme>),\r\n width: \"100%\",\r\n }),\r\n [density]\r\n );\r\n const detailTableSx = React.useMemo<SxProps<Theme>>(\r\n () => ({\r\n ...(TABLE_BY_DENSITY.compact as SystemStyleObject<Theme>),\r\n width: \"100%\",\r\n }),\r\n []\r\n );\r\n\r\n const start = (page - 1) * pageSize;\r\n const paged = rows.slice(start, start + pageSize);\r\n const masterColCount = columns.length;\r\n\r\n const toggle = (id: RowId) =>\r\n setOpen((prev) => ({ ...prev, [id]: !prev[id] }));\r\n\r\n return (\r\n <Box sx={CONTAINER_SX}>\r\n <Box sx={{ overflow: \"auto\", maxHeight: maxBodyHeight, width: \"100%\" }}>\r\n <Table aria-label={tableAria} stickyHeader sx={tableSx}>\r\n <TableHead>\r\n <TableRow>\r\n {columns.map((col) => (\r\n <TableCell\r\n key={col.key}\r\n align={alignOf(col)}\r\n sx={{\r\n position: \"sticky\",\r\n top: 0,\r\n zIndex: 1,\r\n ...(col.width != null ? { width: col.width } : {}),\r\n }}\r\n >\r\n {col.header}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {paged.map((row) => {\r\n const id = getRowId(row);\r\n const expandable = rowHasDetail(row);\r\n const isOpen = Boolean(open[id]);\r\n const detailId = `pui-cdg-detail-${id}`;\r\n return (\r\n <React.Fragment key={id}>\r\n <TableRow hover sx={ROW_STATIC_SX}>\r\n {columns.map((col, index) => (\r\n <TableCell\r\n key={col.key}\r\n align={alignOf(col)}\r\n sx={{\r\n ...numericSx(col),\r\n ...(col.width != null ? { width: col.width } : {}),\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n }}\r\n >\r\n {index === 0 && expandable && (\r\n <IconButton\r\n size=\"small\"\r\n aria-label={isOpen ? collapseLabel : expandLabel}\r\n aria-expanded={isOpen}\r\n aria-controls={detailId}\r\n onClick={() => toggle(id)}\r\n >\r\n {isOpen ? (\r\n <KeyboardArrowUpIcon fontSize=\"small\" />\r\n ) : (\r\n <KeyboardArrowDownIcon fontSize=\"small\" />\r\n )}\r\n </IconButton>\r\n )}\r\n {resolveCell(col, row)}\r\n </Box>\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n\r\n {expandable && (\r\n <TableRow>\r\n <TableCell\r\n colSpan={masterColCount}\r\n sx={{ paddingTop: 0, paddingBottom: 0 }}\r\n >\r\n <Collapse\r\n id={detailId}\r\n in={isOpen}\r\n timeout=\"auto\"\r\n unmountOnExit\r\n >\r\n <Box\r\n sx={{\r\n paddingTop: \"var(--s-3)\",\r\n paddingBottom: \"var(--s-3)\",\r\n }}\r\n >\r\n <Table\r\n size=\"small\"\r\n aria-label={detailAria}\r\n sx={detailTableSx}\r\n >\r\n <TableHead>\r\n <TableRow>\r\n {detailColumns.map((col) => (\r\n <TableCell\r\n key={col.key}\r\n align={alignOf(col)}\r\n sx={\r\n col.width != null\r\n ? { width: col.width }\r\n : {}\r\n }\r\n >\r\n {col.header}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n <TableRow sx={ROW_STATIC_SX}>\r\n {detailColumns.map((col) => (\r\n <TableCell\r\n key={col.key}\r\n align={alignOf(col)}\r\n sx={numericSx(col)}\r\n >\r\n {resolveCell(col, row)}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </TableBody>\r\n </Table>\r\n </Box>\r\n </Collapse>\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </TableBody>\r\n </Table>\r\n </Box>\r\n <Pagination\r\n page={page}\r\n pageSize={pageSize}\r\n total={total}\r\n onPageChange={setPage}\r\n onPageSizeChange={(s) => {\r\n setPageSize(s);\r\n setPage(1);\r\n }}\r\n pageSizes={pageSizes}\r\n loading={loading}\r\n locale={locale}\r\n labels={L.pagination}\r\n />\r\n </Box>\r\n );\r\n}\r\n\r\nexport default CollapsibleDataGrid;\r\n"],"mappings":"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","ignoreList":[]}