@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,14 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- var _excluded = ["children", "columns", "minColumnWidth", "gap", "sx"],
3
- _excluded2 = ["children", "sx"],
4
- _excluded3 = ["span", "children", "sx"];
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
10
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
11
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12
1
  import * as React from "react";
13
2
  import Box from "@mui/material/Box";
14
3
 
@@ -54,14 +43,15 @@ import Box from "@mui/material/Box";
54
43
  * </FormGrid>
55
44
  */
56
45
  import { jsx as _jsx } from "react/jsx-runtime";
57
- function FormGrid(_ref) {
58
- var children = _ref.children,
59
- columns = _ref.columns,
60
- minColumnWidth = _ref.minColumnWidth,
61
- gap = _ref.gap,
62
- sx = _ref.sx,
63
- rest = _objectWithoutProperties(_ref, _excluded);
64
- var gridTemplateColumns = React.useMemo(function () {
46
+ function FormGrid({
47
+ children,
48
+ columns,
49
+ minColumnWidth,
50
+ gap,
51
+ sx,
52
+ ...rest
53
+ }) {
54
+ const gridTemplateColumns = React.useMemo(() => {
65
55
  /* Auto-fill adaptatif — minColumnWidth prime sur columns.
66
56
  * min(${minColumnWidth}px, 100%) borne la largeur mini de chaque
67
57
  * piste à celle du conteneur : au-dessus de sm, une piste ne peut
@@ -69,10 +59,10 @@ function FormGrid(_ref) {
69
59
  if (minColumnWidth) {
70
60
  return {
71
61
  xs: "1fr",
72
- sm: "repeat(auto-fill, minmax(min(".concat(minColumnWidth, "px, 100%), 1fr))")
62
+ sm: `repeat(auto-fill, minmax(min(${minColumnWidth}px, 100%), 1fr))`
73
63
  };
74
64
  }
75
- var cols = typeof columns === "number" && columns > 0 ? columns : 3;
65
+ const cols = typeof columns === "number" && columns > 0 ? columns : 3;
76
66
 
77
67
  /* Colonne unique — textarea, notes, upload : toujours pleine largeur */
78
68
  if (cols === 1) return "1fr";
@@ -97,13 +87,13 @@ function FormGrid(_ref) {
97
87
  return {
98
88
  xs: "1fr",
99
89
  sm: "repeat(2, minmax(0, 1fr))",
100
- md: "repeat(".concat(cols, ", minmax(0, 1fr))")
90
+ md: `repeat(${cols}, minmax(0, 1fr))`
101
91
  };
102
92
  }, [columns, minColumnWidth]);
103
- return /*#__PURE__*/_jsx(Box, _objectSpread(_objectSpread({
104
- sx: _objectSpread({
93
+ return /*#__PURE__*/_jsx(Box, {
94
+ sx: {
105
95
  display: "grid",
106
- gridTemplateColumns: gridTemplateColumns,
96
+ gridTemplateColumns,
107
97
  /* Charter §2.3 — `-s-4` (16px) EST le « Gap formulaire (default) » ; le
108
98
  * défaut précédent était `-s-3` (12px), que la même table réserve au
109
99
  * « Padding cards compact ». Le composant canonique de grille de
@@ -114,12 +104,13 @@ function FormGrid(_ref) {
114
104
  *
115
105
  * `??` et non `||` : `gap={0}` est une valeur légitime que `||`
116
106
  * écrasait silencieusement par le défaut. */
117
- gap: gap !== null && gap !== void 0 ? gap : "var(--s-4)",
118
- alignItems: "start"
119
- }, sx)
120
- }, rest), {}, {
107
+ gap: gap ?? "var(--s-4)",
108
+ alignItems: "start",
109
+ ...sx
110
+ },
111
+ ...rest,
121
112
  children: children
122
- }));
113
+ });
123
114
  }
124
115
 
125
116
  /* ── FormGrid.Full ────────────────────────────────────────────────────
@@ -127,18 +118,20 @@ function FormGrid(_ref) {
127
118
  * Usage : textareas, file uploads, sub-tables, notes.
128
119
  */
129
120
 
130
- function FormGridFull(_ref2) {
131
- var children = _ref2.children,
132
- sx = _ref2.sx,
133
- rest = _objectWithoutProperties(_ref2, _excluded2);
134
- return /*#__PURE__*/_jsx(Box, _objectSpread(_objectSpread({
135
- sx: _objectSpread({
121
+ function FormGridFull({
122
+ children,
123
+ sx,
124
+ ...rest
125
+ }) {
126
+ return /*#__PURE__*/_jsx(Box, {
127
+ sx: {
136
128
  gridColumn: "1 / -1",
137
- minWidth: 0
138
- }, sx)
139
- }, rest), {}, {
129
+ minWidth: 0,
130
+ ...sx
131
+ },
132
+ ...rest,
140
133
  children: children
141
- }));
134
+ });
142
135
  }
143
136
 
144
137
  /* ── FormGrid.Item ────────────────────────────────────────────────────
@@ -150,28 +143,29 @@ function FormGridFull(_ref2) {
150
143
  * Usage : Description (span=2 sur desktop, full-width mobile/tablette)
151
144
  */
152
145
 
153
- function FormGridItem(_ref3) {
154
- var _ref3$span = _ref3.span,
155
- span = _ref3$span === void 0 ? 1 : _ref3$span,
156
- children = _ref3.children,
157
- sx = _ref3.sx,
158
- rest = _objectWithoutProperties(_ref3, _excluded3);
159
- return /*#__PURE__*/_jsx(Box, _objectSpread(_objectSpread({
160
- sx: _objectSpread({
146
+ function FormGridItem({
147
+ span = 1,
148
+ children,
149
+ sx,
150
+ ...rest
151
+ }) {
152
+ return /*#__PURE__*/_jsx(Box, {
153
+ sx: {
161
154
  gridColumn: {
162
155
  xs: "1 / -1",
163
156
  /* mobile : toujours pleine largeur */
164
157
  sm: "span 1",
165
158
  /* tablette (2-col) : 1 cellule */
166
- md: "span ".concat(span) /* desktop (N-col) : span explicite */
159
+ md: `span ${span}` /* desktop (N-col) : span explicite */
167
160
  },
168
- minWidth: 0
169
- }, sx)
170
- }, rest), {}, {
161
+ minWidth: 0,
162
+ ...sx
163
+ },
164
+ ...rest,
171
165
  children: children
172
- }));
166
+ });
173
167
  }
174
- var FormGridWithStatics = Object.assign(FormGrid, {
168
+ const FormGridWithStatics = Object.assign(FormGrid, {
175
169
  Item: FormGridItem,
176
170
  Full: FormGridFull
177
171
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FormGrid.js","names":["React","Box","jsx","_jsx","FormGrid","_ref","children","columns","minColumnWidth","gap","sx","rest","_objectWithoutProperties","_excluded","gridTemplateColumns","useMemo","xs","sm","concat","cols","md","_objectSpread","display","alignItems","FormGridFull","_ref2","_excluded2","gridColumn","minWidth","FormGridItem","_ref3","_ref3$span","span","_excluded3","FormGridWithStatics","Object","assign","Item","Full"],"sources":["../../../../src/lib/v2/components/FormGrid.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * FormGrid — Portnet UI v2\r\n *\r\n * Charter §03 R-3.2 — canonical RESPONSIVE form grid.\r\n *\r\n * ── Breakpoint strategy (aligné addpe-fe) ───────────────────────────\r\n *\r\n * Les clés xs/sm/md ci-dessous résolvent contre l'échelle de tokens\r\n * Portnet câblée dans le thème MUI (Batch 1), PAS les défauts MUI :\r\n *\r\n * xs (<481px) : 1 colonne — mobile, chaque champ pleine largeur\r\n * sm (481-767px) : 2 colonnes — tablette / grand mobile (transition douce)\r\n * md (≥768px) : N colonnes — desktop (layout cible)\r\n *\r\n * Source: addpe-fe/AutorisationForm.js\r\n * gridTemplateColumns: { xs: \"1fr\", sm: \"1fr 1fr\", md: \"repeat(3, 1fr)\" }\r\n *\r\n * ── Presets ─────────────────────────────────────────────────────────\r\n *\r\n * columns={1} → toujours 1 col (textarea, notes, upload)\r\n * columns={2} → 1col xs / 2col sm+ (formulaires courts)\r\n * columns={3} → 1col xs / 2col sm / 3col md (DEFAULT FormSection)\r\n * columns={4} → 1col xs / 2col sm / 4col md (champs courts : codes, dates)\r\n * minColumnWidth={N} → auto-fill adaptatif, 1col xs\r\n *\r\n * ── Sous-composants ─────────────────────────────────────────────────\r\n *\r\n * <FormGrid.Full> → span toutes colonnes (textarea, tables)\r\n * <FormGrid.Item span> → span explicite (sm+), full-width xs\r\n *\r\n * ── Exemple ─────────────────────────────────────────────────────────\r\n *\r\n * <FormGrid columns={3}>\r\n * <FormikInput name=\"nom\" label=\"Nom\" />\r\n * <FormikInput name=\"prenom\" label=\"Prénom\" />\r\n * <FormikInput name=\"code\" label=\"Code\" />\r\n * <FormGrid.Full>\r\n * <FormikTextarea name=\"obs\" label=\"Observations\" />\r\n * </FormGrid.Full>\r\n * </FormGrid>\r\n */\r\nexport interface FormGridProps extends Omit<BoxProps, \"gap\"> {\r\n /**\r\n * Nombre de colonnes égales.\r\n * 1 → pleine largeur (notes, textarea)\r\n * 2 → 2 cols sm+\r\n * 3 → DEFAULT FormSection : 1col xs / 2col sm / 3col md\r\n * 4 → 1col xs / 2col sm / 4col md (champs courts)\r\n * Mutually exclusive avec minColumnWidth.\r\n */\r\n columns?: number | undefined;\r\n /** Auto-fill adaptatif — tracks d'au moins N px de large. */\r\n minColumnWidth?: number | undefined;\r\n /**\r\n * Gap de la grille. Défaut `var(--s-4)` — la charte §2.3 assigne\r\n * explicitement `-s-4` (16px) à « Gap formulaire (default) », `-s-3` (12px)\r\n * étant réservé au « Padding cards compact ». Gap G-13.\r\n */\r\n gap?: string | number | undefined;\r\n}\r\n\r\nfunction FormGrid({\r\n children,\r\n columns,\r\n minColumnWidth,\r\n gap,\r\n sx,\r\n ...rest\r\n}: FormGridProps) {\r\n const gridTemplateColumns = React.useMemo(() => {\r\n /* Auto-fill adaptatif — minColumnWidth prime sur columns.\r\n * min(${minColumnWidth}px, 100%) borne la largeur mini de chaque\r\n * piste à celle du conteneur : au-dessus de sm, une piste ne peut\r\n * jamais dépasser le conteneur (pas de débordement / Reflow 1.4.10). */\r\n if (minColumnWidth) {\r\n return {\r\n xs: \"1fr\",\r\n sm: `repeat(auto-fill, minmax(min(${minColumnWidth}px, 100%), 1fr))`,\r\n };\r\n }\r\n\r\n const cols = typeof columns === \"number\" && columns > 0 ? columns : 3;\r\n\r\n /* Colonne unique — textarea, notes, upload : toujours pleine largeur */\r\n if (cols === 1) return \"1fr\";\r\n\r\n /* 2 colonnes — dès tablette (sm), pas d'échelon md nécessaire */\r\n if (cols === 2) {\r\n return { xs: \"1fr\", sm: \"repeat(2, minmax(0, 1fr))\" };\r\n }\r\n\r\n /*\r\n * 3+ colonnes — 3 échelons :\r\n * xs : 1 col (mobile)\r\n * sm : 2 cols (tablette — transition douce, évite les champs trop étroits)\r\n * md : N cols (desktop — layout cible)\r\n *\r\n * Identique au pattern addpe-fe :\r\n * { xs:\"1fr\", sm:\"1fr 1fr\", md:\"repeat(3, 1fr)\" }\r\n */\r\n return {\r\n xs: \"1fr\",\r\n sm: \"repeat(2, minmax(0, 1fr))\",\r\n md: `repeat(${cols}, minmax(0, 1fr))`,\r\n };\r\n }, [columns, minColumnWidth]);\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"grid\",\r\n gridTemplateColumns,\r\n /* Charter §2.3 — `-s-4` (16px) EST le « Gap formulaire (default) » ; le\r\n * défaut précédent était `-s-3` (12px), que la même table réserve au\r\n * « Padding cards compact ». Le composant canonique de grille de\r\n * formulaire contredisait donc la valeur par défaut de la charte, et\r\n * chaque module compensait en passant `gap` à la main. Changement\r\n * VISUEL fleet-wide 12→16px sur toute grille sans `gap` explicite —\r\n * même classe de correction que le 15→16px des titres FormSection.\r\n *\r\n * `??` et non `||` : `gap={0}` est une valeur légitime que `||`\r\n * écrasait silencieusement par le défaut. */\r\n gap: gap ?? \"var(--s-4)\",\r\n alignItems: \"start\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\n/* ── FormGrid.Full ────────────────────────────────────────────────────\r\n * Span toutes les colonnes à tous les breakpoints.\r\n * Usage : textareas, file uploads, sub-tables, notes.\r\n */\r\nexport type FormGridFullProps = BoxProps;\r\n\r\nfunction FormGridFull({ children, sx, ...rest }: FormGridFullProps) {\r\n return (\r\n <Box sx={{ gridColumn: \"1 / -1\", minWidth: 0, ...sx }} {...rest}>\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\n/* ── FormGrid.Item ────────────────────────────────────────────────────\r\n * Span explicite par breakpoint.\r\n * xs → toujours pleine largeur (1 / -1)\r\n * sm → span 1 (une cellule dans la grille 2-col tablette)\r\n * md → span explicite (grille N-col desktop)\r\n *\r\n * Usage : Description (span=2 sur desktop, full-width mobile/tablette)\r\n */\r\nexport interface FormGridItemProps extends BoxProps {\r\n /**\r\n * Colonnes à couvrir sur md+ (desktop).\r\n * xs → toujours 1/-1 (pleine largeur).\r\n * sm → toujours span 1 (grille 2-col tablette).\r\n * Default : 1.\r\n */\r\n span?: number | undefined;\r\n}\r\n\r\nfunction FormGridItem({ span = 1, children, sx, ...rest }: FormGridItemProps) {\r\n return (\r\n <Box\r\n sx={{\r\n gridColumn: {\r\n xs: \"1 / -1\", /* mobile : toujours pleine largeur */\r\n sm: \"span 1\", /* tablette (2-col) : 1 cellule */\r\n md: `span ${span}`, /* desktop (N-col) : span explicite */\r\n },\r\n minWidth: 0,\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\nconst FormGridWithStatics = Object.assign(FormGrid, {\r\n Item: FormGridItem,\r\n Full: FormGridFull,\r\n});\r\n\r\nexport default FormGridWithStatics;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormGrid.js","names":["React","Box","jsx","_jsx","FormGrid","children","columns","minColumnWidth","gap","sx","rest","gridTemplateColumns","useMemo","xs","sm","cols","md","display","alignItems","FormGridFull","gridColumn","minWidth","FormGridItem","span","FormGridWithStatics","Object","assign","Item","Full"],"sources":["../../../../src/lib/v2/components/FormGrid.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * FormGrid — Portnet UI v2\r\n *\r\n * Charter §03 R-3.2 — canonical RESPONSIVE form grid.\r\n *\r\n * ── Breakpoint strategy (aligné addpe-fe) ───────────────────────────\r\n *\r\n * Les clés xs/sm/md ci-dessous résolvent contre l'échelle de tokens\r\n * Portnet câblée dans le thème MUI (Batch 1), PAS les défauts MUI :\r\n *\r\n * xs (<481px) : 1 colonne — mobile, chaque champ pleine largeur\r\n * sm (481-767px) : 2 colonnes — tablette / grand mobile (transition douce)\r\n * md (≥768px) : N colonnes — desktop (layout cible)\r\n *\r\n * Source: addpe-fe/AutorisationForm.js\r\n * gridTemplateColumns: { xs: \"1fr\", sm: \"1fr 1fr\", md: \"repeat(3, 1fr)\" }\r\n *\r\n * ── Presets ─────────────────────────────────────────────────────────\r\n *\r\n * columns={1} → toujours 1 col (textarea, notes, upload)\r\n * columns={2} → 1col xs / 2col sm+ (formulaires courts)\r\n * columns={3} → 1col xs / 2col sm / 3col md (DEFAULT FormSection)\r\n * columns={4} → 1col xs / 2col sm / 4col md (champs courts : codes, dates)\r\n * minColumnWidth={N} → auto-fill adaptatif, 1col xs\r\n *\r\n * ── Sous-composants ─────────────────────────────────────────────────\r\n *\r\n * <FormGrid.Full> → span toutes colonnes (textarea, tables)\r\n * <FormGrid.Item span> → span explicite (sm+), full-width xs\r\n *\r\n * ── Exemple ─────────────────────────────────────────────────────────\r\n *\r\n * <FormGrid columns={3}>\r\n * <FormikInput name=\"nom\" label=\"Nom\" />\r\n * <FormikInput name=\"prenom\" label=\"Prénom\" />\r\n * <FormikInput name=\"code\" label=\"Code\" />\r\n * <FormGrid.Full>\r\n * <FormikTextarea name=\"obs\" label=\"Observations\" />\r\n * </FormGrid.Full>\r\n * </FormGrid>\r\n */\r\nexport interface FormGridProps extends Omit<BoxProps, \"gap\"> {\r\n /**\r\n * Nombre de colonnes égales.\r\n * 1 → pleine largeur (notes, textarea)\r\n * 2 → 2 cols sm+\r\n * 3 → DEFAULT FormSection : 1col xs / 2col sm / 3col md\r\n * 4 → 1col xs / 2col sm / 4col md (champs courts)\r\n * Mutually exclusive avec minColumnWidth.\r\n */\r\n columns?: number | undefined;\r\n /** Auto-fill adaptatif — tracks d'au moins N px de large. */\r\n minColumnWidth?: number | undefined;\r\n /**\r\n * Gap de la grille. Défaut `var(--s-4)` — la charte §2.3 assigne\r\n * explicitement `-s-4` (16px) à « Gap formulaire (default) », `-s-3` (12px)\r\n * étant réservé au « Padding cards compact ». Gap G-13.\r\n */\r\n gap?: string | number | undefined;\r\n}\r\n\r\nfunction FormGrid({\r\n children,\r\n columns,\r\n minColumnWidth,\r\n gap,\r\n sx,\r\n ...rest\r\n}: FormGridProps) {\r\n const gridTemplateColumns = React.useMemo(() => {\r\n /* Auto-fill adaptatif — minColumnWidth prime sur columns.\r\n * min(${minColumnWidth}px, 100%) borne la largeur mini de chaque\r\n * piste à celle du conteneur : au-dessus de sm, une piste ne peut\r\n * jamais dépasser le conteneur (pas de débordement / Reflow 1.4.10). */\r\n if (minColumnWidth) {\r\n return {\r\n xs: \"1fr\",\r\n sm: `repeat(auto-fill, minmax(min(${minColumnWidth}px, 100%), 1fr))`,\r\n };\r\n }\r\n\r\n const cols = typeof columns === \"number\" && columns > 0 ? columns : 3;\r\n\r\n /* Colonne unique — textarea, notes, upload : toujours pleine largeur */\r\n if (cols === 1) return \"1fr\";\r\n\r\n /* 2 colonnes — dès tablette (sm), pas d'échelon md nécessaire */\r\n if (cols === 2) {\r\n return { xs: \"1fr\", sm: \"repeat(2, minmax(0, 1fr))\" };\r\n }\r\n\r\n /*\r\n * 3+ colonnes — 3 échelons :\r\n * xs : 1 col (mobile)\r\n * sm : 2 cols (tablette — transition douce, évite les champs trop étroits)\r\n * md : N cols (desktop — layout cible)\r\n *\r\n * Identique au pattern addpe-fe :\r\n * { xs:\"1fr\", sm:\"1fr 1fr\", md:\"repeat(3, 1fr)\" }\r\n */\r\n return {\r\n xs: \"1fr\",\r\n sm: \"repeat(2, minmax(0, 1fr))\",\r\n md: `repeat(${cols}, minmax(0, 1fr))`,\r\n };\r\n }, [columns, minColumnWidth]);\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"grid\",\r\n gridTemplateColumns,\r\n /* Charter §2.3 — `-s-4` (16px) EST le « Gap formulaire (default) » ; le\r\n * défaut précédent était `-s-3` (12px), que la même table réserve au\r\n * « Padding cards compact ». Le composant canonique de grille de\r\n * formulaire contredisait donc la valeur par défaut de la charte, et\r\n * chaque module compensait en passant `gap` à la main. Changement\r\n * VISUEL fleet-wide 12→16px sur toute grille sans `gap` explicite —\r\n * même classe de correction que le 15→16px des titres FormSection.\r\n *\r\n * `??` et non `||` : `gap={0}` est une valeur légitime que `||`\r\n * écrasait silencieusement par le défaut. */\r\n gap: gap ?? \"var(--s-4)\",\r\n alignItems: \"start\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\n/* ── FormGrid.Full ────────────────────────────────────────────────────\r\n * Span toutes les colonnes à tous les breakpoints.\r\n * Usage : textareas, file uploads, sub-tables, notes.\r\n */\r\nexport type FormGridFullProps = BoxProps;\r\n\r\nfunction FormGridFull({ children, sx, ...rest }: FormGridFullProps) {\r\n return (\r\n <Box sx={{ gridColumn: \"1 / -1\", minWidth: 0, ...sx }} {...rest}>\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\n/* ── FormGrid.Item ────────────────────────────────────────────────────\r\n * Span explicite par breakpoint.\r\n * xs → toujours pleine largeur (1 / -1)\r\n * sm → span 1 (une cellule dans la grille 2-col tablette)\r\n * md → span explicite (grille N-col desktop)\r\n *\r\n * Usage : Description (span=2 sur desktop, full-width mobile/tablette)\r\n */\r\nexport interface FormGridItemProps extends BoxProps {\r\n /**\r\n * Colonnes à couvrir sur md+ (desktop).\r\n * xs → toujours 1/-1 (pleine largeur).\r\n * sm → toujours span 1 (grille 2-col tablette).\r\n * Default : 1.\r\n */\r\n span?: number | undefined;\r\n}\r\n\r\nfunction FormGridItem({ span = 1, children, sx, ...rest }: FormGridItemProps) {\r\n return (\r\n <Box\r\n sx={{\r\n gridColumn: {\r\n xs: \"1 / -1\", /* mobile : toujours pleine largeur */\r\n sm: \"span 1\", /* tablette (2-col) : 1 cellule */\r\n md: `span ${span}`, /* desktop (N-col) : span explicite */\r\n },\r\n minWidth: 0,\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\nconst FormGridWithStatics = Object.assign(FormGrid, {\r\n Item: FormGridItem,\r\n Full: FormGridFull,\r\n});\r\n\r\nexport default FormGridWithStatics;\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
1
  import * as React from "react";
3
2
  import Box from "@mui/material/Box";
4
3
  import Typography from "@mui/material/Typography";
5
4
  import { getIn, useFormikContext } from "formik";
5
+ import { FIELD_MAX_WIDTH } from "./Field";
6
6
 
7
7
  /**
8
8
  * FormikDisplay — Portnet UI v2
@@ -18,45 +18,100 @@ import { getIn, useFormikContext } from "formik";
18
18
  * --fg-subtle (#6B7280) → 4.30:1 sur #F1F2F5 ❌ sous AA (4.5:1)
19
19
  * (--fg-subtle est calibré "on white only" dans colors.js)
20
20
  *
21
+ * NB : ces ratios sont calculés sur les valeurs du thème CLAIR. Le
22
+ * mode sombre redéfinit --bg-subtle et --fg-muted ; l'appairage n'a
23
+ * pas été re-vérifié là.
24
+ *
21
25
  * ── Fond ────────────────────────────────────────────────────────────
22
26
  * --bg-subtle (#F1F2F5) est clairement visible sur les sections
23
27
  * (#FFFFFF surface), contrairement à --bg (#F7F8FA ≈ blanc).
24
28
  *
29
+ * ── Sémantique (D-3) ────────────────────────────────────────────────
30
+ * Le couple label/valeur est lié par `aria-labelledby`, comme dans
31
+ * KV — donc annoncé comme une seule unité quand l'utilisateur
32
+ * l'atteint. Ce bloc portait auparavant `role="status"`, ce qui en
33
+ * faisait une région live : sur un écran de consultation à vingt
34
+ * champs, vingt régions live polies. C'est précisément ce que le
35
+ * composant Status refuse de faire, et pour la même raison.
36
+ *
37
+ * ── LARGEUR SEMANTIQUE (G-H) ───────────────────────────────────────
38
+ *
39
+ * `width` rattache le champ a l'un des cinq gabarits de la section « Form
40
+ * Field Width & Layout Standards », avec LE MEME plafond et LE MEME palier
41
+ * que `Field` : `FIELD_MAX_WIDTH` est importe de `Field`, pas recopie. Deux
42
+ * tables de largeurs finiraient par diverger, et le standard interdit
43
+ * justement les largeurs arbitraires.
44
+ *
45
+ * POURQUOI CE COMPOSANT EN AVAIT BESOIN. Il ne passe PAS par `Field` — il
46
+ * rend sa propre boite, parce qu'un champ en lecture seule n'a ni controle
47
+ * a nommer par `htmlFor` ni erreur a decrire. Il etait donc le seul champ
48
+ * de la library a ne pas pouvoir porter de gabarit, et un formulaire
49
+ * melant `FormikInput` borne et `FormikDisplay` non borne produit
50
+ * exactement le « jagged right-side layout edge » que le standard
51
+ * proscrit : les champs saisissables s'arretent a 400px, les champs
52
+ * affiches remplissent toute la cellule.
53
+ *
54
+ * Retrocompatible : sans `width`, aucun plafond n'est pose.
55
+ *
25
56
  * ── Usage ────────────────────────────────────────────────────────────
26
57
  * <FormikDisplay name="donneesTI.etat" label="État"
27
58
  * hint="Géré par le workflow" />
28
59
  *
29
60
  * <FormikDisplay name="importateur.codePIN" label="Code PIN" mono />
61
+ *
62
+ * <FormikDisplay name="observation" label="Observations" wrap />
63
+ *
64
+ * <FormikDisplay name="raisonSociale" label="Raison sociale" width="l" />
30
65
  */
31
66
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
32
- function FormikDisplay(_ref) {
33
- var name = _ref.name,
34
- label = _ref.label,
35
- hint = _ref.hint,
36
- format = _ref.format,
37
- _ref$mono = _ref.mono,
38
- mono = _ref$mono === void 0 ? false : _ref$mono,
39
- _ref$empty = _ref.empty,
40
- empty = _ref$empty === void 0 ? "\u2014" : _ref$empty,
41
- sx = _ref.sx;
42
- var _useFormikContext = useFormikContext(),
43
- values = _useFormikContext.values;
44
- var raw = name ? getIn(values, name) : undefined;
45
- var display;
67
+ function FormikDisplay({
68
+ name,
69
+ label,
70
+ hint,
71
+ format,
72
+ mono = false,
73
+ empty = "\u2014",
74
+ wrap = false,
75
+ width,
76
+ sx
77
+ }) {
78
+ const {
79
+ values
80
+ } = useFormikContext();
81
+ const raw = name ? getIn(values, name) : undefined;
82
+ const labelId = React.useId();
83
+ let display;
46
84
  if (format) {
47
85
  display = format(raw);
48
86
  } else if (raw === null || raw === undefined || String(raw).trim() === "") {
49
87
  display = empty;
50
- } else if (_typeof(raw) === "object") {
51
- var obj = raw;
88
+ } else if (typeof raw === "object") {
89
+ const obj = raw;
52
90
  display = obj.description || obj.libelle || obj.code || JSON.stringify(raw);
53
91
  } else {
54
92
  display = String(raw);
55
93
  }
56
- var isEmpty = display === empty;
94
+ const isEmpty = display === empty;
95
+
96
+ /* D-4 — the full text as a native tooltip, so a truncated value stays
97
+ recoverable. Only when the resolved display is a string: a `format`
98
+ returning a node has no meaningful title, and "[object Object]" would
99
+ be worse than nothing. */
100
+ const titleAttr = typeof display === "string" ? display : undefined;
57
101
  return /*#__PURE__*/_jsxs(Box, {
58
- sx: sx,
102
+ sx: {
103
+ /* G-H — plafond a partir de `sm` seulement : sur mobile le standard
104
+ * impose 100% de la largeur de grille. Identique a `Field`. */
105
+ ...(width ? {
106
+ maxWidth: {
107
+ xs: "100%",
108
+ sm: FIELD_MAX_WIDTH[width]
109
+ }
110
+ } : {}),
111
+ ...sx
112
+ },
59
113
  children: [label && /*#__PURE__*/_jsx(Typography, {
114
+ id: labelId,
60
115
  component: "span",
61
116
  sx: {
62
117
  display: "block",
@@ -68,9 +123,18 @@ function FormikDisplay(_ref) {
68
123
  userSelect: "none"
69
124
  },
70
125
  children: label
71
- }), /*#__PURE__*/_jsx(Box, {
72
- role: "status",
73
- "aria-label": label ? "".concat(label, " : ").concat(display) : "".concat(display),
126
+ }), /*#__PURE__*/_jsx(Box
127
+ /* D-3 — plus de role="status". Le couple est lié par
128
+ aria-labelledby (motif KV) ; sans label, on retombe sur un
129
+ aria-label pour ne pas laisser la valeur anonyme. */, {
130
+ ...(label ? {
131
+ "aria-labelledby": labelId
132
+ } : {
133
+ "aria-label": typeof display === "string" ? display : undefined
134
+ }),
135
+ ...(titleAttr !== undefined ? {
136
+ title: titleAttr
137
+ } : {}),
74
138
  sx: {
75
139
  minHeight: 40,
76
140
  display: "flex",
@@ -97,8 +161,18 @@ function FormikDisplay(_ref) {
97
161
  color: "var(--fg-muted)",
98
162
  fontStyle: isEmpty ? "italic" : "normal",
99
163
  overflow: "hidden",
100
- textOverflow: "ellipsis",
101
- whiteSpace: "nowrap"
164
+ /* D-4 — `wrap` autorise jusqu'à 3 lignes (comportement KV) ;
165
+ sinon une seule ligne tronquée, récupérable via `title`. */
166
+ ...(wrap ? {
167
+ whiteSpace: "normal",
168
+ wordBreak: "break-word",
169
+ display: "-webkit-box",
170
+ WebkitBoxOrient: "vertical",
171
+ WebkitLineClamp: 3
172
+ } : {
173
+ whiteSpace: "nowrap",
174
+ textOverflow: "ellipsis"
175
+ })
102
176
  },
103
177
  children: display
104
178
  })
@@ -1 +1 @@
1
- {"version":3,"file":"FormikDisplay.js","names":["React","Box","Typography","getIn","useFormikContext","jsx","_jsx","jsxs","_jsxs","FormikDisplay","_ref","name","label","hint","format","_ref$mono","mono","_ref$empty","empty","sx","_useFormikContext","values","raw","undefined","display","String","trim","_typeof","obj","description","libelle","code","JSON","stringify","isEmpty","children","component","fontSize","fontWeight","color","marginBottom","userSelect","role","concat","minHeight","alignItems","padding","background","border","borderRadius","cursor","overflow","fontFamily","fontStyle","textOverflow","whiteSpace","marginTop"],"sources":["../../../../src/lib/v2/components/FormikDisplay.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport { getIn, useFormikContext } from \"formik\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * FormikDisplay — Portnet UI v2\r\n *\r\n * Affiche une valeur Formik en lecture seule avec un fond grisé\r\n * clairement distinct des champs saisissables (fond blanc).\r\n *\r\n * ── Audit contraste WCAG 2.1 SC 1.4.3 ──────────────────────────────\r\n * Fond : --bg-subtle = #F1F2F5\r\n *\r\n * Valeur/hint : --fg-muted (#474C5A) → 7.52:1 ✅ AAA (> 7:1)\r\n * À NE PAS utiliser sur ce fond :\r\n * --fg-subtle (#6B7280) → 4.30:1 sur #F1F2F5 ❌ sous AA (4.5:1)\r\n * (--fg-subtle est calibré \"on white only\" dans colors.js)\r\n *\r\n * ── Fond ────────────────────────────────────────────────────────────\r\n * --bg-subtle (#F1F2F5) est clairement visible sur les sections\r\n * (#FFFFFF surface), contrairement à --bg (#F7F8FA ≈ blanc).\r\n *\r\n * ── Usage ────────────────────────────────────────────────────────────\r\n * <FormikDisplay name=\"donneesTI.etat\" label=\"État\"\r\n * hint=\"Géré par le workflow\" />\r\n *\r\n * <FormikDisplay name=\"importateur.codePIN\" label=\"Code PIN\" mono />\r\n */\r\n\r\nexport interface FormikDisplayProps {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n hint?: React.ReactNode | undefined;\r\n format?: ((raw: unknown) => React.ReactNode) | undefined;\r\n mono?: boolean | undefined;\r\n empty?: string | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nfunction FormikDisplay({\r\n name,\r\n label,\r\n hint,\r\n format,\r\n mono = false,\r\n empty = \"\\u2014\",\r\n sx,\r\n}: FormikDisplayProps) {\r\n const { values } = useFormikContext();\r\n const raw: unknown = name ? getIn(values, name) : undefined;\r\n\r\n let display: React.ReactNode;\r\n if (format) {\r\n display = format(raw);\r\n } else if (raw === null || raw === undefined || String(raw).trim() === \"\") {\r\n display = empty;\r\n } else if (typeof raw === \"object\") {\r\n const obj = raw as { description?: React.ReactNode; libelle?: React.ReactNode; code?: React.ReactNode };\r\n display = obj.description || obj.libelle || obj.code || JSON.stringify(raw);\r\n } else {\r\n display = String(raw);\r\n }\r\n\r\n const isEmpty = display === empty;\r\n\r\n return (\r\n <Box sx={sx}>\r\n {/* Label — même style que Field.js */}\r\n {label && (\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n display: \"block\",\r\n fontSize: \"var(--text-xs, 12px)\",\r\n fontWeight: \"var(--fw-semibold, 600)\",\r\n color: \"var(--fg-muted)\", /* 7.52:1 sur bg-subtle ✅ AAA */\r\n marginBottom: \"var(--s-2)\",\r\n userSelect: \"none\",\r\n }}\r\n >\r\n {label}\r\n </Typography>\r\n )}\r\n\r\n <Box\r\n role=\"status\"\r\n aria-label={label ? `${label} : ${display}` : `${display}`}\r\n sx={{\r\n minHeight: 40,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"var(--s-2) var(--s-3)\",\r\n background: \"var(--bg-subtle, #f1f2f5)\",\r\n border: \"1px solid var(--border, #e4e6eb)\",\r\n borderRadius: \"var(--r-md, 6px)\",\r\n cursor: \"default\",\r\n userSelect: \"text\",\r\n overflow: \"hidden\",\r\n }}\r\n >\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-sm, 14px)\",\r\n fontFamily: mono ? \"var(--font-mono, monospace)\" : \"inherit\",\r\n /*\r\n * --fg-muted (#474C5A) = 7.52:1 sur --bg-subtle ✅ AAA\r\n * Utilisé pour valeur présente ET placeholder vide.\r\n * NE PAS substituer --fg-subtle (#6B7280) qui tombe à 4.30:1\r\n * sur ce fond (sous WCAG AA).\r\n */\r\n color: \"var(--fg-muted)\",\r\n fontStyle: isEmpty ? \"italic\" : \"normal\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {display}\r\n </Typography>\r\n </Box>\r\n\r\n {/* Hint — --fg-muted (7.52:1) car --fg-subtle (4.30:1) échoue AA sur bg-subtle */}\r\n {hint && (\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n display: \"block\",\r\n marginTop: \"var(--s-1)\",\r\n fontSize: \"var(--text-xs, 12px)\",\r\n color: \"var(--fg-muted)\", /* 7.52:1 sur bg-subtle ✅ */\r\n }}\r\n >\r\n {hint}\r\n </Typography>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default FormikDisplay;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormikDisplay.js","names":["React","Box","Typography","getIn","useFormikContext","FIELD_MAX_WIDTH","jsx","_jsx","jsxs","_jsxs","FormikDisplay","name","label","hint","format","mono","empty","wrap","width","sx","values","raw","undefined","labelId","useId","display","String","trim","obj","description","libelle","code","JSON","stringify","isEmpty","titleAttr","maxWidth","xs","sm","children","id","component","fontSize","fontWeight","color","marginBottom","userSelect","title","minHeight","alignItems","padding","background","border","borderRadius","cursor","overflow","fontFamily","fontStyle","whiteSpace","wordBreak","WebkitBoxOrient","WebkitLineClamp","textOverflow","marginTop"],"sources":["../../../../src/lib/v2/components/FormikDisplay.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport { getIn, useFormikContext } from \"formik\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { FIELD_MAX_WIDTH } from \"./Field\";\r\nimport type { FieldWidth } from \"./Field\";\r\n\r\n/**\r\n * FormikDisplay — Portnet UI v2\r\n *\r\n * Affiche une valeur Formik en lecture seule avec un fond grisé\r\n * clairement distinct des champs saisissables (fond blanc).\r\n *\r\n * ── Audit contraste WCAG 2.1 SC 1.4.3 ──────────────────────────────\r\n * Fond : --bg-subtle = #F1F2F5\r\n *\r\n * Valeur/hint : --fg-muted (#474C5A) → 7.52:1 ✅ AAA (> 7:1)\r\n * À NE PAS utiliser sur ce fond :\r\n * --fg-subtle (#6B7280) → 4.30:1 sur #F1F2F5 ❌ sous AA (4.5:1)\r\n * (--fg-subtle est calibré \"on white only\" dans colors.js)\r\n *\r\n * NB : ces ratios sont calculés sur les valeurs du thème CLAIR. Le\r\n * mode sombre redéfinit --bg-subtle et --fg-muted ; l'appairage n'a\r\n * pas été re-vérifié là.\r\n *\r\n * ── Fond ────────────────────────────────────────────────────────────\r\n * --bg-subtle (#F1F2F5) est clairement visible sur les sections\r\n * (#FFFFFF surface), contrairement à --bg (#F7F8FA ≈ blanc).\r\n *\r\n * ── Sémantique (D-3) ────────────────────────────────────────────────\r\n * Le couple label/valeur est lié par `aria-labelledby`, comme dans\r\n * KV — donc annoncé comme une seule unité quand l'utilisateur\r\n * l'atteint. Ce bloc portait auparavant `role=\"status\"`, ce qui en\r\n * faisait une région live : sur un écran de consultation à vingt\r\n * champs, vingt régions live polies. C'est précisément ce que le\r\n * composant Status refuse de faire, et pour la même raison.\r\n *\r\n * ── LARGEUR SEMANTIQUE (G-H) ───────────────────────────────────────\r\n *\r\n * `width` rattache le champ a l'un des cinq gabarits de la section « Form\r\n * Field Width & Layout Standards », avec LE MEME plafond et LE MEME palier\r\n * que `Field` : `FIELD_MAX_WIDTH` est importe de `Field`, pas recopie. Deux\r\n * tables de largeurs finiraient par diverger, et le standard interdit\r\n * justement les largeurs arbitraires.\r\n *\r\n * POURQUOI CE COMPOSANT EN AVAIT BESOIN. Il ne passe PAS par `Field` — il\r\n * rend sa propre boite, parce qu'un champ en lecture seule n'a ni controle\r\n * a nommer par `htmlFor` ni erreur a decrire. Il etait donc le seul champ\r\n * de la library a ne pas pouvoir porter de gabarit, et un formulaire\r\n * melant `FormikInput` borne et `FormikDisplay` non borne produit\r\n * exactement le « jagged right-side layout edge » que le standard\r\n * proscrit : les champs saisissables s'arretent a 400px, les champs\r\n * affiches remplissent toute la cellule.\r\n *\r\n * Retrocompatible : sans `width`, aucun plafond n'est pose.\r\n *\r\n * ── Usage ────────────────────────────────────────────────────────────\r\n * <FormikDisplay name=\"donneesTI.etat\" label=\"État\"\r\n * hint=\"Géré par le workflow\" />\r\n *\r\n * <FormikDisplay name=\"importateur.codePIN\" label=\"Code PIN\" mono />\r\n *\r\n * <FormikDisplay name=\"observation\" label=\"Observations\" wrap />\r\n *\r\n * <FormikDisplay name=\"raisonSociale\" label=\"Raison sociale\" width=\"l\" />\r\n */\r\n\r\nexport interface FormikDisplayProps {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n hint?: React.ReactNode | undefined;\r\n format?: ((raw: unknown) => React.ReactNode) | undefined;\r\n mono?: boolean | undefined;\r\n empty?: string | undefined;\r\n /**\r\n * Laisse la valeur passer à la ligne (jusqu'à 3 lignes) au lieu de\r\n * la tronquer (D-4). Par défaut la valeur reste sur une ligne avec\r\n * une ellipse — et un `title` natif porte le texte complet.\r\n */\r\n wrap?: boolean | undefined;\r\n /**\r\n * Gabarit de largeur semantique (G-H) : `xs` | `s` | `m` | `l` | `xl`,\r\n * choisi d'apres la contrainte de CARACTERES du champ affiche. Meme table\r\n * et meme palier que `Field.width`. Omis = aucun plafond, la cellule de\r\n * grille decide seule.\r\n */\r\n width?: FieldWidth | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nfunction FormikDisplay({\r\n name,\r\n label,\r\n hint,\r\n format,\r\n mono = false,\r\n empty = \"\\u2014\",\r\n wrap = false,\r\n width,\r\n sx,\r\n}: FormikDisplayProps) {\r\n const { values } = useFormikContext();\r\n const raw: unknown = name ? getIn(values, name) : undefined;\r\n const labelId = React.useId();\r\n\r\n let display: React.ReactNode;\r\n if (format) {\r\n display = format(raw);\r\n } else if (raw === null || raw === undefined || String(raw).trim() === \"\") {\r\n display = empty;\r\n } else if (typeof raw === \"object\") {\r\n const obj = raw as { description?: React.ReactNode; libelle?: React.ReactNode; code?: React.ReactNode };\r\n display = obj.description || obj.libelle || obj.code || JSON.stringify(raw);\r\n } else {\r\n display = String(raw);\r\n }\r\n\r\n const isEmpty = display === empty;\r\n\r\n /* D-4 — the full text as a native tooltip, so a truncated value stays\r\n recoverable. Only when the resolved display is a string: a `format`\r\n returning a node has no meaningful title, and \"[object Object]\" would\r\n be worse than nothing. */\r\n const titleAttr = typeof display === \"string\" ? display : undefined;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n /* G-H — plafond a partir de `sm` seulement : sur mobile le standard\r\n * impose 100% de la largeur de grille. Identique a `Field`. */\r\n ...(width\r\n ? { maxWidth: { xs: \"100%\", sm: FIELD_MAX_WIDTH[width] } }\r\n : {}),\r\n ...sx,\r\n }}\r\n >\r\n {/* Label — même style que Field.js */}\r\n {label && (\r\n <Typography\r\n id={labelId}\r\n component=\"span\"\r\n sx={{\r\n display: \"block\",\r\n fontSize: \"var(--text-xs, 12px)\",\r\n fontWeight: \"var(--fw-semibold, 600)\",\r\n color: \"var(--fg-muted)\", /* 7.52:1 sur bg-subtle ✅ AAA */\r\n marginBottom: \"var(--s-2)\",\r\n userSelect: \"none\",\r\n }}\r\n >\r\n {label}\r\n </Typography>\r\n )}\r\n\r\n <Box\r\n /* D-3 — plus de role=\"status\". Le couple est lié par\r\n aria-labelledby (motif KV) ; sans label, on retombe sur un\r\n aria-label pour ne pas laisser la valeur anonyme. */\r\n {...(label\r\n ? { \"aria-labelledby\": labelId }\r\n : { \"aria-label\": typeof display === \"string\" ? display : undefined })}\r\n {...(titleAttr !== undefined ? { title: titleAttr } : {})}\r\n sx={{\r\n minHeight: 40,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: \"var(--s-2) var(--s-3)\",\r\n background: \"var(--bg-subtle, #f1f2f5)\",\r\n border: \"1px solid var(--border, #e4e6eb)\",\r\n borderRadius: \"var(--r-md, 6px)\",\r\n cursor: \"default\",\r\n userSelect: \"text\",\r\n overflow: \"hidden\",\r\n }}\r\n >\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-sm, 14px)\",\r\n fontFamily: mono ? \"var(--font-mono, monospace)\" : \"inherit\",\r\n /*\r\n * --fg-muted (#474C5A) = 7.52:1 sur --bg-subtle ✅ AAA\r\n * Utilisé pour valeur présente ET placeholder vide.\r\n * NE PAS substituer --fg-subtle (#6B7280) qui tombe à 4.30:1\r\n * sur ce fond (sous WCAG AA).\r\n */\r\n color: \"var(--fg-muted)\",\r\n fontStyle: isEmpty ? \"italic\" : \"normal\",\r\n overflow: \"hidden\",\r\n /* D-4 — `wrap` autorise jusqu'à 3 lignes (comportement KV) ;\r\n sinon une seule ligne tronquée, récupérable via `title`. */\r\n ...(wrap\r\n ? {\r\n whiteSpace: \"normal\",\r\n wordBreak: \"break-word\",\r\n display: \"-webkit-box\",\r\n WebkitBoxOrient: \"vertical\",\r\n WebkitLineClamp: 3,\r\n }\r\n : {\r\n whiteSpace: \"nowrap\",\r\n textOverflow: \"ellipsis\",\r\n }),\r\n }}\r\n >\r\n {display}\r\n </Typography>\r\n </Box>\r\n\r\n {/* Hint — --fg-muted (7.52:1) car --fg-subtle (4.30:1) échoue AA sur bg-subtle */}\r\n {hint && (\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n display: \"block\",\r\n marginTop: \"var(--s-1)\",\r\n fontSize: \"var(--text-xs, 12px)\",\r\n color: \"var(--fg-muted)\", /* 7.52:1 sur bg-subtle ✅ */\r\n }}\r\n >\r\n {hint}\r\n </Typography>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default FormikDisplay;"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- var _excluded = ["type", "value", "onChange", "onBlur", "placeholder", "disabled", "error", "readOnly", "fullWidth", "startIcon", "endIcon", "prefix", "suffix", "inputProps", "sx"];
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
1
  import * as React from "react";
11
2
  import OutlinedInput from "@mui/material/OutlinedInput";
12
3
  import InputAdornment from "@mui/material/InputAdornment";
@@ -55,33 +46,35 @@ import InputAdornment from "@mui/material/InputAdornment";
55
46
  * `Input` in the first place.
56
47
  */
57
48
  import { jsx as _jsx } from "react/jsx-runtime";
58
- var Input = /*#__PURE__*/React.forwardRef(function Input(_ref, ref) {
59
- var _ref$type = _ref.type,
60
- type = _ref$type === void 0 ? "text" : _ref$type,
61
- value = _ref.value,
62
- onChange = _ref.onChange,
63
- onBlur = _ref.onBlur,
64
- placeholder = _ref.placeholder,
65
- disabled = _ref.disabled,
66
- error = _ref.error,
67
- readOnly = _ref.readOnly,
68
- _ref$fullWidth = _ref.fullWidth,
69
- fullWidth = _ref$fullWidth === void 0 ? true : _ref$fullWidth,
70
- startIcon = _ref.startIcon,
71
- endIcon = _ref.endIcon,
72
- prefix = _ref.prefix,
73
- suffix = _ref.suffix,
74
- inputProps = _ref.inputProps,
75
- sx = _ref.sx,
76
- rest = _objectWithoutProperties(_ref, _excluded);
49
+ const Input = /*#__PURE__*/React.forwardRef(function Input({
50
+ type = "text",
51
+ value,
52
+ onChange,
53
+ onBlur,
54
+ placeholder,
55
+ disabled,
56
+ error,
57
+ readOnly,
58
+ fullWidth = true,
59
+ startIcon,
60
+ endIcon,
61
+ prefix,
62
+ suffix,
63
+ inputProps,
64
+ sx,
65
+ /* A11Y-1 — pulled out of ...rest so it does NOT land on the root wrapper.
66
+ * See the note below the component. */
67
+ "aria-required": ariaRequired,
68
+ ...rest
69
+ }, ref) {
77
70
  if (process.env["NODE_ENV"] !== "production" && type === "number") {
78
71
  // eslint-disable-next-line no-console
79
72
  console.warn("[@portnet/ui v2] <Input type=\"number\">: prefer <NumberInput> for charter-compliant locale formatting, clamping, and aria-valuetext.");
80
73
  }
81
- return /*#__PURE__*/_jsx(OutlinedInput, _objectSpread({
74
+ return /*#__PURE__*/_jsx(OutlinedInput, {
82
75
  ref: ref,
83
76
  type: type,
84
- value: value !== null && value !== void 0 ? value : "",
77
+ value: value ?? "",
85
78
  onChange: onChange,
86
79
  onBlur: onBlur,
87
80
  placeholder: placeholder,
@@ -97,11 +90,59 @@ var Input = /*#__PURE__*/React.forwardRef(function Input(_ref, ref) {
97
90
  position: "end",
98
91
  children: endIcon || suffix
99
92
  }) : undefined,
100
- slotProps: inputProps ? {
101
- input: inputProps
93
+ slotProps: inputProps || ariaRequired != null ? {
94
+ input: {
95
+ ...(inputProps ?? {}),
96
+ ...(ariaRequired != null ? {
97
+ "aria-required": ariaRequired
98
+ } : {})
99
+ }
102
100
  } : undefined,
103
- sx: sx
104
- }, rest));
101
+ sx: sx,
102
+ ...rest
103
+ });
105
104
  });
105
+
106
+ /**
107
+ * ── A11Y-1 — WHY `aria-required` IS EXTRACTED ───────────────────────────
108
+ *
109
+ * `Field` injects `aria-required` into its child to satisfy R-I.2 MUST
110
+ * (« Champ requis : astérisque rouge dans le label + aria-required »). Left in
111
+ * `...rest`, that attribute reached `OutlinedInput`, and MUI spreads unknown
112
+ * props onto its ROOT WRAPPER — so it landed on
113
+ * `div.MuiInputBase-root` and NEVER on the native `<input>`.
114
+ *
115
+ * Two consequences, the second worse than the first:
116
+ *
117
+ * 1. `aria-required` on a plain `div` with no role is invalid ARIA. axe
118
+ * reports `aria-allowed-attr`; WCAG 4.1.2.
119
+ * 2. The input itself was never marked required, so a screen reader did not
120
+ * announce it. R-I.2 LOOKED satisfied — the asterisk was there, the
121
+ * attribute was in the DOM — while the thing the rule exists to produce
122
+ * never happened. Every required field, in every module.
123
+ *
124
+ * This is the same failure this file's sibling documents for naming: « MUI
125
+ * spreads unknown props onto its ROOT wrapper, so the attribute landed on
126
+ * div.MuiInputBase-root — never on the inner control » (`Field`, R-I.1), and
127
+ * the same one `Combobox` fixed as COMBO-1 by threading the aria attributes
128
+ * onto its input slot. `Input` was simply never given the same treatment.
129
+ *
130
+ * `slotProps.input` and NOT `slotProps.htmlInput`, which is the opposite of
131
+ * `Combobox`: this component renders `OutlinedInput` DIRECTLY, and on an
132
+ * InputBase the `input` slot IS the native element. `htmlInput` is the
133
+ * `TextField` spelling, where `input` means the InputBase itself. Getting this
134
+ * backwards puts the attribute one level up again and reintroduces the bug in
135
+ * a form that still passes review.
136
+ *
137
+ * NOT extracted here: `aria-describedby`, which MUI's `InputBase` destructures
138
+ * itself and applies to the native input, and `aria-invalid`, which MUI derives
139
+ * from the `error` prop `Field` already forwards. Both were verified before
140
+ * being left alone — extracting them would have duplicated behaviour rather
141
+ * than fixed it.
142
+ *
143
+ * Found by the axe suite of `produit-artisanat-fe` (Area 10), failing
144
+ * `aria-allowed-attr` on the first `<Field required>` rendered.
145
+ */
146
+
106
147
  export default Input;
107
148
  //# sourceMappingURL=Input.js.map