@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
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _Drawer = _interopRequireDefault(require("@mui/material/Drawer"));
9
9
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
@@ -16,15 +16,9 @@ var _tokens = require("../tokens");
16
16
  var _useFocusTrap = _interopRequireDefault(require("../hooks/useFocusTrap"));
17
17
  var _mergeLabels = require("../utils/mergeLabels");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
20
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
23
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
26
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
27
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /**
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ 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); }
21
+ /**
28
22
  * Drawer - Portnet UI v2
29
23
  *
30
24
  * Charter §03 · Component "Drawer". Detail panel without leaving the list.
@@ -73,13 +67,12 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
73
67
  * The J/K listener is attached to `window`; multiple simultaneously-
74
68
  * open drawers would all receive the keypress and call their own
75
69
  * onPrev/onNext. Product convention is ONE drawer at a time.
76
- */
77
- var DEFAULT_LABELS = Object.freeze({
70
+ */const DEFAULT_LABELS = Object.freeze({
78
71
  prev: "Précédent",
79
72
  next: "Suivant",
80
73
  close: "Fermer (Échap)"
81
74
  });
82
- var DRAWER_ROOT_SX = Object.freeze({
75
+ const DRAWER_ROOT_SX = Object.freeze({
83
76
  // v2 z-index token (zIndex.js). drawer:80 sits above sticky page
84
77
  // chrome (<=60) and BELOW modal:100, so MUI popups opened from
85
78
  // inside the drawer (Combobox/Autocomplete listboxes, X date-picker
@@ -89,7 +82,7 @@ var DRAWER_ROOT_SX = Object.freeze({
89
82
  // buried behind the drawer (at 1300) — clicking them "did nothing".
90
83
  zIndex: _tokens.zIndex.drawer
91
84
  });
92
- var HEADER_STICKY_SX = Object.freeze({
85
+ const HEADER_STICKY_SX = Object.freeze({
93
86
  padding: "var(--s-4) var(--s-5)",
94
87
  borderBottom: "1px solid var(--border)",
95
88
  position: "sticky",
@@ -110,15 +103,40 @@ var HEADER_STICKY_SX = Object.freeze({
110
103
  * is where the nav cluster used to sit. Logical property so it holds in RTL
111
104
  * — the header already uses marginInlineStart for the J/K hint.
112
105
  */
113
- var HEADER_ACTIONS_SX = Object.freeze({
106
+ const HEADER_ACTIONS_SX = Object.freeze({
114
107
  display: "flex",
115
108
  alignItems: "center",
116
109
  gap: "var(--s-1)",
117
110
  marginInlineStart: "auto"
118
111
  });
112
+
113
+ /**
114
+ * Cible tactile des boutons d'icône de l'en-tête (R-7.4 / WCAG 2.5.5).
115
+ *
116
+ * Le docblock de `tokens/density` énonce la règle sans ambiguïté : « Icon-only
117
+ * buttons MUST set min-width/min-height to `tactileMin` », parce que la hauteur
118
+ * VISUELLE d'un bouton peut descendre sous 44 px dans les paliers de densité
119
+ * serrés sans que la zone d'appui le puisse. Les trois boutons de cet en-tête
120
+ * — précédent, suivant, fermer — étaient des `IconButton size="small"` sans
121
+ * plancher : environ 34 px, soit dix de moins que le minimum que ce même socle
122
+ * impose à ses hôtes.
123
+ *
124
+ * L'écart est resté invisible tant que la navigation entre items était peu
125
+ * câblée : un tiroir de filtres ne rend que le bouton de fermeture. Un module
126
+ * qui équipe ses aperçus de `onPrev`/`onNext` en expose trois par tiroir.
127
+ *
128
+ * `min*` et non `width`/`height` : la zone d'appui grandit, le dessin de
129
+ * l'icône ne change pas — c'est exactement la distinction que fait la note de
130
+ * `tokens/density`.
131
+ */
132
+ const HEADER_ICON_BUTTON_SX = Object.freeze({
133
+ color: "var(--fg-muted)",
134
+ minWidth: _tokens.layout.tactileMin,
135
+ minHeight: _tokens.layout.tactileMin
136
+ });
119
137
  function isEditableTarget(target) {
120
138
  if (!(target instanceof HTMLElement)) return false;
121
- var tag = target.tagName;
139
+ const tag = target.tagName;
122
140
  if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT") return true;
123
141
  if (target.isContentEditable) return true;
124
142
  return false;
@@ -138,27 +156,24 @@ function innerCornerSx(anchor) {
138
156
  }
139
157
  return {};
140
158
  }
141
- function Drawer(_ref) {
142
- var open = _ref.open,
143
- onClose = _ref.onClose,
144
- _ref$width = _ref.width,
145
- width = _ref$width === void 0 ? _tokens.layout.drawer : _ref$width,
146
- title = _ref.title,
147
- subtitle = _ref.subtitle,
148
- ariaLabel = _ref.ariaLabel,
149
- status = _ref.status,
150
- actions = _ref.actions,
151
- onPrev = _ref.onPrev,
152
- onNext = _ref.onNext,
153
- _ref$hasPrev = _ref.hasPrev,
154
- hasPrev = _ref$hasPrev === void 0 ? false : _ref$hasPrev,
155
- _ref$hasNext = _ref.hasNext,
156
- hasNext = _ref$hasNext === void 0 ? false : _ref$hasNext,
157
- children = _ref.children,
158
- _ref$anchor = _ref.anchor,
159
- anchor = _ref$anchor === void 0 ? "right" : _ref$anchor,
160
- labels = _ref.labels;
161
- var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
159
+ function Drawer({
160
+ open,
161
+ onClose,
162
+ width = _tokens.layout.drawer,
163
+ title,
164
+ subtitle,
165
+ ariaLabel,
166
+ status,
167
+ actions,
168
+ onPrev,
169
+ onNext,
170
+ hasPrev = false,
171
+ hasNext = false,
172
+ children,
173
+ anchor = "right",
174
+ labels
175
+ }) {
176
+ const L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
162
177
 
163
178
  /*
164
179
  * D-A10.2 — does this drawer navigate between items at all?
@@ -168,7 +183,7 @@ function Drawer(_ref) {
168
183
  * cluster disabled, because navigation is part of what that drawer is. A
169
184
  * filter panel supplies no handler and has no such affordance to disable.
170
185
  */
171
- var hasItemNavigation = onPrev !== undefined || onNext !== undefined;
186
+ const hasItemNavigation = onPrev !== undefined || onNext !== undefined;
172
187
 
173
188
  // R-Ar.5 - stable, per-instance, collision-safe id for aria-labelledby.
174
189
  // Points at the <h2> Typography that already renders {title}. Resolves
@@ -176,9 +191,9 @@ function Drawer(_ref) {
176
191
  // aria-labelledby reads the rendered text content. Replaces the previous
177
192
  // `aria-label={typeof title === "string" ? title : undefined}` which
178
193
  // left JSX-titled drawers unlabelled (B5-1).
179
- var titleId = React.useId();
180
- var paperRef = React.useRef(null);
181
- (0, _useFocusTrap["default"])(paperRef, !!open);
194
+ const titleId = React.useId();
195
+ const paperRef = React.useRef(null);
196
+ (0, _useFocusTrap.default)(paperRef, !!open);
182
197
 
183
198
  /*
184
199
  * Escape must close EVERY drawer, so this effect binds whether or not item
@@ -186,46 +201,42 @@ function Drawer(_ref) {
186
201
  * hasNext/hasPrev, which a filter panel leaves false, so they are inert
187
202
  * there rather than needing their own guard.
188
203
  */
189
- React.useEffect(function () {
204
+ React.useEffect(() => {
190
205
  if (!open) return undefined;
191
- var handler = function handler(e) {
206
+ const handler = e => {
192
207
  if (e.key === "Escape") {
193
- onClose === null || onClose === void 0 ? void 0 : onClose();
208
+ onClose?.();
194
209
  return;
195
210
  }
196
211
  if (isEditableTarget(e.target)) return;
197
212
  if ((e.key === "j" || e.key === "ArrowDown") && hasNext) {
198
213
  e.preventDefault();
199
- onNext === null || onNext === void 0 ? void 0 : onNext();
214
+ onNext?.();
200
215
  } else if ((e.key === "k" || e.key === "ArrowUp") && hasPrev) {
201
216
  e.preventDefault();
202
- onPrev === null || onPrev === void 0 ? void 0 : onPrev();
217
+ onPrev?.();
203
218
  }
204
219
  };
205
220
  window.addEventListener("keydown", handler);
206
- return function () {
207
- return window.removeEventListener("keydown", handler);
208
- };
221
+ return () => window.removeEventListener("keydown", handler);
209
222
  }, [open, onClose, onNext, onPrev, hasNext, hasPrev]);
210
223
 
211
224
  // MUI v9: paper slot forwarded through slotProps.paper. Wired with a
212
225
  // useMemo so the ref + sx bag keeps reference stability across renders
213
226
  // where `width` and `anchor` don't change.
214
- var slotProps = React.useMemo(function () {
215
- return {
216
- paper: {
217
- ref: paperRef,
218
- sx: _objectSpread(_objectSpread({
219
- width: width,
220
- maxWidth: "100vw"
221
- }, innerCornerSx(anchor)), {}, {
222
- backgroundColor: "var(--surface)",
223
- boxShadow: "var(--shadow-lg)"
224
- })
227
+ const slotProps = React.useMemo(() => ({
228
+ paper: {
229
+ ref: paperRef,
230
+ sx: {
231
+ width,
232
+ maxWidth: "100vw",
233
+ ...innerCornerSx(anchor),
234
+ backgroundColor: "var(--surface)",
235
+ boxShadow: "var(--shadow-lg)"
225
236
  }
226
- };
227
- }, [width, anchor]);
228
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Drawer["default"], {
237
+ }
238
+ }), [width, anchor]);
239
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Drawer.default, {
229
240
  anchor: anchor,
230
241
  open: !!open,
231
242
  onClose: onClose,
@@ -244,44 +255,40 @@ function Drawer(_ref) {
244
255
  ,
245
256
  sx: DRAWER_ROOT_SX,
246
257
  slotProps: slotProps,
247
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
258
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
248
259
  sx: HEADER_STICKY_SX,
249
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
260
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
250
261
  sx: {
251
262
  display: "flex",
252
263
  alignItems: "center",
253
264
  justifyContent: "space-between",
254
265
  marginBottom: "var(--s-2)"
255
266
  },
256
- children: [hasItemNavigation && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
267
+ children: [hasItemNavigation && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
257
268
  sx: {
258
269
  display: "flex",
259
270
  alignItems: "center",
260
271
  gap: "var(--s-1)"
261
272
  },
262
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton["default"], {
273
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
263
274
  size: "small",
264
275
  onClick: onPrev,
265
276
  disabled: !hasPrev,
266
277
  "aria-label": L.prev,
267
- sx: {
268
- color: "var(--fg-muted)"
269
- },
270
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyboardArrowUp["default"], {
278
+ sx: HEADER_ICON_BUTTON_SX,
279
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyboardArrowUp.default, {
271
280
  fontSize: "small"
272
281
  })
273
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton["default"], {
282
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
274
283
  size: "small",
275
284
  onClick: onNext,
276
285
  disabled: !hasNext,
277
286
  "aria-label": L.next,
278
- sx: {
279
- color: "var(--fg-muted)"
280
- },
281
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyboardArrowDown["default"], {
287
+ sx: HEADER_ICON_BUTTON_SX,
288
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_KeyboardArrowDown.default, {
282
289
  fontSize: "small"
283
290
  })
284
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography["default"], {
291
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
285
292
  sx: {
286
293
  fontSize: "var(--text-xs)",
287
294
  color: "var(--fg-subtle)",
@@ -289,26 +296,24 @@ function Drawer(_ref) {
289
296
  },
290
297
  children: "J / K"
291
298
  })]
292
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
299
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
293
300
  sx: HEADER_ACTIONS_SX,
294
- children: [actions, /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton["default"], {
301
+ children: [actions, /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
295
302
  size: "small",
296
303
  onClick: onClose,
297
304
  "aria-label": L.close,
298
- sx: {
299
- color: "var(--fg-muted)"
300
- },
301
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close["default"], {
305
+ sx: HEADER_ICON_BUTTON_SX,
306
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close.default, {
302
307
  fontSize: "small"
303
308
  })
304
309
  })]
305
310
  })]
306
- }), status && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
311
+ }), status && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
307
312
  sx: {
308
313
  marginBottom: "var(--s-2)"
309
314
  },
310
315
  children: status
311
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography["default"], {
316
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
312
317
  id: titleId,
313
318
  component: "h2",
314
319
  sx: {
@@ -318,7 +323,7 @@ function Drawer(_ref) {
318
323
  lineHeight: "var(--lh-snug)"
319
324
  },
320
325
  children: title
321
- }), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography["default"], {
326
+ }), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
322
327
  sx: {
323
328
  fontSize: "var(--text-sm)",
324
329
  color: "var(--fg-muted)",
@@ -326,7 +331,7 @@ function Drawer(_ref) {
326
331
  },
327
332
  children: subtitle
328
333
  })]
329
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
334
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
330
335
  sx: {
331
336
  padding: "var(--s-4) var(--s-5)",
332
337
  overflowY: "auto",
@@ -336,5 +341,5 @@ function Drawer(_ref) {
336
341
  })]
337
342
  });
338
343
  }
339
- var _default = exports["default"] = Drawer;
344
+ var _default = exports.default = Drawer;
340
345
  //# sourceMappingURL=Drawer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.js","names":["React","_interopRequireWildcard","require","_Drawer","_interopRequireDefault","_IconButton","_Close","_KeyboardArrowUp","_KeyboardArrowDown","_Box","_Typography","_tokens","_useFocusTrap","_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","prev","next","close","DRAWER_ROOT_SX","zIndex","drawer","HEADER_STICKY_SX","padding","borderBottom","position","top","background","HEADER_ACTIONS_SX","display","alignItems","gap","marginInlineStart","isEditableTarget","HTMLElement","tag","tagName","isContentEditable","innerCornerSx","anchor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Drawer","_ref","open","onClose","_ref$width","width","layout","title","subtitle","ariaLabel","status","actions","onPrev","onNext","_ref$hasPrev","hasPrev","_ref$hasNext","hasNext","children","_ref$anchor","labels","L","mergeLabels","hasItemNavigation","titleId","useId","paperRef","useRef","useFocusTrap","useEffect","handler","e","preventDefault","window","addEventListener","removeEventListener","slotProps","useMemo","paper","ref","sx","maxWidth","backgroundColor","boxShadow","jsxs","role","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","justifyContent","marginBottom","jsx","size","onClick","disabled","color","fontSize","id","component","fontWeight","lineHeight","marginTop","overflowY","flex","_default","exports"],"sources":["../../../src/lib/v2/components/Drawer.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiDrawer from \"@mui/material/Drawer\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\r\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { layout, zIndex } from \"../tokens\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Drawer - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Drawer\". Detail panel without leaving the list.\r\n *\r\n * R-DG.9 - Action de ligne = drawer/popup (pas full-page sauf édition).\r\n * R-M.1 - Esc ferme.\r\n * R-F.2 - Focus trap, restoration au déclencheur. Backed by the v2\r\n * useFocusTrap hook (Batch 3) - honours [autofocus] and\r\n * [data-autofocus] markers, coordinates with nested traps\r\n * via a module-level trapStack, and filters\r\n * disabled/hidden/inert subtrees.\r\n * R-K.2 - J/K/Arrow nav must NOT fire when an editable element has focus.\r\n * R-Ar.5 - aria-labelledby points at the rendered <h2> title so the\r\n * drawer is properly named to AT regardless of whether the\r\n * title is a string or a JSX node (audit Batch 5 / B5-1). When\r\n * no title is provided, pass `ariaLabel` to name the drawer.\r\n * J / K ou ↑ / ↓ → navigation entre items voisins.\r\n *\r\n * ── ITEM NAVIGATION IS OPT-IN (D-A10.2) ──────────────────────────────\r\n *\r\n * The prev/next cluster and its \"J / K\" hint render ONLY when `onPrev` or\r\n * `onNext` is supplied. This component serves two distinct jobs: item\r\n * preview, which navigates, and the charter's collapsible filter panel,\r\n * which does not. Rendering the cluster unconditionally gave every filter\r\n * drawer two permanently disabled buttons and a keyboard hint for a\r\n * shortcut with no effect — Guidance / Nielsen #8. A control that can\r\n * never become enabled is not a disabled control, it is noise.\r\n *\r\n * Preview callers pass both handlers and see no change.\r\n *\r\n * Stacking:\r\n * The drawer's portal layer uses the v2 `zIndex.drawer` token (80),\r\n * so it sits above sticky page chrome (sticky/topbar/overflow/\r\n * popover, all <= 60) and BELOW `modal` (100), `snackbar` (150),\r\n * `toast` (200) and `tooltip` (250). Sitting below the modal layer\r\n * is deliberate and load-bearing: MUI popups opened from INSIDE the\r\n * drawer (Combobox/Autocomplete listboxes and the X date-picker\r\n * calendars, which render at theme.zIndex.modal) and any nested\r\n * ConfirmDialog/Modal must stack ABOVE the drawer, not behind it.\r\n * (A previous build hardcoded 1300 here — a leftover from MUI's\r\n * default 1100..1500 scale before the v2 remap to 0..250 — which\r\n * buried those popups at 100 behind the drawer and made them look\r\n * unresponsive.)\r\n *\r\n * Multi-drawer assumption:\r\n * The J/K listener is attached to `window`; multiple simultaneously-\r\n * open drawers would all receive the keypress and call their own\r\n * onPrev/onNext. Product convention is ONE drawer at a time.\r\n */\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n prev: \"Précédent\",\r\n next: \"Suivant\",\r\n close: \"Fermer (Échap)\",\r\n});\r\n\r\nconst DRAWER_ROOT_SX = Object.freeze({\r\n // v2 z-index token (zIndex.js). drawer:80 sits above sticky page\r\n // chrome (<=60) and BELOW modal:100, so MUI popups opened from\r\n // inside the drawer (Combobox/Autocomplete listboxes, X date-picker\r\n // calendars — all rendered at theme.zIndex.modal) stack ABOVE it.\r\n // The previous hardcoded 1300 predated the v2 remap of MUI's\r\n // 1100..1500 scale down to 0..250 and left those popups (at 100)\r\n // buried behind the drawer (at 1300) — clicking them \"did nothing\".\r\n zIndex: zIndex.drawer,\r\n});\r\n\r\nconst HEADER_STICKY_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n position: \"sticky\",\r\n top: 0,\r\n background: \"var(--surface)\",\r\n // Drawer header sits ABOVE the drawer body content. The drawer\r\n // already establishes its own stacking context via the root\r\n // z-index, so this only competes within the drawer locally.\r\n zIndex: 1,\r\n} satisfies SxProps<Theme>);\r\n\r\n/*\r\n * Right-hand cluster (caller actions + close).\r\n *\r\n * marginInlineStart:\"auto\" pins it to the inline end REGARDLESS of whether\r\n * the navigation cluster is rendered. The row is space-between, so without\r\n * this the close button would slide to flex-start on a filter drawer, which\r\n * is where the nav cluster used to sit. Logical property so it holds in RTL\r\n * — the header already uses marginInlineStart for the J/K hint.\r\n */\r\nconst HEADER_ACTIONS_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n marginInlineStart: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction isEditableTarget(target: EventTarget | null): boolean {\r\n if (!(target instanceof HTMLElement)) return false;\r\n const tag = target.tagName;\r\n if (tag === \"INPUT\" || tag === \"TEXTAREA\" || tag === \"SELECT\") return true;\r\n if (target.isContentEditable) return true;\r\n return false;\r\n}\r\n\r\nfunction innerCornerSx(anchor: DrawerAnchor) {\r\n if (anchor === \"right\") {\r\n return { borderTopLeftRadius: 0, borderBottomLeftRadius: 0 };\r\n }\r\n if (anchor === \"left\") {\r\n return { borderTopRightRadius: 0, borderBottomRightRadius: 0 };\r\n }\r\n return {};\r\n}\r\n\r\nexport type DrawerAnchor = \"left\" | \"right\" | \"top\" | \"bottom\";\r\n\r\nexport interface DrawerLabels {\r\n prev?: string | undefined;\r\n next?: string | undefined;\r\n close?: string | undefined;\r\n}\r\n\r\nexport interface DrawerProps {\r\n open?: boolean | undefined;\r\n onClose?: (() => void) | undefined;\r\n width?: number | string | undefined;\r\n title?: React.ReactNode | undefined;\r\n subtitle?: React.ReactNode | undefined;\r\n /** Accessible name for the drawer when no `title` is rendered (R-Ar.5). */\r\n ariaLabel?: string | undefined;\r\n status?: React.ReactNode | undefined;\r\n actions?: React.ReactNode | undefined;\r\n /**\r\n * Step to the previous item. Supplying either this or `onNext` is what\r\n * renders the navigation cluster at all — see the opt-in note in the\r\n * module docstring. Omit both on a filter panel.\r\n */\r\n onPrev?: (() => void) | undefined;\r\n /** Step to the next item. See `onPrev`. */\r\n onNext?: (() => void) | undefined;\r\n hasPrev?: boolean | undefined;\r\n hasNext?: boolean | undefined;\r\n children?: React.ReactNode | undefined;\r\n anchor?: DrawerAnchor | undefined;\r\n labels?: DrawerLabels | undefined;\r\n}\r\n\r\nfunction Drawer({\r\n open,\r\n onClose,\r\n width = layout.drawer,\r\n title,\r\n subtitle,\r\n ariaLabel,\r\n status,\r\n actions,\r\n onPrev,\r\n onNext,\r\n hasPrev = false,\r\n hasNext = false,\r\n children,\r\n anchor = \"right\",\r\n labels,\r\n}: DrawerProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n\r\n /*\r\n * D-A10.2 — does this drawer navigate between items at all?\r\n *\r\n * Presence of a HANDLER, not of hasPrev/hasNext. A preview drawer sitting\r\n * on a single-row result set has both flags false and must still show the\r\n * cluster disabled, because navigation is part of what that drawer is. A\r\n * filter panel supplies no handler and has no such affordance to disable.\r\n */\r\n const hasItemNavigation = onPrev !== undefined || onNext !== undefined;\r\n\r\n // R-Ar.5 - stable, per-instance, collision-safe id for aria-labelledby.\r\n // Points at the <h2> Typography that already renders {title}. Resolves\r\n // through the DOM regardless of whether `title` is a string or JSX —\r\n // aria-labelledby reads the rendered text content. Replaces the previous\r\n // `aria-label={typeof title === \"string\" ? title : undefined}` which\r\n // left JSX-titled drawers unlabelled (B5-1).\r\n const titleId = React.useId();\r\n\r\n const paperRef = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(paperRef, !!open);\r\n\r\n /*\r\n * Escape must close EVERY drawer, so this effect binds whether or not item\r\n * navigation is wired. The J/K branches are already gated on\r\n * hasNext/hasPrev, which a filter panel leaves false, so they are inert\r\n * there rather than needing their own guard.\r\n */\r\n React.useEffect(() => {\r\n if (!open) return undefined;\r\n const handler = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") { onClose?.(); return; }\r\n if (isEditableTarget(e.target)) return;\r\n if ((e.key === \"j\" || e.key === \"ArrowDown\") && hasNext) {\r\n e.preventDefault(); onNext?.();\r\n } else if ((e.key === \"k\" || e.key === \"ArrowUp\") && hasPrev) {\r\n e.preventDefault(); onPrev?.();\r\n }\r\n };\r\n window.addEventListener(\"keydown\", handler);\r\n return () => window.removeEventListener(\"keydown\", handler);\r\n }, [open, onClose, onNext, onPrev, hasNext, hasPrev]);\r\n\r\n // MUI v9: paper slot forwarded through slotProps.paper. Wired with a\r\n // useMemo so the ref + sx bag keeps reference stability across renders\r\n // where `width` and `anchor` don't change.\r\n const slotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n ref: paperRef,\r\n sx: {\r\n width,\r\n maxWidth: \"100vw\",\r\n ...innerCornerSx(anchor),\r\n backgroundColor: \"var(--surface)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n },\r\n },\r\n }),\r\n [width, anchor]\r\n );\r\n\r\n return (\r\n <MuiDrawer\r\n anchor={anchor}\r\n open={!!open}\r\n onClose={onClose}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n // Name = the <h2> title text (via titleId). Falls back to ariaLabel\r\n // when the drawer is rendered without a title.\r\n aria-labelledby={title != null ? titleId : undefined}\r\n aria-label={title == null ? ariaLabel : undefined}\r\n disableAutoFocus\r\n disableEnforceFocus\r\n disableRestoreFocus\r\n // Root sx anchors the whole drawer (including its portal-level\r\n // container) at the v2 zIndex.drawer token — see DRAWER_ROOT_SX.\r\n sx={DRAWER_ROOT_SX}\r\n slotProps={slotProps}\r\n >\r\n <Box sx={HEADER_STICKY_SX}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"var(--s-2)\" }}>\r\n {/*\r\n Navigation cluster — opt-in (D-A10.2). Rendered only when the\r\n caller wired onPrev or onNext, so a filter panel does not carry\r\n two permanently disabled buttons and a J/K hint for a shortcut\r\n that cannot fire.\r\n */}\r\n {hasItemNavigation && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" }}>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPrev}\r\n disabled={!hasPrev}\r\n aria-label={L.prev}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <KeyboardArrowUpIcon fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onNext}\r\n disabled={!hasNext}\r\n aria-label={L.next}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <KeyboardArrowDownIcon fontSize=\"small\" />\r\n </IconButton>\r\n <Typography\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n marginInlineStart: \"var(--s-1)\",\r\n }}\r\n >\r\n J / K\r\n </Typography>\r\n </Box>\r\n )}\r\n {/* marginInlineStart:auto keeps close pinned to the inline end\r\n whether or not the cluster above rendered — see\r\n HEADER_ACTIONS_SX. */}\r\n <Box sx={HEADER_ACTIONS_SX}>\r\n {actions}\r\n <IconButton\r\n size=\"small\"\r\n onClick={onClose}\r\n aria-label={L.close}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n </Box>\r\n {status && <Box sx={{ marginBottom: \"var(--s-2)\" }}>{status}</Box>}\r\n <Typography\r\n id={titleId}\r\n component=\"h2\"\r\n sx={{ fontSize: \"var(--text-h3)\", fontWeight: \"var(--fw-bold)\", color: \"var(--fg)\", lineHeight: \"var(--lh-snug)\" }}\r\n >\r\n {title}\r\n </Typography>\r\n {subtitle && (\r\n <Typography sx={{ fontSize: \"var(--text-sm)\", color: \"var(--fg-muted)\", marginTop: \"var(--s-1)\" }}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </Box>\r\n\r\n <Box sx={{ padding: \"var(--s-4) var(--s-5)\", overflowY: \"auto\", flex: 1 }}>\r\n {children}\r\n </Box>\r\n </MuiDrawer>\r\n );\r\n}\r\n\r\nexport default Drawer;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Drawer.js","names":["React","_interopRequireWildcard","require","_Drawer","_interopRequireDefault","_IconButton","_Close","_KeyboardArrowUp","_KeyboardArrowDown","_Box","_Typography","_tokens","_useFocusTrap","_mergeLabels","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_LABELS","freeze","prev","next","close","DRAWER_ROOT_SX","zIndex","drawer","HEADER_STICKY_SX","padding","borderBottom","position","top","background","HEADER_ACTIONS_SX","display","alignItems","gap","marginInlineStart","HEADER_ICON_BUTTON_SX","color","minWidth","layout","tactileMin","minHeight","isEditableTarget","target","HTMLElement","tag","tagName","isContentEditable","innerCornerSx","anchor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","Drawer","open","onClose","width","title","subtitle","ariaLabel","status","actions","onPrev","onNext","hasPrev","hasNext","children","labels","L","mergeLabels","hasItemNavigation","undefined","titleId","useId","paperRef","useRef","useFocusTrap","useEffect","handler","key","preventDefault","window","addEventListener","removeEventListener","slotProps","useMemo","paper","ref","sx","maxWidth","backgroundColor","boxShadow","jsxs","role","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","justifyContent","marginBottom","jsx","size","onClick","disabled","fontSize","id","component","fontWeight","lineHeight","marginTop","overflowY","flex","_default","exports"],"sources":["../../../src/lib/v2/components/Drawer.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiDrawer from \"@mui/material/Drawer\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport KeyboardArrowUpIcon from \"@mui/icons-material/KeyboardArrowUp\";\r\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { layout, zIndex } from \"../tokens\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Drawer - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Drawer\". Detail panel without leaving the list.\r\n *\r\n * R-DG.9 - Action de ligne = drawer/popup (pas full-page sauf édition).\r\n * R-M.1 - Esc ferme.\r\n * R-F.2 - Focus trap, restoration au déclencheur. Backed by the v2\r\n * useFocusTrap hook (Batch 3) - honours [autofocus] and\r\n * [data-autofocus] markers, coordinates with nested traps\r\n * via a module-level trapStack, and filters\r\n * disabled/hidden/inert subtrees.\r\n * R-K.2 - J/K/Arrow nav must NOT fire when an editable element has focus.\r\n * R-Ar.5 - aria-labelledby points at the rendered <h2> title so the\r\n * drawer is properly named to AT regardless of whether the\r\n * title is a string or a JSX node (audit Batch 5 / B5-1). When\r\n * no title is provided, pass `ariaLabel` to name the drawer.\r\n * J / K ou ↑ / ↓ → navigation entre items voisins.\r\n *\r\n * ── ITEM NAVIGATION IS OPT-IN (D-A10.2) ──────────────────────────────\r\n *\r\n * The prev/next cluster and its \"J / K\" hint render ONLY when `onPrev` or\r\n * `onNext` is supplied. This component serves two distinct jobs: item\r\n * preview, which navigates, and the charter's collapsible filter panel,\r\n * which does not. Rendering the cluster unconditionally gave every filter\r\n * drawer two permanently disabled buttons and a keyboard hint for a\r\n * shortcut with no effect — Guidance / Nielsen #8. A control that can\r\n * never become enabled is not a disabled control, it is noise.\r\n *\r\n * Preview callers pass both handlers and see no change.\r\n *\r\n * Stacking:\r\n * The drawer's portal layer uses the v2 `zIndex.drawer` token (80),\r\n * so it sits above sticky page chrome (sticky/topbar/overflow/\r\n * popover, all <= 60) and BELOW `modal` (100), `snackbar` (150),\r\n * `toast` (200) and `tooltip` (250). Sitting below the modal layer\r\n * is deliberate and load-bearing: MUI popups opened from INSIDE the\r\n * drawer (Combobox/Autocomplete listboxes and the X date-picker\r\n * calendars, which render at theme.zIndex.modal) and any nested\r\n * ConfirmDialog/Modal must stack ABOVE the drawer, not behind it.\r\n * (A previous build hardcoded 1300 here — a leftover from MUI's\r\n * default 1100..1500 scale before the v2 remap to 0..250 — which\r\n * buried those popups at 100 behind the drawer and made them look\r\n * unresponsive.)\r\n *\r\n * Multi-drawer assumption:\r\n * The J/K listener is attached to `window`; multiple simultaneously-\r\n * open drawers would all receive the keypress and call their own\r\n * onPrev/onNext. Product convention is ONE drawer at a time.\r\n */\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n prev: \"Précédent\",\r\n next: \"Suivant\",\r\n close: \"Fermer (Échap)\",\r\n});\r\n\r\nconst DRAWER_ROOT_SX = Object.freeze({\r\n // v2 z-index token (zIndex.js). drawer:80 sits above sticky page\r\n // chrome (<=60) and BELOW modal:100, so MUI popups opened from\r\n // inside the drawer (Combobox/Autocomplete listboxes, X date-picker\r\n // calendars — all rendered at theme.zIndex.modal) stack ABOVE it.\r\n // The previous hardcoded 1300 predated the v2 remap of MUI's\r\n // 1100..1500 scale down to 0..250 and left those popups (at 100)\r\n // buried behind the drawer (at 1300) — clicking them \"did nothing\".\r\n zIndex: zIndex.drawer,\r\n});\r\n\r\nconst HEADER_STICKY_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n position: \"sticky\",\r\n top: 0,\r\n background: \"var(--surface)\",\r\n // Drawer header sits ABOVE the drawer body content. The drawer\r\n // already establishes its own stacking context via the root\r\n // z-index, so this only competes within the drawer locally.\r\n zIndex: 1,\r\n} satisfies SxProps<Theme>);\r\n\r\n/*\r\n * Right-hand cluster (caller actions + close).\r\n *\r\n * marginInlineStart:\"auto\" pins it to the inline end REGARDLESS of whether\r\n * the navigation cluster is rendered. The row is space-between, so without\r\n * this the close button would slide to flex-start on a filter drawer, which\r\n * is where the nav cluster used to sit. Logical property so it holds in RTL\r\n * — the header already uses marginInlineStart for the J/K hint.\r\n */\r\nconst HEADER_ACTIONS_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n marginInlineStart: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/**\r\n * Cible tactile des boutons d'icône de l'en-tête (R-7.4 / WCAG 2.5.5).\r\n *\r\n * Le docblock de `tokens/density` énonce la règle sans ambiguïté : « Icon-only\r\n * buttons MUST set min-width/min-height to `tactileMin` », parce que la hauteur\r\n * VISUELLE d'un bouton peut descendre sous 44 px dans les paliers de densité\r\n * serrés sans que la zone d'appui le puisse. Les trois boutons de cet en-tête\r\n * — précédent, suivant, fermer — étaient des `IconButton size=\"small\"` sans\r\n * plancher : environ 34 px, soit dix de moins que le minimum que ce même socle\r\n * impose à ses hôtes.\r\n *\r\n * L'écart est resté invisible tant que la navigation entre items était peu\r\n * câblée : un tiroir de filtres ne rend que le bouton de fermeture. Un module\r\n * qui équipe ses aperçus de `onPrev`/`onNext` en expose trois par tiroir.\r\n *\r\n * `min*` et non `width`/`height` : la zone d'appui grandit, le dessin de\r\n * l'icône ne change pas — c'est exactement la distinction que fait la note de\r\n * `tokens/density`.\r\n */\r\nconst HEADER_ICON_BUTTON_SX = Object.freeze({\r\n color: \"var(--fg-muted)\",\r\n minWidth: layout.tactileMin,\r\n minHeight: layout.tactileMin,\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction isEditableTarget(target: EventTarget | null): boolean {\r\n if (!(target instanceof HTMLElement)) return false;\r\n const tag = target.tagName;\r\n if (tag === \"INPUT\" || tag === \"TEXTAREA\" || tag === \"SELECT\") return true;\r\n if (target.isContentEditable) return true;\r\n return false;\r\n}\r\n\r\nfunction innerCornerSx(anchor: DrawerAnchor) {\r\n if (anchor === \"right\") {\r\n return { borderTopLeftRadius: 0, borderBottomLeftRadius: 0 };\r\n }\r\n if (anchor === \"left\") {\r\n return { borderTopRightRadius: 0, borderBottomRightRadius: 0 };\r\n }\r\n return {};\r\n}\r\n\r\nexport type DrawerAnchor = \"left\" | \"right\" | \"top\" | \"bottom\";\r\n\r\nexport interface DrawerLabels {\r\n prev?: string | undefined;\r\n next?: string | undefined;\r\n close?: string | undefined;\r\n}\r\n\r\nexport interface DrawerProps {\r\n open?: boolean | undefined;\r\n onClose?: (() => void) | undefined;\r\n width?: number | string | undefined;\r\n title?: React.ReactNode | undefined;\r\n subtitle?: React.ReactNode | undefined;\r\n /** Accessible name for the drawer when no `title` is rendered (R-Ar.5). */\r\n ariaLabel?: string | undefined;\r\n status?: React.ReactNode | undefined;\r\n actions?: React.ReactNode | undefined;\r\n /**\r\n * Step to the previous item. Supplying either this or `onNext` is what\r\n * renders the navigation cluster at all — see the opt-in note in the\r\n * module docstring. Omit both on a filter panel.\r\n */\r\n onPrev?: (() => void) | undefined;\r\n /** Step to the next item. See `onPrev`. */\r\n onNext?: (() => void) | undefined;\r\n hasPrev?: boolean | undefined;\r\n hasNext?: boolean | undefined;\r\n children?: React.ReactNode | undefined;\r\n anchor?: DrawerAnchor | undefined;\r\n labels?: DrawerLabels | undefined;\r\n}\r\n\r\nfunction Drawer({\r\n open,\r\n onClose,\r\n width = layout.drawer,\r\n title,\r\n subtitle,\r\n ariaLabel,\r\n status,\r\n actions,\r\n onPrev,\r\n onNext,\r\n hasPrev = false,\r\n hasNext = false,\r\n children,\r\n anchor = \"right\",\r\n labels,\r\n}: DrawerProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n\r\n /*\r\n * D-A10.2 — does this drawer navigate between items at all?\r\n *\r\n * Presence of a HANDLER, not of hasPrev/hasNext. A preview drawer sitting\r\n * on a single-row result set has both flags false and must still show the\r\n * cluster disabled, because navigation is part of what that drawer is. A\r\n * filter panel supplies no handler and has no such affordance to disable.\r\n */\r\n const hasItemNavigation = onPrev !== undefined || onNext !== undefined;\r\n\r\n // R-Ar.5 - stable, per-instance, collision-safe id for aria-labelledby.\r\n // Points at the <h2> Typography that already renders {title}. Resolves\r\n // through the DOM regardless of whether `title` is a string or JSX —\r\n // aria-labelledby reads the rendered text content. Replaces the previous\r\n // `aria-label={typeof title === \"string\" ? title : undefined}` which\r\n // left JSX-titled drawers unlabelled (B5-1).\r\n const titleId = React.useId();\r\n\r\n const paperRef = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(paperRef, !!open);\r\n\r\n /*\r\n * Escape must close EVERY drawer, so this effect binds whether or not item\r\n * navigation is wired. The J/K branches are already gated on\r\n * hasNext/hasPrev, which a filter panel leaves false, so they are inert\r\n * there rather than needing their own guard.\r\n */\r\n React.useEffect(() => {\r\n if (!open) return undefined;\r\n const handler = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") { onClose?.(); return; }\r\n if (isEditableTarget(e.target)) return;\r\n if ((e.key === \"j\" || e.key === \"ArrowDown\") && hasNext) {\r\n e.preventDefault(); onNext?.();\r\n } else if ((e.key === \"k\" || e.key === \"ArrowUp\") && hasPrev) {\r\n e.preventDefault(); onPrev?.();\r\n }\r\n };\r\n window.addEventListener(\"keydown\", handler);\r\n return () => window.removeEventListener(\"keydown\", handler);\r\n }, [open, onClose, onNext, onPrev, hasNext, hasPrev]);\r\n\r\n // MUI v9: paper slot forwarded through slotProps.paper. Wired with a\r\n // useMemo so the ref + sx bag keeps reference stability across renders\r\n // where `width` and `anchor` don't change.\r\n const slotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n ref: paperRef,\r\n sx: {\r\n width,\r\n maxWidth: \"100vw\",\r\n ...innerCornerSx(anchor),\r\n backgroundColor: \"var(--surface)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n },\r\n },\r\n }),\r\n [width, anchor]\r\n );\r\n\r\n return (\r\n <MuiDrawer\r\n anchor={anchor}\r\n open={!!open}\r\n onClose={onClose}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n // Name = the <h2> title text (via titleId). Falls back to ariaLabel\r\n // when the drawer is rendered without a title.\r\n aria-labelledby={title != null ? titleId : undefined}\r\n aria-label={title == null ? ariaLabel : undefined}\r\n disableAutoFocus\r\n disableEnforceFocus\r\n disableRestoreFocus\r\n // Root sx anchors the whole drawer (including its portal-level\r\n // container) at the v2 zIndex.drawer token — see DRAWER_ROOT_SX.\r\n sx={DRAWER_ROOT_SX}\r\n slotProps={slotProps}\r\n >\r\n <Box sx={HEADER_STICKY_SX}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"space-between\", marginBottom: \"var(--s-2)\" }}>\r\n {/*\r\n Navigation cluster — opt-in (D-A10.2). Rendered only when the\r\n caller wired onPrev or onNext, so a filter panel does not carry\r\n two permanently disabled buttons and a J/K hint for a shortcut\r\n that cannot fire.\r\n */}\r\n {hasItemNavigation && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" }}>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onPrev}\r\n disabled={!hasPrev}\r\n aria-label={L.prev}\r\n sx={HEADER_ICON_BUTTON_SX}\r\n >\r\n <KeyboardArrowUpIcon fontSize=\"small\" />\r\n </IconButton>\r\n <IconButton\r\n size=\"small\"\r\n onClick={onNext}\r\n disabled={!hasNext}\r\n aria-label={L.next}\r\n sx={HEADER_ICON_BUTTON_SX}\r\n >\r\n <KeyboardArrowDownIcon fontSize=\"small\" />\r\n </IconButton>\r\n <Typography\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n marginInlineStart: \"var(--s-1)\",\r\n }}\r\n >\r\n J / K\r\n </Typography>\r\n </Box>\r\n )}\r\n {/* marginInlineStart:auto keeps close pinned to the inline end\r\n whether or not the cluster above rendered — see\r\n HEADER_ACTIONS_SX. */}\r\n <Box sx={HEADER_ACTIONS_SX}>\r\n {actions}\r\n <IconButton\r\n size=\"small\"\r\n onClick={onClose}\r\n aria-label={L.close}\r\n sx={HEADER_ICON_BUTTON_SX}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n </Box>\r\n {status && <Box sx={{ marginBottom: \"var(--s-2)\" }}>{status}</Box>}\r\n <Typography\r\n id={titleId}\r\n component=\"h2\"\r\n sx={{ fontSize: \"var(--text-h3)\", fontWeight: \"var(--fw-bold)\", color: \"var(--fg)\", lineHeight: \"var(--lh-snug)\" }}\r\n >\r\n {title}\r\n </Typography>\r\n {subtitle && (\r\n <Typography sx={{ fontSize: \"var(--text-sm)\", color: \"var(--fg-muted)\", marginTop: \"var(--s-1)\" }}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </Box>\r\n\r\n <Box sx={{ padding: \"var(--s-4) var(--s-5)\", overflowY: \"auto\", flex: 1 }}>\r\n {children}\r\n </Box>\r\n </MuiDrawer>\r\n );\r\n}\r\n\r\nexport default Drawer;\r\n"],"mappings":"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","ignoreList":[]}