@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":"BulkActionBar.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Button","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","selection","n","concat","toolbarAria","clear","BulkActionBar","_ref","_ref$count","count","onClear","_ref$actions","actions","label","labels","L","mergeLabels","text","overlayHover","dividerOverlay","jsxs","role","sx","position","bottom","left","transform","zIndex","display","alignItems","flexWrap","justifyContent","maxWidth","gap","padding","background","color","borderRadius","boxShadow","children","jsx","fontSize","fontWeight","fontVariantNumeric","width","height","map","a","size","variant","icon","onClick","disabled","_default","exports"],"sources":["../../../src/lib/v2/patterns/BulkActionBar.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Button from \"../components/Button\";\r\nimport type { ButtonProps } from \"../components/Button\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * BulkActionBar - Portnet UI v2 (pattern)\r\n *\r\n * Charter R-DG.8 - sélection multiple → bulk bar sticky bottom-center.\r\n * Affiche le compteur d'éléments sélectionnés + boutons d'actions + désélection.\r\n *\r\n * <BulkActionBar\r\n * count={selected.size}\r\n * onClear={() => setSelected(new Set())}\r\n * actions={[\r\n * { label: \"Exporter\", icon: <DownloadIcon />, onClick: exportSel },\r\n * { label: \"Archiver\", icon: <ArchiveIcon />, onClick: archiveSel },\r\n * { label: \"Supprimer\", icon: <DeleteIcon />, onClick: deleteSel, variant: \"danger\" },\r\n * ]}\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <BulkActionBar labels={{\r\n * selection: (n) => `${n} item${n === 1 ? \"\" : \"s\"} selected`,\r\n * toolbarAria: \"Bulk actions\",\r\n * clear: \"Clear selection\",\r\n * }} ... />\r\n *\r\n * `selection` is a function so consumers can plug in proper plural\r\n * rules (Intl.PluralRules, ICU MessageFormat, i18next, …).\r\n *\r\n * A11y note (R-A.1):\r\n * The selection count is rendered inside a polite live region so that\r\n * updates (\"3 éléments sélectionnés\" → \"5 éléments sélectionnés\") are\r\n * announced to screen-reader users without stealing focus.\r\n *\r\n * Responsive note (R-RS / WCAG 1.4.10):\r\n * The bar is centre-anchored (left:50% / translateX(-50%)). Without a\r\n * width cap a long action set would push its ends off both screen\r\n * edges on a phone. maxWidth caps it to the viewport and flexWrap lets\r\n * surplus actions wrap to a second centred row instead of overflowing.\r\n */\r\n\r\nexport interface BulkAction {\r\n label: React.ReactNode;\r\n onClick?: (() => void) | undefined;\r\n icon?: React.ReactElement | undefined;\r\n variant?: ButtonProps[\"variant\"] | undefined;\r\n disabled?: boolean | undefined;\r\n}\r\n\r\nexport interface BulkActionBarLabels {\r\n selection?: ((n: number) => React.ReactNode) | undefined;\r\n toolbarAria?: string | undefined;\r\n clear?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface BulkActionBarProps {\r\n count?: number | undefined;\r\n onClear?: (() => void) | undefined;\r\n actions?: BulkAction[] | undefined;\r\n /** Legacy prop: a pre-formatted node override of the count text.\r\n * Wins over labels.selection when both are passed. */\r\n label?: React.ReactNode | undefined;\r\n labels?: BulkActionBarLabels | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n selection: (n: number) => `${n} élément${n > 1 ? \"s\" : \"\"} sélectionné${n > 1 ? \"s\" : \"\"}`,\r\n toolbarAria: \"Actions sur la sélection\",\r\n clear: \"Désélectionner\",\r\n});\r\n\r\nfunction BulkActionBar({ count = 0, onClear, actions = [], label, labels }: BulkActionBarProps) {\r\n if (count <= 0) return null;\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n // Legacy `label` prop wins over labels.selection for back-compat.\r\n const text = label != null ? label : L.selection(count);\r\n\r\n // R-AI.1 - currentColor-derived overlays so hover & divider auto-adapt\r\n // to the bar's fg-inverse value (was hard-coded white rgba).\r\n const overlayHover = \"color-mix(in srgb, currentColor 15%, transparent)\";\r\n const dividerOverlay = \"color-mix(in srgb, currentColor 22%, transparent)\";\r\n\r\n return (\r\n <Box\r\n role=\"toolbar\"\r\n aria-label={L.toolbarAria}\r\n sx={{\r\n position: \"fixed\",\r\n bottom: \"var(--s-5)\",\r\n left: \"50%\",\r\n transform: \"translateX(-50%)\",\r\n zIndex: \"var(--z-bulk)\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n // R-RS — centre-anchored bar must never exceed the viewport, and\r\n // surplus actions wrap rather than spilling past the screen edges.\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n maxWidth: \"calc(100vw - var(--s-4) * 2)\",\r\n gap: 1.5,\r\n padding: \"var(--s-2) var(--s-2) var(--s-2) var(--s-4)\",\r\n background: \"var(--fg)\",\r\n color: \"var(--fg-inverse)\",\r\n borderRadius: \"var(--r-full)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n }}\r\n >\r\n <Box\r\n // R-A.1 - polite live region so SR users hear each count change\r\n // without losing context. aria-atomic ensures the full sentence is\r\n // re-read on update, not just the diff.\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n }}\r\n >\r\n {text}\r\n </Box>\r\n {/* Vertical divider — width:1 / height:24 are divider geometry,\r\n not a spacing concern. */}\r\n <Box sx={{ width: 1, height: 24, background: dividerOverlay }} />\r\n {actions.map((a, i) => (\r\n <Button\r\n key={i}\r\n size=\"sm\"\r\n variant={a.variant || \"ghost\"}\r\n icon={a.icon}\r\n onClick={a.onClick}\r\n disabled={a.disabled}\r\n sx={{\r\n // Danger keeps its own palette; every other variant is forced\r\n // to the inverse foreground with a currentColor hover overlay.\r\n // (JS set color/\"&:hover\" to undefined on danger; under\r\n // exactOptionalPropertyTypes that's present-with-undefined for\r\n // the csstype color + selector value, so it's folded into one\r\n // conditional spread — behaviour-identical.)\r\n ...(a.variant !== \"danger\"\r\n ? {\r\n color: \"var(--fg-inverse) !important\",\r\n \"&:hover\": { background: overlayHover },\r\n }\r\n : {}),\r\n }}\r\n >\r\n {a.label}\r\n </Button>\r\n ))}\r\n {onClear && (\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n onClick={onClear}\r\n sx={{\r\n color: \"var(--fg-inverse) !important\",\r\n \"&:hover\": { background: overlayHover },\r\n }}\r\n >\r\n {L.clear}\r\n </Button>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default BulkActionBar;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BulkActionBar.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Button","_mergeLabels","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_LABELS","freeze","selection","toolbarAria","clear","BulkActionBar","count","onClear","actions","label","labels","L","mergeLabels","text","overlayHover","dividerOverlay","jsxs","role","sx","position","bottom","left","transform","zIndex","display","alignItems","flexWrap","justifyContent","maxWidth","gap","padding","background","color","borderRadius","boxShadow","children","jsx","fontSize","fontWeight","fontVariantNumeric","width","height","map","a","size","variant","icon","onClick","disabled","_default","exports"],"sources":["../../../src/lib/v2/patterns/BulkActionBar.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Button from \"../components/Button\";\r\nimport type { ButtonProps } from \"../components/Button\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * BulkActionBar - Portnet UI v2 (pattern)\r\n *\r\n * Charter R-DG.8 - sélection multiple → bulk bar sticky bottom-center.\r\n * Affiche le compteur d'éléments sélectionnés + boutons d'actions + désélection.\r\n *\r\n * <BulkActionBar\r\n * count={selected.size}\r\n * onClear={() => setSelected(new Set())}\r\n * actions={[\r\n * { label: \"Exporter\", icon: <DownloadIcon />, onClick: exportSel },\r\n * { label: \"Archiver\", icon: <ArchiveIcon />, onClick: archiveSel },\r\n * { label: \"Supprimer\", icon: <DeleteIcon />, onClick: deleteSel, variant: \"danger\" },\r\n * ]}\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <BulkActionBar labels={{\r\n * selection: (n) => `${n} item${n === 1 ? \"\" : \"s\"} selected`,\r\n * toolbarAria: \"Bulk actions\",\r\n * clear: \"Clear selection\",\r\n * }} ... />\r\n *\r\n * `selection` is a function so consumers can plug in proper plural\r\n * rules (Intl.PluralRules, ICU MessageFormat, i18next, …).\r\n *\r\n * A11y note (R-A.1):\r\n * The selection count is rendered inside a polite live region so that\r\n * updates (\"3 éléments sélectionnés\" → \"5 éléments sélectionnés\") are\r\n * announced to screen-reader users without stealing focus.\r\n *\r\n * Responsive note (R-RS / WCAG 1.4.10):\r\n * The bar is centre-anchored (left:50% / translateX(-50%)). Without a\r\n * width cap a long action set would push its ends off both screen\r\n * edges on a phone. maxWidth caps it to the viewport and flexWrap lets\r\n * surplus actions wrap to a second centred row instead of overflowing.\r\n */\r\n\r\nexport interface BulkAction {\r\n label: React.ReactNode;\r\n onClick?: (() => void) | undefined;\r\n icon?: React.ReactElement | undefined;\r\n variant?: ButtonProps[\"variant\"] | undefined;\r\n disabled?: boolean | undefined;\r\n}\r\n\r\nexport interface BulkActionBarLabels {\r\n selection?: ((n: number) => React.ReactNode) | undefined;\r\n toolbarAria?: string | undefined;\r\n clear?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface BulkActionBarProps {\r\n count?: number | undefined;\r\n onClear?: (() => void) | undefined;\r\n actions?: BulkAction[] | undefined;\r\n /** Legacy prop: a pre-formatted node override of the count text.\r\n * Wins over labels.selection when both are passed. */\r\n label?: React.ReactNode | undefined;\r\n labels?: BulkActionBarLabels | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n selection: (n: number) => `${n} élément${n > 1 ? \"s\" : \"\"} sélectionné${n > 1 ? \"s\" : \"\"}`,\r\n toolbarAria: \"Actions sur la sélection\",\r\n clear: \"Désélectionner\",\r\n});\r\n\r\nfunction BulkActionBar({ count = 0, onClear, actions = [], label, labels }: BulkActionBarProps) {\r\n if (count <= 0) return null;\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n // Legacy `label` prop wins over labels.selection for back-compat.\r\n const text = label != null ? label : L.selection(count);\r\n\r\n // R-AI.1 - currentColor-derived overlays so hover & divider auto-adapt\r\n // to the bar's fg-inverse value (was hard-coded white rgba).\r\n const overlayHover = \"color-mix(in srgb, currentColor 15%, transparent)\";\r\n const dividerOverlay = \"color-mix(in srgb, currentColor 22%, transparent)\";\r\n\r\n return (\r\n <Box\r\n role=\"toolbar\"\r\n aria-label={L.toolbarAria}\r\n sx={{\r\n position: \"fixed\",\r\n bottom: \"var(--s-5)\",\r\n left: \"50%\",\r\n transform: \"translateX(-50%)\",\r\n zIndex: \"var(--z-bulk)\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n // R-RS — centre-anchored bar must never exceed the viewport, and\r\n // surplus actions wrap rather than spilling past the screen edges.\r\n flexWrap: \"wrap\",\r\n justifyContent: \"center\",\r\n maxWidth: \"calc(100vw - var(--s-4) * 2)\",\r\n gap: 1.5,\r\n padding: \"var(--s-2) var(--s-2) var(--s-2) var(--s-4)\",\r\n background: \"var(--fg)\",\r\n color: \"var(--fg-inverse)\",\r\n borderRadius: \"var(--r-full)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n }}\r\n >\r\n <Box\r\n // R-A.1 - polite live region so SR users hear each count change\r\n // without losing context. aria-atomic ensures the full sentence is\r\n // re-read on update, not just the diff.\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n }}\r\n >\r\n {text}\r\n </Box>\r\n {/* Vertical divider — width:1 / height:24 are divider geometry,\r\n not a spacing concern. */}\r\n <Box sx={{ width: 1, height: 24, background: dividerOverlay }} />\r\n {actions.map((a, i) => (\r\n <Button\r\n key={i}\r\n size=\"sm\"\r\n variant={a.variant || \"ghost\"}\r\n icon={a.icon}\r\n onClick={a.onClick}\r\n disabled={a.disabled}\r\n sx={{\r\n // Danger keeps its own palette; every other variant is forced\r\n // to the inverse foreground with a currentColor hover overlay.\r\n // (JS set color/\"&:hover\" to undefined on danger; under\r\n // exactOptionalPropertyTypes that's present-with-undefined for\r\n // the csstype color + selector value, so it's folded into one\r\n // conditional spread — behaviour-identical.)\r\n ...(a.variant !== \"danger\"\r\n ? {\r\n color: \"var(--fg-inverse) !important\",\r\n \"&:hover\": { background: overlayHover },\r\n }\r\n : {}),\r\n }}\r\n >\r\n {a.label}\r\n </Button>\r\n ))}\r\n {onClear && (\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n onClick={onClear}\r\n sx={{\r\n color: \"var(--fg-inverse) !important\",\r\n \"&:hover\": { background: overlayHover },\r\n }}\r\n >\r\n {L.clear}\r\n </Button>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default BulkActionBar;\r\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,YAAA,GAAAJ,OAAA;AAAmD,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAO,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAEnD;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;;AA0BA,MAAMgB,cAAc,GAAGH,MAAM,CAACI,MAAM,CAAC;EACnCC,SAAS,EAAKf,CAAS,IAAK,GAAGA,CAAC,WAAWA,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,eAAeA,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE;EAC5FgB,WAAW,EAAE,0BAA0B;EACvCC,KAAK,EAAQ;AACf,CAAC,CAAC;AAEF,SAASC,aAAaA,CAAC;EAAEC,KAAK,GAAG,CAAC;EAAEC,OAAO;EAAEC,OAAO,GAAG,EAAE;EAAEC,KAAK;EAAEC;AAA2B,CAAC,EAAE;EAC9F,IAAIJ,KAAK,IAAI,CAAC,EAAE,OAAO,IAAI;EAC3B,MAAMK,CAAC,GAAG,IAAAC,wBAAW,EAACZ,cAAc,EAAEU,MAAM,CAAC;EAC7C;EACA,MAAMG,IAAI,GAAGJ,KAAK,IAAI,IAAI,GAAGA,KAAK,GAAGE,CAAC,CAACT,SAAS,CAACI,KAAK,CAAC;;EAEvD;EACA;EACA,MAAMQ,YAAY,GAAK,mDAAmD;EAC1E,MAAMC,cAAc,GAAG,mDAAmD;EAE1E,oBACE,IAAAnC,WAAA,CAAAoC,IAAA,EAACxC,IAAA,CAAAO,OAAG;IACFkC,IAAI,EAAC,SAAS;IACd,cAAYN,CAAC,CAACR,WAAY;IAC1Be,EAAE,EAAE;MACFC,QAAQ,EAAE,OAAO;MACjBC,MAAM,EAAE,YAAY;MACpBC,IAAI,EAAE,KAAK;MACXC,SAAS,EAAE,kBAAkB;MAC7BC,MAAM,EAAE,eAAe;MACvBC,OAAO,EAAE,MAAM;MACfC,UAAU,EAAE,QAAQ;MACpB;MACA;MACAC,QAAQ,EAAE,MAAM;MAChBC,cAAc,EAAE,QAAQ;MACxBC,QAAQ,EAAE,8BAA8B;MACxCC,GAAG,EAAE,GAAG;MACRC,OAAO,EAAE,6CAA6C;MACtDC,UAAU,EAAE,WAAW;MACvBC,KAAK,EAAE,mBAAmB;MAC1BC,YAAY,EAAE,eAAe;MAC7BC,SAAS,EAAE;IACb,CAAE;IAAAC,QAAA,gBAEF,IAAAvD,WAAA,CAAAwD,GAAA,EAAC5D,IAAA,CAAAO;IACC;IACA;IACA;IAAA;MACAkC,IAAI,EAAC,QAAQ;MACb,aAAU,QAAQ;MAClB,eAAY,MAAM;MAClBC,EAAE,EAAE;QACFmB,QAAQ,EAAE,gBAAgB;QAC1BC,UAAU,EAAE,oBAAoB;QAChCC,kBAAkB,EAAE;MACtB,CAAE;MAAAJ,QAAA,EAEDtB;IAAI,CACF,CAAC,eAGN,IAAAjC,WAAA,CAAAwD,GAAA,EAAC5D,IAAA,CAAAO,OAAG;MAACmC,EAAE,EAAE;QAAEsB,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE,EAAE;QAAEV,UAAU,EAAEhB;MAAe;IAAE,CAAE,CAAC,EAChEP,OAAO,CAACkC,GAAG,CAAC,CAACC,CAAC,EAAEtD,CAAC,kBAChB,IAAAT,WAAA,CAAAwD,GAAA,EAAC1D,OAAA,CAAAK,OAAM;MAEL6D,IAAI,EAAC,IAAI;MACTC,OAAO,EAAEF,CAAC,CAACE,OAAO,IAAI,OAAQ;MAC9BC,IAAI,EAAEH,CAAC,CAACG,IAAK;MACbC,OAAO,EAAEJ,CAAC,CAACI,OAAQ;MACnBC,QAAQ,EAAEL,CAAC,CAACK,QAAS;MACrB9B,EAAE,EAAE;QACF;QACA;QACA;QACA;QACA;QACA;QACA,IAAIyB,CAAC,CAACE,OAAO,KAAK,QAAQ,GACtB;UACEb,KAAK,EAAE,8BAA8B;UACrC,SAAS,EAAE;YAAED,UAAU,EAAEjB;UAAa;QACxC,CAAC,GACD,CAAC,CAAC;MACR,CAAE;MAAAqB,QAAA,EAEDQ,CAAC,CAAClC;IAAK,GArBHpB,CAsBC,CACT,CAAC,EACDkB,OAAO,iBACN,IAAA3B,WAAA,CAAAwD,GAAA,EAAC1D,OAAA,CAAAK,OAAM;MACL6D,IAAI,EAAC,IAAI;MACTC,OAAO,EAAC,OAAO;MACfE,OAAO,EAAExC,OAAQ;MACjBW,EAAE,EAAE;QACFc,KAAK,EAAE,8BAA8B;QACrC,SAAS,EAAE;UAAED,UAAU,EAAEjB;QAAa;MACxC,CAAE;MAAAqB,QAAA,EAEDxB,CAAC,CAACP;IAAK,CACF,CACT;EAAA,CACE,CAAC;AAEV;AAAC,IAAA6C,QAAA,GAAAC,OAAA,CAAAnE,OAAA,GAEcsB,aAAa","ignoreList":[]}
@@ -0,0 +1,124 @@
1
+ import * as React from "react";
2
+ import type { SectionHeaderLevel } from "../components/SectionHeader";
3
+ /**
4
+ * ChartFigure — a chart, its title, and its TEXT EQUIVALENT (pattern)
5
+ *
6
+ * Usage:
7
+ *
8
+ * <ChartFigure
9
+ * title="Dossiers par type de demande"
10
+ * caption="Admission : 128 dossiers (64 %). Renouvellement : 72 (36 %)."
11
+ * >
12
+ * <HighchartsReact highcharts={Highcharts} options={options} />
13
+ * </ChartFigure>
14
+ *
15
+ * ─────────────────────────────────────────────────────────────────────────────
16
+ * WHY THIS BELONGS IN THE LIBRARY (capability gap G-55)
17
+ *
18
+ * `tokens/chart` states the obligation and provides nothing to meet it, in its
19
+ * own words: "COLOUR IS NEVER THE ONLY CHANNEL (WCAG 1.4.1). This palette makes
20
+ * slices distinguishable; it does not make a chart accessible. Every consumer
21
+ * still owes a legend with text labels, and a text equivalent of the data —
22
+ * 1.1.1 for the chart as a whole."
23
+ *
24
+ * A rule stated without a component to carry it gets met by whoever remembers
25
+ * it. So the same three-part assembly was written per screen — a `Surface`, a
26
+ * `SectionHeader`, and a paragraph of numbers under the canvas — and it is the
27
+ * third part that goes missing first, because it is the only one nobody SEES
28
+ * missing. A chart with no text equivalent looks finished.
29
+ *
30
+ * `caption` is therefore REQUIRED, not optional. That is the whole design
31
+ * decision of this component: a chart rendered through here cannot ship without
32
+ * its numbers in text. Making it optional would reproduce, one layer up, the
33
+ * situation this closes.
34
+ *
35
+ * Observed in `autorisation-admis-pour-conforme-fe` (Area 5): three bilan
36
+ * screens repeating Surface + SectionHeader + an `aria-hidden` canvas + a
37
+ * caption paragraph, with the caption's own styling (`--text-xs`,
38
+ * `--fg-subtle`) copied along with it.
39
+ *
40
+ * `Surface`'s docblock already points here: "Surface deliberately has NO title,
41
+ * NO actions and NO header. A titled section is FormSection; a metric tile is
42
+ * KPICard […]. Those compose this."
43
+ * ─────────────────────────────────────────────────────────────────────────────
44
+ *
45
+ * WHY THE CANVAS IS `aria-hidden`. A chart renderer emits dozens of SVG text
46
+ * nodes — axis ticks, slice percentages, tooltips — which a screen reader walks
47
+ * one by one, in visual order, with no structure. That is noise, not
48
+ * information, and it is WORSE than silence because it takes minutes to get
49
+ * through. The canvas is hidden and the `figcaption` speaks for it.
50
+ *
51
+ * COROLLARY, and it is a hard constraint: do NOT put interactive controls
52
+ * inside. `aria-hidden` on a focusable ancestor produces an element that can be
53
+ * tabbed to and cannot be announced, which fails WCAG 4.1.2 more plainly than
54
+ * the noise it was meant to avoid. A period selector or an export button goes
55
+ * OUTSIDE this component. (A renderer's own accessibility module, which builds
56
+ * a proper keyboard-navigable data table, is a different story — a consumer
57
+ * enabling one should pass `hideCanvasFromScreenReaders={false}` and own the
58
+ * result.)
59
+ *
60
+ * The caption is VISIBLE, deliberately, and not a visually-hidden string: the
61
+ * numbers under a chart help the reader who can see it too — that is the whole
62
+ * point of a `figcaption` — and a caption nobody can see is a caption nobody
63
+ * notices has gone stale.
64
+ *
65
+ * ── THE CANVAS IS FAULT-ISOLATED (ISO/IEC 25010 § Reliability) ────
66
+ *
67
+ * The chart slot is wrapped in `SectionErrorBoundary`. Hosting a THIRD-PARTY
68
+ * renderer is what this component is for, and that renderer is fed aggregates
69
+ * from a back-end whose wire models declare every field optional — the exact
70
+ * situation `SectionErrorBoundary`'s own header describes: "an `articles` field
71
+ * arriving as an object where `.map` is called". React's default behaviour on a
72
+ * render exception is to unmount the WHOLE tree, so one malformed series took
73
+ * down the entire page, KPI strip and data table included — the table that
74
+ * carries the same numbers the chart was drawing.
75
+ *
76
+ * With the boundary, a failing chart shows a banner INSIDE its own card, and
77
+ * everything around it keeps working. The `figcaption` survives too, which
78
+ * matters more here than anywhere else: the caption holds the figures in text,
79
+ * so the reader still gets the DATA when the drawing is gone.
80
+ *
81
+ * The boundary sits ABOVE the `aria-hidden` canvas wrapper, not inside it —
82
+ * placed inside, its error banner would inherit that `aria-hidden` and no
83
+ * screen reader would announce the failure. A sighted user would see the
84
+ * breakage; a blind user would get silence.
85
+ *
86
+ * Not opt-out. A host rendering a hand-written inline SVG gains nothing from
87
+ * the boundary but loses nothing either — an unconditional guarantee is worth
88
+ * more than a prop nobody remembers to pass.
89
+ */
90
+ export interface ChartFigureProps {
91
+ /**
92
+ * Visible heading of the figure. Keep the chart renderer's own `title` option
93
+ * EMPTY and use this: real HTML text is selectable, translatable, sized by
94
+ * the token scale, and reachable by a screen reader — an SVG title is none of
95
+ * those. Two titles is the failure this prop exists to prevent.
96
+ */
97
+ title: React.ReactNode;
98
+ /**
99
+ * The text equivalent of the data (WCAG 1.1.1). REQUIRED — see the header.
100
+ * Give the figures, not a description of the chart: "Approuvés : 128 (64 %)"
101
+ * tells a reader what the slices say; "répartition des statuts" does not.
102
+ */
103
+ caption: React.ReactNode;
104
+ /** The chart itself. */
105
+ children?: React.ReactNode | undefined;
106
+ /** Heading level. Default `"h3"` — one below the page's `ActionBar` h1. */
107
+ level?: SectionHeaderLevel | undefined;
108
+ /**
109
+ * Height reserved for the canvas before the chart paints (R-R.4, anti-CLS).
110
+ * Pass it when the renderer sizes itself from its container, otherwise the
111
+ * caption jumps down the page on first render.
112
+ */
113
+ minHeight?: number | string | undefined;
114
+ /**
115
+ * Escape hatch for a renderer that exposes its own accessible data table.
116
+ * Defaults to `true`; setting it to `false` un-hides the canvas and hands the
117
+ * screen-reader experience to that renderer. The caption stays required.
118
+ */
119
+ hideCanvasFromScreenReaders?: boolean | undefined;
120
+ className?: string | undefined;
121
+ }
122
+ declare function ChartFigure({ title, caption, children, level, minHeight, hideCanvasFromScreenReaders, className, }: ChartFigureProps): React.JSX.Element;
123
+ export default ChartFigure;
124
+ //# sourceMappingURL=ChartFigure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartFigure.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/ChartFigure.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AAEH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB;;;;OAIG;IACH,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,iBAAS,WAAW,CAAC,EACnB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAY,EACZ,SAAS,EACT,2BAAkC,EAClC,SAAS,GACV,EAAE,gBAAgB,qBAmDlB;AAED,eAAe,WAAW,CAAC"}
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _SectionErrorBoundary = _interopRequireDefault(require("../components/SectionErrorBoundary"));
9
+ var _SectionHeader = _interopRequireDefault(require("../components/SectionHeader"));
10
+ var _Surface = _interopRequireDefault(require("../components/Surface"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ /**
15
+ * ChartFigure — a chart, its title, and its TEXT EQUIVALENT (pattern)
16
+ *
17
+ * Usage:
18
+ *
19
+ * <ChartFigure
20
+ * title="Dossiers par type de demande"
21
+ * caption="Admission : 128 dossiers (64 %). Renouvellement : 72 (36 %)."
22
+ * >
23
+ * <HighchartsReact highcharts={Highcharts} options={options} />
24
+ * </ChartFigure>
25
+ *
26
+ * ─────────────────────────────────────────────────────────────────────────────
27
+ * WHY THIS BELONGS IN THE LIBRARY (capability gap G-55)
28
+ *
29
+ * `tokens/chart` states the obligation and provides nothing to meet it, in its
30
+ * own words: "COLOUR IS NEVER THE ONLY CHANNEL (WCAG 1.4.1). This palette makes
31
+ * slices distinguishable; it does not make a chart accessible. Every consumer
32
+ * still owes a legend with text labels, and a text equivalent of the data —
33
+ * 1.1.1 for the chart as a whole."
34
+ *
35
+ * A rule stated without a component to carry it gets met by whoever remembers
36
+ * it. So the same three-part assembly was written per screen — a `Surface`, a
37
+ * `SectionHeader`, and a paragraph of numbers under the canvas — and it is the
38
+ * third part that goes missing first, because it is the only one nobody SEES
39
+ * missing. A chart with no text equivalent looks finished.
40
+ *
41
+ * `caption` is therefore REQUIRED, not optional. That is the whole design
42
+ * decision of this component: a chart rendered through here cannot ship without
43
+ * its numbers in text. Making it optional would reproduce, one layer up, the
44
+ * situation this closes.
45
+ *
46
+ * Observed in `autorisation-admis-pour-conforme-fe` (Area 5): three bilan
47
+ * screens repeating Surface + SectionHeader + an `aria-hidden` canvas + a
48
+ * caption paragraph, with the caption's own styling (`--text-xs`,
49
+ * `--fg-subtle`) copied along with it.
50
+ *
51
+ * `Surface`'s docblock already points here: "Surface deliberately has NO title,
52
+ * NO actions and NO header. A titled section is FormSection; a metric tile is
53
+ * KPICard […]. Those compose this."
54
+ * ─────────────────────────────────────────────────────────────────────────────
55
+ *
56
+ * WHY THE CANVAS IS `aria-hidden`. A chart renderer emits dozens of SVG text
57
+ * nodes — axis ticks, slice percentages, tooltips — which a screen reader walks
58
+ * one by one, in visual order, with no structure. That is noise, not
59
+ * information, and it is WORSE than silence because it takes minutes to get
60
+ * through. The canvas is hidden and the `figcaption` speaks for it.
61
+ *
62
+ * COROLLARY, and it is a hard constraint: do NOT put interactive controls
63
+ * inside. `aria-hidden` on a focusable ancestor produces an element that can be
64
+ * tabbed to and cannot be announced, which fails WCAG 4.1.2 more plainly than
65
+ * the noise it was meant to avoid. A period selector or an export button goes
66
+ * OUTSIDE this component. (A renderer's own accessibility module, which builds
67
+ * a proper keyboard-navigable data table, is a different story — a consumer
68
+ * enabling one should pass `hideCanvasFromScreenReaders={false}` and own the
69
+ * result.)
70
+ *
71
+ * The caption is VISIBLE, deliberately, and not a visually-hidden string: the
72
+ * numbers under a chart help the reader who can see it too — that is the whole
73
+ * point of a `figcaption` — and a caption nobody can see is a caption nobody
74
+ * notices has gone stale.
75
+ *
76
+ * ── THE CANVAS IS FAULT-ISOLATED (ISO/IEC 25010 § Reliability) ────
77
+ *
78
+ * The chart slot is wrapped in `SectionErrorBoundary`. Hosting a THIRD-PARTY
79
+ * renderer is what this component is for, and that renderer is fed aggregates
80
+ * from a back-end whose wire models declare every field optional — the exact
81
+ * situation `SectionErrorBoundary`'s own header describes: "an `articles` field
82
+ * arriving as an object where `.map` is called". React's default behaviour on a
83
+ * render exception is to unmount the WHOLE tree, so one malformed series took
84
+ * down the entire page, KPI strip and data table included — the table that
85
+ * carries the same numbers the chart was drawing.
86
+ *
87
+ * With the boundary, a failing chart shows a banner INSIDE its own card, and
88
+ * everything around it keeps working. The `figcaption` survives too, which
89
+ * matters more here than anywhere else: the caption holds the figures in text,
90
+ * so the reader still gets the DATA when the drawing is gone.
91
+ *
92
+ * The boundary sits ABOVE the `aria-hidden` canvas wrapper, not inside it —
93
+ * placed inside, its error banner would inherit that `aria-hidden` and no
94
+ * screen reader would announce the failure. A sighted user would see the
95
+ * breakage; a blind user would get silence.
96
+ *
97
+ * Not opt-out. A host rendering a hand-written inline SVG gains nothing from
98
+ * the boundary but loses nothing either — an unconditional guarantee is worth
99
+ * more than a prop nobody remembers to pass.
100
+ */
101
+
102
+ function ChartFigure({
103
+ title,
104
+ caption,
105
+ children,
106
+ level = "h3",
107
+ minHeight,
108
+ hideCanvasFromScreenReaders = true,
109
+ className
110
+ }) {
111
+ return (
112
+ /*#__PURE__*/
113
+ /* `figure` + `figcaption` is the native pairing for "content plus its
114
+ description", so the association needs no ARIA. Rendered THROUGH
115
+ `Surface` via its `component` prop rather than nested inside it — one
116
+ element instead of two, and the card padding lands on the figure itself.
117
+ `margin: 0` because the UA stylesheet gives a figure large margins. */
118
+ (0, _jsxRuntime.jsxs)(_Surface.default, {
119
+ component: "figure",
120
+ padding: "default",
121
+ elevation: "xs",
122
+ sx: {
123
+ margin: 0,
124
+ display: "flex",
125
+ flexDirection: "column",
126
+ gap: "var(--s-3)"
127
+ },
128
+ ...(className !== undefined ? {
129
+ className
130
+ } : {}),
131
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionHeader.default, {
132
+ level: level,
133
+ title: title
134
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SectionErrorBoundary.default, {
135
+ ...(typeof title === "string" ? {
136
+ title
137
+ } : {}),
138
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
139
+ ...(hideCanvasFromScreenReaders ? {
140
+ "aria-hidden": true
141
+ } : {}),
142
+ style: minHeight !== undefined ? {
143
+ minHeight
144
+ } : {},
145
+ children: children
146
+ })
147
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("figcaption", {
148
+ style: {
149
+ fontSize: "var(--text-xs)",
150
+ lineHeight: "var(--lh-normal)",
151
+ color: "var(--fg-subtle)"
152
+ },
153
+ children: caption
154
+ })]
155
+ })
156
+ );
157
+ }
158
+ var _default = exports.default = ChartFigure;
159
+ //# sourceMappingURL=ChartFigure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartFigure.js","names":["React","_interopRequireWildcard","require","_SectionErrorBoundary","_interopRequireDefault","_SectionHeader","_Surface","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ChartFigure","title","caption","children","level","minHeight","hideCanvasFromScreenReaders","className","jsxs","component","padding","elevation","sx","margin","display","flexDirection","gap","undefined","jsx","style","fontSize","lineHeight","color","_default","exports"],"sources":["../../../src/lib/v2/patterns/ChartFigure.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\nimport SectionErrorBoundary from \"../components/SectionErrorBoundary\";\r\nimport SectionHeader from \"../components/SectionHeader\";\r\nimport Surface from \"../components/Surface\";\r\nimport type { SectionHeaderLevel } from \"../components/SectionHeader\";\r\n\r\n/**\r\n * ChartFigure — a chart, its title, and its TEXT EQUIVALENT (pattern)\r\n *\r\n * Usage:\r\n *\r\n * <ChartFigure\r\n * title=\"Dossiers par type de demande\"\r\n * caption=\"Admission : 128 dossiers (64 %). Renouvellement : 72 (36 %).\"\r\n * >\r\n * <HighchartsReact highcharts={Highcharts} options={options} />\r\n * </ChartFigure>\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY (capability gap G-55)\r\n *\r\n * `tokens/chart` states the obligation and provides nothing to meet it, in its\r\n * own words: \"COLOUR IS NEVER THE ONLY CHANNEL (WCAG 1.4.1). This palette makes\r\n * slices distinguishable; it does not make a chart accessible. Every consumer\r\n * still owes a legend with text labels, and a text equivalent of the data —\r\n * 1.1.1 for the chart as a whole.\"\r\n *\r\n * A rule stated without a component to carry it gets met by whoever remembers\r\n * it. So the same three-part assembly was written per screen — a `Surface`, a\r\n * `SectionHeader`, and a paragraph of numbers under the canvas — and it is the\r\n * third part that goes missing first, because it is the only one nobody SEES\r\n * missing. A chart with no text equivalent looks finished.\r\n *\r\n * `caption` is therefore REQUIRED, not optional. That is the whole design\r\n * decision of this component: a chart rendered through here cannot ship without\r\n * its numbers in text. Making it optional would reproduce, one layer up, the\r\n * situation this closes.\r\n *\r\n * Observed in `autorisation-admis-pour-conforme-fe` (Area 5): three bilan\r\n * screens repeating Surface + SectionHeader + an `aria-hidden` canvas + a\r\n * caption paragraph, with the caption's own styling (`--text-xs`,\r\n * `--fg-subtle`) copied along with it.\r\n *\r\n * `Surface`'s docblock already points here: \"Surface deliberately has NO title,\r\n * NO actions and NO header. A titled section is FormSection; a metric tile is\r\n * KPICard […]. Those compose this.\"\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * WHY THE CANVAS IS `aria-hidden`. A chart renderer emits dozens of SVG text\r\n * nodes — axis ticks, slice percentages, tooltips — which a screen reader walks\r\n * one by one, in visual order, with no structure. That is noise, not\r\n * information, and it is WORSE than silence because it takes minutes to get\r\n * through. The canvas is hidden and the `figcaption` speaks for it.\r\n *\r\n * COROLLARY, and it is a hard constraint: do NOT put interactive controls\r\n * inside. `aria-hidden` on a focusable ancestor produces an element that can be\r\n * tabbed to and cannot be announced, which fails WCAG 4.1.2 more plainly than\r\n * the noise it was meant to avoid. A period selector or an export button goes\r\n * OUTSIDE this component. (A renderer's own accessibility module, which builds\r\n * a proper keyboard-navigable data table, is a different story — a consumer\r\n * enabling one should pass `hideCanvasFromScreenReaders={false}` and own the\r\n * result.)\r\n *\r\n * The caption is VISIBLE, deliberately, and not a visually-hidden string: the\r\n * numbers under a chart help the reader who can see it too — that is the whole\r\n * point of a `figcaption` — and a caption nobody can see is a caption nobody\r\n * notices has gone stale.\r\n *\r\n * ── THE CANVAS IS FAULT-ISOLATED (ISO/IEC 25010 § Reliability) ────\r\n *\r\n * The chart slot is wrapped in `SectionErrorBoundary`. Hosting a THIRD-PARTY\r\n * renderer is what this component is for, and that renderer is fed aggregates\r\n * from a back-end whose wire models declare every field optional — the exact\r\n * situation `SectionErrorBoundary`'s own header describes: \"an `articles` field\r\n * arriving as an object where `.map` is called\". React's default behaviour on a\r\n * render exception is to unmount the WHOLE tree, so one malformed series took\r\n * down the entire page, KPI strip and data table included — the table that\r\n * carries the same numbers the chart was drawing.\r\n *\r\n * With the boundary, a failing chart shows a banner INSIDE its own card, and\r\n * everything around it keeps working. The `figcaption` survives too, which\r\n * matters more here than anywhere else: the caption holds the figures in text,\r\n * so the reader still gets the DATA when the drawing is gone.\r\n *\r\n * The boundary sits ABOVE the `aria-hidden` canvas wrapper, not inside it —\r\n * placed inside, its error banner would inherit that `aria-hidden` and no\r\n * screen reader would announce the failure. A sighted user would see the\r\n * breakage; a blind user would get silence.\r\n *\r\n * Not opt-out. A host rendering a hand-written inline SVG gains nothing from\r\n * the boundary but loses nothing either — an unconditional guarantee is worth\r\n * more than a prop nobody remembers to pass.\r\n */\r\n\r\nexport interface ChartFigureProps {\r\n /**\r\n * Visible heading of the figure. Keep the chart renderer's own `title` option\r\n * EMPTY and use this: real HTML text is selectable, translatable, sized by\r\n * the token scale, and reachable by a screen reader — an SVG title is none of\r\n * those. Two titles is the failure this prop exists to prevent.\r\n */\r\n title: React.ReactNode;\r\n /**\r\n * The text equivalent of the data (WCAG 1.1.1). REQUIRED — see the header.\r\n * Give the figures, not a description of the chart: \"Approuvés : 128 (64 %)\"\r\n * tells a reader what the slices say; \"répartition des statuts\" does not.\r\n */\r\n caption: React.ReactNode;\r\n /** The chart itself. */\r\n children?: React.ReactNode | undefined;\r\n /** Heading level. Default `\"h3\"` — one below the page's `ActionBar` h1. */\r\n level?: SectionHeaderLevel | undefined;\r\n /**\r\n * Height reserved for the canvas before the chart paints (R-R.4, anti-CLS).\r\n * Pass it when the renderer sizes itself from its container, otherwise the\r\n * caption jumps down the page on first render.\r\n */\r\n minHeight?: number | string | undefined;\r\n /**\r\n * Escape hatch for a renderer that exposes its own accessible data table.\r\n * Defaults to `true`; setting it to `false` un-hides the canvas and hands the\r\n * screen-reader experience to that renderer. The caption stays required.\r\n */\r\n hideCanvasFromScreenReaders?: boolean | undefined;\r\n className?: string | undefined;\r\n}\r\n\r\nfunction ChartFigure({\r\n title,\r\n caption,\r\n children,\r\n level = \"h3\",\r\n minHeight,\r\n hideCanvasFromScreenReaders = true,\r\n className,\r\n}: ChartFigureProps) {\r\n return (\r\n /* `figure` + `figcaption` is the native pairing for \"content plus its\r\n description\", so the association needs no ARIA. Rendered THROUGH\r\n `Surface` via its `component` prop rather than nested inside it — one\r\n element instead of two, and the card padding lands on the figure itself.\r\n `margin: 0` because the UA stylesheet gives a figure large margins. */\r\n <Surface\r\n component=\"figure\"\r\n padding=\"default\"\r\n elevation=\"xs\"\r\n sx={{\r\n margin: 0,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-3)\",\r\n }}\r\n {...(className !== undefined ? { className } : {})}\r\n >\r\n <SectionHeader level={level} title={title} />\r\n\r\n {/* La frontière enveloppe le canevas AU-DESSUS du `div` `aria-hidden`, et\r\n l'ordre n'est pas indifférent : placée à l'intérieur, sa bannière\r\n d'erreur hériterait de l'`aria-hidden` du canevas et aucun lecteur\r\n d'écran ne l'annoncerait — un voyant verrait la panne, un non-voyant\r\n n'entendrait rien. Ici, le canevas reste masqué aux technologies\r\n d'assistance ET l'erreur leur parvient.\r\n\r\n `title` n'est transmis que s'il est une chaîne : `SectionErrorBoundary`\r\n nomme la panne dans sa bannière et dans le journal, et un nœud JSX n'y\r\n a pas sa place. */}\r\n <SectionErrorBoundary {...(typeof title === \"string\" ? { title } : {})}>\r\n <div\r\n {...(hideCanvasFromScreenReaders ? { \"aria-hidden\": true } : {})}\r\n style={minHeight !== undefined ? { minHeight } : {}}\r\n >\r\n {children}\r\n </div>\r\n </SectionErrorBoundary>\r\n\r\n <figcaption\r\n style={{\r\n fontSize: \"var(--text-xs)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n color: \"var(--fg-subtle)\",\r\n }}\r\n >\r\n {caption}\r\n </figcaption>\r\n </Surface>\r\n );\r\n}\r\n\r\nexport default ChartFigure;\r\n"],"mappings":"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","ignoreList":[]}