@portnet/ui 6.0.1 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1011) hide show
  1. package/CHANGELOG.md +737 -0
  2. package/dist/esm/index.js +90 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
  5. package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
  7. package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
  9. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
  11. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FieldError.test.js +71 -39
  13. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  14. package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
  15. package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -18
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +173 -0
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +236 -0
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  24. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
  25. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +299 -0
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -43
  29. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  30. package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
  31. package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
  33. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  34. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
  35. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  36. package/dist/esm/v2/__tests__/apiError.test.js +50 -69
  37. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
  38. package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
  39. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
  40. package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
  41. package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
  42. package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
  43. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
  44. package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
  45. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
  46. package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
  47. package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
  48. package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
  49. package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
  50. package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
  51. package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
  52. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
  53. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  54. package/dist/esm/v2/__tests__/labels-merge.test.js +17 -22
  55. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  56. package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
  57. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
  58. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
  59. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  60. package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
  61. package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
  62. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
  63. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  64. package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
  65. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
  66. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
  67. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  68. package/dist/esm/v2/components/Accordion.js +48 -70
  69. package/dist/esm/v2/components/Accordion.js.map +1 -1
  70. package/dist/esm/v2/components/ActionStrip.js +31 -43
  71. package/dist/esm/v2/components/ActionStrip.js.map +1 -1
  72. package/dist/esm/v2/components/Banner.js +25 -22
  73. package/dist/esm/v2/components/Banner.js.map +1 -1
  74. package/dist/esm/v2/components/Busy.js +14 -19
  75. package/dist/esm/v2/components/Busy.js.map +1 -1
  76. package/dist/esm/v2/components/Button.js +34 -45
  77. package/dist/esm/v2/components/Button.js.map +1 -1
  78. package/dist/esm/v2/components/CategoryTag.js +44 -27
  79. package/dist/esm/v2/components/CategoryTag.js.map +1 -1
  80. package/dist/esm/v2/components/Checkbox.js +32 -38
  81. package/dist/esm/v2/components/Checkbox.js.map +1 -1
  82. package/dist/esm/v2/components/Chip.js +23 -36
  83. package/dist/esm/v2/components/Chip.js.map +1 -1
  84. package/dist/esm/v2/components/Combobox.js +112 -136
  85. package/dist/esm/v2/components/Combobox.js.map +1 -1
  86. package/dist/esm/v2/components/CommandPalette.js +113 -198
  87. package/dist/esm/v2/components/CommandPalette.js.map +1 -1
  88. package/dist/esm/v2/components/ConfirmDialog.js +36 -45
  89. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
  90. package/dist/esm/v2/components/DatePicker.js +78 -81
  91. package/dist/esm/v2/components/DatePicker.js.map +1 -1
  92. package/dist/esm/v2/components/DateRangePicker.js +63 -74
  93. package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
  94. package/dist/esm/v2/components/DateTimePicker.js +118 -90
  95. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  96. package/dist/esm/v2/components/Drawer.js +71 -65
  97. package/dist/esm/v2/components/Drawer.js.map +1 -1
  98. package/dist/esm/v2/components/Dropzone.js +130 -177
  99. package/dist/esm/v2/components/Dropzone.js.map +1 -1
  100. package/dist/esm/v2/components/EmptyState.js +9 -9
  101. package/dist/esm/v2/components/EmptyState.js.map +1 -1
  102. package/dist/esm/v2/components/FavoriteToggle.js +24 -33
  103. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
  104. package/dist/esm/v2/components/Field.js +210 -52
  105. package/dist/esm/v2/components/Field.js.map +1 -1
  106. package/dist/esm/v2/components/FieldError.js +9 -13
  107. package/dist/esm/v2/components/FieldError.js.map +1 -1
  108. package/dist/esm/v2/components/FieldHelp.js +28 -49
  109. package/dist/esm/v2/components/FieldHelp.js.map +1 -1
  110. package/dist/esm/v2/components/FileCard.js +14 -19
  111. package/dist/esm/v2/components/FileCard.js.map +1 -1
  112. package/dist/esm/v2/components/FilterTab.js +22 -31
  113. package/dist/esm/v2/components/FilterTab.js.map +1 -1
  114. package/dist/esm/v2/components/ForbiddenPage.js +28 -8
  115. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
  116. package/dist/esm/v2/components/FormGrid.js +48 -54
  117. package/dist/esm/v2/components/FormGrid.js.map +1 -1
  118. package/dist/esm/v2/components/FormikDisplay.js +98 -24
  119. package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
  120. package/dist/esm/v2/components/Input.js +75 -34
  121. package/dist/esm/v2/components/Input.js.map +1 -1
  122. package/dist/esm/v2/components/KPICard.js +42 -51
  123. package/dist/esm/v2/components/KPICard.js.map +1 -1
  124. package/dist/esm/v2/components/KPIStrip.js +9 -15
  125. package/dist/esm/v2/components/KPIStrip.js.map +1 -1
  126. package/dist/esm/v2/components/KV.js +16 -23
  127. package/dist/esm/v2/components/KV.js.map +1 -1
  128. package/dist/esm/v2/components/KVGrid.js +15 -23
  129. package/dist/esm/v2/components/KVGrid.js.map +1 -1
  130. package/dist/esm/v2/components/Layout.js +81 -117
  131. package/dist/esm/v2/components/Layout.js.map +1 -1
  132. package/dist/esm/v2/components/MobileRowCard.js +64 -75
  133. package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
  134. package/dist/esm/v2/components/Modal.js +44 -53
  135. package/dist/esm/v2/components/Modal.js.map +1 -1
  136. package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
  137. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
  138. package/dist/esm/v2/components/NotFoundPage.js +28 -9
  139. package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
  140. package/dist/esm/v2/components/NumberInput.js +77 -107
  141. package/dist/esm/v2/components/NumberInput.js.map +1 -1
  142. package/dist/esm/v2/components/OverflowMenu.js +24 -42
  143. package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
  144. package/dist/esm/v2/components/PdfViewer.js +24 -33
  145. package/dist/esm/v2/components/PdfViewer.js.map +1 -1
  146. package/dist/esm/v2/components/ProgressBar.js +28 -36
  147. package/dist/esm/v2/components/ProgressBar.js.map +1 -1
  148. package/dist/esm/v2/components/Radio.js +49 -57
  149. package/dist/esm/v2/components/Radio.js.map +1 -1
  150. package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
  151. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
  152. package/dist/esm/v2/components/SectionHeader.js +24 -31
  153. package/dist/esm/v2/components/SectionHeader.js.map +1 -1
  154. package/dist/esm/v2/components/Segmented.js +59 -84
  155. package/dist/esm/v2/components/Segmented.js.map +1 -1
  156. package/dist/esm/v2/components/Select.js +100 -138
  157. package/dist/esm/v2/components/Select.js.map +1 -1
  158. package/dist/esm/v2/components/ServerErrorPage.js +27 -10
  159. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
  160. package/dist/esm/v2/components/Skeleton.js +81 -96
  161. package/dist/esm/v2/components/Skeleton.js.map +1 -1
  162. package/dist/esm/v2/components/SkipLink.js +6 -7
  163. package/dist/esm/v2/components/SkipLink.js.map +1 -1
  164. package/dist/esm/v2/components/Spinner.js +13 -22
  165. package/dist/esm/v2/components/Spinner.js.map +1 -1
  166. package/dist/esm/v2/components/Status.js +14 -25
  167. package/dist/esm/v2/components/Status.js.map +1 -1
  168. package/dist/esm/v2/components/Stepper.js +68 -71
  169. package/dist/esm/v2/components/Stepper.js.map +1 -1
  170. package/dist/esm/v2/components/Surface.js +25 -44
  171. package/dist/esm/v2/components/Surface.js.map +1 -1
  172. package/dist/esm/v2/components/Switch.js +21 -29
  173. package/dist/esm/v2/components/Switch.js.map +1 -1
  174. package/dist/esm/v2/components/TabPanel.js +84 -0
  175. package/dist/esm/v2/components/TabPanel.js.map +1 -0
  176. package/dist/esm/v2/components/Tabs.js +43 -19
  177. package/dist/esm/v2/components/Tabs.js.map +1 -1
  178. package/dist/esm/v2/components/TelInput.js +75 -108
  179. package/dist/esm/v2/components/TelInput.js.map +1 -1
  180. package/dist/esm/v2/components/Textarea.js +21 -30
  181. package/dist/esm/v2/components/Textarea.js.map +1 -1
  182. package/dist/esm/v2/components/TimePicker.js +59 -69
  183. package/dist/esm/v2/components/TimePicker.js.map +1 -1
  184. package/dist/esm/v2/components/Toast.js +109 -163
  185. package/dist/esm/v2/components/Toast.js.map +1 -1
  186. package/dist/esm/v2/components/Tooltip.js +18 -31
  187. package/dist/esm/v2/components/Tooltip.js.map +1 -1
  188. package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
  189. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
  190. package/dist/esm/v2/components/_pickerShared.js +2 -2
  191. package/dist/esm/v2/components/_pickerShared.js.map +1 -1
  192. package/dist/esm/v2/components/index.js +64 -0
  193. package/dist/esm/v2/components/index.js.map +1 -1
  194. package/dist/esm/v2/hooks/index.js +62 -0
  195. package/dist/esm/v2/hooks/index.js.map +1 -1
  196. package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
  197. package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
  198. package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
  199. package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
  200. package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
  201. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
  202. package/dist/esm/v2/hooks/useDensity.js +13 -17
  203. package/dist/esm/v2/hooks/useDensity.js.map +1 -1
  204. package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
  205. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
  206. package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
  207. package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  208. package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
  209. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
  210. package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
  211. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
  212. package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
  213. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
  214. package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
  215. package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  216. package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
  217. package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  218. package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
  219. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
  220. package/dist/esm/v2/hooks/useSortedRows.js +3 -5
  221. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
  222. package/dist/esm/v2/hooks/useTabLoading.js +6 -21
  223. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
  224. package/dist/esm/v2/index.js +14 -4
  225. package/dist/esm/v2/index.js.map +1 -1
  226. package/dist/esm/v2/modalContext.js +2 -2
  227. package/dist/esm/v2/modalContext.js.map +1 -1
  228. package/dist/esm/v2/models/favorite.js.map +1 -1
  229. package/dist/esm/v2/models/personalization.js.map +1 -1
  230. package/dist/esm/v2/models/referentiel.js.map +1 -1
  231. package/dist/esm/v2/models/savedFilter.js.map +1 -1
  232. package/dist/esm/v2/patterns/ActionBar.js +115 -159
  233. package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
  234. package/dist/esm/v2/patterns/AppMain.js +108 -0
  235. package/dist/esm/v2/patterns/AppMain.js.map +1 -0
  236. package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
  237. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
  238. package/dist/esm/v2/patterns/ChartFigure.js +151 -0
  239. package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
  240. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
  241. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  242. package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
  243. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
  244. package/dist/esm/v2/patterns/DataGrid.js +221 -255
  245. package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
  246. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
  247. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  248. package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
  249. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
  250. package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
  251. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
  252. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
  253. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  254. package/dist/esm/v2/patterns/DetailSplit.js +108 -0
  255. package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
  256. package/dist/esm/v2/patterns/FavoriteColumn.js +26 -75
  257. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  258. package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
  259. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
  260. package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
  261. package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
  262. package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
  263. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
  264. package/dist/esm/v2/patterns/FormPageShell.js +43 -41
  265. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
  266. package/dist/esm/v2/patterns/FormSection.js +30 -38
  267. package/dist/esm/v2/patterns/FormSection.js.map +1 -1
  268. package/dist/esm/v2/patterns/FormikCheckbox.js +130 -0
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  270. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
  271. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  272. package/dist/esm/v2/patterns/FormikCombobox.js +51 -66
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +51 -99
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +136 -0
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  278. package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
  279. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
  280. package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
  281. package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
  282. package/dist/esm/v2/patterns/FormikFile.js +94 -78
  283. package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
  284. package/dist/esm/v2/patterns/FormikInput.js +40 -50
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +129 -0
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  288. package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
  289. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
  290. package/dist/esm/v2/patterns/FormikSelect.js +64 -84
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -43
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +64 -65
  295. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  296. package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
  297. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
  298. package/dist/esm/v2/patterns/PageContent.js +10 -14
  299. package/dist/esm/v2/patterns/PageContent.js.map +1 -1
  300. package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
  301. package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
  302. package/dist/esm/v2/patterns/ReferentielField.js +327 -312
  303. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
  304. package/dist/esm/v2/patterns/RowFavoriteToggle.js +127 -0
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  306. package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
  307. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
  308. package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
  309. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
  310. package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
  311. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
  312. package/dist/esm/v2/patterns/SortableHeader.js +22 -45
  313. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
  314. package/dist/esm/v2/patterns/Tour.js +94 -120
  315. package/dist/esm/v2/patterns/Tour.js.map +1 -1
  316. package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
  317. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
  318. package/dist/esm/v2/patterns/_pickerSerialisation.js +72 -0
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  320. package/dist/esm/v2/patterns/_sort.js +17 -33
  321. package/dist/esm/v2/patterns/_sort.js.map +1 -1
  322. package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
  323. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
  324. package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
  325. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
  326. package/dist/esm/v2/patterns/filterCriteria.js +102 -0
  327. package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
  328. package/dist/esm/v2/patterns/index.js +235 -0
  329. package/dist/esm/v2/patterns/index.js.map +1 -1
  330. package/dist/esm/v2/patterns/rowActions.js +223 -0
  331. package/dist/esm/v2/patterns/rowActions.js.map +1 -0
  332. package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
  333. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
  334. package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
  335. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
  336. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
  337. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  338. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
  339. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  340. package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
  341. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
  342. package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
  343. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
  344. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +203 -0
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  346. package/dist/esm/v2/personalization/capabilities/index.js +5 -0
  347. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
  348. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  349. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  350. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  351. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  352. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  353. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  354. package/dist/esm/v2/personalization/index.js +35 -0
  355. package/dist/esm/v2/personalization/index.js.map +1 -1
  356. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  357. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  358. package/dist/esm/v2/personalization/schema.js +8 -9
  359. package/dist/esm/v2/personalization/schema.js.map +1 -1
  360. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  361. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  362. package/dist/esm/v2/referentiel/types.js +2 -0
  363. package/dist/esm/v2/referentiel/types.js.map +1 -0
  364. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  365. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  367. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  368. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  369. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  370. package/dist/esm/v2/theme/_brand.js +8 -24
  371. package/dist/esm/v2/theme/_brand.js.map +1 -1
  372. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  373. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  374. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  375. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  376. package/dist/esm/v2/theme/cssVariables.js +62 -69
  377. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  378. package/dist/esm/v2/theme/index.js +5 -5
  379. package/dist/esm/v2/theme/index.js.map +1 -1
  380. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  381. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  382. package/dist/esm/v2/tokens/chart.js +261 -0
  383. package/dist/esm/v2/tokens/chart.js.map +1 -0
  384. package/dist/esm/v2/tokens/colors.js +22 -22
  385. package/dist/esm/v2/tokens/colors.js.map +1 -1
  386. package/dist/esm/v2/tokens/density.js +62 -7
  387. package/dist/esm/v2/tokens/density.js.map +1 -1
  388. package/dist/esm/v2/tokens/index.js +49 -34
  389. package/dist/esm/v2/tokens/index.js.map +1 -1
  390. package/dist/esm/v2/tokens/motion.js +12 -20
  391. package/dist/esm/v2/tokens/motion.js.map +1 -1
  392. package/dist/esm/v2/tokens/radius.js +1 -1
  393. package/dist/esm/v2/tokens/radius.js.map +1 -1
  394. package/dist/esm/v2/tokens/shadows.js +6 -6
  395. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  396. package/dist/esm/v2/tokens/spacing.js +2 -2
  397. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  398. package/dist/esm/v2/tokens/state.js +1 -1
  399. package/dist/esm/v2/tokens/state.js.map +1 -1
  400. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  401. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  402. package/dist/esm/v2/tokens/tokens.json +6 -1
  403. package/dist/esm/v2/tokens/typography.js +13 -13
  404. package/dist/esm/v2/tokens/typography.js.map +1 -1
  405. package/dist/esm/v2/tokens/zIndex.js +1 -1
  406. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  407. package/dist/esm/v2/types/datagrid.js.map +1 -1
  408. package/dist/esm/v2/utils/apiError.js +16 -37
  409. package/dist/esm/v2/utils/apiError.js.map +1 -1
  410. package/dist/esm/v2/utils/contrast.js +31 -32
  411. package/dist/esm/v2/utils/contrast.js.map +1 -1
  412. package/dist/esm/v2/utils/cx.js +5 -25
  413. package/dist/esm/v2/utils/cx.js.map +1 -1
  414. package/dist/esm/v2/utils/fileDownload.js +23 -26
  415. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  416. package/dist/esm/v2/utils/fileValidation.js +209 -0
  417. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtDate.js +111 -0
  419. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  420. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  421. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  422. package/dist/esm/v2/utils/formikErrors.js +78 -0
  423. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  424. package/dist/esm/v2/utils/index.js +35 -2
  425. package/dist/esm/v2/utils/index.js.map +1 -1
  426. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  427. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  428. package/dist/esm/v2/utils/networkStatus.js +12 -12
  429. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  430. package/dist/index.d.ts +9 -1
  431. package/dist/index.d.ts.map +1 -1
  432. package/dist/index.js +122 -47
  433. package/dist/index.js.map +1 -1
  434. package/dist/v2/__tests__/AppMain.test.js +133 -0
  435. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  436. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  437. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  438. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  439. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  440. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  441. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  442. package/dist/v2/__tests__/FieldError.test.js +98 -69
  443. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  444. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  445. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  446. package/dist/v2/__tests__/FieldWidth.test.js +148 -0
  447. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  448. package/dist/v2/__tests__/FileCard.test.js +45 -48
  449. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikCheckbox.test.js +175 -0
  451. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  452. package/dist/v2/__tests__/FormikDateTimePicker.test.js +237 -0
  453. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  455. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  456. package/dist/v2/__tests__/FormikRadioGroup.test.js +300 -0
  457. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  458. package/dist/v2/__tests__/MobileRowCard.test.js +100 -102
  459. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  460. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  461. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  462. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  463. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  464. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  465. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  466. package/dist/v2/__tests__/apiError.test.js +50 -69
  467. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  468. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  469. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  470. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  471. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  472. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  473. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  474. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  475. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  476. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  477. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  478. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  479. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  480. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  481. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  482. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  483. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  484. package/dist/v2/__tests__/labels-merge.test.js +38 -46
  485. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  486. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  487. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  488. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  489. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  490. package/dist/v2/__tests__/rowActions.test.js +186 -0
  491. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  493. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  494. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  495. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  496. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  497. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  498. package/dist/v2/components/Accordion.js +60 -82
  499. package/dist/v2/components/Accordion.js.map +1 -1
  500. package/dist/v2/components/ActionStrip.js +40 -52
  501. package/dist/v2/components/ActionStrip.js.map +1 -1
  502. package/dist/v2/components/Banner.js +42 -41
  503. package/dist/v2/components/Banner.js.map +1 -1
  504. package/dist/v2/components/Busy.js +22 -27
  505. package/dist/v2/components/Busy.js.map +1 -1
  506. package/dist/v2/components/Button.js +39 -50
  507. package/dist/v2/components/Button.js.map +1 -1
  508. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  509. package/dist/v2/components/CategoryTag.js +49 -32
  510. package/dist/v2/components/CategoryTag.js.map +1 -1
  511. package/dist/v2/components/Checkbox.js +39 -45
  512. package/dist/v2/components/Checkbox.js.map +1 -1
  513. package/dist/v2/components/Chip.js +29 -42
  514. package/dist/v2/components/Chip.js.map +1 -1
  515. package/dist/v2/components/Combobox.js +122 -144
  516. package/dist/v2/components/Combobox.js.map +1 -1
  517. package/dist/v2/components/CommandPalette.js +138 -225
  518. package/dist/v2/components/CommandPalette.js.map +1 -1
  519. package/dist/v2/components/ConfirmDialog.js +46 -56
  520. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  521. package/dist/v2/components/DatePicker.js +81 -86
  522. package/dist/v2/components/DatePicker.js.map +1 -1
  523. package/dist/v2/components/DateRangePicker.js +77 -87
  524. package/dist/v2/components/DateRangePicker.js.map +1 -1
  525. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  526. package/dist/v2/components/DateTimePicker.js +121 -95
  527. package/dist/v2/components/DateTimePicker.js.map +1 -1
  528. package/dist/v2/components/Drawer.d.ts.map +1 -1
  529. package/dist/v2/components/Drawer.js +93 -88
  530. package/dist/v2/components/Drawer.js.map +1 -1
  531. package/dist/v2/components/Dropzone.js +150 -196
  532. package/dist/v2/components/Dropzone.js.map +1 -1
  533. package/dist/v2/components/EmptyState.js +18 -20
  534. package/dist/v2/components/EmptyState.js.map +1 -1
  535. package/dist/v2/components/FavoriteToggle.js +28 -39
  536. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  537. package/dist/v2/components/Field.d.ts +121 -5
  538. package/dist/v2/components/Field.d.ts.map +1 -1
  539. package/dist/v2/components/Field.js +221 -62
  540. package/dist/v2/components/Field.js.map +1 -1
  541. package/dist/v2/components/FieldError.js +18 -21
  542. package/dist/v2/components/FieldError.js.map +1 -1
  543. package/dist/v2/components/FieldHelp.js +40 -60
  544. package/dist/v2/components/FieldHelp.js.map +1 -1
  545. package/dist/v2/components/FileCard.js +27 -31
  546. package/dist/v2/components/FileCard.js.map +1 -1
  547. package/dist/v2/components/FilterTab.js +30 -38
  548. package/dist/v2/components/FilterTab.js.map +1 -1
  549. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  550. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  551. package/dist/v2/components/ForbiddenPage.js +37 -17
  552. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  553. package/dist/v2/components/FormGrid.js +53 -59
  554. package/dist/v2/components/FormGrid.js.map +1 -1
  555. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  556. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  557. package/dist/v2/components/FormikDisplay.js +108 -33
  558. package/dist/v2/components/FormikDisplay.js.map +1 -1
  559. package/dist/v2/components/Input.d.ts +40 -0
  560. package/dist/v2/components/Input.d.ts.map +1 -1
  561. package/dist/v2/components/Input.js +81 -41
  562. package/dist/v2/components/Input.js.map +1 -1
  563. package/dist/v2/components/KPICard.js +57 -67
  564. package/dist/v2/components/KPICard.js.map +1 -1
  565. package/dist/v2/components/KPIStrip.js +16 -22
  566. package/dist/v2/components/KPIStrip.js.map +1 -1
  567. package/dist/v2/components/KV.js +25 -31
  568. package/dist/v2/components/KV.js.map +1 -1
  569. package/dist/v2/components/KVGrid.js +19 -26
  570. package/dist/v2/components/KVGrid.js.map +1 -1
  571. package/dist/v2/components/Layout.js +91 -120
  572. package/dist/v2/components/Layout.js.map +1 -1
  573. package/dist/v2/components/MobileRowCard.js +79 -91
  574. package/dist/v2/components/MobileRowCard.js.map +1 -1
  575. package/dist/v2/components/Modal.js +61 -69
  576. package/dist/v2/components/Modal.js.map +1 -1
  577. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  578. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  579. package/dist/v2/components/NetworkErrorPage.js +38 -21
  580. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  581. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  582. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  583. package/dist/v2/components/NotFoundPage.js +37 -18
  584. package/dist/v2/components/NotFoundPage.js.map +1 -1
  585. package/dist/v2/components/NumberInput.js +88 -118
  586. package/dist/v2/components/NumberInput.js.map +1 -1
  587. package/dist/v2/components/OverflowMenu.js +38 -56
  588. package/dist/v2/components/OverflowMenu.js.map +1 -1
  589. package/dist/v2/components/PdfViewer.js +34 -45
  590. package/dist/v2/components/PdfViewer.js.map +1 -1
  591. package/dist/v2/components/ProgressBar.js +42 -49
  592. package/dist/v2/components/ProgressBar.js.map +1 -1
  593. package/dist/v2/components/Radio.js +59 -67
  594. package/dist/v2/components/Radio.js.map +1 -1
  595. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  596. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  597. package/dist/v2/components/SectionHeader.js +34 -41
  598. package/dist/v2/components/SectionHeader.js.map +1 -1
  599. package/dist/v2/components/Segmented.js +69 -93
  600. package/dist/v2/components/Segmented.js.map +1 -1
  601. package/dist/v2/components/Select.d.ts +26 -2
  602. package/dist/v2/components/Select.d.ts.map +1 -1
  603. package/dist/v2/components/Select.js +120 -155
  604. package/dist/v2/components/Select.js.map +1 -1
  605. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  606. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  607. package/dist/v2/components/ServerErrorPage.js +37 -20
  608. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  609. package/dist/v2/components/Skeleton.js +86 -100
  610. package/dist/v2/components/Skeleton.js.map +1 -1
  611. package/dist/v2/components/SkipLink.js +9 -12
  612. package/dist/v2/components/SkipLink.js.map +1 -1
  613. package/dist/v2/components/Spinner.js +16 -25
  614. package/dist/v2/components/Spinner.js.map +1 -1
  615. package/dist/v2/components/Status.js +18 -29
  616. package/dist/v2/components/Status.js.map +1 -1
  617. package/dist/v2/components/Stepper.js +80 -82
  618. package/dist/v2/components/Stepper.js.map +1 -1
  619. package/dist/v2/components/Surface.js +34 -49
  620. package/dist/v2/components/Surface.js.map +1 -1
  621. package/dist/v2/components/Switch.js +29 -37
  622. package/dist/v2/components/Switch.js.map +1 -1
  623. package/dist/v2/components/TabPanel.d.ts +17 -0
  624. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  625. package/dist/v2/components/TabPanel.js +90 -0
  626. package/dist/v2/components/TabPanel.js.map +1 -0
  627. package/dist/v2/components/Tabs.d.ts +25 -0
  628. package/dist/v2/components/Tabs.d.ts.map +1 -1
  629. package/dist/v2/components/Tabs.js +53 -29
  630. package/dist/v2/components/Tabs.js.map +1 -1
  631. package/dist/v2/components/TelInput.js +80 -115
  632. package/dist/v2/components/TelInput.js.map +1 -1
  633. package/dist/v2/components/Textarea.js +26 -35
  634. package/dist/v2/components/Textarea.js.map +1 -1
  635. package/dist/v2/components/TimePicker.js +62 -74
  636. package/dist/v2/components/TimePicker.js.map +1 -1
  637. package/dist/v2/components/Toast.js +119 -174
  638. package/dist/v2/components/Toast.js.map +1 -1
  639. package/dist/v2/components/Tooltip.js +23 -38
  640. package/dist/v2/components/Tooltip.js.map +1 -1
  641. package/dist/v2/components/_ErrorPageBody.js +15 -16
  642. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  643. package/dist/v2/components/_pickerShared.js +5 -5
  644. package/dist/v2/components/_pickerShared.js.map +1 -1
  645. package/dist/v2/components/index.d.ts +67 -1
  646. package/dist/v2/components/index.d.ts.map +1 -1
  647. package/dist/v2/components/index.js +153 -136
  648. package/dist/v2/components/index.js.map +1 -1
  649. package/dist/v2/hooks/index.d.ts +65 -0
  650. package/dist/v2/hooks/index.d.ts.map +1 -1
  651. package/dist/v2/hooks/index.js +63 -24
  652. package/dist/v2/hooks/index.js.map +1 -1
  653. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  654. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  655. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  656. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  657. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  658. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  659. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  660. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  661. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  662. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  663. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  664. package/dist/v2/hooks/useDensity.js +14 -18
  665. package/dist/v2/hooks/useDensity.js.map +1 -1
  666. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  667. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  668. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  669. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  670. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  671. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  672. package/dist/v2/hooks/useFocusTrap.js +20 -24
  673. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  674. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  675. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  676. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  677. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  678. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  679. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  680. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  681. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  682. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  683. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  684. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  685. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  687. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  688. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  689. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  690. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  691. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  692. package/dist/v2/hooks/useSortedRows.js +4 -6
  693. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  694. package/dist/v2/hooks/useTabLoading.js +7 -22
  695. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  696. package/dist/v2/index.d.ts.map +1 -1
  697. package/dist/v2/index.js +143 -145
  698. package/dist/v2/index.js.map +1 -1
  699. package/dist/v2/modalContext.js +2 -2
  700. package/dist/v2/modalContext.js.map +1 -1
  701. package/dist/v2/models/favorite.d.ts +8 -9
  702. package/dist/v2/models/favorite.d.ts.map +1 -1
  703. package/dist/v2/models/favorite.js.map +1 -1
  704. package/dist/v2/models/index.js +4 -4
  705. package/dist/v2/models/index.js.map +1 -1
  706. package/dist/v2/models/personalization.d.ts +44 -48
  707. package/dist/v2/models/personalization.d.ts.map +1 -1
  708. package/dist/v2/models/personalization.js.map +1 -1
  709. package/dist/v2/models/referentiel.d.ts +32 -50
  710. package/dist/v2/models/referentiel.d.ts.map +1 -1
  711. package/dist/v2/models/referentiel.js.map +1 -1
  712. package/dist/v2/models/savedFilter.d.ts +8 -17
  713. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  714. package/dist/v2/models/savedFilter.js.map +1 -1
  715. package/dist/v2/patterns/ActionBar.js +152 -187
  716. package/dist/v2/patterns/ActionBar.js.map +1 -1
  717. package/dist/v2/patterns/AppMain.d.ts +109 -0
  718. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  719. package/dist/v2/patterns/AppMain.js +115 -0
  720. package/dist/v2/patterns/AppMain.js.map +1 -0
  721. package/dist/v2/patterns/BulkActionBar.js +40 -42
  722. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  723. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  724. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  725. package/dist/v2/patterns/ChartFigure.js +159 -0
  726. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  727. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  728. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  729. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  730. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  731. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGrid.js +262 -297
  733. package/dist/v2/patterns/DataGrid.js.map +1 -1
  734. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  735. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  736. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  737. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  738. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  739. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  740. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  741. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  742. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  743. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  744. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  745. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  746. package/dist/v2/patterns/DetailSplit.js +116 -0
  747. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  748. package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
  749. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  750. package/dist/v2/patterns/FavoriteColumn.js +32 -80
  751. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  752. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  753. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  754. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  755. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  756. package/dist/v2/patterns/FilterTabBar.js +120 -0
  757. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  758. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  759. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  760. package/dist/v2/patterns/FormPageShell.js +53 -50
  761. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  762. package/dist/v2/patterns/FormSection.d.ts +8 -3
  763. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormSection.js +44 -51
  765. package/dist/v2/patterns/FormSection.js.map +1 -1
  766. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  767. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  768. package/dist/v2/patterns/FormikCheckbox.js +138 -0
  769. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  770. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  771. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  772. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  773. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  774. package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
  775. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  776. package/dist/v2/patterns/FormikCombobox.js +55 -69
  777. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  778. package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
  779. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikDatePicker.js +59 -106
  781. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  782. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  783. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  784. package/dist/v2/patterns/FormikDateTimePicker.js +144 -0
  785. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  786. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  787. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  788. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  789. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  790. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  791. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  792. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  793. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  794. package/dist/v2/patterns/FormikFile.js +99 -83
  795. package/dist/v2/patterns/FormikFile.js.map +1 -1
  796. package/dist/v2/patterns/FormikInput.d.ts +11 -1
  797. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  798. package/dist/v2/patterns/FormikInput.js +45 -55
  799. package/dist/v2/patterns/FormikInput.js.map +1 -1
  800. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  801. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  802. package/dist/v2/patterns/FormikRadioGroup.js +137 -0
  803. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  804. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  805. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  807. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/FormikSelect.d.ts +9 -1
  809. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  810. package/dist/v2/patterns/FormikSelect.js +70 -89
  811. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  812. package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
  813. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  814. package/dist/v2/patterns/FormikTextarea.js +35 -48
  815. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  816. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
  817. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  818. package/dist/v2/patterns/KeyboardShortcutsHelp.js +71 -74
  819. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  820. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  821. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  822. package/dist/v2/patterns/PageContent.js +17 -20
  823. package/dist/v2/patterns/PageContent.js.map +1 -1
  824. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  825. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  826. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  827. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  828. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  829. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  830. package/dist/v2/patterns/ReferentielField.js +347 -327
  831. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  832. package/dist/v2/patterns/RowFavoriteToggle.d.ts +98 -0
  833. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  834. package/dist/v2/patterns/RowFavoriteToggle.js +135 -0
  835. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  836. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  837. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  838. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  839. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  840. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  841. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  842. package/dist/v2/patterns/SortableHeader.js +35 -57
  843. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  844. package/dist/v2/patterns/Tour.js +121 -142
  845. package/dist/v2/patterns/Tour.js.map +1 -1
  846. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  847. package/dist/v2/patterns/_dataGridShared.js +131 -147
  848. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  849. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  850. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  851. package/dist/v2/patterns/_pickerSerialisation.js +80 -0
  852. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  853. package/dist/v2/patterns/_sort.js +17 -33
  854. package/dist/v2/patterns/_sort.js.map +1 -1
  855. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  856. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  857. package/dist/v2/patterns/_useColumnResize.js +80 -99
  858. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  859. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  860. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  861. package/dist/v2/patterns/filterCriteria.js +110 -0
  862. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  863. package/dist/v2/patterns/index.d.ts +247 -0
  864. package/dist/v2/patterns/index.d.ts.map +1 -1
  865. package/dist/v2/patterns/index.js +182 -70
  866. package/dist/v2/patterns/index.js.map +1 -1
  867. package/dist/v2/patterns/rowActions.d.ts +150 -0
  868. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  869. package/dist/v2/patterns/rowActions.js +232 -0
  870. package/dist/v2/patterns/rowActions.js.map +1 -0
  871. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  872. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  873. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  874. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  875. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  876. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  877. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  878. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  879. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  880. package/dist/v2/personalization/adapters/index.js +5 -5
  881. package/dist/v2/personalization/adapters/index.js.map +1 -1
  882. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  883. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  884. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  885. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  886. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  887. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  888. package/dist/v2/personalization/capabilities/gridPreferences.js +210 -0
  889. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  890. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  891. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  892. package/dist/v2/personalization/capabilities/index.js +23 -10
  893. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  894. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  895. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  896. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  897. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  898. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  899. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  900. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  901. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  902. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  903. package/dist/v2/personalization/index.d.ts +34 -0
  904. package/dist/v2/personalization/index.d.ts.map +1 -1
  905. package/dist/v2/personalization/index.js +41 -21
  906. package/dist/v2/personalization/index.js.map +1 -1
  907. package/dist/v2/personalization/personalizationContext.js +10 -12
  908. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  909. package/dist/v2/personalization/schema.js +8 -9
  910. package/dist/v2/personalization/schema.js.map +1 -1
  911. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  912. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  913. package/dist/v2/referentiel/index.js +11 -13
  914. package/dist/v2/referentiel/index.js.map +1 -1
  915. package/dist/v2/referentiel/types.d.ts +105 -0
  916. package/dist/v2/referentiel/types.d.ts.map +1 -0
  917. package/dist/v2/referentiel/types.js +6 -0
  918. package/dist/v2/referentiel/types.js.map +1 -0
  919. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  920. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  921. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  922. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  923. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  924. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  925. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  926. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  927. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  928. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  929. package/dist/v2/theme/_brand.js +12 -26
  930. package/dist/v2/theme/_brand.js.map +1 -1
  931. package/dist/v2/theme/_brandSecondary.js +12 -26
  932. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  933. package/dist/v2/theme/createPortnetTheme.js +41 -49
  934. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  935. package/dist/v2/theme/cssVariables.d.ts +3 -3
  936. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  937. package/dist/v2/theme/cssVariables.js +65 -70
  938. package/dist/v2/theme/cssVariables.js.map +1 -1
  939. package/dist/v2/theme/index.js +10 -10
  940. package/dist/v2/theme/index.js.map +1 -1
  941. package/dist/v2/tokens/breakpoints.js +16 -16
  942. package/dist/v2/tokens/breakpoints.js.map +1 -1
  943. package/dist/v2/tokens/chart.d.ts +103 -0
  944. package/dist/v2/tokens/chart.d.ts.map +1 -0
  945. package/dist/v2/tokens/chart.js +270 -0
  946. package/dist/v2/tokens/chart.js.map +1 -0
  947. package/dist/v2/tokens/colors.js +24 -24
  948. package/dist/v2/tokens/colors.js.map +1 -1
  949. package/dist/v2/tokens/density.d.ts +104 -0
  950. package/dist/v2/tokens/density.d.ts.map +1 -1
  951. package/dist/v2/tokens/density.js +67 -12
  952. package/dist/v2/tokens/density.js.map +1 -1
  953. package/dist/v2/tokens/index.d.ts +50 -1
  954. package/dist/v2/tokens/index.d.ts.map +1 -1
  955. package/dist/v2/tokens/index.js +116 -68
  956. package/dist/v2/tokens/index.js.map +1 -1
  957. package/dist/v2/tokens/motion.js +16 -22
  958. package/dist/v2/tokens/motion.js.map +1 -1
  959. package/dist/v2/tokens/radius.js +3 -3
  960. package/dist/v2/tokens/radius.js.map +1 -1
  961. package/dist/v2/tokens/shadows.js +8 -8
  962. package/dist/v2/tokens/shadows.js.map +1 -1
  963. package/dist/v2/tokens/spacing.js +4 -4
  964. package/dist/v2/tokens/spacing.js.map +1 -1
  965. package/dist/v2/tokens/state.js +3 -3
  966. package/dist/v2/tokens/state.js.map +1 -1
  967. package/dist/v2/tokens/statusPalette.js +21 -23
  968. package/dist/v2/tokens/statusPalette.js.map +1 -1
  969. package/dist/v2/tokens/tokens.json +6 -1
  970. package/dist/v2/tokens/typography.js +15 -15
  971. package/dist/v2/tokens/typography.js.map +1 -1
  972. package/dist/v2/tokens/zIndex.js +3 -3
  973. package/dist/v2/tokens/zIndex.js.map +1 -1
  974. package/dist/v2/types/datagrid.d.ts +9 -1
  975. package/dist/v2/types/datagrid.d.ts.map +1 -1
  976. package/dist/v2/types/datagrid.js.map +1 -1
  977. package/dist/v2/types/index.js +2 -2
  978. package/dist/v2/types/index.js.map +1 -1
  979. package/dist/v2/utils/apiError.js +16 -37
  980. package/dist/v2/utils/apiError.js.map +1 -1
  981. package/dist/v2/utils/contrast.js +31 -32
  982. package/dist/v2/utils/contrast.js.map +1 -1
  983. package/dist/v2/utils/cx.js +7 -27
  984. package/dist/v2/utils/cx.js.map +1 -1
  985. package/dist/v2/utils/fileDownload.js +25 -28
  986. package/dist/v2/utils/fileDownload.js.map +1 -1
  987. package/dist/v2/utils/fileValidation.d.ts +116 -0
  988. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  989. package/dist/v2/utils/fileValidation.js +220 -0
  990. package/dist/v2/utils/fileValidation.js.map +1 -0
  991. package/dist/v2/utils/fmtDate.d.ts +103 -0
  992. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  993. package/dist/v2/utils/fmtDate.js +119 -0
  994. package/dist/v2/utils/fmtDate.js.map +1 -0
  995. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  996. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  997. package/dist/v2/utils/fmtMoney.js +9 -11
  998. package/dist/v2/utils/fmtMoney.js.map +1 -1
  999. package/dist/v2/utils/formikErrors.d.ts +67 -0
  1000. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  1001. package/dist/v2/utils/formikErrors.js +85 -0
  1002. package/dist/v2/utils/formikErrors.js.map +1 -0
  1003. package/dist/v2/utils/index.d.ts +5 -0
  1004. package/dist/v2/utils/index.d.ts.map +1 -1
  1005. package/dist/v2/utils/index.js +67 -18
  1006. package/dist/v2/utils/index.js.map +1 -1
  1007. package/dist/v2/utils/mergeLabels.js +9 -14
  1008. package/dist/v2/utils/mergeLabels.js.map +1 -1
  1009. package/dist/v2/utils/networkStatus.js +14 -14
  1010. package/dist/v2/utils/networkStatus.js.map +1 -1
  1011. package/package.json +26 -9
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["React","_interopRequireWildcard","require","_Select","_interopRequireDefault","_MenuItem","_Chip","_Box","_Close","_Search","_mergeLabels","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","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","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","Array","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","_createForOfIteratorHelper","o","allowArrayLike","it","F","s","n","e","_e2","f","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","len","arr2","DEFAULT_LABELS","freeze","placeholder","clearAll","clearAllAria","removeChip","lbl","concat","searchLabel","searchClear","noOptions","isRecord","v","valueKey","_iterator","_step","k","candidate","sameOptionValue","a","b","ka","labelFromValue","_iterator2","_step2","SEARCH_WRAPPER_SX","position","top","zIndex","background","padding","borderBottom","display","alignItems","gap","Select","forwardRef","_ref","ref","onChange","onBlur","_ref$options","options","disabled","error","_ref$fullWidth","fullWidth","_ref$multiple","multiple","labels","_ref$searchable","searchable","searchThreshold","callerInputRef","inputRef","sx","rest","innerInputRef","useRef","setInputRef","useCallback","node","current","showSearch","process","env","console","warn","L","mergeLabels","effectivePlaceholder","_React$useState","useState","_React$useState2","searchQuery","setSearchQuery","searchRef","handleClose","handleOpen","setTimeout","_searchRef$current","focus","filteredOptions","useMemo","trim","q","toLowerCase","label","includes","optionLabel","opt","find","derived","jsx","style","color","children","fireChange","nextValue","removeOne","val","stopPropagation","stop","jsxs","onOpen","onClose","displayEmpty","size","renderValue","selected","flexWrap","map","onMouseDown","onDelete","deleteIcon","fontSize","height","paddingInline","component","type","onClick","border","borderRadius","fontWeight","cursor","fontFamily","transition","outline","outlineOffset","onKeyDown","flexShrink","flex","_searchRef$current2","l","_default","exports"],"sources":["../../../src/lib/v2/components/Select.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiSelect from \"@mui/material/Select\";\r\nimport type { SelectProps as MuiSelectProps } from \"@mui/material/Select\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport MuiChip from \"@mui/material/Chip\";\r\nimport Box from \"@mui/material/Box\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport SearchIcon from \"@mui/icons-material/Search\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Select — Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Select\".\r\n *\r\n * R-Sel.1 — > 30 options → use searchThreshold or Combobox.\r\n * R-Sel.2 — 2–3 options → prefer Radio or Segmented control.\r\n * R-Sel.3 — Placeholder = \"Sélectionner…\", never empty.\r\n * R-Sel.4 — Multi-select → chips dans l'input + bouton « Tout effacer ».\r\n * R-Sel.5 — searchThreshold / searchable → auto-search for large lists (NEW).\r\n *\r\n * Autocomplete / search (R-Sel.5):\r\n * Pass `searchThreshold={N}` to show a search input when options >= N.\r\n * Pass `searchable` as a shorthand to always show search.\r\n *\r\n * Generic pattern: set searchThreshold once per component type and ALL\r\n * instances with enough items get free-text filtering automatically.\r\n *\r\n * <Select searchThreshold={8} options={pays} value={v} onChange={...} />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * Pass `labels` to override user-visible strings.\r\n *\r\n * MUI v9 focus safety:\r\n * MuiSelect focuses its hidden input on click via an internal inputRef.\r\n * We always pass an explicit inputRef (merged with any caller ref) so\r\n * that focus target is never null — otherwise clicking the closed select\r\n * throws \"Cannot read properties of null (reading 'focus')\" from inside\r\n * MUI's own click handler.\r\n */\r\n\r\nexport type SelectOptionValue = string | number;\r\n\r\nexport interface SelectOptionObject {\r\n value: SelectOptionValue;\r\n label: React.ReactNode;\r\n}\r\n\r\nexport type SelectOption = string | SelectOptionObject;\r\n\r\nexport type SelectValue = SelectOptionValue | SelectOptionValue[];\r\n\r\n/**\r\n * onChange event shape. Deliberately loose: the component fires onChange\r\n * both from MUI's native SelectChangeEvent AND from a synthetic\r\n * { target: { value } } object in the chip-remove / clear-all paths.\r\n */\r\nexport interface SelectChangeLike {\r\n target: { value: SelectValue };\r\n}\r\n\r\nexport interface SelectLabels {\r\n placeholder?: string | undefined;\r\n clearAll?: string | undefined;\r\n clearAllAria?: string | undefined;\r\n removeChip?: ((label: React.ReactNode) => string) | undefined;\r\n searchLabel?: string | undefined;\r\n searchClear?: string | undefined;\r\n noOptions?: string | undefined;\r\n}\r\n\r\nexport interface SelectProps\r\n extends Omit<\r\n MuiSelectProps<SelectValue>,\r\n \"value\" | \"onChange\" | \"renderValue\" | \"children\" | \"inputRef\"\r\n > {\r\n value?: SelectValue | undefined;\r\n onChange?: ((event: SelectChangeLike) => void) | undefined;\r\n options?: SelectOption[] | undefined;\r\n placeholder?: string | undefined;\r\n labels?: SelectLabels | undefined;\r\n searchable?: boolean | undefined;\r\n searchThreshold?: number | undefined;\r\n /** Optional caller-provided input ref; merged with the internal one. */\r\n inputRef?: React.Ref<HTMLInputElement> | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n placeholder: \"Sélectionner…\",\r\n clearAll: \"Tout effacer\",\r\n clearAllAria: \"Tout effacer la sélection\",\r\n removeChip: (lbl: React.ReactNode) => `Retirer ${String(lbl)}`,\r\n searchLabel: \"Rechercher…\",\r\n searchClear: \"Effacer la recherche\",\r\n noOptions: \"Aucun résultat\",\r\n});\r\n\r\n/* ── Out-of-contract object values: defensive resolution ───────────\r\n *\r\n * `SelectOptionValue` is declared `string | number`, but several GU modules\r\n * store whole referentiel objects as the Select value — see R-29 in the\r\n * amssnur-ui behaviour register, and the `bmdav-fe` precedent that first\r\n * surfaced `FormikComboboxProps`. Their payload mappers read\r\n * `values.typeDemande.code`, so the object IS the value they need back.\r\n *\r\n * That is out of contract, and until the opt-in opaque value described in R-29\r\n * lands it is also reality. This component must therefore be DEFENSIVE about\r\n * object values rather than crash on them. Three concrete failures it had:\r\n *\r\n * 1. `optionLabel` returned the raw value when no option matched, so\r\n * `renderValue` handed a plain object to React:\r\n * \"Objects are not valid as a React child\r\n * (found: object with keys {id, code, description})\"\r\n * This is a HARD CRASH, caught only if the host wraps the section in an\r\n * error boundary. Reported from amssnur-ui on two screens.\r\n *\r\n * 2. `options.find((o) => o.value === v)` is REFERENCE equality for objects.\r\n * A value seeded from an API payload is never the same instance as an\r\n * option fetched separately, so it never matched — which is what made (1)\r\n * fire on the edit path even when the option list was fully loaded.\r\n *\r\n * 3. `key={v}` on each MenuItem stringifies an object to \"[object Object]\",\r\n * giving every item in the list the SAME React key.\r\n *\r\n * `value={v}` is still passed through unchanged, so `onChange` returns the\r\n * caller's own object reference and the object-valued contract keeps working.\r\n */\r\n\r\nexport function isRecord(v: unknown): v is Record<string, unknown> {\r\n return typeof v === \"object\" && v !== null;\r\n}\r\n\r\n/** Stable string key for a value, primitive or object. \"\" when undecidable. */\r\nexport function valueKey(v: unknown): string {\r\n if (v === null || v === undefined) return \"\";\r\n if (!isRecord(v)) return String(v);\r\n for (const k of [\"value\", \"id\", \"code\"] as const) {\r\n const candidate = v[k];\r\n if (candidate !== null && candidate !== undefined && !isRecord(candidate)) {\r\n return String(candidate);\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\n/**\r\n * Value equality that survives object identity loss.\r\n *\r\n * Reference/primitive equality first (the common path), then a structural\r\n * comparison on the discriminating key. The `!== \"\"` guard matters: without it\r\n * two objects that expose no key would compare equal to each other AND to any\r\n * empty value.\r\n */\r\nexport function sameOptionValue(a: unknown, b: unknown): boolean {\r\n if (a === b) return true;\r\n if (isRecord(a) || isRecord(b)) {\r\n const ka = valueKey(a);\r\n return ka !== \"\" && ka === valueKey(b);\r\n }\r\n return String(a) === String(b);\r\n}\r\n\r\n/**\r\n * Best-effort label for a value with no matching option. Returns `null` when\r\n * nothing renderable can be derived, so the caller shows the placeholder\r\n * instead of throwing.\r\n */\r\nexport function labelFromValue(v: unknown): React.ReactNode {\r\n if (v === null || v === undefined) return null;\r\n if (!isRecord(v)) return String(v);\r\n for (const k of [\"label\", \"description\", \"name\", \"libelle\", \"code\"] as const) {\r\n const candidate = v[k];\r\n if (candidate !== null && candidate !== undefined && !isRecord(candidate)) {\r\n const s = String(candidate);\r\n if (s !== \"\") return s;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\n/* ── Search input — sticky at top of dropdown list ─────────────────\r\n * Rendered as a non-MenuItem Box so ArrowKey list-navigation skips it.\r\n * onKeyDown stopPropagation prevents MUI's keyboard handler from\r\n * treating typed characters as list-navigation shortcuts.\r\n * ─────────────────────────────────────────────────────────────────── */\r\nconst SEARCH_WRAPPER_SX = Object.freeze({\r\n position: \"sticky\",\r\n top: 0,\r\n zIndex: 1,\r\n background: \"var(--surface)\",\r\n padding: \"var(--s-2) var(--s-3)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst Select = React.forwardRef<HTMLInputElement, SelectProps>(function Select(\r\n {\r\n value,\r\n onChange,\r\n onBlur,\r\n options = [],\r\n placeholder,\r\n disabled,\r\n error,\r\n fullWidth = true,\r\n multiple = false,\r\n labels,\r\n searchable = false,\r\n searchThreshold,\r\n inputRef: callerInputRef,\r\n sx,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n /* ── MUI v9 focus safety — always-present input ref ──────────────\r\n * MuiSelect calls inputRef.current.focus() on click. Guarantee a\r\n * live node by owning the ref here and merging any caller-provided\r\n * inputRef / forwarded ref onto it. */\r\n const innerInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const setInputRef = React.useCallback(\r\n (node: HTMLInputElement | null) => {\r\n innerInputRef.current = node;\r\n if (typeof callerInputRef === \"function\") callerInputRef(node);\r\n // A caller-supplied ref object is typed with a readonly `current` by\r\n // React; writing to it here is the documented ref-merge idiom, so a\r\n // single narrow assertion to a writable shape is justified.\r\n else if (callerInputRef) {\r\n (callerInputRef as { current: HTMLInputElement | null }).current = node;\r\n }\r\n if (typeof ref === \"function\") ref(node);\r\n else if (ref) ref.current = node;\r\n },\r\n [callerInputRef, ref],\r\n );\r\n\r\n /* ── Determine whether to show search ──────────────────────────── */\r\n const showSearch =\r\n searchable ||\r\n (typeof searchThreshold === \"number\" && options.length >= searchThreshold);\r\n\r\n /* Dev-time charter warn: only fires when no search is configured */\r\n if (process.env[\"NODE_ENV\"] !== \"production\" && !showSearch && options.length > 30) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `[@portnet/ui v2] <Select> has ${options.length} options — charter R-Sel.1: use searchThreshold={8} or Combobox above 30.`,\r\n );\r\n }\r\n\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const effectivePlaceholder = placeholder ?? L.placeholder;\r\n\r\n /* ── Search state ──────────────────────────────────────────────── */\r\n const [searchQuery, setSearchQuery] = React.useState(\"\");\r\n const searchRef = React.useRef<HTMLInputElement | null>(null);\r\n\r\n const handleClose = React.useCallback(() => setSearchQuery(\"\"), []);\r\n\r\n /* Focus the search input as soon as the dropdown opens.\r\n * MUI renders the Popover asynchronously → small delay needed. */\r\n const handleOpen = React.useCallback(() => {\r\n if (showSearch) {\r\n setTimeout(() => searchRef.current?.focus(), 50);\r\n }\r\n }, [showSearch]);\r\n\r\n const filteredOptions = React.useMemo(() => {\r\n if (!showSearch || !searchQuery.trim()) return options;\r\n const q = searchQuery.trim().toLowerCase();\r\n return options.filter((o) => {\r\n const label = typeof o === \"string\" ? o : o.label;\r\n return String(label).toLowerCase().includes(q);\r\n });\r\n }, [options, searchQuery, showSearch]);\r\n\r\n /* ── Label resolver ────────────────────────────────────────────── */\r\n const optionLabel = React.useCallback(\r\n (v: SelectValue): React.ReactNode => {\r\n const opt = options.find((o) =>\r\n sameOptionValue(typeof o === \"string\" ? o : o.value, v),\r\n );\r\n if (opt) return typeof opt === \"string\" ? opt : opt.label;\r\n\r\n /* No match. NEVER return `v` unguarded — an object here is a React-child\r\n * crash. Derive something readable, else show the placeholder. */\r\n const derived = labelFromValue(v);\r\n if (derived !== null) return derived;\r\n return (\r\n <span style={{ color: \"var(--fg-subtle)\" }}>{effectivePlaceholder}</span>\r\n );\r\n },\r\n [options, effectivePlaceholder],\r\n );\r\n\r\n /* ── Multi-select helpers ──────────────────────────────────────── */\r\n const fireChange = React.useCallback(\r\n (nextValue: SelectValue) => {\r\n if (!onChange) return;\r\n onChange({ target: { value: nextValue } });\r\n },\r\n [onChange],\r\n );\r\n\r\n const removeOne = (val: SelectOptionValue) => (e: React.SyntheticEvent) => {\r\n e.stopPropagation();\r\n if (!multiple) return;\r\n const arr = Array.isArray(value) ? value : [];\r\n fireChange(arr.filter((v) => !sameOptionValue(v, val)));\r\n };\r\n\r\n const clearAll = (e: React.SyntheticEvent) => {\r\n e.stopPropagation();\r\n if (!multiple) return;\r\n fireChange([]);\r\n };\r\n\r\n const stop = (e: React.SyntheticEvent) => e.stopPropagation();\r\n\r\n return (\r\n <MuiSelect<SelectValue>\r\n inputRef={setInputRef}\r\n value={value ?? (multiple ? [] : \"\")}\r\n onChange={onChange}\r\n onBlur={onBlur}\r\n onOpen={handleOpen}\r\n onClose={handleClose}\r\n displayEmpty\r\n disabled={disabled}\r\n error={!!error}\r\n fullWidth={fullWidth}\r\n multiple={multiple}\r\n size=\"small\"\r\n renderValue={(selected: SelectValue) => {\r\n if (multiple) {\r\n const arr = Array.isArray(selected) ? selected : [];\r\n if (arr.length === 0) {\r\n return <span style={{ color: \"var(--fg-subtle)\" }}>{effectivePlaceholder}</span>;\r\n }\r\n return (\r\n <Box sx={{ display: \"flex\", flexWrap: \"wrap\", alignItems: \"center\", gap: 0.5 }}>\r\n {arr.map((v, i) => {\r\n const lbl = optionLabel(v);\r\n return (\r\n <MuiChip\r\n key={valueKey(v) || `sel-${i}`}\r\n size=\"small\"\r\n label={lbl}\r\n onMouseDown={stop}\r\n onDelete={removeOne(v)}\r\n deleteIcon={\r\n <CloseIcon\r\n fontSize=\"small\"\r\n onMouseDown={stop}\r\n aria-label={L.removeChip(lbl)}\r\n />\r\n }\r\n sx={{\r\n height: 22,\r\n \"& .MuiChip-label\": { paddingInline: 1, fontSize: 12 },\r\n }}\r\n />\r\n );\r\n })}\r\n {arr.length > 0 && (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onMouseDown={stop}\r\n onClick={clearAll}\r\n aria-label={L.clearAllAria}\r\n sx={{\r\n background: \"transparent\",\r\n border: \"1px dashed var(--border)\",\r\n borderRadius: \"var(--r-sm)\",\r\n padding: \"1px 8px\",\r\n fontSize: 11,\r\n fontWeight: 600,\r\n color: \"var(--fg-muted)\",\r\n cursor: \"pointer\",\r\n fontFamily: \"inherit\",\r\n transition: \"background var(--duration-fast, 80ms) ease\",\r\n \"&:hover\": { background: \"var(--bg-subtle)\", color: \"var(--fg)\" },\r\n \"&:focus-visible\": { outline: \"2px solid var(--accent)\", outlineOffset: \"var(--pui-outline-offset)\" },\r\n }}\r\n >\r\n {L.clearAll}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n }\r\n if (selected === \"\" || selected == null) {\r\n return <span style={{ color: \"var(--fg-subtle)\" }}>{effectivePlaceholder}</span>;\r\n }\r\n return optionLabel(selected);\r\n }}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {/* Search input — sticky, non-selectable, captures keyboard events */}\r\n {showSearch && (\r\n <Box\r\n onKeyDown={(e) => e.stopPropagation()}\r\n onClick={(e) => e.stopPropagation()}\r\n sx={SEARCH_WRAPPER_SX}\r\n >\r\n <SearchIcon sx={{ fontSize: 16, color: \"var(--fg-subtle)\", flexShrink: 0 }} aria-hidden=\"true\" />\r\n <Box\r\n component=\"input\"\r\n ref={searchRef}\r\n value={searchQuery}\r\n onChange={(e) => setSearchQuery(e.target.value)}\r\n placeholder={L.searchLabel}\r\n aria-label={L.searchLabel}\r\n sx={{\r\n flex: 1,\r\n border: \"none\",\r\n outline: \"none\",\r\n background: \"transparent\",\r\n fontSize: \"var(--text-sm)\",\r\n fontFamily: \"inherit\",\r\n color: \"var(--fg)\",\r\n \"&::placeholder\": { color: \"var(--fg-subtle)\" },\r\n }}\r\n />\r\n {searchQuery && (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onClick={(e) => { e.stopPropagation(); setSearchQuery(\"\"); searchRef.current?.focus(); }}\r\n aria-label={L.searchClear}\r\n sx={{ background: \"transparent\", border: \"none\", cursor: \"pointer\", display: \"flex\", alignItems: \"center\", padding: 0, flexShrink: 0 }}\r\n >\r\n <CloseIcon sx={{ fontSize: 14, color: \"var(--fg-muted)\" }} />\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n\r\n {/* Empty state when search yields no results */}\r\n {showSearch && searchQuery.trim() && filteredOptions.length === 0 && (\r\n <MenuItem disabled sx={{ color: \"var(--fg-subtle)\", fontSize: \"var(--text-sm)\" }}>\r\n {L.noOptions}\r\n </MenuItem>\r\n )}\r\n\r\n {filteredOptions.map((o, i) => {\r\n const v = typeof o === \"string\" ? o : o.value;\r\n const l = typeof o === \"string\" ? o : o.label;\r\n /* key via valueKey: an object value stringifies to \"[object Object]\",\r\n * which would give every item in the list the same React key. */\r\n return <MenuItem key={valueKey(v) || `opt-${i}`} value={v}>{l}</MenuItem>;\r\n })}\r\n </MuiSelect>\r\n );\r\n});\r\n\r\nexport default Select;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Select.js","names":["React","_interopRequireWildcard","require","_Select","_interopRequireDefault","_MenuItem","_Chip","_Box","_Close","_Search","_mergeLabels","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_LABELS","freeze","placeholder","clearAll","clearAllAria","removeChip","lbl","String","searchLabel","searchClear","noOptions","isRecord","v","valueKey","undefined","k","candidate","sameOptionValue","a","b","ka","labelFromValue","s","SEARCH_WRAPPER_SX","position","top","zIndex","background","padding","borderBottom","display","alignItems","gap","Select","forwardRef","value","onChange","onBlur","options","disabled","error","fullWidth","multiple","labels","searchable","searchThreshold","inputRef","callerInputRef","sx","rest","ref","innerInputRef","useRef","setInputRef","useCallback","node","current","showSearch","length","process","env","console","warn","L","mergeLabels","effectivePlaceholder","searchQuery","setSearchQuery","useState","searchRef","handleClose","handleOpen","setTimeout","focus","filteredOptions","useMemo","trim","q","toLowerCase","filter","label","includes","optionLabel","opt","find","derived","jsx","style","color","children","fireChange","nextValue","target","removeOne","val","stopPropagation","arr","Array","isArray","stop","jsxs","onOpen","onClose","displayEmpty","size","renderValue","selected","flexWrap","map","onMouseDown","onDelete","deleteIcon","fontSize","height","paddingInline","component","type","onClick","border","borderRadius","fontWeight","cursor","fontFamily","transition","outline","outlineOffset","onKeyDown","flexShrink","flex","l","puiLabelTarget","_default","exports"],"sources":["../../../src/lib/v2/components/Select.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiSelect from \"@mui/material/Select\";\r\nimport type { SelectProps as MuiSelectProps } from \"@mui/material/Select\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport MuiChip from \"@mui/material/Chip\";\r\nimport Box from \"@mui/material/Box\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport SearchIcon from \"@mui/icons-material/Search\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Select — Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Select\".\r\n *\r\n * R-Sel.1 — > 30 options → use searchThreshold or Combobox.\r\n * R-Sel.2 — 2–3 options → prefer Radio or Segmented control.\r\n * R-Sel.3 — Placeholder = \"Sélectionner…\", never empty.\r\n * R-Sel.4 — Multi-select → chips dans l'input + bouton « Tout effacer ».\r\n * R-Sel.5 — searchThreshold / searchable → auto-search for large lists (NEW).\r\n *\r\n * Autocomplete / search (R-Sel.5):\r\n * Pass `searchThreshold={N}` to show a search input when options >= N.\r\n * Pass `searchable` as a shorthand to always show search.\r\n *\r\n * Generic pattern: set searchThreshold once per component type and ALL\r\n * instances with enough items get free-text filtering automatically.\r\n *\r\n * <Select searchThreshold={8} options={pays} value={v} onChange={...} />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * Pass `labels` to override user-visible strings.\r\n *\r\n * MUI v9 focus safety:\r\n * MuiSelect focuses its hidden input on click via an internal inputRef.\r\n * We always pass an explicit inputRef (merged with any caller ref) so\r\n * that focus target is never null — otherwise clicking the closed select\r\n * throws \"Cannot read properties of null (reading 'focus')\" from inside\r\n * MUI's own click handler.\r\n */\r\n\r\nexport type SelectOptionValue = string | number;\r\n\r\nexport interface SelectOptionObject {\r\n value: SelectOptionValue;\r\n label: React.ReactNode;\r\n}\r\n\r\nexport type SelectOption = string | SelectOptionObject;\r\n\r\nexport type SelectValue = SelectOptionValue | SelectOptionValue[];\r\n\r\n/**\r\n * onChange event shape. Deliberately loose: the component fires onChange\r\n * both from MUI's native SelectChangeEvent AND from a synthetic\r\n * { target: { value } } object in the chip-remove / clear-all paths.\r\n */\r\nexport interface SelectChangeLike {\r\n target: { value: SelectValue };\r\n}\r\n\r\nexport interface SelectLabels {\r\n placeholder?: string | undefined;\r\n clearAll?: string | undefined;\r\n clearAllAria?: string | undefined;\r\n removeChip?: ((label: React.ReactNode) => string) | undefined;\r\n searchLabel?: string | undefined;\r\n searchClear?: string | undefined;\r\n noOptions?: string | undefined;\r\n}\r\n\r\nexport interface SelectProps\r\n extends Omit<\r\n MuiSelectProps<SelectValue>,\r\n \"value\" | \"onChange\" | \"renderValue\" | \"children\" | \"inputRef\"\r\n > {\r\n value?: SelectValue | undefined;\r\n onChange?: ((event: SelectChangeLike) => void) | undefined;\r\n options?: SelectOption[] | undefined;\r\n placeholder?: string | undefined;\r\n labels?: SelectLabels | undefined;\r\n searchable?: boolean | undefined;\r\n searchThreshold?: number | undefined;\r\n /** Optional caller-provided input ref; merged with the internal one. */\r\n inputRef?: React.Ref<HTMLInputElement> | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n placeholder: \"Sélectionner…\",\r\n clearAll: \"Tout effacer\",\r\n clearAllAria: \"Tout effacer la sélection\",\r\n removeChip: (lbl: React.ReactNode) => `Retirer ${String(lbl)}`,\r\n searchLabel: \"Rechercher…\",\r\n searchClear: \"Effacer la recherche\",\r\n noOptions: \"Aucun résultat\",\r\n});\r\n\r\n/* ── Out-of-contract object values: defensive resolution ───────────\r\n *\r\n * `SelectOptionValue` is declared `string | number`, but several GU modules\r\n * store whole referentiel objects as the Select value — see R-29 in the\r\n * amssnur-ui behaviour register, and the `bmdav-fe` precedent that first\r\n * surfaced `FormikComboboxProps`. Their payload mappers read\r\n * `values.typeDemande.code`, so the object IS the value they need back.\r\n *\r\n * That is out of contract, and until the opt-in opaque value described in R-29\r\n * lands it is also reality. This component must therefore be DEFENSIVE about\r\n * object values rather than crash on them. Three concrete failures it had:\r\n *\r\n * 1. `optionLabel` returned the raw value when no option matched, so\r\n * `renderValue` handed a plain object to React:\r\n * \"Objects are not valid as a React child\r\n * (found: object with keys {id, code, description})\"\r\n * This is a HARD CRASH, caught only if the host wraps the section in an\r\n * error boundary. Reported from amssnur-ui on two screens.\r\n *\r\n * 2. `options.find((o) => o.value === v)` is REFERENCE equality for objects.\r\n * A value seeded from an API payload is never the same instance as an\r\n * option fetched separately, so it never matched — which is what made (1)\r\n * fire on the edit path even when the option list was fully loaded.\r\n *\r\n * 3. `key={v}` on each MenuItem stringifies an object to \"[object Object]\",\r\n * giving every item in the list the SAME React key.\r\n *\r\n * `value={v}` is still passed through unchanged, so `onChange` returns the\r\n * caller's own object reference and the object-valued contract keeps working.\r\n */\r\n\r\nexport function isRecord(v: unknown): v is Record<string, unknown> {\r\n return typeof v === \"object\" && v !== null;\r\n}\r\n\r\n/** Stable string key for a value, primitive or object. \"\" when undecidable. */\r\nexport function valueKey(v: unknown): string {\r\n if (v === null || v === undefined) return \"\";\r\n if (!isRecord(v)) return String(v);\r\n for (const k of [\"value\", \"id\", \"code\"] as const) {\r\n const candidate = v[k];\r\n if (candidate !== null && candidate !== undefined && !isRecord(candidate)) {\r\n return String(candidate);\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\n/**\r\n * Value equality that survives object identity loss.\r\n *\r\n * Reference/primitive equality first (the common path), then a structural\r\n * comparison on the discriminating key. The `!== \"\"` guard matters: without it\r\n * two objects that expose no key would compare equal to each other AND to any\r\n * empty value.\r\n */\r\nexport function sameOptionValue(a: unknown, b: unknown): boolean {\r\n if (a === b) return true;\r\n if (isRecord(a) || isRecord(b)) {\r\n const ka = valueKey(a);\r\n return ka !== \"\" && ka === valueKey(b);\r\n }\r\n return String(a) === String(b);\r\n}\r\n\r\n/**\r\n * Best-effort label for a value with no matching option. Returns `null` when\r\n * nothing renderable can be derived, so the caller shows the placeholder\r\n * instead of throwing.\r\n */\r\nexport function labelFromValue(v: unknown): React.ReactNode {\r\n if (v === null || v === undefined) return null;\r\n if (!isRecord(v)) return String(v);\r\n for (const k of [\"label\", \"description\", \"name\", \"libelle\", \"code\"] as const) {\r\n const candidate = v[k];\r\n if (candidate !== null && candidate !== undefined && !isRecord(candidate)) {\r\n const s = String(candidate);\r\n if (s !== \"\") return s;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\n/* ── Search input — sticky at top of dropdown list ─────────────────\r\n * Rendered as a non-MenuItem Box so ArrowKey list-navigation skips it.\r\n * onKeyDown stopPropagation prevents MUI's keyboard handler from\r\n * treating typed characters as list-navigation shortcuts.\r\n * ─────────────────────────────────────────────────────────────────── */\r\nconst SEARCH_WRAPPER_SX = Object.freeze({\r\n position: \"sticky\",\r\n top: 0,\r\n zIndex: 1,\r\n background: \"var(--surface)\",\r\n padding: \"var(--s-2) var(--s-3)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst Select = React.forwardRef<HTMLInputElement, SelectProps>(function Select(\r\n {\r\n value,\r\n onChange,\r\n onBlur,\r\n options = [],\r\n placeholder,\r\n disabled,\r\n error,\r\n fullWidth = true,\r\n multiple = false,\r\n labels,\r\n searchable = false,\r\n searchThreshold,\r\n inputRef: callerInputRef,\r\n sx,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n /* ── MUI v9 focus safety — always-present input ref ──────────────\r\n * MuiSelect calls inputRef.current.focus() on click. Guarantee a\r\n * live node by owning the ref here and merging any caller-provided\r\n * inputRef / forwarded ref onto it. */\r\n const innerInputRef = React.useRef<HTMLInputElement | null>(null);\r\n const setInputRef = React.useCallback(\r\n (node: HTMLInputElement | null) => {\r\n innerInputRef.current = node;\r\n if (typeof callerInputRef === \"function\") callerInputRef(node);\r\n // A caller-supplied ref object is typed with a readonly `current` by\r\n // React; writing to it here is the documented ref-merge idiom, so a\r\n // single narrow assertion to a writable shape is justified.\r\n else if (callerInputRef) {\r\n (callerInputRef as { current: HTMLInputElement | null }).current = node;\r\n }\r\n if (typeof ref === \"function\") ref(node);\r\n else if (ref) ref.current = node;\r\n },\r\n [callerInputRef, ref],\r\n );\r\n\r\n /* ── Determine whether to show search ──────────────────────────── */\r\n const showSearch =\r\n searchable ||\r\n (typeof searchThreshold === \"number\" && options.length >= searchThreshold);\r\n\r\n /* Dev-time charter warn: only fires when no search is configured */\r\n if (process.env[\"NODE_ENV\"] !== \"production\" && !showSearch && options.length > 30) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `[@portnet/ui v2] <Select> has ${options.length} options — charter R-Sel.1: use searchThreshold={8} or Combobox above 30.`,\r\n );\r\n }\r\n\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const effectivePlaceholder = placeholder ?? L.placeholder;\r\n\r\n /* ── Search state ──────────────────────────────────────────────── */\r\n const [searchQuery, setSearchQuery] = React.useState(\"\");\r\n const searchRef = React.useRef<HTMLInputElement | null>(null);\r\n\r\n const handleClose = React.useCallback(() => setSearchQuery(\"\"), []);\r\n\r\n /* Focus the search input as soon as the dropdown opens.\r\n * MUI renders the Popover asynchronously → small delay needed. */\r\n const handleOpen = React.useCallback(() => {\r\n if (showSearch) {\r\n setTimeout(() => searchRef.current?.focus(), 50);\r\n }\r\n }, [showSearch]);\r\n\r\n const filteredOptions = React.useMemo(() => {\r\n if (!showSearch || !searchQuery.trim()) return options;\r\n const q = searchQuery.trim().toLowerCase();\r\n return options.filter((o) => {\r\n const label = typeof o === \"string\" ? o : o.label;\r\n return String(label).toLowerCase().includes(q);\r\n });\r\n }, [options, searchQuery, showSearch]);\r\n\r\n /* ── Label resolver ────────────────────────────────────────────── */\r\n const optionLabel = React.useCallback(\r\n (v: SelectValue): React.ReactNode => {\r\n const opt = options.find((o) =>\r\n sameOptionValue(typeof o === \"string\" ? o : o.value, v),\r\n );\r\n if (opt) return typeof opt === \"string\" ? opt : opt.label;\r\n\r\n /* No match. NEVER return `v` unguarded — an object here is a React-child\r\n * crash. Derive something readable, else show the placeholder. */\r\n const derived = labelFromValue(v);\r\n if (derived !== null) return derived;\r\n return (\r\n <span style={{ color: \"var(--fg-subtle)\" }}>{effectivePlaceholder}</span>\r\n );\r\n },\r\n [options, effectivePlaceholder],\r\n );\r\n\r\n /* ── Multi-select helpers ──────────────────────────────────────── */\r\n const fireChange = React.useCallback(\r\n (nextValue: SelectValue) => {\r\n if (!onChange) return;\r\n onChange({ target: { value: nextValue } });\r\n },\r\n [onChange],\r\n );\r\n\r\n const removeOne = (val: SelectOptionValue) => (e: React.SyntheticEvent) => {\r\n e.stopPropagation();\r\n if (!multiple) return;\r\n const arr = Array.isArray(value) ? value : [];\r\n fireChange(arr.filter((v) => !sameOptionValue(v, val)));\r\n };\r\n\r\n const clearAll = (e: React.SyntheticEvent) => {\r\n e.stopPropagation();\r\n if (!multiple) return;\r\n fireChange([]);\r\n };\r\n\r\n const stop = (e: React.SyntheticEvent) => e.stopPropagation();\r\n\r\n return (\r\n <MuiSelect<SelectValue>\r\n inputRef={setInputRef}\r\n value={value ?? (multiple ? [] : \"\")}\r\n onChange={onChange}\r\n onBlur={onBlur}\r\n onOpen={handleOpen}\r\n onClose={handleClose}\r\n displayEmpty\r\n disabled={disabled}\r\n error={!!error}\r\n fullWidth={fullWidth}\r\n multiple={multiple}\r\n size=\"small\"\r\n renderValue={(selected: SelectValue) => {\r\n if (multiple) {\r\n const arr = Array.isArray(selected) ? selected : [];\r\n if (arr.length === 0) {\r\n return <span style={{ color: \"var(--fg-subtle)\" }}>{effectivePlaceholder}</span>;\r\n }\r\n return (\r\n <Box sx={{ display: \"flex\", flexWrap: \"wrap\", alignItems: \"center\", gap: 0.5 }}>\r\n {arr.map((v, i) => {\r\n const lbl = optionLabel(v);\r\n return (\r\n <MuiChip\r\n key={valueKey(v) || `sel-${i}`}\r\n size=\"small\"\r\n label={lbl}\r\n onMouseDown={stop}\r\n onDelete={removeOne(v)}\r\n deleteIcon={\r\n <CloseIcon\r\n fontSize=\"small\"\r\n onMouseDown={stop}\r\n aria-label={L.removeChip(lbl)}\r\n />\r\n }\r\n sx={{\r\n height: 22,\r\n \"& .MuiChip-label\": { paddingInline: 1, fontSize: 12 },\r\n }}\r\n />\r\n );\r\n })}\r\n {arr.length > 0 && (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onMouseDown={stop}\r\n onClick={clearAll}\r\n aria-label={L.clearAllAria}\r\n sx={{\r\n background: \"transparent\",\r\n border: \"1px dashed var(--border)\",\r\n borderRadius: \"var(--r-sm)\",\r\n padding: \"1px 8px\",\r\n fontSize: 11,\r\n fontWeight: 600,\r\n color: \"var(--fg-muted)\",\r\n cursor: \"pointer\",\r\n fontFamily: \"inherit\",\r\n transition: \"background var(--duration-fast, 80ms) ease\",\r\n \"&:hover\": { background: \"var(--bg-subtle)\", color: \"var(--fg)\" },\r\n \"&:focus-visible\": { outline: \"2px solid var(--accent)\", outlineOffset: \"var(--pui-outline-offset)\" },\r\n }}\r\n >\r\n {L.clearAll}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n }\r\n if (selected === \"\" || selected == null) {\r\n return <span style={{ color: \"var(--fg-subtle)\" }}>{effectivePlaceholder}</span>;\r\n }\r\n return optionLabel(selected);\r\n }}\r\n sx={sx}\r\n {...rest}\r\n >\r\n {/* Search input — sticky, non-selectable, captures keyboard events */}\r\n {showSearch && (\r\n <Box\r\n onKeyDown={(e) => e.stopPropagation()}\r\n onClick={(e) => e.stopPropagation()}\r\n sx={SEARCH_WRAPPER_SX}\r\n >\r\n <SearchIcon sx={{ fontSize: 16, color: \"var(--fg-subtle)\", flexShrink: 0 }} aria-hidden=\"true\" />\r\n <Box\r\n component=\"input\"\r\n ref={searchRef}\r\n value={searchQuery}\r\n onChange={(e) => setSearchQuery(e.target.value)}\r\n placeholder={L.searchLabel}\r\n aria-label={L.searchLabel}\r\n sx={{\r\n flex: 1,\r\n border: \"none\",\r\n outline: \"none\",\r\n background: \"transparent\",\r\n fontSize: \"var(--text-sm)\",\r\n fontFamily: \"inherit\",\r\n color: \"var(--fg)\",\r\n \"&::placeholder\": { color: \"var(--fg-subtle)\" },\r\n }}\r\n />\r\n {searchQuery && (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onClick={(e) => { e.stopPropagation(); setSearchQuery(\"\"); searchRef.current?.focus(); }}\r\n aria-label={L.searchClear}\r\n sx={{ background: \"transparent\", border: \"none\", cursor: \"pointer\", display: \"flex\", alignItems: \"center\", padding: 0, flexShrink: 0 }}\r\n >\r\n <CloseIcon sx={{ fontSize: 14, color: \"var(--fg-muted)\" }} />\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n\r\n {/* Empty state when search yields no results */}\r\n {showSearch && searchQuery.trim() && filteredOptions.length === 0 && (\r\n <MenuItem disabled sx={{ color: \"var(--fg-subtle)\", fontSize: \"var(--text-sm)\" }}>\r\n {L.noOptions}\r\n </MenuItem>\r\n )}\r\n\r\n {filteredOptions.map((o, i) => {\r\n const v = typeof o === \"string\" ? o : o.value;\r\n const l = typeof o === \"string\" ? o : o.label;\r\n /* key via valueKey: an object value stringifies to \"[object Object]\",\r\n * which would give every item in the list the same React key. */\r\n return <MenuItem key={valueKey(v) || `opt-${i}`} value={v}>{l}</MenuItem>;\r\n })}\r\n </MuiSelect>\r\n );\r\n});\r\n\r\n/**\r\n * Marqueur lu par `Field` (R-I.1) : ce contrôle consomme `labelId`.\r\n *\r\n * La surface visible d'un `Select` est un `div[role=\"combobox\"]`, qui n'est PAS\r\n * un élément étiquetable : la paire `<label for>` / `id` que pose `Field` ne le\r\n * nomme donc pas, et un `aria-labelledby` passé en prop atterrirait sur le\r\n * wrapper racine de MUI plutôt que sur le combobox. `labelId` est le canal de\r\n * MUI lui-même — `SelectInput` le fusionne dans l'`aria-labelledby` du\r\n * combobox.\r\n *\r\n * POURQUOI UN MARQUEUR ET NON UNE VÉRIFICATION DE TYPE CÔTÉ `Field` : ce\r\n * dernier ne doit pas importer `Select` (cycle, et cela tirerait tout le\r\n * contrôle dans chaque point d'appel de `Field`), et il ne peut pas déduire\r\n * d'un élément React quel DOM il rendra. Un `labelId` passé à l'aveugle à tous\r\n * les enfants atteindrait `<input>` et les champs texte de MUI, qui ne le\r\n * connaissent pas : React avertirait alors d'un attribut DOM inconnu à chaque\r\n * rendu, dans la console de chaque hôte.\r\n *\r\n * Tout composant de cette librairie dont la surface visible n'est pas\r\n * étiquetable doit porter ce marqueur.\r\n */\r\ninterface SelectComponent\r\n extends React.ForwardRefExoticComponent<\r\n SelectProps & React.RefAttributes<HTMLInputElement>\r\n > {\r\n puiLabelTarget: \"labelId\";\r\n}\r\n\r\n(Select as SelectComponent).puiLabelTarget = \"labelId\";\r\n\r\nexport default Select as SelectComponent;\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,27 @@
1
+ export interface ServerErrorPageLabels {
2
+ /** First breadcrumb crumb. */
3
+ breadcrumbRoot?: string | undefined;
4
+ /** Last breadcrumb crumb — aria-current="page". */
5
+ breadcrumbCurrent?: string | undefined;
6
+ /** ActionBar heading (the page's <h1>). */
7
+ title?: string | undefined;
8
+ /** Descriptive sentence under the code ornament (the <h2>). */
9
+ heading?: string | undefined;
10
+ /**
11
+ * Body paragraph.
12
+ *
13
+ * KEEP THE STATUS CODE IN THE TEXT when translating. The big "500"
14
+ * ornament is aria-hidden (B4-EXT-1 — it used to be an <h1> that
15
+ * collided with ActionBar's), so this sentence is the only access a
16
+ * screen-reader user has to the number they would quote to support.
17
+ * It reads as redundant next to the ornament and is not.
18
+ */
19
+ description?: string | undefined;
20
+ /** Secondary retry label — only rendered when onRetry is supplied. */
21
+ retry?: string | undefined;
22
+ /** Primary CTA label. */
23
+ home?: string | undefined;
24
+ }
1
25
  export interface ServerErrorPageProps {
2
26
  /** Callback for the back button (top-bar arrow). */
3
27
  onBack: () => void;
@@ -5,7 +29,9 @@ export interface ServerErrorPageProps {
5
29
  onHome: () => void;
6
30
  /** Optional retry callback. When omitted, the Réessayer button is hidden. */
7
31
  onRetry?: (() => void) | undefined;
32
+ /** Overrides for the page's French defaults (P-4). */
33
+ labels?: ServerErrorPageLabels | undefined;
8
34
  }
9
- declare function ServerErrorPage({ onBack, onHome, onRetry }: ServerErrorPageProps): import("react").JSX.Element;
35
+ declare function ServerErrorPage({ onBack, onHome, onRetry, labels }: ServerErrorPageProps): import("react").JSX.Element;
10
36
  export default ServerErrorPage;
11
37
  //# sourceMappingURL=ServerErrorPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServerErrorPage.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/ServerErrorPage.tsx"],"names":[],"mappings":"AAiCA,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,yDAAyD;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACpC;AAED,iBAAS,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,oBAAoB,+BAiCzE;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ServerErrorPage.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/ServerErrorPage.tsx"],"names":[],"mappings":"AAsCA,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAaD,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,yDAAyD;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,sDAAsD;IACtD,MAAM,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;CAC5C;AAED,iBAAS,eAAe,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,oBAAoB,+BAmCjF;AAED,eAAe,eAAe,CAAC"}
@@ -3,15 +3,16 @@
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 _Box = _interopRequireDefault(require("@mui/material/Box"));
8
8
  var _ArrowBack = _interopRequireDefault(require("@mui/icons-material/ArrowBack"));
9
9
  var _ErrorOutlined = _interopRequireDefault(require("@mui/icons-material/ErrorOutlined"));
10
10
  var _ActionBar = _interopRequireDefault(require("../patterns/ActionBar"));
11
11
  var _Button = _interopRequireDefault(require("./Button"));
12
12
  var _ErrorPageBody = _interopRequireDefault(require("./_ErrorPageBody"));
13
+ var _mergeLabels = require("../utils/mergeLabels");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
16
  /**
16
17
  * ServerErrorPage — Portnet UI v2 (component)
17
18
  *
@@ -37,46 +38,62 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
37
38
  * />
38
39
  * );
39
40
  * }
41
+ *
42
+ * Localisation (P-4): every visible string is overridable through
43
+ * `labels`, defaulting to French. The shape matches the other three
44
+ * error pages so one translation object can serve all of them.
40
45
  */
41
46
 
42
- function ServerErrorPage(_ref) {
43
- var onBack = _ref.onBack,
44
- onHome = _ref.onHome,
45
- onRetry = _ref.onRetry;
47
+ const DEFAULT_LABELS = Object.freeze({
48
+ breadcrumbRoot: "Erreur",
49
+ breadcrumbCurrent: "Erreur serveur",
50
+ title: "Erreur serveur",
51
+ heading: "Le serveur a rencontré une erreur",
52
+ description: "Le service est momentanément indisponible. Réessayez dans quelques instants. Si le problème persiste, contactez le support en mentionnant le code 500.",
53
+ retry: "Réessayer",
54
+ home: "Retour à l'accueil"
55
+ });
56
+ function ServerErrorPage({
57
+ onBack,
58
+ onHome,
59
+ onRetry,
60
+ labels
61
+ }) {
62
+ const L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
46
63
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
47
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionBar["default"], {
64
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionBar.default, {
48
65
  back: onBack,
49
- breadcrumb: ["Erreur", "Erreur serveur"],
50
- title: "Erreur serveur"
51
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorPageBody["default"], {
52
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorOutlined["default"], {
66
+ breadcrumb: [L.breadcrumbRoot, L.breadcrumbCurrent],
67
+ title: L.title
68
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorPageBody.default, {
69
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorOutlined.default, {
53
70
  sx: {
54
71
  fontSize: 64,
55
72
  color: "var(--danger)"
56
73
  }
57
74
  }),
58
75
  code: "500",
59
- title: "Le serveur a rencontr\xE9 une erreur",
60
- description: "Le service est momentan\xE9ment indisponible. R\xE9essayez dans quelques instants. Si le probl\xE8me persiste, contactez le support en mentionnant le code 500."
61
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
76
+ title: L.heading,
77
+ description: L.description
78
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
62
79
  sx: {
63
80
  display: "flex",
64
81
  justifyContent: "center",
65
82
  gap: "var(--s-3)",
66
83
  paddingBottom: "var(--s-7)"
67
84
  },
68
- children: [onRetry ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
85
+ children: [onRetry ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
69
86
  variant: "ghost",
70
87
  onClick: onRetry,
71
- children: "R\xE9essayer"
72
- }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
88
+ children: L.retry
89
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
73
90
  variant: "primary",
74
- icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowBack["default"], {}),
91
+ icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowBack.default, {}),
75
92
  onClick: onHome,
76
- children: "Retour \xE0 l'accueil"
93
+ children: L.home
77
94
  })]
78
95
  })]
79
96
  });
80
97
  }
81
- var _default = exports["default"] = ServerErrorPage;
98
+ var _default = exports.default = ServerErrorPage;
82
99
  //# sourceMappingURL=ServerErrorPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServerErrorPage.js","names":["_Box","_interopRequireDefault","require","_ArrowBack","_ErrorOutlined","_ActionBar","_Button","_ErrorPageBody","_jsxRuntime","obj","__esModule","ServerErrorPage","_ref","onBack","onHome","onRetry","jsxs","Fragment","children","jsx","back","breadcrumb","title","icon","sx","fontSize","color","code","description","display","justifyContent","gap","paddingBottom","variant","onClick","_default","exports"],"sources":["../../../src/lib/v2/components/ServerErrorPage.tsx"],"sourcesContent":["/**\r\n * ServerErrorPage — Portnet UI v2 (component)\r\n *\r\n * Charter §07 · 500 / Erreur serveur.\r\n *\r\n * Adds an optional onRetry callback on top of the ForbiddenPage /\r\n * NotFoundPage contract. The retry button is only rendered when\r\n * onRetry is supplied — the lib deliberately avoids defaulting it\r\n * to window.location.reload() because that policy belongs to the\r\n * host (some hosts may prefer cache-clear, axios retry, backoff,\r\n * or a route-level revalidation).\r\n *\r\n * import { ServerErrorPage } from \"@portnet/ui/lib/v2\";\r\n * import { useNavigate } from \"react-router-dom\";\r\n *\r\n * function ServerErrorRoute() {\r\n * const navigate = useNavigate();\r\n * return (\r\n * <ServerErrorPage\r\n * onBack={() => navigate(-1)}\r\n * onHome={() => navigate(\"/\")}\r\n * onRetry={() => window.location.reload()}\r\n * />\r\n * );\r\n * }\r\n */\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport ErrorOutline from \"@mui/icons-material/ErrorOutlined\";\r\nimport ActionBar from \"../patterns/ActionBar\";\r\nimport Button from \"./Button\";\r\nimport ErrorPageBody from \"./_ErrorPageBody\";\r\n\r\nexport interface ServerErrorPageProps {\r\n /** Callback for the back button (top-bar arrow). */\r\n onBack: () => void;\r\n /** Callback for the primary \"Retour à l'accueil\" CTA. */\r\n onHome: () => void;\r\n /** Optional retry callback. When omitted, the Réessayer button is hidden. */\r\n onRetry?: (() => void) | undefined;\r\n}\r\n\r\nfunction ServerErrorPage({ onBack, onHome, onRetry }: ServerErrorPageProps) {\r\n return (\r\n <>\r\n <ActionBar\r\n back={onBack}\r\n breadcrumb={[\"Erreur\", \"Erreur serveur\"]}\r\n title=\"Erreur serveur\"\r\n />\r\n <ErrorPageBody\r\n icon={<ErrorOutline sx={{ fontSize: 64, color: \"var(--danger)\" }} />}\r\n code=\"500\"\r\n title=\"Le serveur a rencontré une erreur\"\r\n description=\"Le service est momentanément indisponible. Réessayez dans quelques instants. Si le problème persiste, contactez le support en mentionnant le code 500.\"\r\n />\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n gap: \"var(--s-3)\",\r\n paddingBottom: \"var(--s-7)\",\r\n }}\r\n >\r\n {onRetry ? (\r\n <Button variant=\"ghost\" onClick={onRetry}>\r\n Réessayer\r\n </Button>\r\n ) : null}\r\n <Button variant=\"primary\" icon={<ArrowBack />} onClick={onHome}>\r\n Retour à l'accueil\r\n </Button>\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nexport default ServerErrorPage;\r\n"],"mappings":";;;;;;AA0BA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,cAAA,GAAAN,sBAAA,CAAAC,OAAA;AAA6C,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AA/B7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA,SAASE,eAAeA,CAAAC,IAAA,EAAoD;EAAA,IAAjDC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;EAChD,oBACE,IAAAP,WAAA,CAAAQ,IAAA,EAAAR,WAAA,CAAAS,QAAA;IAAAC,QAAA,gBACE,IAAAV,WAAA,CAAAW,GAAA,EAACd,UAAA,WAAS;MACRe,IAAI,EAAEP,MAAO;MACbQ,UAAU,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAE;MACzCC,KAAK,EAAC;IAAgB,CACvB,CAAC,eACF,IAAAd,WAAA,CAAAW,GAAA,EAACZ,cAAA,WAAa;MACZgB,IAAI,eAAE,IAAAf,WAAA,CAAAW,GAAA,EAACf,cAAA,WAAY;QAACoB,EAAE,EAAE;UAAEC,QAAQ,EAAE,EAAE;UAAEC,KAAK,EAAE;QAAgB;MAAE,CAAE,CAAE;MACrEC,IAAI,EAAC,KAAK;MACVL,KAAK,EAAC,sCAAmC;MACzCM,WAAW,EAAC;IAAwJ,CACrK,CAAC,eACF,IAAApB,WAAA,CAAAQ,IAAA,EAAChB,IAAA,WAAG;MACFwB,EAAE,EAAE;QACFK,OAAO,EAAS,MAAM;QACtBC,cAAc,EAAE,QAAQ;QACxBC,GAAG,EAAa,YAAY;QAC5BC,aAAa,EAAG;MAClB,CAAE;MAAAd,QAAA,GAEDH,OAAO,gBACN,IAAAP,WAAA,CAAAW,GAAA,EAACb,OAAA,WAAM;QAAC2B,OAAO,EAAC,OAAO;QAACC,OAAO,EAAEnB,OAAQ;QAAAG,QAAA,EAAC;MAE1C,CAAQ,CAAC,GACP,IAAI,eACR,IAAAV,WAAA,CAAAW,GAAA,EAACb,OAAA,WAAM;QAAC2B,OAAO,EAAC,SAAS;QAACV,IAAI,eAAE,IAAAf,WAAA,CAAAW,GAAA,EAAChB,UAAA,WAAS,IAAE,CAAE;QAAC+B,OAAO,EAAEpB,MAAO;QAAAI,QAAA,EAAC;MAEhE,CAAQ,CAAC;IAAA,CACN,CAAC;EAAA,CACN,CAAC;AAEP;AAAC,IAAAiB,QAAA,GAAAC,OAAA,cAEczB,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"ServerErrorPage.js","names":["_Box","_interopRequireDefault","require","_ArrowBack","_ErrorOutlined","_ActionBar","_Button","_ErrorPageBody","_mergeLabels","_jsxRuntime","e","__esModule","default","DEFAULT_LABELS","Object","freeze","breadcrumbRoot","breadcrumbCurrent","title","heading","description","retry","home","ServerErrorPage","onBack","onHome","onRetry","labels","L","mergeLabels","jsxs","Fragment","children","jsx","back","breadcrumb","icon","sx","fontSize","color","code","display","justifyContent","gap","paddingBottom","variant","onClick","_default","exports"],"sources":["../../../src/lib/v2/components/ServerErrorPage.tsx"],"sourcesContent":["/**\r\n * ServerErrorPage — Portnet UI v2 (component)\r\n *\r\n * Charter §07 · 500 / Erreur serveur.\r\n *\r\n * Adds an optional onRetry callback on top of the ForbiddenPage /\r\n * NotFoundPage contract. The retry button is only rendered when\r\n * onRetry is supplied — the lib deliberately avoids defaulting it\r\n * to window.location.reload() because that policy belongs to the\r\n * host (some hosts may prefer cache-clear, axios retry, backoff,\r\n * or a route-level revalidation).\r\n *\r\n * import { ServerErrorPage } from \"@portnet/ui/lib/v2\";\r\n * import { useNavigate } from \"react-router-dom\";\r\n *\r\n * function ServerErrorRoute() {\r\n * const navigate = useNavigate();\r\n * return (\r\n * <ServerErrorPage\r\n * onBack={() => navigate(-1)}\r\n * onHome={() => navigate(\"/\")}\r\n * onRetry={() => window.location.reload()}\r\n * />\r\n * );\r\n * }\r\n *\r\n * Localisation (P-4): every visible string is overridable through\r\n * `labels`, defaulting to French. The shape matches the other three\r\n * error pages so one translation object can serve all of them.\r\n */\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport ErrorOutline from \"@mui/icons-material/ErrorOutlined\";\r\nimport ActionBar from \"../patterns/ActionBar\";\r\nimport Button from \"./Button\";\r\nimport ErrorPageBody from \"./_ErrorPageBody\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\nexport interface ServerErrorPageLabels {\r\n /** First breadcrumb crumb. */\r\n breadcrumbRoot?: string | undefined;\r\n /** Last breadcrumb crumb — aria-current=\"page\". */\r\n breadcrumbCurrent?: string | undefined;\r\n /** ActionBar heading (the page's <h1>). */\r\n title?: string | undefined;\r\n /** Descriptive sentence under the code ornament (the <h2>). */\r\n heading?: string | undefined;\r\n /**\r\n * Body paragraph.\r\n *\r\n * KEEP THE STATUS CODE IN THE TEXT when translating. The big \"500\"\r\n * ornament is aria-hidden (B4-EXT-1 — it used to be an <h1> that\r\n * collided with ActionBar's), so this sentence is the only access a\r\n * screen-reader user has to the number they would quote to support.\r\n * It reads as redundant next to the ornament and is not.\r\n */\r\n description?: string | undefined;\r\n /** Secondary retry label — only rendered when onRetry is supplied. */\r\n retry?: string | undefined;\r\n /** Primary CTA label. */\r\n home?: string | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n breadcrumbRoot: \"Erreur\",\r\n breadcrumbCurrent: \"Erreur serveur\",\r\n title: \"Erreur serveur\",\r\n heading: \"Le serveur a rencontré une erreur\",\r\n description:\r\n \"Le service est momentanément indisponible. Réessayez dans quelques instants. Si le problème persiste, contactez le support en mentionnant le code 500.\",\r\n retry: \"Réessayer\",\r\n home: \"Retour à l'accueil\",\r\n});\r\n\r\nexport interface ServerErrorPageProps {\r\n /** Callback for the back button (top-bar arrow). */\r\n onBack: () => void;\r\n /** Callback for the primary \"Retour à l'accueil\" CTA. */\r\n onHome: () => void;\r\n /** Optional retry callback. When omitted, the Réessayer button is hidden. */\r\n onRetry?: (() => void) | undefined;\r\n /** Overrides for the page's French defaults (P-4). */\r\n labels?: ServerErrorPageLabels | undefined;\r\n}\r\n\r\nfunction ServerErrorPage({ onBack, onHome, onRetry, labels }: ServerErrorPageProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n\r\n return (\r\n <>\r\n <ActionBar\r\n back={onBack}\r\n breadcrumb={[L.breadcrumbRoot, L.breadcrumbCurrent]}\r\n title={L.title}\r\n />\r\n <ErrorPageBody\r\n icon={<ErrorOutline sx={{ fontSize: 64, color: \"var(--danger)\" }} />}\r\n code=\"500\"\r\n title={L.heading}\r\n description={L.description}\r\n />\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n gap: \"var(--s-3)\",\r\n paddingBottom: \"var(--s-7)\",\r\n }}\r\n >\r\n {onRetry ? (\r\n <Button variant=\"ghost\" onClick={onRetry}>\r\n {L.retry}\r\n </Button>\r\n ) : null}\r\n <Button variant=\"primary\" icon={<ArrowBack />} onClick={onHome}>\r\n {L.home}\r\n </Button>\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nexport default ServerErrorPage;\r\n"],"mappings":"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","ignoreList":[]}