@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
@@ -1 +1 @@
1
- {"version":3,"file":"DataGrid.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Table","_TableHead","_TableBody","_TableRow","_TableCell","_Checkbox","_DragIndicator","_useMediaQuery","_styles","_Skeleton","_SortableHeader","_useDelayedFlag","_dataGridShared","_useColumnResize","_useColumnReorder","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_createForOfIteratorHelper","o","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","useAriaLabelWarn","ariaLabel","labelsTableAria","useEffect","process","env","hasAriaLabel","trim","hasLabelsAria","console","warn","ROW_ACTIONS_CELL_SX","freeze","position","right","zIndex","width","minWidth","maxWidth","padding","background","borderBottom","overflow","ROW_ACTIONS_HEAD_CELL_SX","top","VISUALLY_HIDDEN_SX","height","margin","clip","whiteSpace","borderWidth","ROW_ACTIONS_OVERLAY_SX","transform","display","alignItems","justifyContent","gap","opacity","pointerEvents","transition","borderRadius","boxShadow","FILLER_CELL_SX","FILLER_HEAD_CELL_SX","REORDER_GRIP_SX","insetInlineStart","border","color","cursor","fontFamily","outline","outlineOffset","CARD_STACK_SX","flexDirection","CARD_BASE_SX","minHeight","CARD_CLICKABLE_SX","borderColor","CARD_SKELETON_SX","animation","CARD_EMPTY_WRAPPER_SX","UNSIZED_COL_MIN_DEFAULT","COL_MINWIDTH_CAP","widthToNumber","w","isFinite","parsed","parseFloat","isNaN","readCellValue","row","defaultGetRowId","id","DataGrid","_ref","_ref$rows","rows","_ref$columns","columns","rawColumns","_ref$loading","loading","_ref$error","error","_ref$sort","sort","onSortChange","selection","onSelectionChange","pagination","emptyState","filteredEmptyState","errorState","_ref$getRowId","getRowId","onRowClick","rowFlashId","activeRowId","rowActions","hiddenColumns","_ref$filtered","filtered","_ref$density","density","_ref$locale","locale","labels","_ref$maxBodyHeight","maxBodyHeight","DEFAULT_MAX_BODY_HEIGHT","_ref$resizable","resizable","columnWidths","onColumnWidthsChange","_ref$reorderable","reorderable","columnOrder","onColumnOrderChange","renderMobileCard","_ref$mobileBreakpoint","mobileBreakpoint","tableAria","L","useMemo","mergeLabels","showSkeleton","useDelayedFlag","useColumnsStabilityWarn","theme","useTheme","isBelowBreakpoint","useMediaQuery","breakpoints","down","useCardView","orderedColumns","applyColumnOrder","hiddenSet","Set","c","resize","useColumnResize","reorder","useColumnReorder","resizeIsActive","isResizing","pendingReorderFocusRef","useRef","current","document","escaped","window","CSS","escape","el","querySelector","concat","HTMLElement","focus","showCheckbox","hasRowActions","colCount","sortable","col","selectedSet","allSelected","every","r","someSelected","some","toggleAll","map","toggleRow","add","handleRowKeyDown","preventDefault","scrollContainerSx","maxHeight","tableMinWidth","sum","_iterator","_step","contribution","Math","min","tableSx","TABLE_BY_DENSITY","comfortable","tableLayout","columnCellSx","byKey","Map","_iterator2","_step2","_ref2","effectiveWidth","liveWidths","fontSize","wrap","textOverflow","mono","numeric","fontVariantNumeric","overflowWrap","wordBreak","hoverOnly","HOVER_ONLY_CELL_SX","renderCardBody","renderCard","jsx","role","sx","children","_","isSelected","isActive","flash","clickable","ctx","tabIndex","className","onClick","onKeyDown","body","SkeletonRow","cols","withCheckbox","withActions","colSpan","ERROR_CELL_SX","ERROR_INNER_SX","jsxs","hover","ROW_CLICKABLE_SX","ROW_STATIC_SX","BODY_CHECKBOX_CELL_SX","size","checked","onChange","stopPropagation","slotProps","selectRow","_ref3","getValue","align","render","CONTAINER_SX","stickyHeader","HEADER_CHECKBOX_CELL_SX","indeterminate","selectAll","_ref4","isSortable","isResizable","isReorderable","ariaSort","getAriaSort","reorderHandlers","cellHandlers","reorderFeedbackSx","cellSx","sortKey","setSort","header","component","type","handleKeyDown","round","draggable","onMouseDown","handleMouseDown","insetInlineEnd","userSelect","touchAction","scope","actionsHeader","Pagination","_default","exports"],"sources":["../../../src/lib/v2/patterns/DataGrid.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 Checkbox from \"@mui/material/Checkbox\";\r\nimport DragIndicatorIcon from \"@mui/icons-material/DragIndicator\";\r\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\nimport { SkeletonRow } from \"../components/Skeleton\";\r\nimport SortableHeader, { applySort, getAriaSort } from \"./SortableHeader\";\r\nimport useDelayedFlag from \"../hooks/useDelayedFlag\";\r\nimport {\r\n DEFAULT_MAX_BODY_HEIGHT,\r\n mergeLabels,\r\n useColumnsStabilityWarn,\r\n applyColumnOrder,\r\n CONTAINER_SX,\r\n TABLE_BY_DENSITY,\r\n ROW_CLICKABLE_SX,\r\n ROW_STATIC_SX,\r\n HEADER_CHECKBOX_CELL_SX,\r\n BODY_CHECKBOX_CELL_SX,\r\n HOVER_ONLY_CELL_SX,\r\n ERROR_CELL_SX,\r\n ERROR_INNER_SX,\r\n Pagination,\r\n} from \"./_dataGridShared\";\r\nimport useColumnResize from \"./_useColumnResize\";\r\nimport useColumnReorder from \"./_useColumnReorder\";\r\nimport type {\r\n DataGridProps,\r\n DataGridColumn,\r\n DataGridMobileCardContext,\r\n} from \"../types/datagrid\";\r\nimport type { RowId } from \"../types/common\";\r\n\r\n/**\r\n * DataGrid - Portnet UI v2 (pattern)\r\n *\r\n * Charter §03 · Component \"DataGrid · Table\". Refactor of legacy PuiTable.\r\n *\r\n * Column sizing (R2, canonical):\r\n * - tableLayout: \"auto\" — columns grow proportionally from preferred widths.\r\n * - Table carries computed `min-width` = Σ (clamped) explicit widths\r\n * + (UNSIZED_COL_MIN_DEFAULT × unsized cols) + checkbox if any.\r\n * Each column's contribution is clamped to COL_MINWIDTH_CAP so a wide\r\n * preferred width can't force the whole table to overflow its container.\r\n * - When container >= min-width → table fills to 100%, columns expand\r\n * proportionally toward their preferred widths, no empty trailing strip.\r\n * - When container < min-width → horizontal scroll on the container.\r\n *\r\n * Row actions (R2 robust):\r\n * - The actions cell is rendered at width:0 — it contributes nothing\r\n * to the column-width distribution. The actions themselves render\r\n * as an ABSOLUTELY positioned overlay anchored to the row's right\r\n * edge, invisible by default and revealed on hover / focus-within /\r\n * coarse pointer. On hover, the overlay carries a background that\r\n * masks the data column(s) it covers.\r\n * - The actions column header carries a visually-hidden accessible\r\n * name from labels.actionsHeader (default \"Actions\").\r\n *\r\n * Mobile card view (R1 mobile, opt-in):\r\n * - When `renderMobileCard` is provided AND viewport is below\r\n * `mobileBreakpoint` (default \"sm\"), DataGrid swaps the <Table> for\r\n * a vertical stack of cards. Host owns the card layout.\r\n *\r\n * Accessible name (WCAG 1.3.1 / 4.1.2):\r\n * - Resolution chain: ariaLabel prop → labels.tableAria → mergeLabels()\r\n * default. When both explicit sources are missing, useAriaLabelWarn\r\n * fires a dev console.warn.\r\n */\r\n\r\n/**\r\n * Dev-only hook — warn once on mount when neither `ariaLabel` nor\r\n * `labels.tableAria` carries a contextual name for the table. Fires only\r\n * in non-production builds; the inline check is dead-code-eliminated by\r\n * minifiers when NODE_ENV is set to production at build time. Empty\r\n * strings are treated as \"not provided\". Charter R-DG + WCAG 2.2 AA.\r\n */\r\nfunction useAriaLabelWarn(\r\n ariaLabel: string | undefined,\r\n labelsTableAria: string | undefined\r\n): void {\r\n React.useEffect(() => {\r\n if (process.env[\"NODE_ENV\"] === \"production\") return;\r\n\r\n const hasAriaLabel =\r\n typeof ariaLabel === \"string\" && ariaLabel.trim().length > 0;\r\n const hasLabelsAria =\r\n typeof labelsTableAria === \"string\" && labelsTableAria.trim().length > 0;\r\n\r\n if (hasAriaLabel || hasLabelsAria) return;\r\n\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[v2.DataGrid] No explicit `ariaLabel` prop or `labels.tableAria` — \" +\r\n \"falling back to the lib default. WCAG 1.3.1 + Charter R-DG require \" +\r\n \"a contextual table name. Pass `ariaLabel` describing the data \" +\r\n \"(e.g. 'Marchandises du titre', 'Liste des titres d\\\\'importation') \" +\r\n \"or set `labels.tableAria` if the same name is reused module-wide.\"\r\n );\r\n // fire once on mount — re-renders shouldn't re-warn even if the caller\r\n // changes ariaLabel/labels.tableAria later; a first-paint miss is the\r\n // signal we care about, not every subsequent render.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n}\r\n\r\n/* R2 — Actions cell is a 0-width anchor for the absolute overlay.\r\n * position:sticky right:0 glues the overlay's positioned ancestor to the\r\n * visible right edge during horizontal scroll and provides a focus\r\n * container. The strict 0 width makes the cell contribute nothing to\r\n * layout; overflow:visible lets the absolute overlay render outside it. */\r\nconst ROW_ACTIONS_CELL_SX = Object.freeze({\r\n position: \"sticky\",\r\n right: 0,\r\n zIndex: 1,\r\n width: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n padding: 0,\r\n background: \"transparent\",\r\n borderBottom: \"1px solid var(--border)\",\r\n overflow: \"visible\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst ROW_ACTIONS_HEAD_CELL_SX = Object.freeze({\r\n position: \"sticky\",\r\n right: 0,\r\n top: 0,\r\n zIndex: 3,\r\n width: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n padding: 0,\r\n background: \"var(--bg-subtle)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* a11y — Standard sr-only / visually-hidden recipe. Gives the\r\n * auto-generated actions column header an accessible name without adding\r\n * visible text. clip-rect keeps it painted into the a11y tree while\r\n * removing it from visual layout. */\r\nconst VISUALLY_HIDDEN_SX = Object.freeze({\r\n position: \"absolute\",\r\n width: \"1px\",\r\n height: \"1px\",\r\n padding: 0,\r\n margin: \"-1px\",\r\n overflow: \"hidden\",\r\n clip: \"rect(0, 0, 0, 0)\",\r\n whiteSpace: \"nowrap\",\r\n borderWidth: 0,\r\n} satisfies SxProps<Theme>);\r\n\r\n/* R2 — Overlay floats over the row's right edge. Invisible by default,\r\n * visible on hover / focus-within / coarse pointer. The parent\r\n * ROW_ACTIONS_CELL_SX (position:sticky) is the containing block. */\r\nconst ROW_ACTIONS_OVERLAY_SX = Object.freeze({\r\n position: \"absolute\",\r\n right: \"var(--s-3)\",\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n gap: \"var(--s-1)\",\r\n whiteSpace: \"nowrap\",\r\n opacity: 0,\r\n pointerEvents: \"none\",\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n // Visible \"pill\" that masks the data column(s) underneath when revealed\r\n background: \"var(--bg-hover)\",\r\n padding: \"var(--s-1) var(--s-2)\",\r\n borderRadius: \"var(--r-md)\",\r\n boxShadow: \"var(--shadow-sm)\",\r\n \"tr:hover &, tr:focus-within &\": {\r\n opacity: 1,\r\n pointerEvents: \"auto\",\r\n },\r\n \"@media (pointer: coarse)\": {\r\n opacity: 1,\r\n pointerEvents: \"auto\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\n/* R2 — Filler cells stay at width:0 so they don't take any proportional\r\n * residual under tableLayout:auto. (Local width:0 variants — distinct\r\n * from _dataGridShared's exports, which are not imported here.) */\r\nconst FILLER_CELL_SX = Object.freeze({\r\n padding: 0,\r\n width: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n borderBottom: \"1px solid var(--border)\",\r\n});\r\n\r\nconst FILLER_HEAD_CELL_SX = Object.freeze({\r\n padding: 0,\r\n width: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n position: \"sticky\",\r\n top: 0,\r\n zIndex: 1,\r\n background: \"var(--bg-subtle)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* DG-R1 — reorder grip button. Hidden (opacity 0) until the header is hovered /\r\n * focus-within, and always revealed while itself focus-visible so it stays\r\n * Tab-reachable. Absolutely positioned in the header cell's inline-start\r\n * padding; background matches the header so it masks the sliver it overlaps. */\r\nconst REORDER_GRIP_SX = Object.freeze({\r\n position: \"absolute\",\r\n insetInlineStart: 2,\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n zIndex: 2,\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: 18,\r\n height: 18,\r\n padding: 0,\r\n border: \"none\",\r\n borderRadius: \"var(--r-sm)\",\r\n background: \"var(--bg-subtle)\",\r\n color: \"var(--fg-subtle)\",\r\n cursor: \"grab\",\r\n opacity: 0,\r\n pointerEvents: \"none\",\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n fontFamily: \"inherit\",\r\n \"th:hover &, th:focus-within &\": { opacity: 1, pointerEvents: \"auto\" },\r\n \"@media (pointer: coarse)\": { opacity: 1, pointerEvents: \"auto\" },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"-1px\",\r\n opacity: 1,\r\n pointerEvents: \"auto\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\n/* ── Mobile card view SX (R1 mobile) ─────────────────────────────── */\r\n\r\nconst CARD_STACK_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-3)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst CARD_BASE_SX = Object.freeze({\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n boxShadow: \"var(--shadow-xs)\",\r\n transition: \"background 60ms ease, border-color 60ms ease\",\r\n minHeight: 44,\r\n});\r\n\r\nconst CARD_CLICKABLE_SX = Object.freeze({\r\n ...CARD_BASE_SX,\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n background: \"var(--bg-hover)\",\r\n },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n // --pui-outline-offset (2px in base.css :root) — aligns this focus\r\n // ring with the rest of the v2 surface.\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n \"&[data-active]\": {\r\n background: \"var(--accent-soft)\",\r\n borderColor: \"var(--accent)\",\r\n },\r\n \"&[data-selected]\": {\r\n background: \"var(--accent-soft)\",\r\n borderColor: \"var(--accent)\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst CARD_SKELETON_SX = Object.freeze({\r\n height: 90,\r\n background: \"var(--bg-subtle)\",\r\n borderRadius: \"var(--r-md)\",\r\n animation: \"pui-skeleton-shimmer 1.4s ease-in-out infinite\",\r\n \"@media (prefers-reduced-motion: reduce)\": {\r\n animation: \"none\",\r\n },\r\n});\r\n\r\nconst CARD_EMPTY_WRAPPER_SX = Object.freeze({\r\n padding: \"var(--s-6) var(--s-4)\",\r\n});\r\n\r\n/* R2 — Default min-width contribution for a column without an explicit\r\n * `width`. 120 px is a sensible floor for a typical data cell. */\r\nconst UNSIZED_COL_MIN_DEFAULT = 120;\r\n\r\n/* R2 — Upper bound on how much ANY single column may contribute to the\r\n * table's hard min-width. A column may DECLARE a large preferred width and\r\n * tableLayout:auto grows it toward that when the container has room, but\r\n * its preferred width must not drag the table's min-width past this cap\r\n * (below which horizontal scroll kicks in). */\r\nconst COL_MINWIDTH_CAP = 220;\r\n\r\nfunction widthToNumber(w: number | string | undefined): number {\r\n if (typeof w === \"number\" && Number.isFinite(w)) return w;\r\n if (typeof w === \"string\") {\r\n const parsed = parseFloat(w);\r\n if (!Number.isNaN(parsed)) return parsed;\r\n }\r\n return 0;\r\n}\r\n\r\n/* Default value accessor (`row[key]`) for an unconstrained row type. Typed\r\n * against `unknown` so the single unknown->record assertion is legal\r\n * without a double cast; noUncheckedIndexedAccess makes the result\r\n * `unknown`, which the caller narrows / asserts at the render site. */\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`). Typed against `unknown` so the single\r\n * assertion is legal; `(unknown) => RowId` is assignable to the declared\r\n * `(row: T) => RowId` by parameter contravariance. */\r\nconst defaultGetRowId = (row: unknown): RowId => (row as { id: RowId }).id;\r\n\r\nfunction DataGrid<T>({\r\n rows = [],\r\n columns: rawColumns = [],\r\n loading = false,\r\n error = null,\r\n sort = [],\r\n onSortChange,\r\n selection,\r\n onSelectionChange,\r\n pagination,\r\n emptyState,\r\n filteredEmptyState,\r\n errorState,\r\n getRowId = defaultGetRowId,\r\n onRowClick,\r\n rowFlashId,\r\n activeRowId,\r\n rowActions,\r\n hiddenColumns,\r\n filtered = false,\r\n density = \"comfortable\",\r\n ariaLabel,\r\n locale = \"fr-FR\",\r\n labels,\r\n maxBodyHeight = DEFAULT_MAX_BODY_HEIGHT,\r\n resizable = false,\r\n columnWidths,\r\n onColumnWidthsChange,\r\n reorderable = false,\r\n columnOrder,\r\n onColumnOrderChange,\r\n renderMobileCard,\r\n mobileBreakpoint = \"sm\",\r\n}: DataGridProps<T>) {\r\n // WCAG 1.3.1 / 4.1.2 — dev guard: warn once on mount when no contextual\r\n // table name has been provided by the caller.\r\n useAriaLabelWarn(ariaLabel, labels?.tableAria);\r\n\r\n const L = React.useMemo(() => mergeLabels(labels), [labels]);\r\n const tableAria = ariaLabel != null ? ariaLabel : L.tableAria;\r\n\r\n const showSkeleton = useDelayedFlag(loading);\r\n\r\n useColumnsStabilityWarn(rawColumns);\r\n\r\n // R1 mobile — detect xs viewport. Switch to card view only when the host\r\n // opted in by passing renderMobileCard.\r\n const theme = useTheme();\r\n const isBelowBreakpoint = useMediaQuery(\r\n theme.breakpoints.down(mobileBreakpoint)\r\n );\r\n const useCardView =\r\n isBelowBreakpoint && typeof renderMobileCard === \"function\";\r\n\r\n const orderedColumns = React.useMemo(\r\n () => applyColumnOrder(rawColumns, columnOrder),\r\n [rawColumns, columnOrder]\r\n );\r\n\r\n const hiddenSet = React.useMemo(\r\n () =>\r\n hiddenColumns instanceof Set\r\n ? hiddenColumns\r\n : new Set(hiddenColumns || []),\r\n [hiddenColumns]\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => orderedColumns.filter((c) => !hiddenSet.has(c.key)),\r\n [orderedColumns, hiddenSet]\r\n );\r\n\r\n const resize = useColumnResize(columnWidths, onColumnWidthsChange);\r\n const reorder = useColumnReorder(columns, columnOrder, onColumnOrderChange, {\r\n resizeIsActive: resize.isResizing,\r\n });\r\n\r\n // DG-R1 — after a keyboard reorder the moved column's grip is re-rendered at\r\n // a new position and the browser drops focus; re-focus it so repeated Arrow\r\n // presses keep moving the same column. Keyed on the host-controlled order.\r\n const pendingReorderFocusRef = React.useRef<string | null>(null);\r\n React.useEffect(() => {\r\n const key = pendingReorderFocusRef.current;\r\n if (!key || typeof document === \"undefined\") return;\r\n pendingReorderFocusRef.current = null;\r\n const escaped =\r\n typeof window !== \"undefined\" &&\r\n window.CSS &&\r\n typeof window.CSS.escape === \"function\"\r\n ? window.CSS.escape(key)\r\n : key;\r\n const el = document.querySelector(`[data-reorder-grip=\"${escaped}\"]`);\r\n if (el instanceof HTMLElement) el.focus();\r\n }, [columnOrder]);\r\n\r\n const showCheckbox = !!onSelectionChange;\r\n const hasRowActions = typeof rowActions === \"function\";\r\n const colCount =\r\n columns.length + (showCheckbox ? 1 : 0) + 1 + (hasRowActions ? 1 : 0);\r\n\r\n const sortable = (col: DataGridColumn<T>): boolean =>\r\n col.sortable !== false && !!col.key && !!onSortChange;\r\n\r\n const selectedSet = React.useMemo(\r\n () => (selection instanceof Set ? selection : new Set(selection || [])),\r\n [selection]\r\n );\r\n const allSelected =\r\n rows.length > 0 && rows.every((r) => selectedSet.has(getRowId(r)));\r\n const someSelected =\r\n !allSelected && rows.some((r) => selectedSet.has(getRowId(r)));\r\n\r\n const toggleAll = () => {\r\n if (!onSelectionChange) return;\r\n if (allSelected) onSelectionChange(new Set<RowId>());\r\n else onSelectionChange(new Set(rows.map(getRowId)));\r\n };\r\n const toggleRow = (id: RowId) => {\r\n if (!onSelectionChange) return;\r\n const next = new Set(selectedSet);\r\n if (next.has(id)) next.delete(id);\r\n else next.add(id);\r\n onSelectionChange(next);\r\n };\r\n\r\n const handleRowKeyDown =\r\n (row: T) => (e: React.KeyboardEvent<HTMLElement>) => {\r\n if (!onRowClick) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n onRowClick(row);\r\n }\r\n };\r\n\r\n const scrollContainerSx = React.useMemo<SxProps<Theme>>(\r\n () => ({\r\n overflow: \"auto\",\r\n maxHeight: maxBodyHeight,\r\n width: \"100%\",\r\n }),\r\n [maxBodyHeight]\r\n );\r\n\r\n /* R2 — Computed table min-width. Each column's contribution is clamped\r\n * to COL_MINWIDTH_CAP; unsized columns contribute UNSIZED_COL_MIN_DEFAULT;\r\n * the checkbox column adds ~48px. The rowActions cell contributes 0. */\r\n const tableMinWidth = React.useMemo(() => {\r\n let sum = 0;\r\n for (const col of columns) {\r\n const w = widthToNumber(col.width);\r\n const contribution =\r\n w > 0 ? Math.min(w, COL_MINWIDTH_CAP) : UNSIZED_COL_MIN_DEFAULT;\r\n sum += contribution;\r\n }\r\n if (showCheckbox) sum += 48;\r\n return sum;\r\n }, [columns, showCheckbox]);\r\n\r\n // R2 — tableLayout:\"auto\" + computed minWidth. (SxProps-typed so the\r\n // tableLayout literal stays typed; the density base is narrowed to a\r\n // SystemStyleObject at the spread to avoid the fn/array arms of SxProps.)\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 minWidth: tableMinWidth,\r\n tableLayout: \"auto\",\r\n }),\r\n [density, tableMinWidth]\r\n );\r\n\r\n /* DG-1 (perf) — the desktop body renders EVERY row (no virtualization), so\r\n * building the cell sx inline per row × per column allocated N×M fresh style\r\n * objects each render and forced Emotion to re-serialise them. The cell sx is\r\n * a pure function of the column (wrap / mono / numeric / maxWidth / hoverOnly)\r\n * and the column's effective width — never of the row — so compute it once per\r\n * column and reuse the reference across all rows. Keyed on columns + live\r\n * widths (the latter only changes during an active resize drag).\r\n * --text-body (14px) is the explicit inheritance that replaced a dangling\r\n * `var(--text-fs)` token typo (no fallback). */\r\n const columnCellSx = React.useMemo(() => {\r\n const byKey = new Map<string, SxProps<Theme>>();\r\n for (const col of columns) {\r\n const effectiveWidth =\r\n (resize.liveWidths && resize.liveWidths[col.key]) ?? col.width;\r\n byKey.set(col.key, {\r\n fontSize: \"var(--text-body)\",\r\n whiteSpace: col.wrap ? \"normal\" : \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n ...(col.mono ? { fontFamily: \"var(--font-mono)\" } : {}),\r\n ...(col.numeric || col.mono\r\n ? { fontVariantNumeric: \"tabular-nums\" }\r\n : {}),\r\n ...(effectiveWidth != null ? { width: effectiveWidth } : {}),\r\n // When a column wraps, allow long unbroken tokens to break.\r\n ...(col.wrap\r\n ? ({\r\n overflowWrap: \"anywhere\",\r\n wordBreak: \"break-word\",\r\n } satisfies SxProps<Theme>)\r\n : {}),\r\n ...(col.maxWidth != null ? { maxWidth: col.maxWidth } : {}),\r\n ...(col.hoverOnly ? HOVER_ONLY_CELL_SX : {}),\r\n });\r\n }\r\n return byKey;\r\n }, [columns, resize.liveWidths]);\r\n\r\n /* ── Mobile card view body (R1 mobile) ─────────────────────────\r\n * Built only when useCardView is true. `renderCard` is the narrowed,\r\n * guaranteed-present renderer passed in from the return site. */\r\n const renderCardBody = (\r\n renderCard: (row: T, ctx: DataGridMobileCardContext) => React.ReactNode\r\n ): React.ReactNode => {\r\n if (showSkeleton) {\r\n return (\r\n <Box role=\"list\" aria-busy=\"true\" aria-label={tableAria} sx={CARD_STACK_SX}>\r\n {Array.from({ length: 6 }, (_, i) => (\r\n <Box key={`sk-${i}`} aria-hidden=\"true\" sx={CARD_SKELETON_SX} />\r\n ))}\r\n </Box>\r\n );\r\n }\r\n\r\n if (error) {\r\n return <Box sx={CARD_EMPTY_WRAPPER_SX}>{errorState}</Box>;\r\n }\r\n\r\n if (rows.length === 0) {\r\n return (\r\n <Box sx={CARD_EMPTY_WRAPPER_SX}>\r\n {filtered ? filteredEmptyState : emptyState}\r\n </Box>\r\n );\r\n }\r\n\r\n return (\r\n <Box\r\n role=\"list\"\r\n aria-label={tableAria}\r\n aria-busy={loading || undefined}\r\n sx={CARD_STACK_SX}\r\n >\r\n {rows.map((row) => {\r\n const id = getRowId(row);\r\n const isSelected = selectedSet.has(id);\r\n const isActive =\r\n activeRowId !== undefined &&\r\n activeRowId !== null &&\r\n id === activeRowId;\r\n const flash = rowFlashId === id;\r\n const clickable = !!onRowClick;\r\n const ctx: DataGridMobileCardContext = { isActive, isSelected };\r\n return (\r\n <Box\r\n key={id}\r\n role={clickable ? \"button\" : \"listitem\"}\r\n tabIndex={clickable ? 0 : undefined}\r\n data-selected={isSelected || undefined}\r\n data-active={isActive || undefined}\r\n className={flash ? \"pui-row-updated\" : undefined}\r\n onClick={clickable ? () => onRowClick?.(row) : undefined}\r\n onKeyDown={clickable ? handleRowKeyDown(row) : undefined}\r\n sx={clickable ? CARD_CLICKABLE_SX : CARD_BASE_SX}\r\n >\r\n {renderCard(row, ctx)}\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n );\r\n };\r\n\r\n /* ── Table body (desktop / no card opt-in) ─────────────────── */\r\n let body: React.ReactNode;\r\n if (showSkeleton) {\r\n body = (\r\n <TableBody aria-busy=\"true\">\r\n {Array.from({ length: 6 }, (_, i) => (\r\n <SkeletonRow\r\n key={`sk-${i}`}\r\n cols={columns.length}\r\n withCheckbox={showCheckbox}\r\n withActions={hasRowActions}\r\n />\r\n ))}\r\n </TableBody>\r\n );\r\n } else if (error) {\r\n body = (\r\n <TableBody>\r\n <TableRow>\r\n <TableCell colSpan={colCount} sx={ERROR_CELL_SX}>\r\n <Box sx={ERROR_INNER_SX}>{errorState}</Box>\r\n </TableCell>\r\n </TableRow>\r\n </TableBody>\r\n );\r\n } else if (rows.length === 0) {\r\n body = (\r\n <TableBody aria-busy={loading || undefined}>\r\n <TableRow>\r\n <TableCell colSpan={colCount} sx={ERROR_CELL_SX}>\r\n <Box sx={ERROR_INNER_SX}>\r\n {filtered ? filteredEmptyState : emptyState}\r\n </Box>\r\n </TableCell>\r\n </TableRow>\r\n </TableBody>\r\n );\r\n } else {\r\n body = (\r\n <TableBody aria-busy={loading || undefined}>\r\n {rows.map((row) => {\r\n const id = getRowId(row);\r\n const isSelected = selectedSet.has(id);\r\n const isActive =\r\n activeRowId !== undefined &&\r\n activeRowId !== null &&\r\n id === activeRowId;\r\n const flash = rowFlashId === id;\r\n const clickable = !!onRowClick;\r\n return (\r\n <TableRow\r\n key={id}\r\n hover\r\n data-selected={isSelected || undefined}\r\n data-active={isActive || undefined}\r\n className={flash ? \"pui-row-updated\" : undefined}\r\n onClick={clickable ? () => onRowClick?.(row) : undefined}\r\n onKeyDown={clickable ? handleRowKeyDown(row) : undefined}\r\n tabIndex={clickable ? 0 : undefined}\r\n sx={clickable ? ROW_CLICKABLE_SX : ROW_STATIC_SX}\r\n >\r\n {showCheckbox && (\r\n <TableCell padding=\"checkbox\" sx={BODY_CHECKBOX_CELL_SX}>\r\n <Checkbox\r\n size=\"small\"\r\n checked={isSelected}\r\n onChange={(e) => {\r\n e.stopPropagation();\r\n toggleRow(id);\r\n }}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={(e) => e.stopPropagation()}\r\n slotProps={{ input: { \"aria-label\": L.selectRow(id) } }}\r\n />\r\n </TableCell>\r\n )}\r\n {columns.map((col) => {\r\n const value = col.getValue\r\n ? col.getValue(row)\r\n : readCellValue(row, col.key);\r\n return (\r\n <TableCell\r\n key={col.key}\r\n align={col.align || (col.numeric ? \"right\" : \"left\")}\r\n sx={columnCellSx.get(col.key)}\r\n >\r\n {col.render\r\n ? col.render(row)\r\n : (value as React.ReactNode) ?? \"—\"}\r\n </TableCell>\r\n );\r\n })}\r\n <TableCell sx={FILLER_CELL_SX} aria-hidden=\"true\" />\r\n {hasRowActions && rowActions && (\r\n <TableCell sx={ROW_ACTIONS_CELL_SX}>\r\n <Box sx={ROW_ACTIONS_OVERLAY_SX}>{rowActions(row)}</Box>\r\n </TableCell>\r\n )}\r\n </TableRow>\r\n );\r\n })}\r\n </TableBody>\r\n );\r\n }\r\n\r\n return (\r\n <Box sx={CONTAINER_SX}>\r\n {useCardView && renderMobileCard ? (\r\n renderCardBody(renderMobileCard)\r\n ) : (\r\n <Box sx={scrollContainerSx}>\r\n <Table\r\n aria-label={tableAria}\r\n size={density === \"compact\" ? \"small\" : \"medium\"}\r\n stickyHeader\r\n sx={tableSx}\r\n >\r\n <TableHead>\r\n <TableRow>\r\n {showCheckbox && (\r\n <TableCell padding=\"checkbox\" sx={HEADER_CHECKBOX_CELL_SX}>\r\n <Checkbox\r\n size=\"small\"\r\n checked={allSelected}\r\n indeterminate={someSelected}\r\n onChange={toggleAll}\r\n slotProps={{ input: { \"aria-label\": L.selectAll } }}\r\n />\r\n </TableCell>\r\n )}\r\n {columns.map((col) => {\r\n const isSortable = sortable(col);\r\n const isResizable = resizable && col.resizable !== false;\r\n const isReorderable =\r\n reorderable && col.reorderable !== false;\r\n const ariaSort = isSortable\r\n ? getAriaSort(sort, col.key)\r\n : undefined;\r\n const effectiveWidth =\r\n (resize.liveWidths && resize.liveWidths[col.key]) ??\r\n col.width;\r\n const reorderHandlers = isReorderable\r\n ? reorder.cellHandlers(col.key)\r\n : null;\r\n const reorderFeedbackSx = isReorderable\r\n ? reorder.cellSx(col.key)\r\n : undefined;\r\n return (\r\n <TableCell\r\n key={col.key}\r\n align={col.align || (col.numeric ? \"right\" : \"left\")}\r\n aria-sort={ariaSort}\r\n {...(reorderHandlers || {})}\r\n sx={{\r\n position: \"sticky\",\r\n top: 0,\r\n zIndex: 1,\r\n ...(effectiveWidth != null\r\n ? { width: effectiveWidth }\r\n : {}),\r\n ...(reorderFeedbackSx\r\n ? (reorderFeedbackSx as SystemStyleObject<Theme>)\r\n : {}),\r\n }}\r\n >\r\n {isSortable && onSortChange ? (\r\n <SortableHeader\r\n sortKey={col.key}\r\n sort={sort}\r\n setSort={onSortChange}\r\n align={col.align || (col.numeric ? \"right\" : \"left\")}\r\n >\r\n {col.header}\r\n </SortableHeader>\r\n ) : (\r\n col.header\r\n )}\r\n\r\n {isReorderable && (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n data-reorder-grip={col.key}\r\n aria-label=\"Réorganiser la colonne\"\r\n aria-keyshortcuts=\"ArrowLeft ArrowRight Home End\"\r\n onKeyDown={(e) => {\r\n if (\r\n e.key === \"ArrowLeft\" ||\r\n e.key === \"ArrowRight\" ||\r\n e.key === \"Home\" ||\r\n e.key === \"End\"\r\n ) {\r\n pendingReorderFocusRef.current = col.key;\r\n }\r\n reorder.handleKeyDown(col.key)(e);\r\n }}\r\n sx={REORDER_GRIP_SX}\r\n >\r\n <DragIndicatorIcon sx={{ fontSize: 14 }} />\r\n </Box>\r\n )}\r\n\r\n {isResizable && (\r\n <Box\r\n role=\"separator\"\r\n aria-orientation=\"vertical\"\r\n aria-label=\"Redimensionner la colonne\"\r\n tabIndex={0}\r\n aria-valuenow={\r\n typeof effectiveWidth === \"number\"\r\n ? Math.round(effectiveWidth)\r\n : undefined\r\n }\r\n aria-valuemin={resize.minWidth}\r\n draggable=\"false\"\r\n onMouseDown={resize.handleMouseDown(col.key)}\r\n onKeyDown={resize.handleKeyDown(col.key)}\r\n sx={{\r\n position: \"absolute\",\r\n top: 0,\r\n insetInlineEnd: 0,\r\n width: 8,\r\n height: \"100%\",\r\n cursor: \"col-resize\",\r\n userSelect: \"none\",\r\n touchAction: \"none\",\r\n zIndex: 2,\r\n \"&:hover\": {\r\n background: \"var(--state-hover-overlay)\",\r\n },\r\n \"&:active\": {\r\n background: \"var(--state-pressed-overlay)\",\r\n },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"-1px\",\r\n background: \"var(--state-hover-overlay)\",\r\n },\r\n }}\r\n />\r\n )}\r\n </TableCell>\r\n );\r\n })}\r\n <TableCell sx={FILLER_HEAD_CELL_SX} aria-hidden=\"true\" />\r\n {hasRowActions && (\r\n /* WCAG 1.3.1 / axe-core `empty-table-header` — the\r\n visually-hidden span names the actions column in the\r\n a11y tree. Label from labels.actionsHeader. */\r\n <TableCell sx={ROW_ACTIONS_HEAD_CELL_SX} scope=\"col\">\r\n <Box component=\"span\" sx={VISUALLY_HIDDEN_SX}>\r\n {L.actionsHeader}\r\n </Box>\r\n </TableCell>\r\n )}\r\n </TableRow>\r\n </TableHead>\r\n {body}\r\n </Table>\r\n </Box>\r\n )}\r\n {pagination && (\r\n <Pagination\r\n {...pagination}\r\n loading={loading}\r\n locale={locale}\r\n labels={L.pagination}\r\n />\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport { applySort };\r\nexport default DataGrid;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DataGrid.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Table","_TableHead","_TableBody","_TableRow","_TableCell","_Checkbox","_DragIndicator","_useMediaQuery","_styles","_Skeleton","_SortableHeader","_useDelayedFlag","_dataGridShared","_useColumnResize","_useColumnReorder","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","useAriaLabelWarn","ariaLabel","labelsTableAria","useEffect","process","env","hasAriaLabel","trim","length","hasLabelsAria","console","warn","ROW_ACTIONS_CELL_SX","freeze","position","right","zIndex","width","minWidth","maxWidth","padding","background","borderBottom","overflow","ROW_ACTIONS_HEAD_CELL_SX","top","VISUALLY_HIDDEN_SX","height","margin","clip","whiteSpace","borderWidth","ROW_ACTIONS_OVERLAY_SX","transform","display","alignItems","justifyContent","gap","opacity","pointerEvents","transition","borderRadius","boxShadow","FILLER_CELL_SX","FILLER_HEAD_CELL_SX","REORDER_GRIP_SX","insetInlineStart","border","color","cursor","fontFamily","outline","outlineOffset","CARD_STACK_SX","flexDirection","CARD_BASE_SX","minHeight","CARD_CLICKABLE_SX","borderColor","CARD_SKELETON_SX","animation","CARD_EMPTY_WRAPPER_SX","UNSIZED_COL_MIN_DEFAULT","COL_MINWIDTH_CAP","widthToNumber","w","Number","isFinite","parsed","parseFloat","isNaN","readCellValue","row","key","defaultGetRowId","id","DataGrid","rows","columns","rawColumns","loading","error","sort","onSortChange","selection","onSelectionChange","pagination","emptyState","filteredEmptyState","errorState","getRowId","onRowClick","rowFlashId","activeRowId","rowActions","hiddenColumns","filtered","density","locale","labels","maxBodyHeight","DEFAULT_MAX_BODY_HEIGHT","resizable","columnWidths","onColumnWidthsChange","reorderable","columnOrder","onColumnOrderChange","renderMobileCard","mobileBreakpoint","tableAria","L","useMemo","mergeLabels","showSkeleton","useDelayedFlag","useColumnsStabilityWarn","theme","useTheme","isBelowBreakpoint","useMediaQuery","breakpoints","down","useCardView","orderedColumns","applyColumnOrder","hiddenSet","Set","filter","c","resize","useColumnResize","reorder","useColumnReorder","resizeIsActive","isResizing","pendingReorderFocusRef","useRef","current","document","escaped","window","CSS","escape","el","querySelector","HTMLElement","focus","showCheckbox","hasRowActions","colCount","sortable","col","selectedSet","allSelected","every","someSelected","some","toggleAll","map","toggleRow","next","delete","add","handleRowKeyDown","preventDefault","scrollContainerSx","maxHeight","tableMinWidth","sum","contribution","Math","min","tableSx","TABLE_BY_DENSITY","comfortable","tableLayout","columnCellSx","byKey","Map","effectiveWidth","liveWidths","fontSize","wrap","textOverflow","mono","numeric","fontVariantNumeric","overflowWrap","wordBreak","hoverOnly","HOVER_ONLY_CELL_SX","renderCardBody","renderCard","jsx","role","sx","children","Array","from","_","undefined","isSelected","isActive","flash","clickable","ctx","tabIndex","className","onClick","onKeyDown","body","SkeletonRow","cols","withCheckbox","withActions","colSpan","ERROR_CELL_SX","ERROR_INNER_SX","jsxs","hover","ROW_CLICKABLE_SX","ROW_STATIC_SX","BODY_CHECKBOX_CELL_SX","size","checked","onChange","stopPropagation","slotProps","input","selectRow","value","getValue","align","render","CONTAINER_SX","stickyHeader","HEADER_CHECKBOX_CELL_SX","indeterminate","selectAll","isSortable","isResizable","isReorderable","ariaSort","getAriaSort","reorderHandlers","cellHandlers","reorderFeedbackSx","cellSx","sortKey","setSort","header","component","type","handleKeyDown","round","draggable","onMouseDown","handleMouseDown","insetInlineEnd","userSelect","touchAction","scope","actionsHeader","Pagination","_default","exports"],"sources":["../../../src/lib/v2/patterns/DataGrid.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 Checkbox from \"@mui/material/Checkbox\";\r\nimport DragIndicatorIcon from \"@mui/icons-material/DragIndicator\";\r\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\nimport { SkeletonRow } from \"../components/Skeleton\";\r\nimport SortableHeader, { applySort, getAriaSort } from \"./SortableHeader\";\r\nimport useDelayedFlag from \"../hooks/useDelayedFlag\";\r\nimport {\r\n DEFAULT_MAX_BODY_HEIGHT,\r\n mergeLabels,\r\n useColumnsStabilityWarn,\r\n applyColumnOrder,\r\n CONTAINER_SX,\r\n TABLE_BY_DENSITY,\r\n ROW_CLICKABLE_SX,\r\n ROW_STATIC_SX,\r\n HEADER_CHECKBOX_CELL_SX,\r\n BODY_CHECKBOX_CELL_SX,\r\n HOVER_ONLY_CELL_SX,\r\n ERROR_CELL_SX,\r\n ERROR_INNER_SX,\r\n Pagination,\r\n} from \"./_dataGridShared\";\r\nimport useColumnResize from \"./_useColumnResize\";\r\nimport useColumnReorder from \"./_useColumnReorder\";\r\nimport type {\r\n DataGridProps,\r\n DataGridColumn,\r\n DataGridMobileCardContext,\r\n} from \"../types/datagrid\";\r\nimport type { RowId } from \"../types/common\";\r\n\r\n/**\r\n * DataGrid - Portnet UI v2 (pattern)\r\n *\r\n * Charter §03 · Component \"DataGrid · Table\". Refactor of legacy PuiTable.\r\n *\r\n * Column sizing (R2, canonical):\r\n * - tableLayout: \"auto\" — columns grow proportionally from preferred widths.\r\n * - Table carries computed `min-width` = Σ (clamped) explicit widths\r\n * + (UNSIZED_COL_MIN_DEFAULT × unsized cols) + checkbox if any.\r\n * Each column's contribution is clamped to COL_MINWIDTH_CAP so a wide\r\n * preferred width can't force the whole table to overflow its container.\r\n * - When container >= min-width → table fills to 100%, columns expand\r\n * proportionally toward their preferred widths, no empty trailing strip.\r\n * - When container < min-width → horizontal scroll on the container.\r\n *\r\n * Row actions (R2 robust):\r\n * - The actions cell is rendered at width:0 — it contributes nothing\r\n * to the column-width distribution. The actions themselves render\r\n * as an ABSOLUTELY positioned overlay anchored to the row's right\r\n * edge, invisible by default and revealed on hover / focus-within /\r\n * coarse pointer. On hover, the overlay carries a background that\r\n * masks the data column(s) it covers.\r\n * - The actions column header carries a visually-hidden accessible\r\n * name from labels.actionsHeader (default \"Actions\").\r\n * - The cell CONTAINS its own click and keydown: an action must not also\r\n * fire `onRowClick`. See the note at ROW_ACTIONS_CELL_SX.\r\n *\r\n * Mobile card view (R1 mobile, opt-in):\r\n * - When `renderMobileCard` is provided AND viewport is below\r\n * `mobileBreakpoint` (default \"sm\"), DataGrid swaps the <Table> for\r\n * a vertical stack of cards. Host owns the card layout.\r\n *\r\n * Accessible name (WCAG 1.3.1 / 4.1.2):\r\n * - Resolution chain: ariaLabel prop → labels.tableAria → mergeLabels()\r\n * default. When both explicit sources are missing, useAriaLabelWarn\r\n * fires a dev console.warn.\r\n */\r\n\r\n/**\r\n * Dev-only hook — warn once on mount when neither `ariaLabel` nor\r\n * `labels.tableAria` carries a contextual name for the table. Fires only\r\n * in non-production builds; the inline check is dead-code-eliminated by\r\n * minifiers when NODE_ENV is set to production at build time. Empty\r\n * strings are treated as \"not provided\". Charter R-DG + WCAG 2.2 AA.\r\n */\r\nfunction useAriaLabelWarn(\r\n ariaLabel: string | undefined,\r\n labelsTableAria: string | undefined\r\n): void {\r\n React.useEffect(() => {\r\n if (process.env[\"NODE_ENV\"] === \"production\") return;\r\n\r\n const hasAriaLabel =\r\n typeof ariaLabel === \"string\" && ariaLabel.trim().length > 0;\r\n const hasLabelsAria =\r\n typeof labelsTableAria === \"string\" && labelsTableAria.trim().length > 0;\r\n\r\n if (hasAriaLabel || hasLabelsAria) return;\r\n\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[v2.DataGrid] No explicit `ariaLabel` prop or `labels.tableAria` — \" +\r\n \"falling back to the lib default. WCAG 1.3.1 + Charter R-DG require \" +\r\n \"a contextual table name. Pass `ariaLabel` describing the data \" +\r\n \"(e.g. 'Marchandises du titre', 'Liste des titres d\\\\'importation') \" +\r\n \"or set `labels.tableAria` if the same name is reused module-wide.\"\r\n );\r\n // fire once on mount — re-renders shouldn't re-warn even if the caller\r\n // changes ariaLabel/labels.tableAria later; a first-paint miss is the\r\n // signal we care about, not every subsequent render.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n}\r\n\r\n/* R2 — Actions cell is a 0-width anchor for the absolute overlay.\r\n * position:sticky right:0 glues the overlay's positioned ancestor to the\r\n * visible right edge during horizontal scroll and provides a focus\r\n * container. The strict 0 width makes the cell contribute nothing to\r\n * layout; overflow:visible lets the absolute overlay render outside it.\r\n *\r\n * ─── THE CELL CONTAINS ITS OWN EVENTS, AND IT MUST ───────────────────\r\n *\r\n * The row carries `onClick={() => onRowClick(row)}` and a keydown handler,\r\n * and this cell is INSIDE it. Without containment, activating a row action\r\n * also triggers the row click — on a listing that is §Row Interaction's\r\n * preview drawer, so the user gets the action AND a drawer opening over it.\r\n *\r\n * It cannot be fixed at the action level. `buildRowActions` /\r\n * `buildRowActionMenu` (./rowActions) describe an action as\r\n * `onClick: (row: T) => void` — the DOM event is deliberately not exposed,\r\n * because a business descriptor has no business knowing about propagation.\r\n * `OverflowMenu`'s trigger is in the same position. So the only place that\r\n * can hold this invariant for EVERY shape — the kebab, the icon row, and any\r\n * host-written `rowActions` renderer — is the cell.\r\n *\r\n * Same treatment as the selection checkbox cell in the body below, which has\r\n * always stopped both events for exactly this reason. Containing them here\r\n * makes the two consistent instead of leaving one of the two interactive\r\n * cells of a row unguarded.\r\n *\r\n * `stopPropagation` and NOT `preventDefault`: the buttons' own activation,\r\n * including Enter/Space on a focused action, is untouched — only the bubble\r\n * to the row is cut.\r\n *\r\n * Surfaced by addm-fe's Area 3 audit: both of its listings had hand-written\r\n * their icon row specifically to call `e.stopPropagation()` per button, which\r\n * is what made adopting `buildRowActions` look like a regression. */\r\nconst ROW_ACTIONS_CELL_SX = Object.freeze({\r\n position: \"sticky\",\r\n right: 0,\r\n zIndex: 1,\r\n width: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n padding: 0,\r\n background: \"transparent\",\r\n borderBottom: \"1px solid var(--border)\",\r\n overflow: \"visible\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst ROW_ACTIONS_HEAD_CELL_SX = Object.freeze({\r\n position: \"sticky\",\r\n right: 0,\r\n top: 0,\r\n zIndex: 3,\r\n width: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n padding: 0,\r\n background: \"var(--bg-subtle)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* a11y — Standard sr-only / visually-hidden recipe. Gives the\r\n * auto-generated actions column header an accessible name without adding\r\n * visible text. clip-rect keeps it painted into the a11y tree while\r\n * removing it from visual layout. */\r\nconst VISUALLY_HIDDEN_SX = Object.freeze({\r\n position: \"absolute\",\r\n width: \"1px\",\r\n height: \"1px\",\r\n padding: 0,\r\n margin: \"-1px\",\r\n overflow: \"hidden\",\r\n clip: \"rect(0, 0, 0, 0)\",\r\n whiteSpace: \"nowrap\",\r\n borderWidth: 0,\r\n} satisfies SxProps<Theme>);\r\n\r\n/* R2 — Overlay floats over the row's right edge. Invisible by default,\r\n * visible on hover / focus-within / coarse pointer. The parent\r\n * ROW_ACTIONS_CELL_SX (position:sticky) is the containing block. */\r\nconst ROW_ACTIONS_OVERLAY_SX = Object.freeze({\r\n position: \"absolute\",\r\n right: \"var(--s-3)\",\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n gap: \"var(--s-1)\",\r\n whiteSpace: \"nowrap\",\r\n opacity: 0,\r\n pointerEvents: \"none\",\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n // Visible \"pill\" that masks the data column(s) underneath when revealed\r\n background: \"var(--bg-hover)\",\r\n padding: \"var(--s-1) var(--s-2)\",\r\n borderRadius: \"var(--r-md)\",\r\n boxShadow: \"var(--shadow-sm)\",\r\n \"tr:hover &, tr:focus-within &\": {\r\n opacity: 1,\r\n pointerEvents: \"auto\",\r\n },\r\n \"@media (pointer: coarse)\": {\r\n opacity: 1,\r\n pointerEvents: \"auto\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\n/* R2 — Filler cells stay at width:0 so they don't take any proportional\r\n * residual under tableLayout:auto. (Local width:0 variants — distinct\r\n * from _dataGridShared's exports, which are not imported here.) */\r\nconst FILLER_CELL_SX = Object.freeze({\r\n padding: 0,\r\n width: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n borderBottom: \"1px solid var(--border)\",\r\n});\r\n\r\nconst FILLER_HEAD_CELL_SX = Object.freeze({\r\n padding: 0,\r\n width: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n position: \"sticky\",\r\n top: 0,\r\n zIndex: 1,\r\n background: \"var(--bg-subtle)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* DG-R1 — reorder grip button. Hidden (opacity 0) until the header is hovered /\r\n * focus-within, and always revealed while itself focus-visible so it stays\r\n * Tab-reachable. Absolutely positioned in the header cell's inline-start\r\n * padding; background matches the header so it masks the sliver it overlaps. */\r\nconst REORDER_GRIP_SX = Object.freeze({\r\n position: \"absolute\",\r\n insetInlineStart: 2,\r\n top: \"50%\",\r\n transform: \"translateY(-50%)\",\r\n zIndex: 2,\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: 18,\r\n height: 18,\r\n padding: 0,\r\n border: \"none\",\r\n borderRadius: \"var(--r-sm)\",\r\n background: \"var(--bg-subtle)\",\r\n color: \"var(--fg-subtle)\",\r\n cursor: \"grab\",\r\n opacity: 0,\r\n pointerEvents: \"none\",\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n fontFamily: \"inherit\",\r\n \"th:hover &, th:focus-within &\": { opacity: 1, pointerEvents: \"auto\" },\r\n \"@media (pointer: coarse)\": { opacity: 1, pointerEvents: \"auto\" },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"-1px\",\r\n opacity: 1,\r\n pointerEvents: \"auto\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\n/* ── Mobile card view SX (R1 mobile) ─────────────────────────────── */\r\n\r\nconst CARD_STACK_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-3)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst CARD_BASE_SX = Object.freeze({\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n boxShadow: \"var(--shadow-xs)\",\r\n transition: \"background 60ms ease, border-color 60ms ease\",\r\n minHeight: 44,\r\n});\r\n\r\nconst CARD_CLICKABLE_SX = Object.freeze({\r\n ...CARD_BASE_SX,\r\n cursor: \"pointer\",\r\n \"&:hover\": {\r\n background: \"var(--bg-hover)\",\r\n },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n // --pui-outline-offset (2px in base.css :root) — aligns this focus\r\n // ring with the rest of the v2 surface.\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n \"&[data-active]\": {\r\n background: \"var(--accent-soft)\",\r\n borderColor: \"var(--accent)\",\r\n },\r\n \"&[data-selected]\": {\r\n background: \"var(--accent-soft)\",\r\n borderColor: \"var(--accent)\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst CARD_SKELETON_SX = Object.freeze({\r\n height: 90,\r\n background: \"var(--bg-subtle)\",\r\n borderRadius: \"var(--r-md)\",\r\n animation: \"pui-skeleton-shimmer 1.4s ease-in-out infinite\",\r\n \"@media (prefers-reduced-motion: reduce)\": {\r\n animation: \"none\",\r\n },\r\n});\r\n\r\nconst CARD_EMPTY_WRAPPER_SX = Object.freeze({\r\n padding: \"var(--s-6) var(--s-4)\",\r\n});\r\n\r\n/* R2 — Default min-width contribution for a column without an explicit\r\n * `width`. 120 px is a sensible floor for a typical data cell. */\r\nconst UNSIZED_COL_MIN_DEFAULT = 120;\r\n\r\n/* R2 — Upper bound on how much ANY single column may contribute to the\r\n * table's hard min-width. A column may DECLARE a large preferred width and\r\n * tableLayout:auto grows it toward that when the container has room, but\r\n * its preferred width must not drag the table's min-width past this cap\r\n * (below which horizontal scroll kicks in). */\r\nconst COL_MINWIDTH_CAP = 220;\r\n\r\nfunction widthToNumber(w: number | string | undefined): number {\r\n if (typeof w === \"number\" && Number.isFinite(w)) return w;\r\n if (typeof w === \"string\") {\r\n const parsed = parseFloat(w);\r\n if (!Number.isNaN(parsed)) return parsed;\r\n }\r\n return 0;\r\n}\r\n\r\n/* Default value accessor (`row[key]`) for an unconstrained row type. Typed\r\n * against `unknown` so the single unknown->record assertion is legal\r\n * without a double cast; noUncheckedIndexedAccess makes the result\r\n * `unknown`, which the caller narrows / asserts at the render site. */\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`). Typed against `unknown` so the single\r\n * assertion is legal; `(unknown) => RowId` is assignable to the declared\r\n * `(row: T) => RowId` by parameter contravariance. */\r\nconst defaultGetRowId = (row: unknown): RowId => (row as { id: RowId }).id;\r\n\r\nfunction DataGrid<T>({\r\n rows = [],\r\n columns: rawColumns = [],\r\n loading = false,\r\n error = null,\r\n sort = [],\r\n onSortChange,\r\n selection,\r\n onSelectionChange,\r\n pagination,\r\n emptyState,\r\n filteredEmptyState,\r\n errorState,\r\n getRowId = defaultGetRowId,\r\n onRowClick,\r\n rowFlashId,\r\n activeRowId,\r\n rowActions,\r\n hiddenColumns,\r\n filtered = false,\r\n density = \"comfortable\",\r\n ariaLabel,\r\n locale = \"fr-FR\",\r\n labels,\r\n maxBodyHeight = DEFAULT_MAX_BODY_HEIGHT,\r\n resizable = false,\r\n columnWidths,\r\n onColumnWidthsChange,\r\n reorderable = false,\r\n columnOrder,\r\n onColumnOrderChange,\r\n renderMobileCard,\r\n mobileBreakpoint = \"sm\",\r\n}: DataGridProps<T>) {\r\n // WCAG 1.3.1 / 4.1.2 — dev guard: warn once on mount when no contextual\r\n // table name has been provided by the caller.\r\n useAriaLabelWarn(ariaLabel, labels?.tableAria);\r\n\r\n const L = React.useMemo(() => mergeLabels(labels), [labels]);\r\n const tableAria = ariaLabel != null ? ariaLabel : L.tableAria;\r\n\r\n const showSkeleton = useDelayedFlag(loading);\r\n\r\n useColumnsStabilityWarn(rawColumns);\r\n\r\n // R1 mobile — detect xs viewport. Switch to card view only when the host\r\n // opted in by passing renderMobileCard.\r\n const theme = useTheme();\r\n const isBelowBreakpoint = useMediaQuery(\r\n theme.breakpoints.down(mobileBreakpoint)\r\n );\r\n const useCardView =\r\n isBelowBreakpoint && typeof renderMobileCard === \"function\";\r\n\r\n const orderedColumns = React.useMemo(\r\n () => applyColumnOrder(rawColumns, columnOrder),\r\n [rawColumns, columnOrder]\r\n );\r\n\r\n const hiddenSet = React.useMemo(\r\n () =>\r\n hiddenColumns instanceof Set\r\n ? hiddenColumns\r\n : new Set(hiddenColumns || []),\r\n [hiddenColumns]\r\n );\r\n\r\n const columns = React.useMemo(\r\n () => orderedColumns.filter((c) => !hiddenSet.has(c.key)),\r\n [orderedColumns, hiddenSet]\r\n );\r\n\r\n const resize = useColumnResize(columnWidths, onColumnWidthsChange);\r\n const reorder = useColumnReorder(columns, columnOrder, onColumnOrderChange, {\r\n resizeIsActive: resize.isResizing,\r\n });\r\n\r\n // DG-R1 — after a keyboard reorder the moved column's grip is re-rendered at\r\n // a new position and the browser drops focus; re-focus it so repeated Arrow\r\n // presses keep moving the same column. Keyed on the host-controlled order.\r\n const pendingReorderFocusRef = React.useRef<string | null>(null);\r\n React.useEffect(() => {\r\n const key = pendingReorderFocusRef.current;\r\n if (!key || typeof document === \"undefined\") return;\r\n pendingReorderFocusRef.current = null;\r\n const escaped =\r\n typeof window !== \"undefined\" &&\r\n window.CSS &&\r\n typeof window.CSS.escape === \"function\"\r\n ? window.CSS.escape(key)\r\n : key;\r\n const el = document.querySelector(`[data-reorder-grip=\"${escaped}\"]`);\r\n if (el instanceof HTMLElement) el.focus();\r\n }, [columnOrder]);\r\n\r\n const showCheckbox = !!onSelectionChange;\r\n const hasRowActions = typeof rowActions === \"function\";\r\n const colCount =\r\n columns.length + (showCheckbox ? 1 : 0) + 1 + (hasRowActions ? 1 : 0);\r\n\r\n const sortable = (col: DataGridColumn<T>): boolean =>\r\n col.sortable !== false && !!col.key && !!onSortChange;\r\n\r\n const selectedSet = React.useMemo(\r\n () => (selection instanceof Set ? selection : new Set(selection || [])),\r\n [selection]\r\n );\r\n const allSelected =\r\n rows.length > 0 && rows.every((r) => selectedSet.has(getRowId(r)));\r\n const someSelected =\r\n !allSelected && rows.some((r) => selectedSet.has(getRowId(r)));\r\n\r\n const toggleAll = () => {\r\n if (!onSelectionChange) return;\r\n if (allSelected) onSelectionChange(new Set<RowId>());\r\n else onSelectionChange(new Set(rows.map(getRowId)));\r\n };\r\n const toggleRow = (id: RowId) => {\r\n if (!onSelectionChange) return;\r\n const next = new Set(selectedSet);\r\n if (next.has(id)) next.delete(id);\r\n else next.add(id);\r\n onSelectionChange(next);\r\n };\r\n\r\n const handleRowKeyDown =\r\n (row: T) => (e: React.KeyboardEvent<HTMLElement>) => {\r\n if (!onRowClick) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n onRowClick(row);\r\n }\r\n };\r\n\r\n const scrollContainerSx = React.useMemo<SxProps<Theme>>(\r\n () => ({\r\n overflow: \"auto\",\r\n maxHeight: maxBodyHeight,\r\n width: \"100%\",\r\n }),\r\n [maxBodyHeight]\r\n );\r\n\r\n /* R2 — Computed table min-width. Each column's contribution is clamped\r\n * to COL_MINWIDTH_CAP; unsized columns contribute UNSIZED_COL_MIN_DEFAULT;\r\n * the checkbox column adds ~48px. The rowActions cell contributes 0. */\r\n const tableMinWidth = React.useMemo(() => {\r\n let sum = 0;\r\n for (const col of columns) {\r\n const w = widthToNumber(col.width);\r\n const contribution =\r\n w > 0 ? Math.min(w, COL_MINWIDTH_CAP) : UNSIZED_COL_MIN_DEFAULT;\r\n sum += contribution;\r\n }\r\n if (showCheckbox) sum += 48;\r\n return sum;\r\n }, [columns, showCheckbox]);\r\n\r\n // R2 — tableLayout:\"auto\" + computed minWidth. (SxProps-typed so the\r\n // tableLayout literal stays typed; the density base is narrowed to a\r\n // SystemStyleObject at the spread to avoid the fn/array arms of SxProps.)\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 minWidth: tableMinWidth,\r\n tableLayout: \"auto\",\r\n }),\r\n [density, tableMinWidth]\r\n );\r\n\r\n /* DG-1 (perf) — the desktop body renders EVERY row (no virtualization), so\r\n * building the cell sx inline per row × per column allocated N×M fresh style\r\n * objects each render and forced Emotion to re-serialise them. The cell sx is\r\n * a pure function of the column (wrap / mono / numeric / maxWidth / hoverOnly)\r\n * and the column's effective width — never of the row — so compute it once per\r\n * column and reuse the reference across all rows. Keyed on columns + live\r\n * widths (the latter only changes during an active resize drag).\r\n * --text-body (14px) is the explicit inheritance that replaced a dangling\r\n * `var(--text-fs)` token typo (no fallback). */\r\n const columnCellSx = React.useMemo(() => {\r\n const byKey = new Map<string, SxProps<Theme>>();\r\n for (const col of columns) {\r\n const effectiveWidth =\r\n (resize.liveWidths && resize.liveWidths[col.key]) ?? col.width;\r\n byKey.set(col.key, {\r\n fontSize: \"var(--text-body)\",\r\n whiteSpace: col.wrap ? \"normal\" : \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n ...(col.mono ? { fontFamily: \"var(--font-mono)\" } : {}),\r\n ...(col.numeric || col.mono\r\n ? { fontVariantNumeric: \"tabular-nums\" }\r\n : {}),\r\n ...(effectiveWidth != null ? { width: effectiveWidth } : {}),\r\n // When a column wraps, allow long unbroken tokens to break.\r\n ...(col.wrap\r\n ? ({\r\n overflowWrap: \"anywhere\",\r\n wordBreak: \"break-word\",\r\n } satisfies SxProps<Theme>)\r\n : {}),\r\n ...(col.maxWidth != null ? { maxWidth: col.maxWidth } : {}),\r\n ...(col.hoverOnly ? HOVER_ONLY_CELL_SX : {}),\r\n });\r\n }\r\n return byKey;\r\n }, [columns, resize.liveWidths]);\r\n\r\n /* ── Mobile card view body (R1 mobile) ─────────────────────────\r\n * Built only when useCardView is true. `renderCard` is the narrowed,\r\n * guaranteed-present renderer passed in from the return site. */\r\n const renderCardBody = (\r\n renderCard: (row: T, ctx: DataGridMobileCardContext) => React.ReactNode\r\n ): React.ReactNode => {\r\n if (showSkeleton) {\r\n return (\r\n <Box role=\"list\" aria-busy=\"true\" aria-label={tableAria} sx={CARD_STACK_SX}>\r\n {Array.from({ length: 6 }, (_, i) => (\r\n <Box key={`sk-${i}`} aria-hidden=\"true\" sx={CARD_SKELETON_SX} />\r\n ))}\r\n </Box>\r\n );\r\n }\r\n\r\n if (error) {\r\n return <Box sx={CARD_EMPTY_WRAPPER_SX}>{errorState}</Box>;\r\n }\r\n\r\n if (rows.length === 0) {\r\n return (\r\n <Box sx={CARD_EMPTY_WRAPPER_SX}>\r\n {filtered ? filteredEmptyState : emptyState}\r\n </Box>\r\n );\r\n }\r\n\r\n return (\r\n <Box\r\n role=\"list\"\r\n aria-label={tableAria}\r\n aria-busy={loading || undefined}\r\n sx={CARD_STACK_SX}\r\n >\r\n {rows.map((row) => {\r\n const id = getRowId(row);\r\n const isSelected = selectedSet.has(id);\r\n const isActive =\r\n activeRowId !== undefined &&\r\n activeRowId !== null &&\r\n id === activeRowId;\r\n const flash = rowFlashId === id;\r\n const clickable = !!onRowClick;\r\n const ctx: DataGridMobileCardContext = { isActive, isSelected };\r\n return (\r\n <Box\r\n key={id}\r\n role={clickable ? \"button\" : \"listitem\"}\r\n tabIndex={clickable ? 0 : undefined}\r\n data-selected={isSelected || undefined}\r\n data-active={isActive || undefined}\r\n className={flash ? \"pui-row-updated\" : undefined}\r\n onClick={clickable ? () => onRowClick?.(row) : undefined}\r\n onKeyDown={clickable ? handleRowKeyDown(row) : undefined}\r\n sx={clickable ? CARD_CLICKABLE_SX : CARD_BASE_SX}\r\n >\r\n {renderCard(row, ctx)}\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n );\r\n };\r\n\r\n /* ── Table body (desktop / no card opt-in) ─────────────────── */\r\n let body: React.ReactNode;\r\n if (showSkeleton) {\r\n body = (\r\n <TableBody aria-busy=\"true\">\r\n {Array.from({ length: 6 }, (_, i) => (\r\n <SkeletonRow\r\n key={`sk-${i}`}\r\n cols={columns.length}\r\n withCheckbox={showCheckbox}\r\n withActions={hasRowActions}\r\n />\r\n ))}\r\n </TableBody>\r\n );\r\n } else if (error) {\r\n body = (\r\n <TableBody>\r\n <TableRow>\r\n <TableCell colSpan={colCount} sx={ERROR_CELL_SX}>\r\n <Box sx={ERROR_INNER_SX}>{errorState}</Box>\r\n </TableCell>\r\n </TableRow>\r\n </TableBody>\r\n );\r\n } else if (rows.length === 0) {\r\n body = (\r\n <TableBody aria-busy={loading || undefined}>\r\n <TableRow>\r\n <TableCell colSpan={colCount} sx={ERROR_CELL_SX}>\r\n <Box sx={ERROR_INNER_SX}>\r\n {filtered ? filteredEmptyState : emptyState}\r\n </Box>\r\n </TableCell>\r\n </TableRow>\r\n </TableBody>\r\n );\r\n } else {\r\n body = (\r\n <TableBody aria-busy={loading || undefined}>\r\n {rows.map((row) => {\r\n const id = getRowId(row);\r\n const isSelected = selectedSet.has(id);\r\n const isActive =\r\n activeRowId !== undefined &&\r\n activeRowId !== null &&\r\n id === activeRowId;\r\n const flash = rowFlashId === id;\r\n const clickable = !!onRowClick;\r\n return (\r\n <TableRow\r\n key={id}\r\n hover\r\n data-selected={isSelected || undefined}\r\n data-active={isActive || undefined}\r\n className={flash ? \"pui-row-updated\" : undefined}\r\n onClick={clickable ? () => onRowClick?.(row) : undefined}\r\n onKeyDown={clickable ? handleRowKeyDown(row) : undefined}\r\n tabIndex={clickable ? 0 : undefined}\r\n sx={clickable ? ROW_CLICKABLE_SX : ROW_STATIC_SX}\r\n >\r\n {showCheckbox && (\r\n <TableCell padding=\"checkbox\" sx={BODY_CHECKBOX_CELL_SX}>\r\n <Checkbox\r\n size=\"small\"\r\n checked={isSelected}\r\n onChange={(e) => {\r\n e.stopPropagation();\r\n toggleRow(id);\r\n }}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={(e) => e.stopPropagation()}\r\n slotProps={{ input: { \"aria-label\": L.selectRow(id) } }}\r\n />\r\n </TableCell>\r\n )}\r\n {columns.map((col) => {\r\n const value = col.getValue\r\n ? col.getValue(row)\r\n : readCellValue(row, col.key);\r\n return (\r\n <TableCell\r\n key={col.key}\r\n align={col.align || (col.numeric ? \"right\" : \"left\")}\r\n sx={columnCellSx.get(col.key)}\r\n >\r\n {col.render\r\n ? col.render(row)\r\n : (value as React.ReactNode) ?? \"—\"}\r\n </TableCell>\r\n );\r\n })}\r\n <TableCell sx={FILLER_CELL_SX} aria-hidden=\"true\" />\r\n {hasRowActions && rowActions && (\r\n <TableCell\r\n sx={ROW_ACTIONS_CELL_SX}\r\n /* See the note at ROW_ACTIONS_CELL_SX: an action must not\r\n * also fire the row click. Mirrors the checkbox cell. */\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={(e) => e.stopPropagation()}\r\n >\r\n <Box sx={ROW_ACTIONS_OVERLAY_SX}>{rowActions(row)}</Box>\r\n </TableCell>\r\n )}\r\n </TableRow>\r\n );\r\n })}\r\n </TableBody>\r\n );\r\n }\r\n\r\n return (\r\n <Box sx={CONTAINER_SX}>\r\n {useCardView && renderMobileCard ? (\r\n renderCardBody(renderMobileCard)\r\n ) : (\r\n <Box sx={scrollContainerSx}>\r\n <Table\r\n aria-label={tableAria}\r\n size={density === \"compact\" ? \"small\" : \"medium\"}\r\n stickyHeader\r\n sx={tableSx}\r\n >\r\n <TableHead>\r\n <TableRow>\r\n {showCheckbox && (\r\n <TableCell padding=\"checkbox\" sx={HEADER_CHECKBOX_CELL_SX}>\r\n <Checkbox\r\n size=\"small\"\r\n checked={allSelected}\r\n indeterminate={someSelected}\r\n onChange={toggleAll}\r\n slotProps={{ input: { \"aria-label\": L.selectAll } }}\r\n />\r\n </TableCell>\r\n )}\r\n {columns.map((col) => {\r\n const isSortable = sortable(col);\r\n const isResizable = resizable && col.resizable !== false;\r\n const isReorderable =\r\n reorderable && col.reorderable !== false;\r\n const ariaSort = isSortable\r\n ? getAriaSort(sort, col.key)\r\n : undefined;\r\n const effectiveWidth =\r\n (resize.liveWidths && resize.liveWidths[col.key]) ??\r\n col.width;\r\n const reorderHandlers = isReorderable\r\n ? reorder.cellHandlers(col.key)\r\n : null;\r\n const reorderFeedbackSx = isReorderable\r\n ? reorder.cellSx(col.key)\r\n : undefined;\r\n return (\r\n <TableCell\r\n key={col.key}\r\n align={col.align || (col.numeric ? \"right\" : \"left\")}\r\n aria-sort={ariaSort}\r\n {...(reorderHandlers || {})}\r\n sx={{\r\n position: \"sticky\",\r\n top: 0,\r\n zIndex: 1,\r\n ...(effectiveWidth != null\r\n ? { width: effectiveWidth }\r\n : {}),\r\n ...(reorderFeedbackSx\r\n ? (reorderFeedbackSx as SystemStyleObject<Theme>)\r\n : {}),\r\n }}\r\n >\r\n {isSortable && onSortChange ? (\r\n <SortableHeader\r\n sortKey={col.key}\r\n sort={sort}\r\n setSort={onSortChange}\r\n align={col.align || (col.numeric ? \"right\" : \"left\")}\r\n >\r\n {col.header}\r\n </SortableHeader>\r\n ) : (\r\n col.header\r\n )}\r\n\r\n {isReorderable && (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n data-reorder-grip={col.key}\r\n aria-label=\"Réorganiser la colonne\"\r\n aria-keyshortcuts=\"ArrowLeft ArrowRight Home End\"\r\n onKeyDown={(e) => {\r\n if (\r\n e.key === \"ArrowLeft\" ||\r\n e.key === \"ArrowRight\" ||\r\n e.key === \"Home\" ||\r\n e.key === \"End\"\r\n ) {\r\n pendingReorderFocusRef.current = col.key;\r\n }\r\n reorder.handleKeyDown(col.key)(e);\r\n }}\r\n sx={REORDER_GRIP_SX}\r\n >\r\n <DragIndicatorIcon sx={{ fontSize: 14 }} />\r\n </Box>\r\n )}\r\n\r\n {isResizable && (\r\n <Box\r\n role=\"separator\"\r\n aria-orientation=\"vertical\"\r\n aria-label=\"Redimensionner la colonne\"\r\n tabIndex={0}\r\n aria-valuenow={\r\n typeof effectiveWidth === \"number\"\r\n ? Math.round(effectiveWidth)\r\n : undefined\r\n }\r\n aria-valuemin={resize.minWidth}\r\n draggable=\"false\"\r\n onMouseDown={resize.handleMouseDown(col.key)}\r\n onKeyDown={resize.handleKeyDown(col.key)}\r\n sx={{\r\n position: \"absolute\",\r\n top: 0,\r\n insetInlineEnd: 0,\r\n width: 8,\r\n height: \"100%\",\r\n cursor: \"col-resize\",\r\n userSelect: \"none\",\r\n touchAction: \"none\",\r\n zIndex: 2,\r\n \"&:hover\": {\r\n background: \"var(--state-hover-overlay)\",\r\n },\r\n \"&:active\": {\r\n background: \"var(--state-pressed-overlay)\",\r\n },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"-1px\",\r\n background: \"var(--state-hover-overlay)\",\r\n },\r\n }}\r\n />\r\n )}\r\n </TableCell>\r\n );\r\n })}\r\n <TableCell sx={FILLER_HEAD_CELL_SX} aria-hidden=\"true\" />\r\n {hasRowActions && (\r\n /* WCAG 1.3.1 / axe-core `empty-table-header` — the\r\n visually-hidden span names the actions column in the\r\n a11y tree. Label from labels.actionsHeader. */\r\n <TableCell sx={ROW_ACTIONS_HEAD_CELL_SX} scope=\"col\">\r\n <Box component=\"span\" sx={VISUALLY_HIDDEN_SX}>\r\n {L.actionsHeader}\r\n </Box>\r\n </TableCell>\r\n )}\r\n </TableRow>\r\n </TableHead>\r\n {body}\r\n </Table>\r\n </Box>\r\n )}\r\n {pagination && (\r\n <Pagination\r\n {...pagination}\r\n loading={loading}\r\n locale={locale}\r\n labels={L.pagination}\r\n />\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport { applySort };\r\nexport default DataGrid;\r\n"],"mappings":"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","ignoreList":[]}
@@ -43,8 +43,20 @@ import type { DataGridColumn } from "../types/datagrid";
43
43
  * recommended when the toolbar has enough horizontal space and the
44
44
  * affordance benefits from a named action (e.g. "Configurer").
45
45
  * When omitted, the trigger falls back to the compact IconButton.
46
+ *
47
+ * D-8: in that named form the button is NOT given an aria-label.
48
+ * It used to carry `labels.button` as well, and aria-label wins over
49
+ * visible text — so the trigger displayed "Configurer" and announced
50
+ * "Options du tableau", failing WCAG 2.5.3 Label in Name and breaking
51
+ * voice control ("click Configurer" matched nothing). The button's own
52
+ * text now names it, so the two agree by construction. `labels.button`
53
+ * still names the icon-only trigger, where it is the only naming route.
46
54
  */
47
55
  export interface DataGridSettingsMenuLabels {
56
+ /**
57
+ * Accessible name of the ICON-ONLY trigger. Not applied when `label` is
58
+ * passed — there the visible text is the name (D-8).
59
+ */
48
60
  button?: string | undefined;
49
61
  title?: string | undefined;
50
62
  columnsHeading?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"DataGridSettingsMenu.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/DataGridSettingsMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC;IACvF,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IACnD,qBAAqB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IAC/C,MAAM,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAyFD,iBAAS,oBAAoB,CAAC,EAC5B,OAAO,EACP,aAAa,EACb,qBAAqB,EACrB,OAAO,EACP,eAAe,EACf,cAAc,EACd,MAAM,EACN,KAAK,GACN,EAAE,yBAAyB,qBAqN3B;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"DataGridSettingsMenu.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/DataGridSettingsMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC;IACvF,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IACnD,qBAAqB,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IAC/C,MAAM,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAyFD,iBAAS,oBAAoB,CAAC,EAC5B,OAAO,EACP,aAAa,EACb,qBAAqB,EACrB,OAAO,EACP,eAAe,EACf,cAAc,EACd,MAAM,EACN,KAAK,GACN,EAAE,yBAAyB,qBAkO3B;AAED,eAAe,oBAAoB,CAAC"}