@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":"DataGridVirtualized.js","names":["React","Box","Table","TableHead","TableBody","TableRow","TableCell","Checkbox","DragIndicatorIcon","useVirtualizer","SkeletonRow","SortableHeader","getAriaSort","useDelayedFlag","density","DEFAULT_MAX_BODY_HEIGHT","mergeLabels","useColumnsStabilityWarn","applyColumnOrder","CONTAINER_SX","TABLE_BY_DENSITY","ROW_CLICKABLE_SX","ROW_STATIC_SX","HEADER_CHECKBOX_CELL_SX","BODY_CHECKBOX_CELL_SX","ERROR_CELL_SX","ERROR_INNER_SX","Pagination","useColumnResize","useColumnReorder","jsx","_jsx","jsxs","_jsxs","DEFAULT_ROW_HEIGHT_BY_DENSITY","Object","freeze","spacious","row","comfortable","compact","ultraCompact","PADDING_CELL_SX","padding","border","REORDER_GRIP_SX","position","insetInlineStart","top","transform","zIndex","display","alignItems","justifyContent","width","height","borderRadius","background","color","cursor","opacity","pointerEvents","transition","fontFamily","outline","outlineOffset","readCellValue","key","defaultGetRowId","id","DataGridVirtualized","_ref","_ref2","_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","_ref$filtered","filtered","_ref$density","densityProp","ariaLabel","_ref$locale","locale","labels","_ref$maxBodyHeight","maxBodyHeight","rowHeight","_ref$overscan","overscan","_ref$resizable","resizable","columnWidths","onColumnWidthsChange","_ref$reorderable","reorderable","columnOrder","onColumnOrderChange","L","useMemo","tableAria","showSkeleton","resize","reorder","resizeIsActive","isResizing","pendingReorderFocusRef","useRef","useEffect","current","document","escaped","window","CSS","escape","el","querySelector","concat","HTMLElement","focus","effectiveRowHeight","showCheckbox","colCount","length","sortable","col","selectedSet","Set","allSelected","every","r","has","someSelected","some","toggleAll","map","toggleRow","next","add","handleRowKeyDown","e","preventDefault","scrollRef","virtualizer","count","getScrollElement","estimateSize","virtualItems","getVirtualItems","totalSize","getTotalSize","firstItem","lastItem","paddingTop","start","paddingBottom","end","scrollContainerSx","overflow","maxHeight","tableDensityKey","tableSx","body","children","Array","from","_","i","cols","withCheckbox","withActions","colSpan","sx","undefined","style","virtualItem","index","isSelected","flash","clickable","hover","className","onClick","onKeyDown","tabIndex","size","checked","onChange","stopPropagation","slotProps","input","selectRow","_ref3","_ref4","value","getValue","effectiveWidth","liveWidths","cellSx","_objectSpread","fontSize","whiteSpace","wrap","textOverflow","mono","numeric","fontVariantNumeric","maxWidth","align","render","ref","stickyHeader","indeterminate","selectAll","_ref5","isSortable","isResizable","isReorderable","ariaSort","reorderHandlers","cellHandlers","reorderFeedbackSx","sortKey","setSort","header","component","type","handleKeyDown","role","Math","round","minWidth","draggable","onMouseDown","handleMouseDown","insetInlineEnd","userSelect","touchAction"],"sources":["../../../../src/lib/v2/patterns/DataGridVirtualized.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 type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\r\nimport { SkeletonRow } from \"../components/Skeleton\";\r\nimport SortableHeader, { getAriaSort } from \"./SortableHeader\";\r\nimport useDelayedFlag from \"../hooks/useDelayedFlag\";\r\nimport { density } from \"../tokens\";\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 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 DataGridColumn,\r\n DataGridLabels,\r\n DataGridPagination,\r\n} from \"../types/datagrid\";\r\nimport type { Density, RowId, SortDescriptor } from \"../types/common\";\r\n\r\n/**\r\n * DataGridVirtualized - Portnet UI v2 (pattern)\r\n *\r\n * Same public API as DataGrid + four virtualization-specific props\r\n * + the resize/reorder opt-ins (mirrors DataGrid):\r\n *\r\n * rowHeight, overscan — virtualization\r\n * resizable, columnWidths, onColumnWidthsChange — resize\r\n * reorderable, columnOrder, onColumnOrderChange — reorder\r\n *\r\n * When to use:\r\n * - 1000+ rows where pagination would feel artificial.\r\n * - Audit logs / ledgers / \"view all\" flows.\r\n *\r\n * When NOT to use:\r\n * - <100 rows: DataGrid is simpler.\r\n * - Variable-height rows: NOT supported (uniform rowHeight only).\r\n *\r\n * Virtualization caveats:\r\n * - rowFlashId only fires when the target row is in the current window.\r\n * For confirmations that survive scroll, use a Toast.\r\n * - Sort + filter cost is host-side.\r\n *\r\n * A11y (DG-V1): the table advertises aria-rowcount over the FULL dataset while\r\n * only the windowed rows are in the DOM, so every rendered row carries an\r\n * explicit aria-rowindex (header = 1, data row = virtualItem.index + 2) so SR\r\n * users hear their true position. aria-hidden spacer rows stay unindexed.\r\n * DG-2: the resize grip is a focusable role=\"separator\" (tabIndex 0,\r\n * aria-valuenow/valuemin) operable by pointer AND keyboard (Arrow / Home).\r\n * DG-R1: reorderable columns expose a hover/focus-revealed grip button\r\n * (aria-keyshortcuts Arrow/Home/End → useColumnReorder.handleKeyDown) so column\r\n * reorder is keyboard-operable, not drag-only; focus follows the moved column.\r\n */\r\n\r\n/** Row-height density tiers for the virtualizer — a distinct, wider set than\r\n * the canonical 2-tier Density (which governs table cell padding). */\r\nexport type DataGridVirtualizedDensity =\r\n | \"spacious\"\r\n | \"comfortable\"\r\n | \"compact\"\r\n | \"ultraCompact\";\r\n\r\nexport interface DataGridVirtualizedProps<T> {\r\n rows?: T[] | undefined;\r\n columns: DataGridColumn<T>[];\r\n loading?: boolean | undefined;\r\n /** Any truthy value switches the grid to its error branch. */\r\n error?: unknown;\r\n sort?: SortDescriptor[] | undefined;\r\n onSortChange?: React.Dispatch<React.SetStateAction<SortDescriptor[]>> | undefined;\r\n selection?: Set<RowId> | RowId[] | undefined;\r\n onSelectionChange?: ((selection: Set<RowId>) => void) | undefined;\r\n pagination?: DataGridPagination | undefined;\r\n emptyState?: React.ReactNode | undefined;\r\n filteredEmptyState?: React.ReactNode | undefined;\r\n errorState?: React.ReactNode | undefined;\r\n getRowId?: ((row: T) => RowId) | undefined;\r\n onRowClick?: ((row: T) => void) | undefined;\r\n rowFlashId?: RowId | undefined;\r\n filtered?: boolean | undefined;\r\n density?: DataGridVirtualizedDensity | undefined;\r\n ariaLabel?: string | undefined;\r\n locale?: string | undefined;\r\n labels?: DataGridLabels | undefined;\r\n maxBodyHeight?: number | string | undefined;\r\n /** Uniform row height in px (overrides the density default). */\r\n rowHeight?: number | undefined;\r\n /** Rows rendered beyond the visible window on each side. */\r\n overscan?: number | undefined;\r\n resizable?: boolean | undefined;\r\n columnWidths?: Record<string, number> | undefined;\r\n onColumnWidthsChange?: ((widths: Record<string, number>) => void) | undefined;\r\n reorderable?: boolean | undefined;\r\n columnOrder?: string[] | undefined;\r\n onColumnOrderChange?: ((order: string[]) => void) | undefined;\r\n}\r\n\r\n/** Default row height by density tier. */\r\nconst DEFAULT_ROW_HEIGHT_BY_DENSITY: Record<DataGridVirtualizedDensity, number> =\r\n Object.freeze({\r\n spacious: density.spacious.row, // 56\r\n comfortable: density.comfortable.row, // 44\r\n compact: density.compact.row, // 36\r\n ultraCompact: density.ultraCompact.row, // 28\r\n });\r\n\r\nconst PADDING_CELL_SX = Object.freeze({ padding: 0, border: 0 });\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/* Default value accessor for an unconstrained row type — typed against\r\n * `unknown` so the single assertion is legal (mirrors DataGrid). */\r\nfunction readCellValue(row: unknown, key: string): unknown {\r\n return (row as Record<string, unknown>)[key];\r\n}\r\n\r\n/* Default getRowId (`(r) => r.id`); `(unknown) => RowId` is assignable to\r\n * the declared `(row: T) => RowId` by parameter contravariance. */\r\nconst defaultGetRowId = (row: unknown): RowId => (row as { id: RowId }).id;\r\n\r\nfunction DataGridVirtualized<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 filtered = false,\r\n density: densityProp = \"comfortable\",\r\n ariaLabel,\r\n locale = \"fr-FR\",\r\n labels,\r\n maxBodyHeight = DEFAULT_MAX_BODY_HEIGHT,\r\n // Virtualization\r\n rowHeight,\r\n overscan = 10,\r\n // Resize\r\n resizable = false,\r\n columnWidths,\r\n onColumnWidthsChange,\r\n // Reorder\r\n reorderable = false,\r\n columnOrder,\r\n onColumnOrderChange,\r\n}: DataGridVirtualizedProps<T>) {\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 // Apply host-supplied column order (defensive, see _dataGridShared).\r\n const columns = React.useMemo(\r\n () => applyColumnOrder(rawColumns, columnOrder),\r\n [rawColumns, columnOrder]\r\n );\r\n\r\n // Resize + reorder hooks. Cross-coupled via resizeIsActive.\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 // Effective row height: prop wins, otherwise density default.\r\n const effectiveRowHeight =\r\n rowHeight ??\r\n DEFAULT_ROW_HEIGHT_BY_DENSITY[densityProp] ??\r\n DEFAULT_ROW_HEIGHT_BY_DENSITY.comfortable;\r\n\r\n const showCheckbox = !!onSelectionChange;\r\n const colCount = columns.length + (showCheckbox ? 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 scrollRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const virtualizer = useVirtualizer({\r\n count: rows.length,\r\n getScrollElement: () => scrollRef.current,\r\n estimateSize: () => effectiveRowHeight,\r\n overscan,\r\n });\r\n\r\n const virtualItems = virtualizer.getVirtualItems();\r\n const totalSize = virtualizer.getTotalSize();\r\n const firstItem = virtualItems[0];\r\n const lastItem = virtualItems[virtualItems.length - 1];\r\n const paddingTop = firstItem ? firstItem.start : 0;\r\n const paddingBottom = lastItem ? totalSize - lastItem.end : 0;\r\n\r\n const scrollContainerSx = React.useMemo<SxProps<Theme>>(\r\n () => ({ overflow: \"auto\", maxHeight: maxBodyHeight }),\r\n [maxBodyHeight]\r\n );\r\n // TABLE_BY_DENSITY is keyed by the 2-tier Density; map the wider tier down\r\n // (matches the JS `TABLE_BY_DENSITY[dp] || .comfortable` fallback).\r\n const tableDensityKey: Density =\r\n densityProp === \"compact\" ? \"compact\" : \"comfortable\";\r\n const tableSx = TABLE_BY_DENSITY[tableDensityKey];\r\n\r\n // ── Body branches ──────────────────────────────────────────────\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={false}\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 {paddingTop > 0 && (\r\n <TableRow aria-hidden=\"true\" style={{ height: paddingTop }}>\r\n <TableCell colSpan={colCount} sx={PADDING_CELL_SX} />\r\n </TableRow>\r\n )}\r\n {virtualItems.map((virtualItem) => {\r\n const row = rows[virtualItem.index];\r\n if (!row) return null;\r\n const id = getRowId(row);\r\n const isSelected = selectedSet.has(id);\r\n const flash = rowFlashId === id;\r\n const clickable = !!onRowClick;\r\n return (\r\n <TableRow\r\n key={virtualItem.key}\r\n data-index={virtualItem.index}\r\n aria-rowindex={virtualItem.index + 2}\r\n hover\r\n data-selected={isSelected || 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 style={{ height: virtualItem.size }}\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 const effectiveWidth =\r\n (resize.liveWidths && resize.liveWidths[col.key]) ??\r\n col.width;\r\n // --text-body (14px) — was `var(--text-fs)`, a token typo\r\n // with no fallback; making the inheritance explicit preserves\r\n // the rendering while removing the dangling reference.\r\n const cellSx: SxProps<Theme> = {\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 ...(col.maxWidth != null ? { maxWidth: col.maxWidth } : {}),\r\n };\r\n return (\r\n <TableCell\r\n key={col.key}\r\n align={col.align || (col.numeric ? \"right\" : \"left\")}\r\n sx={cellSx}\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 </TableRow>\r\n );\r\n })}\r\n {paddingBottom > 0 && (\r\n <TableRow aria-hidden=\"true\" style={{ height: paddingBottom }}>\r\n <TableCell colSpan={colCount} sx={PADDING_CELL_SX} />\r\n </TableRow>\r\n )}\r\n </TableBody>\r\n );\r\n }\r\n\r\n return (\r\n <Box sx={CONTAINER_SX}>\r\n <Box ref={scrollRef} sx={scrollContainerSx}>\r\n <Table\r\n aria-label={tableAria}\r\n aria-rowcount={rows.length ? rows.length + 1 : undefined}\r\n size={densityProp === \"compact\" ? \"small\" : \"medium\"}\r\n stickyHeader\r\n sx={tableSx}\r\n >\r\n <TableHead>\r\n <TableRow aria-rowindex={1}>\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 = 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 </TableRow>\r\n </TableHead>\r\n {body}\r\n </Table>\r\n </Box>\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 default DataGridVirtualized;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DataGridVirtualized.js","names":["React","Box","Table","TableHead","TableBody","TableRow","TableCell","Checkbox","DragIndicatorIcon","useVirtualizer","SkeletonRow","SortableHeader","getAriaSort","useDelayedFlag","density","DEFAULT_MAX_BODY_HEIGHT","mergeLabels","useColumnsStabilityWarn","applyColumnOrder","CONTAINER_SX","TABLE_BY_DENSITY","ROW_CLICKABLE_SX","ROW_STATIC_SX","HEADER_CHECKBOX_CELL_SX","BODY_CHECKBOX_CELL_SX","ERROR_CELL_SX","ERROR_INNER_SX","Pagination","useColumnResize","useColumnReorder","jsx","_jsx","jsxs","_jsxs","DEFAULT_ROW_HEIGHT_BY_DENSITY","Object","freeze","spacious","row","comfortable","compact","ultraCompact","PADDING_CELL_SX","padding","border","REORDER_GRIP_SX","position","insetInlineStart","top","transform","zIndex","display","alignItems","justifyContent","width","height","borderRadius","background","color","cursor","opacity","pointerEvents","transition","fontFamily","outline","outlineOffset","readCellValue","key","defaultGetRowId","id","DataGridVirtualized","rows","columns","rawColumns","loading","error","sort","onSortChange","selection","onSelectionChange","pagination","emptyState","filteredEmptyState","errorState","getRowId","onRowClick","rowFlashId","filtered","densityProp","ariaLabel","locale","labels","maxBodyHeight","rowHeight","overscan","resizable","columnWidths","onColumnWidthsChange","reorderable","columnOrder","onColumnOrderChange","L","useMemo","tableAria","showSkeleton","resize","reorder","resizeIsActive","isResizing","pendingReorderFocusRef","useRef","useEffect","current","document","escaped","window","CSS","escape","el","querySelector","HTMLElement","focus","effectiveRowHeight","showCheckbox","colCount","length","sortable","col","selectedSet","Set","allSelected","every","r","has","someSelected","some","toggleAll","map","toggleRow","next","delete","add","handleRowKeyDown","e","preventDefault","scrollRef","virtualizer","count","getScrollElement","estimateSize","virtualItems","getVirtualItems","totalSize","getTotalSize","firstItem","lastItem","paddingTop","start","paddingBottom","end","scrollContainerSx","overflow","maxHeight","tableDensityKey","tableSx","body","children","Array","from","_","i","cols","withCheckbox","withActions","colSpan","sx","undefined","style","virtualItem","index","isSelected","flash","clickable","hover","className","onClick","onKeyDown","tabIndex","size","checked","onChange","stopPropagation","slotProps","input","selectRow","value","getValue","effectiveWidth","liveWidths","cellSx","fontSize","whiteSpace","wrap","textOverflow","mono","numeric","fontVariantNumeric","maxWidth","align","render","ref","stickyHeader","indeterminate","selectAll","isSortable","isResizable","isReorderable","ariaSort","reorderHandlers","cellHandlers","reorderFeedbackSx","sortKey","setSort","header","component","type","handleKeyDown","role","Math","round","minWidth","draggable","onMouseDown","handleMouseDown","insetInlineEnd","userSelect","touchAction"],"sources":["../../../../src/lib/v2/patterns/DataGridVirtualized.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 type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\r\nimport { SkeletonRow } from \"../components/Skeleton\";\r\nimport SortableHeader, { getAriaSort } from \"./SortableHeader\";\r\nimport useDelayedFlag from \"../hooks/useDelayedFlag\";\r\nimport { density } from \"../tokens\";\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 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 DataGridColumn,\r\n DataGridLabels,\r\n DataGridPagination,\r\n} from \"../types/datagrid\";\r\nimport type { Density, RowId, SortDescriptor } from \"../types/common\";\r\n\r\n/**\r\n * DataGridVirtualized - Portnet UI v2 (pattern)\r\n *\r\n * Same public API as DataGrid + four virtualization-specific props\r\n * + the resize/reorder opt-ins (mirrors DataGrid):\r\n *\r\n * rowHeight, overscan — virtualization\r\n * resizable, columnWidths, onColumnWidthsChange — resize\r\n * reorderable, columnOrder, onColumnOrderChange — reorder\r\n *\r\n * When to use:\r\n * - 1000+ rows where pagination would feel artificial.\r\n * - Audit logs / ledgers / \"view all\" flows.\r\n *\r\n * When NOT to use:\r\n * - <100 rows: DataGrid is simpler.\r\n * - Variable-height rows: NOT supported (uniform rowHeight only).\r\n *\r\n * Virtualization caveats:\r\n * - rowFlashId only fires when the target row is in the current window.\r\n * For confirmations that survive scroll, use a Toast.\r\n * - Sort + filter cost is host-side.\r\n *\r\n * A11y (DG-V1): the table advertises aria-rowcount over the FULL dataset while\r\n * only the windowed rows are in the DOM, so every rendered row carries an\r\n * explicit aria-rowindex (header = 1, data row = virtualItem.index + 2) so SR\r\n * users hear their true position. aria-hidden spacer rows stay unindexed.\r\n * DG-2: the resize grip is a focusable role=\"separator\" (tabIndex 0,\r\n * aria-valuenow/valuemin) operable by pointer AND keyboard (Arrow / Home).\r\n * DG-R1: reorderable columns expose a hover/focus-revealed grip button\r\n * (aria-keyshortcuts Arrow/Home/End → useColumnReorder.handleKeyDown) so column\r\n * reorder is keyboard-operable, not drag-only; focus follows the moved column.\r\n */\r\n\r\n/** Row-height density tiers for the virtualizer — a distinct, wider set than\r\n * the canonical 2-tier Density (which governs table cell padding). */\r\nexport type DataGridVirtualizedDensity =\r\n | \"spacious\"\r\n | \"comfortable\"\r\n | \"compact\"\r\n | \"ultraCompact\";\r\n\r\nexport interface DataGridVirtualizedProps<T> {\r\n rows?: T[] | undefined;\r\n columns: DataGridColumn<T>[];\r\n loading?: boolean | undefined;\r\n /** Any truthy value switches the grid to its error branch. */\r\n error?: unknown;\r\n sort?: SortDescriptor[] | undefined;\r\n onSortChange?: React.Dispatch<React.SetStateAction<SortDescriptor[]>> | undefined;\r\n selection?: Set<RowId> | RowId[] | undefined;\r\n onSelectionChange?: ((selection: Set<RowId>) => void) | undefined;\r\n pagination?: DataGridPagination | undefined;\r\n emptyState?: React.ReactNode | undefined;\r\n filteredEmptyState?: React.ReactNode | undefined;\r\n errorState?: React.ReactNode | undefined;\r\n getRowId?: ((row: T) => RowId) | undefined;\r\n onRowClick?: ((row: T) => void) | undefined;\r\n rowFlashId?: RowId | undefined;\r\n filtered?: boolean | undefined;\r\n density?: DataGridVirtualizedDensity | undefined;\r\n ariaLabel?: string | undefined;\r\n locale?: string | undefined;\r\n labels?: DataGridLabels | undefined;\r\n maxBodyHeight?: number | string | undefined;\r\n /** Uniform row height in px (overrides the density default). */\r\n rowHeight?: number | undefined;\r\n /** Rows rendered beyond the visible window on each side. */\r\n overscan?: number | undefined;\r\n resizable?: boolean | undefined;\r\n columnWidths?: Record<string, number> | undefined;\r\n onColumnWidthsChange?: ((widths: Record<string, number>) => void) | undefined;\r\n reorderable?: boolean | undefined;\r\n columnOrder?: string[] | undefined;\r\n onColumnOrderChange?: ((order: string[]) => void) | undefined;\r\n}\r\n\r\n/** Default row height by density tier. */\r\nconst DEFAULT_ROW_HEIGHT_BY_DENSITY: Record<DataGridVirtualizedDensity, number> =\r\n Object.freeze({\r\n spacious: density.spacious.row, // 56\r\n comfortable: density.comfortable.row, // 44\r\n compact: density.compact.row, // 36\r\n ultraCompact: density.ultraCompact.row, // 28\r\n });\r\n\r\nconst PADDING_CELL_SX = Object.freeze({ padding: 0, border: 0 });\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/* Default value accessor for an unconstrained row type — typed against\r\n * `unknown` so the single assertion is legal (mirrors DataGrid). */\r\nfunction readCellValue(row: unknown, key: string): unknown {\r\n return (row as Record<string, unknown>)[key];\r\n}\r\n\r\n/* Default getRowId (`(r) => r.id`); `(unknown) => RowId` is assignable to\r\n * the declared `(row: T) => RowId` by parameter contravariance. */\r\nconst defaultGetRowId = (row: unknown): RowId => (row as { id: RowId }).id;\r\n\r\nfunction DataGridVirtualized<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 filtered = false,\r\n density: densityProp = \"comfortable\",\r\n ariaLabel,\r\n locale = \"fr-FR\",\r\n labels,\r\n maxBodyHeight = DEFAULT_MAX_BODY_HEIGHT,\r\n // Virtualization\r\n rowHeight,\r\n overscan = 10,\r\n // Resize\r\n resizable = false,\r\n columnWidths,\r\n onColumnWidthsChange,\r\n // Reorder\r\n reorderable = false,\r\n columnOrder,\r\n onColumnOrderChange,\r\n}: DataGridVirtualizedProps<T>) {\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 // Apply host-supplied column order (defensive, see _dataGridShared).\r\n const columns = React.useMemo(\r\n () => applyColumnOrder(rawColumns, columnOrder),\r\n [rawColumns, columnOrder]\r\n );\r\n\r\n // Resize + reorder hooks. Cross-coupled via resizeIsActive.\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 // Effective row height: prop wins, otherwise density default.\r\n const effectiveRowHeight =\r\n rowHeight ??\r\n DEFAULT_ROW_HEIGHT_BY_DENSITY[densityProp] ??\r\n DEFAULT_ROW_HEIGHT_BY_DENSITY.comfortable;\r\n\r\n const showCheckbox = !!onSelectionChange;\r\n const colCount = columns.length + (showCheckbox ? 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 scrollRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const virtualizer = useVirtualizer({\r\n count: rows.length,\r\n getScrollElement: () => scrollRef.current,\r\n estimateSize: () => effectiveRowHeight,\r\n overscan,\r\n });\r\n\r\n const virtualItems = virtualizer.getVirtualItems();\r\n const totalSize = virtualizer.getTotalSize();\r\n const firstItem = virtualItems[0];\r\n const lastItem = virtualItems[virtualItems.length - 1];\r\n const paddingTop = firstItem ? firstItem.start : 0;\r\n const paddingBottom = lastItem ? totalSize - lastItem.end : 0;\r\n\r\n const scrollContainerSx = React.useMemo<SxProps<Theme>>(\r\n () => ({ overflow: \"auto\", maxHeight: maxBodyHeight }),\r\n [maxBodyHeight]\r\n );\r\n // TABLE_BY_DENSITY is keyed by the 2-tier Density; map the wider tier down\r\n // (matches the JS `TABLE_BY_DENSITY[dp] || .comfortable` fallback).\r\n const tableDensityKey: Density =\r\n densityProp === \"compact\" ? \"compact\" : \"comfortable\";\r\n const tableSx = TABLE_BY_DENSITY[tableDensityKey];\r\n\r\n // ── Body branches ──────────────────────────────────────────────\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={false}\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 {paddingTop > 0 && (\r\n <TableRow aria-hidden=\"true\" style={{ height: paddingTop }}>\r\n <TableCell colSpan={colCount} sx={PADDING_CELL_SX} />\r\n </TableRow>\r\n )}\r\n {virtualItems.map((virtualItem) => {\r\n const row = rows[virtualItem.index];\r\n if (!row) return null;\r\n const id = getRowId(row);\r\n const isSelected = selectedSet.has(id);\r\n const flash = rowFlashId === id;\r\n const clickable = !!onRowClick;\r\n return (\r\n <TableRow\r\n key={virtualItem.key}\r\n data-index={virtualItem.index}\r\n aria-rowindex={virtualItem.index + 2}\r\n hover\r\n data-selected={isSelected || 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 style={{ height: virtualItem.size }}\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 const effectiveWidth =\r\n (resize.liveWidths && resize.liveWidths[col.key]) ??\r\n col.width;\r\n // --text-body (14px) — was `var(--text-fs)`, a token typo\r\n // with no fallback; making the inheritance explicit preserves\r\n // the rendering while removing the dangling reference.\r\n const cellSx: SxProps<Theme> = {\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 ...(col.maxWidth != null ? { maxWidth: col.maxWidth } : {}),\r\n };\r\n return (\r\n <TableCell\r\n key={col.key}\r\n align={col.align || (col.numeric ? \"right\" : \"left\")}\r\n sx={cellSx}\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 </TableRow>\r\n );\r\n })}\r\n {paddingBottom > 0 && (\r\n <TableRow aria-hidden=\"true\" style={{ height: paddingBottom }}>\r\n <TableCell colSpan={colCount} sx={PADDING_CELL_SX} />\r\n </TableRow>\r\n )}\r\n </TableBody>\r\n );\r\n }\r\n\r\n return (\r\n <Box sx={CONTAINER_SX}>\r\n <Box ref={scrollRef} sx={scrollContainerSx}>\r\n <Table\r\n aria-label={tableAria}\r\n aria-rowcount={rows.length ? rows.length + 1 : undefined}\r\n size={densityProp === \"compact\" ? \"small\" : \"medium\"}\r\n stickyHeader\r\n sx={tableSx}\r\n >\r\n <TableHead>\r\n <TableRow aria-rowindex={1}>\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 = 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 </TableRow>\r\n </TableHead>\r\n {body}\r\n </Table>\r\n </Box>\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 default DataGridVirtualized;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,GAAG,MAAM,mBAAmB;AACnC,OAAOC,KAAK,MAAM,qBAAqB;AACvC,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,QAAQ,MAAM,wBAAwB;AAC7C,OAAOC,SAAS,MAAM,yBAAyB;AAC/C,OAAOC,QAAQ,MAAM,wBAAwB;AAC7C,OAAOC,iBAAiB,MAAM,mCAAmC;AAGjE,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,WAAW,QAAQ,wBAAwB;AACpD,OAAOC,cAAc,IAAIC,WAAW,QAAQ,kBAAkB;AAC9D,OAAOC,cAAc,MAAM,yBAAyB;AACpD,SAASC,OAAO,QAAQ,WAAW;AACnC,SACEC,uBAAuB,EACvBC,WAAW,EACXC,uBAAuB,EACvBC,gBAAgB,EAChBC,YAAY,EACZC,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAa,EACbC,uBAAuB,EACvBC,qBAAqB,EACrBC,aAAa,EACbC,cAAc,EACdC,UAAU,QACL,mBAAmB;AAC1B,OAAOC,eAAe,MAAM,oBAAoB;AAChD,OAAOC,gBAAgB,MAAM,qBAAqB;;AAQlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AADA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA2CA;AACA,MAAMC,6BAAyE,GAC7EC,MAAM,CAACC,MAAM,CAAC;EACZC,QAAQ,EAAEvB,OAAO,CAACuB,QAAQ,CAACC,GAAG;EAAE;EAChCC,WAAW,EAAEzB,OAAO,CAACyB,WAAW,CAACD,GAAG;EAAE;EACtCE,OAAO,EAAE1B,OAAO,CAAC0B,OAAO,CAACF,GAAG;EAAE;EAC9BG,YAAY,EAAE3B,OAAO,CAAC2B,YAAY,CAACH,GAAG,CAAE;AAC1C,CAAC,CAAC;AAEJ,MAAMI,eAAe,GAAGP,MAAM,CAACC,MAAM,CAAC;EAAEO,OAAO,EAAE,CAAC;EAAEC,MAAM,EAAE;AAAE,CAAC,CAAC;;AAEhE;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAGV,MAAM,CAACC,MAAM,CAAC;EACpCU,QAAQ,EAAE,UAAU;EACpBC,gBAAgB,EAAE,CAAC;EACnBC,GAAG,EAAE,KAAK;EACVC,SAAS,EAAE,kBAAkB;EAC7BC,MAAM,EAAE,CAAC;EACTC,OAAO,EAAE,aAAa;EACtBC,UAAU,EAAE,QAAQ;EACpBC,cAAc,EAAE,QAAQ;EACxBC,KAAK,EAAE,EAAE;EACTC,MAAM,EAAE,EAAE;EACVZ,OAAO,EAAE,CAAC;EACVC,MAAM,EAAE,MAAM;EACdY,YAAY,EAAE,aAAa;EAC3BC,UAAU,EAAE,kBAAkB;EAC9BC,KAAK,EAAE,kBAAkB;EACzBC,MAAM,EAAE,MAAM;EACdC,OAAO,EAAE,CAAC;EACVC,aAAa,EAAE,MAAM;EACrBC,UAAU,EAAE,0CAA0C;EACtDC,UAAU,EAAE,SAAS;EACrB,+BAA+B,EAAE;IAAEH,OAAO,EAAE,CAAC;IAAEC,aAAa,EAAE;EAAO,CAAC;EACtE,0BAA0B,EAAE;IAAED,OAAO,EAAE,CAAC;IAAEC,aAAa,EAAE;EAAO,CAAC;EACjE,iBAAiB,EAAE;IACjBG,OAAO,EAAE,yBAAyB;IAClCC,aAAa,EAAE,MAAM;IACrBL,OAAO,EAAE,CAAC;IACVC,aAAa,EAAE;EACjB;AACF,CAA0B,CAAC;;AAE3B;AACA;AACA,SAASK,aAAaA,CAAC5B,GAAY,EAAE6B,GAAW,EAAW;EACzD,OAAQ7B,GAAG,CAA6B6B,GAAG,CAAC;AAC9C;;AAEA;AACA;AACA,MAAMC,eAAe,GAAI9B,GAAY,IAAaA,GAAG,CAAmB+B,EAAE;AAE1E,SAASC,mBAAmBA,CAAI;EAC9BC,IAAI,GAAG,EAAE;EACTC,OAAO,EAAEC,UAAU,GAAG,EAAE;EACxBC,OAAO,GAAG,KAAK;EACfC,KAAK,GAAG,IAAI;EACZC,IAAI,GAAG,EAAE;EACTC,YAAY;EACZC,SAAS;EACTC,iBAAiB;EACjBC,UAAU;EACVC,UAAU;EACVC,kBAAkB;EAClBC,UAAU;EACVC,QAAQ,GAAGhB,eAAe;EAC1BiB,UAAU;EACVC,UAAU;EACVC,QAAQ,GAAG,KAAK;EAChBzE,OAAO,EAAE0E,WAAW,GAAG,aAAa;EACpCC,SAAS;EACTC,MAAM,GAAG,OAAO;EAChBC,MAAM;EACNC,aAAa,GAAG7E,uBAAuB;EACvC;EACA8E,SAAS;EACTC,QAAQ,GAAG,EAAE;EACb;EACAC,SAAS,GAAG,KAAK;EACjBC,YAAY;EACZC,oBAAoB;EACpB;EACAC,WAAW,GAAG,KAAK;EACnBC,WAAW;EACXC;AAC2B,CAAC,EAAE;EAC9B,MAAMC,CAAC,GAAGrG,KAAK,CAACsG,OAAO,CAAC,MAAMtF,WAAW,CAAC2E,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAC5D,MAAMY,SAAS,GAAGd,SAAS,IAAI,IAAI,GAAGA,SAAS,GAAGY,CAAC,CAACE,SAAS;EAE7D,MAAMC,YAAY,GAAG3F,cAAc,CAAC6D,OAAO,CAAC;EAE5CzD,uBAAuB,CAACwD,UAAU,CAAC;;EAEnC;EACA,MAAMD,OAAO,GAAGxE,KAAK,CAACsG,OAAO,CAC3B,MAAMpF,gBAAgB,CAACuD,UAAU,EAAE0B,WAAW,CAAC,EAC/C,CAAC1B,UAAU,EAAE0B,WAAW,CAC1B,CAAC;;EAED;EACA,MAAMM,MAAM,GAAG7E,eAAe,CAACoE,YAAY,EAAEC,oBAAoB,CAAC;EAClE,MAAMS,OAAO,GAAG7E,gBAAgB,CAAC2C,OAAO,EAAE2B,WAAW,EAAEC,mBAAmB,EAAE;IAC1EO,cAAc,EAAEF,MAAM,CAACG;EACzB,CAAC,CAAC;;EAEF;EACA;EACA;EACA,MAAMC,sBAAsB,GAAG7G,KAAK,CAAC8G,MAAM,CAAgB,IAAI,CAAC;EAChE9G,KAAK,CAAC+G,SAAS,CAAC,MAAM;IACpB,MAAM5C,GAAG,GAAG0C,sBAAsB,CAACG,OAAO;IAC1C,IAAI,CAAC7C,GAAG,IAAI,OAAO8C,QAAQ,KAAK,WAAW,EAAE;IAC7CJ,sBAAsB,CAACG,OAAO,GAAG,IAAI;IACrC,MAAME,OAAO,GACX,OAAOC,MAAM,KAAK,WAAW,IAC7BA,MAAM,CAACC,GAAG,IACV,OAAOD,MAAM,CAACC,GAAG,CAACC,MAAM,KAAK,UAAU,GACnCF,MAAM,CAACC,GAAG,CAACC,MAAM,CAAClD,GAAG,CAAC,GACtBA,GAAG;IACT,MAAMmD,EAAE,GAAGL,QAAQ,CAACM,aAAa,CAAC,uBAAuBL,OAAO,IAAI,CAAC;IACrE,IAAII,EAAE,YAAYE,WAAW,EAAEF,EAAE,CAACG,KAAK,CAAC,CAAC;EAC3C,CAAC,EAAE,CAACtB,WAAW,CAAC,CAAC;;EAEjB;EACA,MAAMuB,kBAAkB,GACtB7B,SAAS,IACT3D,6BAA6B,CAACsD,WAAW,CAAC,IAC1CtD,6BAA6B,CAACK,WAAW;EAE3C,MAAMoF,YAAY,GAAG,CAAC,CAAC5C,iBAAiB;EACxC,MAAM6C,QAAQ,GAAGpD,OAAO,CAACqD,MAAM,IAAIF,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;EAExD,MAAMG,QAAQ,GAAIC,GAAsB,IACtCA,GAAG,CAACD,QAAQ,KAAK,KAAK,IAAI,CAAC,CAACC,GAAG,CAAC5D,GAAG,IAAI,CAAC,CAACU,YAAY;EAEvD,MAAMmD,WAAW,GAAGhI,KAAK,CAACsG,OAAO,CAC/B,MAAOxB,SAAS,YAAYmD,GAAG,GAAGnD,SAAS,GAAG,IAAImD,GAAG,CAACnD,SAAS,IAAI,EAAE,CAAE,EACvE,CAACA,SAAS,CACZ,CAAC;EACD,MAAMoD,WAAW,GACf3D,IAAI,CAACsD,MAAM,GAAG,CAAC,IAAItD,IAAI,CAAC4D,KAAK,CAAEC,CAAC,IAAKJ,WAAW,CAACK,GAAG,CAACjD,QAAQ,CAACgD,CAAC,CAAC,CAAC,CAAC;EACpE,MAAME,YAAY,GAChB,CAACJ,WAAW,IAAI3D,IAAI,CAACgE,IAAI,CAAEH,CAAC,IAAKJ,WAAW,CAACK,GAAG,CAACjD,QAAQ,CAACgD,CAAC,CAAC,CAAC,CAAC;EAEhE,MAAMI,SAAS,GAAGA,CAAA,KAAM;IACtB,IAAI,CAACzD,iBAAiB,EAAE;IACxB,IAAImD,WAAW,EAAEnD,iBAAiB,CAAC,IAAIkD,GAAG,CAAQ,CAAC,CAAC,CAAC,KAChDlD,iBAAiB,CAAC,IAAIkD,GAAG,CAAC1D,IAAI,CAACkE,GAAG,CAACrD,QAAQ,CAAC,CAAC,CAAC;EACrD,CAAC;EACD,MAAMsD,SAAS,GAAIrE,EAAS,IAAK;IAC/B,IAAI,CAACU,iBAAiB,EAAE;IACxB,MAAM4D,IAAI,GAAG,IAAIV,GAAG,CAACD,WAAW,CAAC;IACjC,IAAIW,IAAI,CAACN,GAAG,CAAChE,EAAE,CAAC,EAAEsE,IAAI,CAACC,MAAM,CAACvE,EAAE,CAAC,CAAC,KAC7BsE,IAAI,CAACE,GAAG,CAACxE,EAAE,CAAC;IACjBU,iBAAiB,CAAC4D,IAAI,CAAC;EACzB,CAAC;EAED,MAAMG,gBAAgB,GACnBxG,GAAM,IAAMyG,CAAmC,IAAK;IACnD,IAAI,CAAC1D,UAAU,EAAE;IACjB,IAAI0D,CAAC,CAAC5E,GAAG,KAAK,OAAO,IAAI4E,CAAC,CAAC5E,GAAG,KAAK,GAAG,EAAE;MACtC4E,CAAC,CAACC,cAAc,CAAC,CAAC;MAClB3D,UAAU,CAAC/C,GAAG,CAAC;IACjB;EACF,CAAC;EAEH,MAAM2G,SAAS,GAAGjJ,KAAK,CAAC8G,MAAM,CAAiB,IAAI,CAAC;EAEpD,MAAMoC,WAAW,GAAGzI,cAAc,CAAC;IACjC0I,KAAK,EAAE5E,IAAI,CAACsD,MAAM;IAClBuB,gBAAgB,EAAEA,CAAA,KAAMH,SAAS,CAACjC,OAAO;IACzCqC,YAAY,EAAEA,CAAA,KAAM3B,kBAAkB;IACtC5B;EACF,CAAC,CAAC;EAEF,MAAMwD,YAAY,GAAGJ,WAAW,CAACK,eAAe,CAAC,CAAC;EAClD,MAAMC,SAAS,GAAGN,WAAW,CAACO,YAAY,CAAC,CAAC;EAC5C,MAAMC,SAAS,GAAGJ,YAAY,CAAC,CAAC,CAAC;EACjC,MAAMK,QAAQ,GAAGL,YAAY,CAACA,YAAY,CAACzB,MAAM,GAAG,CAAC,CAAC;EACtD,MAAM+B,UAAU,GAAGF,SAAS,GAAGA,SAAS,CAACG,KAAK,GAAG,CAAC;EAClD,MAAMC,aAAa,GAAGH,QAAQ,GAAGH,SAAS,GAAGG,QAAQ,CAACI,GAAG,GAAG,CAAC;EAE7D,MAAMC,iBAAiB,GAAGhK,KAAK,CAACsG,OAAO,CACrC,OAAO;IAAE2D,QAAQ,EAAE,MAAM;IAAEC,SAAS,EAAEtE;EAAc,CAAC,CAAC,EACtD,CAACA,aAAa,CAChB,CAAC;EACD;EACA;EACA,MAAMuE,eAAwB,GAC5B3E,WAAW,KAAK,SAAS,GAAG,SAAS,GAAG,aAAa;EACvD,MAAM4E,OAAO,GAAGhJ,gBAAgB,CAAC+I,eAAe,CAAC;;EAEjD;EACA,IAAIE,IAAqB;EACzB,IAAI7D,YAAY,EAAE;IAChB6D,IAAI,gBACFtI,IAAA,CAAC3B,SAAS;MAAC,aAAU,MAAM;MAAAkK,QAAA,EACxBC,KAAK,CAACC,IAAI,CAAC;QAAE3C,MAAM,EAAE;MAAE,CAAC,EAAE,CAAC4C,CAAC,EAAEC,CAAC,kBAC9B3I,IAAA,CAACrB,WAAW;QAEViK,IAAI,EAAEnG,OAAO,CAACqD,MAAO;QACrB+C,YAAY,EAAEjD,YAAa;QAC3BkD,WAAW,EAAE;MAAM,GAHd,MAAMH,CAAC,EAIb,CACF;IAAC,CACO,CACZ;EACH,CAAC,MAAM,IAAI/F,KAAK,EAAE;IAChB0F,IAAI,gBACFtI,IAAA,CAAC3B,SAAS;MAAAkK,QAAA,eACRvI,IAAA,CAAC1B,QAAQ;QAAAiK,QAAA,eACPvI,IAAA,CAACzB,SAAS;UAACwK,OAAO,EAAElD,QAAS;UAACmD,EAAE,EAAEtJ,aAAc;UAAA6I,QAAA,eAC9CvI,IAAA,CAAC9B,GAAG;YAAC8K,EAAE,EAAErJ,cAAe;YAAA4I,QAAA,EAAEnF;UAAU,CAAM;QAAC,CAClC;MAAC,CACJ;IAAC,CACF,CACZ;EACH,CAAC,MAAM,IAAIZ,IAAI,CAACsD,MAAM,KAAK,CAAC,EAAE;IAC5BwC,IAAI,gBACFtI,IAAA,CAAC3B,SAAS;MAAC,aAAWsE,OAAO,IAAIsG,SAAU;MAAAV,QAAA,eACzCvI,IAAA,CAAC1B,QAAQ;QAAAiK,QAAA,eACPvI,IAAA,CAACzB,SAAS;UAACwK,OAAO,EAAElD,QAAS;UAACmD,EAAE,EAAEtJ,aAAc;UAAA6I,QAAA,eAC9CvI,IAAA,CAAC9B,GAAG;YAAC8K,EAAE,EAAErJ,cAAe;YAAA4I,QAAA,EACrB/E,QAAQ,GAAGL,kBAAkB,GAAGD;UAAU,CACxC;QAAC,CACG;MAAC,CACJ;IAAC,CACF,CACZ;EACH,CAAC,MAAM;IACLoF,IAAI,gBACFpI,KAAA,CAAC7B,SAAS;MAAC,aAAWsE,OAAO,IAAIsG,SAAU;MAAAV,QAAA,GACxCV,UAAU,GAAG,CAAC,iBACb7H,IAAA,CAAC1B,QAAQ;QAAC,eAAY,MAAM;QAAC4K,KAAK,EAAE;UAAE1H,MAAM,EAAEqG;QAAW,CAAE;QAAAU,QAAA,eACzDvI,IAAA,CAACzB,SAAS;UAACwK,OAAO,EAAElD,QAAS;UAACmD,EAAE,EAAErI;QAAgB,CAAE;MAAC,CAC7C,CACX,EACA4G,YAAY,CAACb,GAAG,CAAEyC,WAAW,IAAK;QACjC,MAAM5I,GAAG,GAAGiC,IAAI,CAAC2G,WAAW,CAACC,KAAK,CAAC;QACnC,IAAI,CAAC7I,GAAG,EAAE,OAAO,IAAI;QACrB,MAAM+B,EAAE,GAAGe,QAAQ,CAAC9C,GAAG,CAAC;QACxB,MAAM8I,UAAU,GAAGpD,WAAW,CAACK,GAAG,CAAChE,EAAE,CAAC;QACtC,MAAMgH,KAAK,GAAG/F,UAAU,KAAKjB,EAAE;QAC/B,MAAMiH,SAAS,GAAG,CAAC,CAACjG,UAAU;QAC9B,oBACEpD,KAAA,CAAC5B,QAAQ;UAEP,cAAY6K,WAAW,CAACC,KAAM;UAC9B,iBAAeD,WAAW,CAACC,KAAK,GAAG,CAAE;UACrCI,KAAK;UACL,iBAAeH,UAAU,IAAIJ,SAAU;UACvCQ,SAAS,EAAEH,KAAK,GAAG,iBAAiB,GAAGL,SAAU;UACjDS,OAAO,EAAEH,SAAS,GAAG,MAAMjG,UAAU,GAAG/C,GAAG,CAAC,GAAG0I,SAAU;UACzDU,SAAS,EAAEJ,SAAS,GAAGxC,gBAAgB,CAACxG,GAAG,CAAC,GAAG0I,SAAU;UACzDW,QAAQ,EAAEL,SAAS,GAAG,CAAC,GAAGN,SAAU;UACpCC,KAAK,EAAE;YAAE1H,MAAM,EAAE2H,WAAW,CAACU;UAAK,CAAE;UACpCb,EAAE,EAAEO,SAAS,GAAGjK,gBAAgB,GAAGC,aAAc;UAAAgJ,QAAA,GAEhD3C,YAAY,iBACX5F,IAAA,CAACzB,SAAS;YAACqC,OAAO,EAAC,UAAU;YAACoI,EAAE,EAAEvJ,qBAAsB;YAAA8I,QAAA,eACtDvI,IAAA,CAACxB,QAAQ;cACPqL,IAAI,EAAC,OAAO;cACZC,OAAO,EAAET,UAAW;cACpBU,QAAQ,EAAG/C,CAAC,IAAK;gBACfA,CAAC,CAACgD,eAAe,CAAC,CAAC;gBACnBrD,SAAS,CAACrE,EAAE,CAAC;cACf,CAAE;cACFoH,OAAO,EAAG1C,CAAC,IAAKA,CAAC,CAACgD,eAAe,CAAC,CAAE;cACpCL,SAAS,EAAG3C,CAAC,IAAKA,CAAC,CAACgD,eAAe,CAAC,CAAE;cACtCC,SAAS,EAAE;gBAAEC,KAAK,EAAE;kBAAE,YAAY,EAAE5F,CAAC,CAAC6F,SAAS,CAAC7H,EAAE;gBAAE;cAAE;YAAE,CACzD;UAAC,CACO,CACZ,EACAG,OAAO,CAACiE,GAAG,CAAEV,GAAG,IAAK;YACpB,MAAMoE,KAAK,GAAGpE,GAAG,CAACqE,QAAQ,GACtBrE,GAAG,CAACqE,QAAQ,CAAC9J,GAAG,CAAC,GACjB4B,aAAa,CAAC5B,GAAG,EAAEyF,GAAG,CAAC5D,GAAG,CAAC;YAC/B,MAAMkI,cAAc,GAClB,CAAC5F,MAAM,CAAC6F,UAAU,IAAI7F,MAAM,CAAC6F,UAAU,CAACvE,GAAG,CAAC5D,GAAG,CAAC,KAChD4D,GAAG,CAACzE,KAAK;YACX;YACA;YACA;YACA,MAAMiJ,MAAsB,GAAG;cAC7BC,QAAQ,EAAE,kBAAkB;cAC5BC,UAAU,EAAE1E,GAAG,CAAC2E,IAAI,GAAG,QAAQ,GAAG,QAAQ;cAC1CzC,QAAQ,EAAE,QAAQ;cAClB0C,YAAY,EAAE,UAAU;cACxB,IAAI5E,GAAG,CAAC6E,IAAI,GAAG;gBAAE7I,UAAU,EAAE;cAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;cACvD,IAAIgE,GAAG,CAAC8E,OAAO,IAAI9E,GAAG,CAAC6E,IAAI,GACvB;gBAAEE,kBAAkB,EAAE;cAAe,CAAC,GACtC,CAAC,CAAC,CAAC;cACP,IAAIT,cAAc,IAAI,IAAI,GAAG;gBAAE/I,KAAK,EAAE+I;cAAe,CAAC,GAAG,CAAC,CAAC,CAAC;cAC5D,IAAItE,GAAG,CAACgF,QAAQ,IAAI,IAAI,GAAG;gBAAEA,QAAQ,EAAEhF,GAAG,CAACgF;cAAS,CAAC,GAAG,CAAC,CAAC;YAC5D,CAAC;YACD,oBACEhL,IAAA,CAACzB,SAAS;cAER0M,KAAK,EAAEjF,GAAG,CAACiF,KAAK,KAAKjF,GAAG,CAAC8E,OAAO,GAAG,OAAO,GAAG,MAAM,CAAE;cACrD9B,EAAE,EAAEwB,MAAO;cAAAjC,QAAA,EAEVvC,GAAG,CAACkF,MAAM,GACPlF,GAAG,CAACkF,MAAM,CAAC3K,GAAG,CAAC,GACd6J,KAAK,IAAwB;YAAG,GANhCpE,GAAG,CAAC5D,GAOA,CAAC;UAEhB,CAAC,CAAC;QAAA,GA5DG+G,WAAW,CAAC/G,GA6DT,CAAC;MAEf,CAAC,CAAC,EACD2F,aAAa,GAAG,CAAC,iBAChB/H,IAAA,CAAC1B,QAAQ;QAAC,eAAY,MAAM;QAAC4K,KAAK,EAAE;UAAE1H,MAAM,EAAEuG;QAAc,CAAE;QAAAQ,QAAA,eAC5DvI,IAAA,CAACzB,SAAS;UAACwK,OAAO,EAAElD,QAAS;UAACmD,EAAE,EAAErI;QAAgB,CAAE;MAAC,CAC7C,CACX;IAAA,CACQ,CACZ;EACH;EAEA,oBACET,KAAA,CAAChC,GAAG;IAAC8K,EAAE,EAAE5J,YAAa;IAAAmJ,QAAA,gBACpBvI,IAAA,CAAC9B,GAAG;MAACiN,GAAG,EAAEjE,SAAU;MAAC8B,EAAE,EAAEf,iBAAkB;MAAAM,QAAA,eACzCrI,KAAA,CAAC/B,KAAK;QACJ,cAAYqG,SAAU;QACtB,iBAAehC,IAAI,CAACsD,MAAM,GAAGtD,IAAI,CAACsD,MAAM,GAAG,CAAC,GAAGmD,SAAU;QACzDY,IAAI,EAAEpG,WAAW,KAAK,SAAS,GAAG,OAAO,GAAG,QAAS;QACrD2H,YAAY;QACZpC,EAAE,EAAEX,OAAQ;QAAAE,QAAA,gBAEZvI,IAAA,CAAC5B,SAAS;UAAAmK,QAAA,eACRrI,KAAA,CAAC5B,QAAQ;YAAC,iBAAe,CAAE;YAAAiK,QAAA,GACxB3C,YAAY,iBACX5F,IAAA,CAACzB,SAAS;cAACqC,OAAO,EAAC,UAAU;cAACoI,EAAE,EAAExJ,uBAAwB;cAAA+I,QAAA,eACxDvI,IAAA,CAACxB,QAAQ;gBACPqL,IAAI,EAAC,OAAO;gBACZC,OAAO,EAAE3D,WAAY;gBACrBkF,aAAa,EAAE9E,YAAa;gBAC5BwD,QAAQ,EAAEtD,SAAU;gBACpBwD,SAAS,EAAE;kBAAEC,KAAK,EAAE;oBAAE,YAAY,EAAE5F,CAAC,CAACgH;kBAAU;gBAAE;cAAE,CACrD;YAAC,CACO,CACZ,EACA7I,OAAO,CAACiE,GAAG,CAAEV,GAAG,IAAK;cACpB,MAAMuF,UAAU,GAAGxF,QAAQ,CAACC,GAAG,CAAC;cAChC,MAAMwF,WAAW,GAAGxH,SAAS,IAAIgC,GAAG,CAAChC,SAAS,KAAK,KAAK;cACxD,MAAMyH,aAAa,GAAGtH,WAAW,IAAI6B,GAAG,CAAC7B,WAAW,KAAK,KAAK;cAC9D,MAAMuH,QAAQ,GAAGH,UAAU,GACvB1M,WAAW,CAACgE,IAAI,EAAEmD,GAAG,CAAC5D,GAAG,CAAC,GAC1B6G,SAAS;cACb,MAAMqB,cAAc,GAClB,CAAC5F,MAAM,CAAC6F,UAAU,IAAI7F,MAAM,CAAC6F,UAAU,CAACvE,GAAG,CAAC5D,GAAG,CAAC,KAChD4D,GAAG,CAACzE,KAAK;cACX,MAAMoK,eAAe,GAAGF,aAAa,GACjC9G,OAAO,CAACiH,YAAY,CAAC5F,GAAG,CAAC5D,GAAG,CAAC,GAC7B,IAAI;cACR,MAAMyJ,iBAAiB,GAAGJ,aAAa,GACnC9G,OAAO,CAAC6F,MAAM,CAACxE,GAAG,CAAC5D,GAAG,CAAC,GACvB6G,SAAS;cACb,oBACE/I,KAAA,CAAC3B,SAAS;gBAER0M,KAAK,EAAEjF,GAAG,CAACiF,KAAK,KAAKjF,GAAG,CAAC8E,OAAO,GAAG,OAAO,GAAG,MAAM,CAAE;gBACrD,aAAWY,QAAS;gBAAA,IACfC,eAAe,IAAI,CAAC,CAAC;gBAC1B3C,EAAE,EAAE;kBACFjI,QAAQ,EAAE,QAAQ;kBAClBE,GAAG,EAAE,CAAC;kBACNE,MAAM,EAAE,CAAC;kBACT,IAAImJ,cAAc,IAAI,IAAI,GACtB;oBAAE/I,KAAK,EAAE+I;kBAAe,CAAC,GACzB,CAAC,CAAC,CAAC;kBACP,IAAIuB,iBAAiB,GAChBA,iBAAiB,GAClB,CAAC,CAAC;gBACR,CAAE;gBAAAtD,QAAA,GAEDgD,UAAU,IAAIzI,YAAY,gBACzB9C,IAAA,CAACpB,cAAc;kBACbkN,OAAO,EAAE9F,GAAG,CAAC5D,GAAI;kBACjBS,IAAI,EAAEA,IAAK;kBACXkJ,OAAO,EAAEjJ,YAAa;kBACtBmI,KAAK,EAAEjF,GAAG,CAACiF,KAAK,KAAKjF,GAAG,CAAC8E,OAAO,GAAG,OAAO,GAAG,MAAM,CAAE;kBAAAvC,QAAA,EAEpDvC,GAAG,CAACgG;gBAAM,CACG,CAAC,GAEjBhG,GAAG,CAACgG,MACL,EAEAP,aAAa,iBACZzL,IAAA,CAAC9B,GAAG;kBACF+N,SAAS,EAAC,QAAQ;kBAClBC,IAAI,EAAC,QAAQ;kBACb,qBAAmBlG,GAAG,CAAC5D,GAAI;kBAC3B,cAAW,2BAAwB;kBACnC,qBAAkB,+BAA+B;kBACjDuH,SAAS,EAAG3C,CAAC,IAAK;oBAChB,IACEA,CAAC,CAAC5E,GAAG,KAAK,WAAW,IACrB4E,CAAC,CAAC5E,GAAG,KAAK,YAAY,IACtB4E,CAAC,CAAC5E,GAAG,KAAK,MAAM,IAChB4E,CAAC,CAAC5E,GAAG,KAAK,KAAK,EACf;sBACA0C,sBAAsB,CAACG,OAAO,GAAGe,GAAG,CAAC5D,GAAG;oBAC1C;oBACAuC,OAAO,CAACwH,aAAa,CAACnG,GAAG,CAAC5D,GAAG,CAAC,CAAC4E,CAAC,CAAC;kBACnC,CAAE;kBACFgC,EAAE,EAAElI,eAAgB;kBAAAyH,QAAA,eAEpBvI,IAAA,CAACvB,iBAAiB;oBAACuK,EAAE,EAAE;sBAAEyB,QAAQ,EAAE;oBAAG;kBAAE,CAAE;gBAAC,CACxC,CACN,EAEAe,WAAW,iBACVxL,IAAA,CAAC9B,GAAG;kBACFkO,IAAI,EAAC,WAAW;kBAChB,oBAAiB,UAAU;kBAC3B,cAAW,2BAA2B;kBACtCxC,QAAQ,EAAE,CAAE;kBACZ,iBACE,OAAOU,cAAc,KAAK,QAAQ,GAC9B+B,IAAI,CAACC,KAAK,CAAChC,cAAc,CAAC,GAC1BrB,SACL;kBACD,iBAAevE,MAAM,CAAC6H,QAAS;kBAC/BC,SAAS,EAAC,OAAO;kBACjBC,WAAW,EAAE/H,MAAM,CAACgI,eAAe,CAAC1G,GAAG,CAAC5D,GAAG,CAAE;kBAC7CuH,SAAS,EAAEjF,MAAM,CAACyH,aAAa,CAACnG,GAAG,CAAC5D,GAAG,CAAE;kBACzC4G,EAAE,EAAE;oBACFjI,QAAQ,EAAE,UAAU;oBACpBE,GAAG,EAAE,CAAC;oBACN0L,cAAc,EAAE,CAAC;oBACjBpL,KAAK,EAAE,CAAC;oBACRC,MAAM,EAAE,MAAM;oBACdI,MAAM,EAAE,YAAY;oBACpBgL,UAAU,EAAE,MAAM;oBAClBC,WAAW,EAAE,MAAM;oBACnB1L,MAAM,EAAE,CAAC;oBACT,SAAS,EAAE;sBACTO,UAAU,EAAE;oBACd,CAAC;oBACD,UAAU,EAAE;sBACVA,UAAU,EAAE;oBACd,CAAC;oBACD,iBAAiB,EAAE;sBACjBO,OAAO,EAAE,yBAAyB;sBAClCC,aAAa,EAAE,MAAM;sBACrBR,UAAU,EAAE;oBACd;kBACF;gBAAE,CACH,CACF;cAAA,GA3FIsE,GAAG,CAAC5D,GA4FA,CAAC;YAEhB,CAAC,CAAC;UAAA,CACM;QAAC,CACF,CAAC,EACXkG,IAAI;MAAA,CACA;IAAC,CACL,CAAC,EACLrF,UAAU,iBACTjD,IAAA,CAACJ,UAAU;MAAA,GACLqD,UAAU;MACdN,OAAO,EAAEA,OAAQ;MACjBgB,MAAM,EAAEA,MAAO;MACfC,MAAM,EAAEU,CAAC,CAACrB;IAAW,CACtB,CACF;EAAA,CACE,CAAC;AAEV;AAEA,eAAeV,mBAAmB","ignoreList":[]}
@@ -1,9 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
1
  import * as React from "react";
8
2
  import ConfirmDialog from "../components/ConfirmDialog";
9
3
 
@@ -36,35 +30,37 @@ import ConfirmDialog from "../components/ConfirmDialog";
36
30
  * Charter R-5.1 + §09.3 + R-M.*. WCAG 2.4.7 (focus visible — inherited from Modal).
37
31
  */
38
32
  import { jsx as _jsx } from "react/jsx-runtime";
39
- function DeleteResourceConfirmDialog(_ref) {
40
- var isOpen = _ref.isOpen,
41
- onClose = _ref.onClose,
42
- onDelete = _ref.onDelete,
43
- title = _ref.title,
44
- description = _ref.description,
45
- impact = _ref.impact,
46
- _ref$confirmLabel = _ref.confirmLabel,
47
- confirmLabel = _ref$confirmLabel === void 0 ? "Confirmer" : _ref$confirmLabel,
48
- _ref$cancelLabel = _ref.cancelLabel,
49
- cancelLabel = _ref$cancelLabel === void 0 ? "Annuler" : _ref$cancelLabel,
50
- _ref$loading = _ref.loading,
51
- loading = _ref$loading === void 0 ? false : _ref$loading;
52
- return /*#__PURE__*/_jsx(ConfirmDialog, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
33
+ function DeleteResourceConfirmDialog({
34
+ isOpen,
35
+ onClose,
36
+ onDelete,
37
+ title,
38
+ description,
39
+ impact,
40
+ confirmLabel = "Confirmer",
41
+ cancelLabel = "Annuler",
42
+ loading = false
43
+ }) {
44
+ return /*#__PURE__*/_jsx(ConfirmDialog, {
53
45
  title: title,
54
46
  description: description,
55
47
  cancelLabel: cancelLabel,
56
48
  confirmLabel: confirmLabel,
57
49
  confirmVariant: "danger",
58
- loading: loading
59
- }, isOpen !== undefined ? {
60
- open: isOpen
61
- } : {}), onClose !== undefined ? {
62
- onClose: onClose
63
- } : {}), onDelete !== undefined ? {
64
- onConfirm: onDelete
65
- } : {}), impact !== undefined ? {
66
- impact: impact
67
- } : {}));
50
+ loading: loading,
51
+ ...(isOpen !== undefined ? {
52
+ open: isOpen
53
+ } : {}),
54
+ ...(onClose !== undefined ? {
55
+ onClose
56
+ } : {}),
57
+ ...(onDelete !== undefined ? {
58
+ onConfirm: onDelete
59
+ } : {}),
60
+ ...(impact !== undefined ? {
61
+ impact
62
+ } : {})
63
+ });
68
64
  }
69
65
  export default DeleteResourceConfirmDialog;
70
66
  //# sourceMappingURL=DeleteResourceConfirmDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteResourceConfirmDialog.js","names":["React","ConfirmDialog","jsx","_jsx","DeleteResourceConfirmDialog","_ref","isOpen","onClose","onDelete","title","description","impact","_ref$confirmLabel","confirmLabel","_ref$cancelLabel","cancelLabel","_ref$loading","loading","_objectSpread","confirmVariant","undefined","open","onConfirm"],"sources":["../../../../src/lib/v2/patterns/DeleteResourceConfirmDialog.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport ConfirmDialog from \"../components/ConfirmDialog\";\r\n\r\n/**\r\n * DeleteResourceConfirmDialog — Portnet UI v2\r\n *\r\n * Opinionated wrapper over v2.ConfirmDialog for irreversible delete actions\r\n * across the design system. Hard-wires the \"danger\" variant (Charter §09.3 —\r\n * the only correct choice for a destructive irreversible action) and sensible\r\n * FR defaults for the button labels.\r\n *\r\n * The prop names `isOpen` / `onDelete` are deliberately chosen over\r\n * v2.ConfirmDialog's `open` / `onConfirm` because call sites read more\r\n * naturally with action-specific verbs — every host-module audit converged on\r\n * this naming and the wrapper formalises it as the destructive-action\r\n * convention.\r\n *\r\n * <DeleteResourceConfirmDialog\r\n * isOpen // bool, REQUIRED\r\n * onClose // () => void, REQUIRED\r\n * onDelete // () => void, REQUIRED — fires on confirm\r\n * title // node, REQUIRED — surfaces the resource type\r\n * description? // node — single-sentence consequence\r\n * impact? // node[] — bullet-list of side effects (Charter R-5.1)\r\n * confirmLabel? // node, default \"Confirmer\"\r\n * cancelLabel? // node, default \"Annuler\"\r\n * loading? // bool — disables both buttons + spinner on confirm\r\n * />\r\n *\r\n * Charter R-5.1 + §09.3 + R-M.*. WCAG 2.4.7 (focus visible — inherited from Modal).\r\n */\r\n\r\ntype ConfirmDialogProps = React.ComponentProps<typeof ConfirmDialog>;\r\n\r\nexport interface DeleteResourceConfirmDialogProps {\r\n isOpen: ConfirmDialogProps[\"open\"];\r\n onClose: ConfirmDialogProps[\"onClose\"];\r\n /** Fires on confirm (maps to ConfirmDialog's onConfirm). */\r\n onDelete: ConfirmDialogProps[\"onConfirm\"];\r\n title: ConfirmDialogProps[\"title\"];\r\n description?: ConfirmDialogProps[\"description\"] | undefined;\r\n impact?: ConfirmDialogProps[\"impact\"] | undefined;\r\n confirmLabel?: ConfirmDialogProps[\"confirmLabel\"] | undefined;\r\n cancelLabel?: ConfirmDialogProps[\"cancelLabel\"] | undefined;\r\n loading?: ConfirmDialogProps[\"loading\"] | undefined;\r\n}\r\n\r\nfunction DeleteResourceConfirmDialog({\r\n isOpen,\r\n onClose,\r\n onDelete,\r\n title,\r\n description,\r\n impact,\r\n confirmLabel = \"Confirmer\",\r\n cancelLabel = \"Annuler\",\r\n loading = false,\r\n}: DeleteResourceConfirmDialogProps) {\r\n return (\r\n <ConfirmDialog\r\n title={title}\r\n description={description}\r\n cancelLabel={cancelLabel}\r\n confirmLabel={confirmLabel}\r\n confirmVariant=\"danger\"\r\n loading={loading}\r\n {...(isOpen !== undefined ? { open: isOpen } : {})}\r\n {...(onClose !== undefined ? { onClose } : {})}\r\n {...(onDelete !== undefined ? { onConfirm: onDelete } : {})}\r\n {...(impact !== undefined ? { impact } : {})}\r\n />\r\n );\r\n}\r\n\r\nexport default DeleteResourceConfirmDialog;\r\n"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,aAAa,MAAM,6BAA6B;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3BA,SAAAC,GAAA,IAAAC,IAAA;AA4CA,SAASC,2BAA2BA,CAAAC,IAAA,EAUC;EAAA,IATnCC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IACLC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,MAAM,GAAAN,IAAA,CAANM,MAAM;IAAAC,iBAAA,GAAAP,IAAA,CACNQ,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,WAAW,GAAAA,iBAAA;IAAAE,gBAAA,GAAAT,IAAA,CAC1BU,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,SAAS,GAAAA,gBAAA;IAAAE,YAAA,GAAAX,IAAA,CACvBY,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;EAEf,oBACEb,IAAA,CAACF,aAAa,EAAAiB,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA;IACZT,KAAK,EAAEA,KAAM;IACbC,WAAW,EAAEA,WAAY;IACzBK,WAAW,EAAEA,WAAY;IACzBF,YAAY,EAAEA,YAAa;IAC3BM,cAAc,EAAC,QAAQ;IACvBF,OAAO,EAAEA;EAAQ,GACZX,MAAM,KAAKc,SAAS,GAAG;IAAEC,IAAI,EAAEf;EAAO,CAAC,GAAG,CAAC,CAAC,GAC5CC,OAAO,KAAKa,SAAS,GAAG;IAAEb,OAAO,EAAPA;EAAQ,CAAC,GAAG,CAAC,CAAC,GACxCC,QAAQ,KAAKY,SAAS,GAAG;IAAEE,SAAS,EAAEd;EAAS,CAAC,GAAG,CAAC,CAAC,GACrDG,MAAM,KAAKS,SAAS,GAAG;IAAET,MAAM,EAANA;EAAO,CAAC,GAAG,CAAC,CAAC,CAC5C,CAAC;AAEN;AAEA,eAAeP,2BAA2B","ignoreList":[]}
1
+ {"version":3,"file":"DeleteResourceConfirmDialog.js","names":["React","ConfirmDialog","jsx","_jsx","DeleteResourceConfirmDialog","isOpen","onClose","onDelete","title","description","impact","confirmLabel","cancelLabel","loading","confirmVariant","undefined","open","onConfirm"],"sources":["../../../../src/lib/v2/patterns/DeleteResourceConfirmDialog.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport ConfirmDialog from \"../components/ConfirmDialog\";\r\n\r\n/**\r\n * DeleteResourceConfirmDialog — Portnet UI v2\r\n *\r\n * Opinionated wrapper over v2.ConfirmDialog for irreversible delete actions\r\n * across the design system. Hard-wires the \"danger\" variant (Charter §09.3 —\r\n * the only correct choice for a destructive irreversible action) and sensible\r\n * FR defaults for the button labels.\r\n *\r\n * The prop names `isOpen` / `onDelete` are deliberately chosen over\r\n * v2.ConfirmDialog's `open` / `onConfirm` because call sites read more\r\n * naturally with action-specific verbs — every host-module audit converged on\r\n * this naming and the wrapper formalises it as the destructive-action\r\n * convention.\r\n *\r\n * <DeleteResourceConfirmDialog\r\n * isOpen // bool, REQUIRED\r\n * onClose // () => void, REQUIRED\r\n * onDelete // () => void, REQUIRED — fires on confirm\r\n * title // node, REQUIRED — surfaces the resource type\r\n * description? // node — single-sentence consequence\r\n * impact? // node[] — bullet-list of side effects (Charter R-5.1)\r\n * confirmLabel? // node, default \"Confirmer\"\r\n * cancelLabel? // node, default \"Annuler\"\r\n * loading? // bool — disables both buttons + spinner on confirm\r\n * />\r\n *\r\n * Charter R-5.1 + §09.3 + R-M.*. WCAG 2.4.7 (focus visible — inherited from Modal).\r\n */\r\n\r\ntype ConfirmDialogProps = React.ComponentProps<typeof ConfirmDialog>;\r\n\r\nexport interface DeleteResourceConfirmDialogProps {\r\n isOpen: ConfirmDialogProps[\"open\"];\r\n onClose: ConfirmDialogProps[\"onClose\"];\r\n /** Fires on confirm (maps to ConfirmDialog's onConfirm). */\r\n onDelete: ConfirmDialogProps[\"onConfirm\"];\r\n title: ConfirmDialogProps[\"title\"];\r\n description?: ConfirmDialogProps[\"description\"] | undefined;\r\n impact?: ConfirmDialogProps[\"impact\"] | undefined;\r\n confirmLabel?: ConfirmDialogProps[\"confirmLabel\"] | undefined;\r\n cancelLabel?: ConfirmDialogProps[\"cancelLabel\"] | undefined;\r\n loading?: ConfirmDialogProps[\"loading\"] | undefined;\r\n}\r\n\r\nfunction DeleteResourceConfirmDialog({\r\n isOpen,\r\n onClose,\r\n onDelete,\r\n title,\r\n description,\r\n impact,\r\n confirmLabel = \"Confirmer\",\r\n cancelLabel = \"Annuler\",\r\n loading = false,\r\n}: DeleteResourceConfirmDialogProps) {\r\n return (\r\n <ConfirmDialog\r\n title={title}\r\n description={description}\r\n cancelLabel={cancelLabel}\r\n confirmLabel={confirmLabel}\r\n confirmVariant=\"danger\"\r\n loading={loading}\r\n {...(isOpen !== undefined ? { open: isOpen } : {})}\r\n {...(onClose !== undefined ? { onClose } : {})}\r\n {...(onDelete !== undefined ? { onConfirm: onDelete } : {})}\r\n {...(impact !== undefined ? { impact } : {})}\r\n />\r\n );\r\n}\r\n\r\nexport default DeleteResourceConfirmDialog;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,aAAa,MAAM,6BAA6B;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA3BA,SAAAC,GAAA,IAAAC,IAAA;AA4CA,SAASC,2BAA2BA,CAAC;EACnCC,MAAM;EACNC,OAAO;EACPC,QAAQ;EACRC,KAAK;EACLC,WAAW;EACXC,MAAM;EACNC,YAAY,GAAG,WAAW;EAC1BC,WAAW,GAAG,SAAS;EACvBC,OAAO,GAAG;AACsB,CAAC,EAAE;EACnC,oBACEV,IAAA,CAACF,aAAa;IACZO,KAAK,EAAEA,KAAM;IACbC,WAAW,EAAEA,WAAY;IACzBG,WAAW,EAAEA,WAAY;IACzBD,YAAY,EAAEA,YAAa;IAC3BG,cAAc,EAAC,QAAQ;IACvBD,OAAO,EAAEA,OAAQ;IAAA,IACZR,MAAM,KAAKU,SAAS,GAAG;MAAEC,IAAI,EAAEX;IAAO,CAAC,GAAG,CAAC,CAAC;IAAA,IAC5CC,OAAO,KAAKS,SAAS,GAAG;MAAET;IAAQ,CAAC,GAAG,CAAC,CAAC;IAAA,IACxCC,QAAQ,KAAKQ,SAAS,GAAG;MAAEE,SAAS,EAAEV;IAAS,CAAC,GAAG,CAAC,CAAC;IAAA,IACrDG,MAAM,KAAKK,SAAS,GAAG;MAAEL;IAAO,CAAC,GAAG,CAAC,CAAC;EAAA,CAC5C,CAAC;AAEN;AAEA,eAAeN,2BAA2B","ignoreList":[]}
@@ -0,0 +1,108 @@
1
+ import * as React from "react";
2
+ import Box from "@mui/material/Box";
3
+ import { layout } from "../tokens";
4
+
5
+ /**
6
+ * DetailSplit — Portnet UI v2 (pattern)
7
+ *
8
+ * Charter §07 R-L.7 · Platform Mandatory UX Patterns §Detail /
9
+ * Consultation — Vertical Progress.
10
+ *
11
+ * The canonical consultation skeleton: the record on the left, the
12
+ * progression rail on the right. Both halves are MUST on every detail
13
+ * page of the platform ("Display progression on the right side"), and
14
+ * the library shipped the rail itself (`VStepper`) but not the geometry
15
+ * that places it — so every host wrote the same three-value flex row by
16
+ * hand.
17
+ *
18
+ * Promoted from `refonte-frontend` (Area 4), where it appeared TWICE —
19
+ * `DetailPage` and `TraitementDemande` — as:
20
+ *
21
+ * <div style={{ display: "flex", gap: "var(--s-4)",
22
+ * alignItems: "flex-start", flexWrap: "wrap" }}>
23
+ * <div style={{ flex: "1 1 560px", minWidth: 0 }}>…</div>
24
+ * <aside style={{ flex: "0 1 300px", minWidth: 260 }}>…</aside>
25
+ * </div>
26
+ *
27
+ * Three magic widths per copy (R-2.3), and nothing keeping the two
28
+ * screens agreeing — they had already drifted on the `<aside>` carrying
29
+ * no accessible name. The widths now come from `tokens.layout.detail`.
30
+ *
31
+ * REFLOW WITHOUT A MEDIA QUERY. `flexWrap: "wrap"` plus the two
32
+ * flex-bases is the whole responsive strategy: as soon as the container
33
+ * cannot seat `mainMin + aside`, the rail drops BELOW the content at full
34
+ * width. No breakpoint, no `useMediaQuery`, and correct at any CONTAINER
35
+ * width rather than at viewport widths only (WCAG 1.4.10).
36
+ * `minWidth: 0` on the content column is load-bearing — without it a
37
+ * wide child (a DataGrid, a long mono value) refuses to shrink and
38
+ * overflows the viewport instead of wrapping.
39
+ *
40
+ * The rail renders as a real `<aside>` (complementary landmark). Pass
41
+ * `asideLabel` whenever the page has more than one complementary region,
42
+ * or when the rail's own heading does not name it in a screen-reader
43
+ * landmark list (R-Ar.1).
44
+ *
45
+ * NO `Surface` IS IMPOSED ON EITHER HALF, deliberately. Hosts typically
46
+ * fill these slots with components that already compose `Surface`
47
+ * (`FormSection`, a detail card). Wrapping them again produces a card
48
+ * inside a card — one large white block swallowing the others, a defect
49
+ * this pattern's origin module had to fix at browser acceptance.
50
+ *
51
+ * Usage:
52
+ * import { DetailSplit, FormSection, VStepper } from "@portnet/ui";
53
+ *
54
+ * <DetailSplit
55
+ * asideLabel="Progression du dossier"
56
+ * aside={
57
+ * <FormSection title="Progression du dossier" cols="none">
58
+ * <VStepper items={etapes} ariaLabel="Progression du dossier" />
59
+ * </FormSection>
60
+ * }
61
+ * sx={{ marginBlockStart: "var(--s-4)" }}
62
+ * >
63
+ * <RecordCard … />
64
+ * </DetailSplit>
65
+ *
66
+ * With no `aside`, the content column simply grows to the full width —
67
+ * so a page whose rail is conditional needs no branch on the layout.
68
+ */
69
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
70
+ function DetailSplit({
71
+ children,
72
+ aside,
73
+ asideLabel,
74
+ gap,
75
+ sx
76
+ }) {
77
+ return /*#__PURE__*/_jsxs(Box, {
78
+ sx: {
79
+ display: "flex",
80
+ gap: gap ?? "var(--s-4)",
81
+ /* Columns of unequal height must not stretch: the rail keeps its
82
+ * own height instead of tracking the record's. */
83
+ alignItems: "flex-start",
84
+ /* The entire responsive strategy — see the header note. */
85
+ flexWrap: "wrap",
86
+ ...sx
87
+ },
88
+ children: [/*#__PURE__*/_jsx(Box, {
89
+ sx: {
90
+ flex: `1 1 ${layout.detail.mainMin}px`,
91
+ minWidth: 0
92
+ },
93
+ children: children
94
+ }), aside != null ? /*#__PURE__*/_jsx(Box, {
95
+ component: "aside",
96
+ ...(asideLabel !== undefined ? {
97
+ "aria-label": asideLabel
98
+ } : {}),
99
+ sx: {
100
+ flex: `0 1 ${layout.detail.aside}px`,
101
+ minWidth: layout.detail.asideMin
102
+ },
103
+ children: aside
104
+ }) : null]
105
+ });
106
+ }
107
+ export default DetailSplit;
108
+ //# sourceMappingURL=DetailSplit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DetailSplit.js","names":["React","Box","layout","jsx","_jsx","jsxs","_jsxs","DetailSplit","children","aside","asideLabel","gap","sx","display","alignItems","flexWrap","flex","detail","mainMin","minWidth","component","undefined","asideMin"],"sources":["../../../../src/lib/v2/patterns/DetailSplit.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\nimport { layout } from \"../tokens\";\r\n\r\n/**\r\n * DetailSplit — Portnet UI v2 (pattern)\r\n *\r\n * Charter §07 R-L.7 · Platform Mandatory UX Patterns §Detail /\r\n * Consultation — Vertical Progress.\r\n *\r\n * The canonical consultation skeleton: the record on the left, the\r\n * progression rail on the right. Both halves are MUST on every detail\r\n * page of the platform (\"Display progression on the right side\"), and\r\n * the library shipped the rail itself (`VStepper`) but not the geometry\r\n * that places it — so every host wrote the same three-value flex row by\r\n * hand.\r\n *\r\n * Promoted from `refonte-frontend` (Area 4), where it appeared TWICE —\r\n * `DetailPage` and `TraitementDemande` — as:\r\n *\r\n * <div style={{ display: \"flex\", gap: \"var(--s-4)\",\r\n * alignItems: \"flex-start\", flexWrap: \"wrap\" }}>\r\n * <div style={{ flex: \"1 1 560px\", minWidth: 0 }}>…</div>\r\n * <aside style={{ flex: \"0 1 300px\", minWidth: 260 }}>…</aside>\r\n * </div>\r\n *\r\n * Three magic widths per copy (R-2.3), and nothing keeping the two\r\n * screens agreeing — they had already drifted on the `<aside>` carrying\r\n * no accessible name. The widths now come from `tokens.layout.detail`.\r\n *\r\n * REFLOW WITHOUT A MEDIA QUERY. `flexWrap: \"wrap\"` plus the two\r\n * flex-bases is the whole responsive strategy: as soon as the container\r\n * cannot seat `mainMin + aside`, the rail drops BELOW the content at full\r\n * width. No breakpoint, no `useMediaQuery`, and correct at any CONTAINER\r\n * width rather than at viewport widths only (WCAG 1.4.10).\r\n * `minWidth: 0` on the content column is load-bearing — without it a\r\n * wide child (a DataGrid, a long mono value) refuses to shrink and\r\n * overflows the viewport instead of wrapping.\r\n *\r\n * The rail renders as a real `<aside>` (complementary landmark). Pass\r\n * `asideLabel` whenever the page has more than one complementary region,\r\n * or when the rail's own heading does not name it in a screen-reader\r\n * landmark list (R-Ar.1).\r\n *\r\n * NO `Surface` IS IMPOSED ON EITHER HALF, deliberately. Hosts typically\r\n * fill these slots with components that already compose `Surface`\r\n * (`FormSection`, a detail card). Wrapping them again produces a card\r\n * inside a card — one large white block swallowing the others, a defect\r\n * this pattern's origin module had to fix at browser acceptance.\r\n *\r\n * Usage:\r\n * import { DetailSplit, FormSection, VStepper } from \"@portnet/ui\";\r\n *\r\n * <DetailSplit\r\n * asideLabel=\"Progression du dossier\"\r\n * aside={\r\n * <FormSection title=\"Progression du dossier\" cols=\"none\">\r\n * <VStepper items={etapes} ariaLabel=\"Progression du dossier\" />\r\n * </FormSection>\r\n * }\r\n * sx={{ marginBlockStart: \"var(--s-4)\" }}\r\n * >\r\n * <RecordCard … />\r\n * </DetailSplit>\r\n *\r\n * With no `aside`, the content column simply grows to the full width —\r\n * so a page whose rail is conditional needs no branch on the layout.\r\n */\r\n\r\nexport interface DetailSplitProps {\r\n /** Content column (left on desktop, first in DOM and reading order). */\r\n children?: React.ReactNode | undefined;\r\n /**\r\n * Right-hand rail — the progression stepper on a consultation page.\r\n * Omit it and the content column takes the full width.\r\n */\r\n aside?: React.ReactNode | undefined;\r\n /**\r\n * Accessible name of the `<aside>` landmark. Set it when the page has\r\n * several complementary regions.\r\n */\r\n asideLabel?: string | undefined;\r\n /** Gap between the two columns. @default var(--s-4) */\r\n gap?: string | undefined;\r\n /** MUI sx overrides applied to the row container. */\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nfunction DetailSplit({\r\n children,\r\n aside,\r\n asideLabel,\r\n gap,\r\n sx,\r\n}: DetailSplitProps) {\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n gap: gap ?? \"var(--s-4)\",\r\n /* Columns of unequal height must not stretch: the rail keeps its\r\n * own height instead of tracking the record's. */\r\n alignItems: \"flex-start\",\r\n /* The entire responsive strategy — see the header note. */\r\n flexWrap: \"wrap\",\r\n ...(sx as SystemStyleObject<Theme>),\r\n }}\r\n >\r\n <Box sx={{ flex: `1 1 ${layout.detail.mainMin}px`, minWidth: 0 }}>\r\n {children}\r\n </Box>\r\n\r\n {aside != null ? (\r\n <Box\r\n component=\"aside\"\r\n {...(asideLabel !== undefined ? { \"aria-label\": asideLabel } : {})}\r\n sx={{\r\n flex: `0 1 ${layout.detail.aside}px`,\r\n minWidth: layout.detail.asideMin,\r\n }}\r\n >\r\n {aside}\r\n </Box>\r\n ) : null}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default DetailSplit;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,GAAG,MAAM,mBAAmB;AAGnC,SAASC,MAAM,QAAQ,WAAW;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA/DA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAoFA,SAASC,WAAWA,CAAC;EACnBC,QAAQ;EACRC,KAAK;EACLC,UAAU;EACVC,GAAG;EACHC;AACgB,CAAC,EAAE;EACnB,oBACEN,KAAA,CAACL,GAAG;IACFW,EAAE,EAAE;MACFC,OAAO,EAAE,MAAM;MACfF,GAAG,EAAEA,GAAG,IAAI,YAAY;MACxB;AACR;MACQG,UAAU,EAAE,YAAY;MACxB;MACAC,QAAQ,EAAE,MAAM;MAChB,GAAIH;IACN,CAAE;IAAAJ,QAAA,gBAEFJ,IAAA,CAACH,GAAG;MAACW,EAAE,EAAE;QAAEI,IAAI,EAAE,OAAOd,MAAM,CAACe,MAAM,CAACC,OAAO,IAAI;QAAEC,QAAQ,EAAE;MAAE,CAAE;MAAAX,QAAA,EAC9DA;IAAQ,CACN,CAAC,EAELC,KAAK,IAAI,IAAI,gBACZL,IAAA,CAACH,GAAG;MACFmB,SAAS,EAAC,OAAO;MAAA,IACZV,UAAU,KAAKW,SAAS,GAAG;QAAE,YAAY,EAAEX;MAAW,CAAC,GAAG,CAAC,CAAC;MACjEE,EAAE,EAAE;QACFI,IAAI,EAAE,OAAOd,MAAM,CAACe,MAAM,CAACR,KAAK,IAAI;QACpCU,QAAQ,EAAEjB,MAAM,CAACe,MAAM,CAACK;MAC1B,CAAE;MAAAd,QAAA,EAEDC;IAAK,CACH,CAAC,GACJ,IAAI;EAAA,CACL,CAAC;AAEV;AAEA,eAAeF,WAAW","ignoreList":[]}
@@ -1,14 +1,6 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
1
  import * as React from "react";
8
2
  import Box from "@mui/material/Box";
9
- import FavoriteToggle from "../components/FavoriteToggle";
10
- import Tooltip from "../components/Tooltip";
11
- import { useIsFavorite } from "../personalization/capabilities/favorites";
3
+ import RowFavoriteToggle, { DEFAULT_ROW_FAVORITE_LABELS } from "./RowFavoriteToggle";
12
4
 
13
5
  /**
14
6
  * FavoriteColumn - Portnet UI v2 (pattern)
@@ -48,18 +40,22 @@ import { useIsFavorite } from "../personalization/capabilities/favorites";
48
40
  * `getRowId` MUST match the one passed to <DataGrid> so the follow id and
49
41
  * the grid row id agree. Requires a <UserPersonalizationProvider>
50
42
  * ancestor (useIsFavorite throws otherwise).
43
+ *
44
+ * The per-row star itself is `RowFavoriteToggle` (gap G-36). It used to be a
45
+ * private `FavoriteCell` in this file, which made the follow control reachable
46
+ * as a DataGrid column and nowhere else — so hosts rebuilt it by hand for the
47
+ * `MobileRowCard` `leading` slot that DataGrid switches to below its
48
+ * `mobileBreakpoint`, and the copies drifted on their accessible names. Both
49
+ * now render the same component, so desktop and mobile agree by construction.
51
50
  */
52
51
  import { jsx as _jsx } from "react/jsx-runtime";
53
- var DEFAULT_LABELS = Object.freeze({
54
- columnHeader: "Suivis",
55
- addFavorite: "Suivre",
56
- removeFavorite: "Ne plus suivre",
57
- statusFollowed: "Suivi",
58
- statusNotFollowed: "Non suivi"
52
+ const DEFAULT_LABELS = Object.freeze({
53
+ ...DEFAULT_ROW_FAVORITE_LABELS,
54
+ columnHeader: "Suivis"
59
55
  });
60
56
 
61
57
  /** Visually hidden, but exposed to assistive tech (the column's accessible name). */
62
- var SR_ONLY_SX = Object.freeze({
58
+ const SR_ONLY_SX = Object.freeze({
63
59
  position: "absolute",
64
60
  width: "1px",
65
61
  height: "1px",
@@ -70,65 +66,23 @@ var SR_ONLY_SX = Object.freeze({
70
66
  whiteSpace: "nowrap",
71
67
  border: 0
72
68
  });
73
- function FavoriteCell(props) {
74
- var resourceKey = props.resourceKey,
75
- id = props.id,
76
- size = props.size,
77
- addLabel = props.addLabel,
78
- removeLabel = props.removeLabel,
79
- followedLabel = props.followedLabel,
80
- notFollowedLabel = props.notFollowedLabel,
81
- rowLabel = props.rowLabel;
82
- var _useIsFavorite = useIsFavorite(resourceKey, id),
83
- isFavorite = _useIsFavorite.isFavorite,
84
- toggle = _useIsFavorite.toggle;
85
-
86
- // Action-oriented accessible name (toggle convention); aria-pressed (set
87
- // by FavoriteToggle) carries the state. Always provided, so the Tooltip
88
- // never mirrors its title onto the trigger.
89
- var action = isFavorite ? removeLabel : addLabel;
90
- var ariaLabel = rowLabel ? action + " : " + rowLabel : action;
91
- // Visible status shown on hover/focus.
92
- var statusLabel = isFavorite ? followedLabel : notFollowedLabel;
93
- var handleChange = function handleChange(_next, e) {
94
- // Don't let the toggle's click bubble to the row's onRowClick.
95
- if (e && typeof e.stopPropagation === "function") e.stopPropagation();
96
- toggle();
97
- };
98
- var handleKeyDown = function handleKeyDown(e) {
99
- // Prevent row-level Enter/Space (onRowClick) from also firing; the
100
- // button's own native activation is unaffected.
101
- e.stopPropagation();
102
- };
103
- return /*#__PURE__*/_jsx(Tooltip, {
104
- title: statusLabel,
105
- children: /*#__PURE__*/_jsx(FavoriteToggle, {
106
- pressed: isFavorite,
107
- onChange: handleChange,
108
- onKeyDown: handleKeyDown,
109
- size: size,
110
- labels: {
111
- addFavorite: addLabel,
112
- removeFavorite: removeLabel
113
- },
114
- "aria-label": ariaLabel
115
- })
116
- });
117
- }
118
69
  /**
119
70
  * Builds a v2 DataGrid column definition for the compact follow-star column.
120
71
  */
121
72
  export default function makeFavoriteColumn(options) {
122
- var opts = options;
123
- var resourceKey = opts.resourceKey;
124
- var getRowId = typeof opts.getRowId === "function" ? opts.getRowId : function defaultGetRowId(r) {
73
+ const opts = options;
74
+ const resourceKey = opts.resourceKey;
75
+ const getRowId = typeof opts.getRowId === "function" ? opts.getRowId : function defaultGetRowId(r) {
125
76
  return r.id;
126
77
  };
127
- var key = opts.key || "__favorite__";
128
- var size = opts.size || "sm";
129
- var width = opts.width != null ? opts.width : 44;
130
- var getRowLabel = typeof opts.getRowLabel === "function" ? opts.getRowLabel : null;
131
- var L = opts.labels ? _objectSpread(_objectSpread({}, DEFAULT_LABELS), opts.labels) : DEFAULT_LABELS;
78
+ const key = opts.key || "__favorite__";
79
+ const size = opts.size || "sm";
80
+ const width = opts.width != null ? opts.width : 44;
81
+ const getRowLabel = typeof opts.getRowLabel === "function" ? opts.getRowLabel : null;
82
+ const L = opts.labels ? {
83
+ ...DEFAULT_LABELS,
84
+ ...opts.labels
85
+ } : DEFAULT_LABELS;
132
86
  if (process.env["NODE_ENV"] !== "production" && !resourceKey) {
133
87
  // eslint-disable-next-line no-console
134
88
  console.warn("[@portnet/ui v2] makeFavoriteColumn: `resourceKey` is required to scope follows.");
@@ -148,14 +102,11 @@ export default function makeFavoriteColumn(options) {
148
102
  reorderable: false,
149
103
  width: width,
150
104
  render: function renderFavorite(row) {
151
- return /*#__PURE__*/_jsx(FavoriteCell, {
105
+ return /*#__PURE__*/_jsx(RowFavoriteToggle, {
152
106
  resourceKey: resourceKey,
153
- id: getRowId(row),
107
+ rowId: getRowId(row),
154
108
  size: size,
155
- addLabel: L.addFavorite,
156
- removeLabel: L.removeFavorite,
157
- followedLabel: L.statusFollowed,
158
- notFollowedLabel: L.statusNotFollowed,
109
+ labels: L,
159
110
  rowLabel: getRowLabel ? getRowLabel(row) : undefined
160
111
  });
161
112
  }