@portnet/ui 6.0.2 → 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 (980) hide show
  1. package/CHANGELOG.md +652 -0
  2. package/dist/esm/index.js +72 -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 -38
  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 +11 -11
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  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 +118 -199
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
  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 -21
  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 +81 -86
  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 +155 -59
  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 +37 -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 +2 -3
  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 +15 -17
  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 +29 -39
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
  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 -69
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
  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 -53
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
  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 -87
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
  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 +27 -22
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
  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 +6 -8
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
  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 +152 -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 +28 -34
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  346. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  347. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  348. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  349. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  350. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  351. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  352. package/dist/esm/v2/personalization/index.js +17 -0
  353. package/dist/esm/v2/personalization/index.js.map +1 -1
  354. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  355. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  356. package/dist/esm/v2/personalization/schema.js +8 -9
  357. package/dist/esm/v2/personalization/schema.js.map +1 -1
  358. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  359. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  360. package/dist/esm/v2/referentiel/types.js +2 -0
  361. package/dist/esm/v2/referentiel/types.js.map +1 -0
  362. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  363. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  364. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  365. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  367. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  368. package/dist/esm/v2/theme/_brand.js +8 -24
  369. package/dist/esm/v2/theme/_brand.js.map +1 -1
  370. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  371. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  372. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  373. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  374. package/dist/esm/v2/theme/cssVariables.js +62 -69
  375. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  376. package/dist/esm/v2/theme/index.js +5 -5
  377. package/dist/esm/v2/theme/index.js.map +1 -1
  378. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  379. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  380. package/dist/esm/v2/tokens/chart.js +261 -0
  381. package/dist/esm/v2/tokens/chart.js.map +1 -0
  382. package/dist/esm/v2/tokens/colors.js +22 -22
  383. package/dist/esm/v2/tokens/colors.js.map +1 -1
  384. package/dist/esm/v2/tokens/density.js +62 -7
  385. package/dist/esm/v2/tokens/density.js.map +1 -1
  386. package/dist/esm/v2/tokens/index.js +49 -34
  387. package/dist/esm/v2/tokens/index.js.map +1 -1
  388. package/dist/esm/v2/tokens/motion.js +12 -20
  389. package/dist/esm/v2/tokens/motion.js.map +1 -1
  390. package/dist/esm/v2/tokens/radius.js +1 -1
  391. package/dist/esm/v2/tokens/radius.js.map +1 -1
  392. package/dist/esm/v2/tokens/shadows.js +6 -6
  393. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  394. package/dist/esm/v2/tokens/spacing.js +2 -2
  395. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  396. package/dist/esm/v2/tokens/state.js +1 -1
  397. package/dist/esm/v2/tokens/state.js.map +1 -1
  398. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  399. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  400. package/dist/esm/v2/tokens/tokens.json +6 -1
  401. package/dist/esm/v2/tokens/typography.js +13 -13
  402. package/dist/esm/v2/tokens/typography.js.map +1 -1
  403. package/dist/esm/v2/tokens/zIndex.js +1 -1
  404. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  405. package/dist/esm/v2/types/datagrid.js.map +1 -1
  406. package/dist/esm/v2/utils/apiError.js +16 -37
  407. package/dist/esm/v2/utils/apiError.js.map +1 -1
  408. package/dist/esm/v2/utils/contrast.js +31 -32
  409. package/dist/esm/v2/utils/contrast.js.map +1 -1
  410. package/dist/esm/v2/utils/cx.js +5 -25
  411. package/dist/esm/v2/utils/cx.js.map +1 -1
  412. package/dist/esm/v2/utils/fileDownload.js +23 -26
  413. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  414. package/dist/esm/v2/utils/fileValidation.js +209 -0
  415. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  416. package/dist/esm/v2/utils/fmtDate.js +111 -0
  417. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  419. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  420. package/dist/esm/v2/utils/formikErrors.js +78 -0
  421. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  422. package/dist/esm/v2/utils/index.js +35 -2
  423. package/dist/esm/v2/utils/index.js.map +1 -1
  424. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  425. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  426. package/dist/esm/v2/utils/networkStatus.js +12 -12
  427. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  428. package/dist/index.d.ts +7 -1
  429. package/dist/index.d.ts.map +1 -1
  430. package/dist/index.js +110 -49
  431. package/dist/index.js.map +1 -1
  432. package/dist/v2/__tests__/AppMain.test.js +133 -0
  433. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  434. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  435. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  436. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  437. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  438. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  439. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  440. package/dist/v2/__tests__/FieldError.test.js +82 -49
  441. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  442. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  443. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  444. package/dist/v2/__tests__/FieldWidth.test.js +23 -25
  445. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
  446. package/dist/v2/__tests__/FileCard.test.js +29 -28
  447. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  448. package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
  449. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
  451. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  452. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  453. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
  455. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  456. package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
  457. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  458. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  459. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  460. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  461. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  462. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  463. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  464. package/dist/v2/__tests__/apiError.test.js +50 -69
  465. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  466. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  467. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  468. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  469. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  470. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  471. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  472. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  473. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  474. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  475. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  476. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  477. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  478. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  479. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  480. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  481. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  482. package/dist/v2/__tests__/labels-merge.test.js +23 -27
  483. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  484. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  485. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  486. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  487. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  488. package/dist/v2/__tests__/rowActions.test.js +186 -0
  489. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  490. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  491. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  493. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  494. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  495. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  496. package/dist/v2/components/Accordion.js +60 -82
  497. package/dist/v2/components/Accordion.js.map +1 -1
  498. package/dist/v2/components/ActionStrip.js +40 -52
  499. package/dist/v2/components/ActionStrip.js.map +1 -1
  500. package/dist/v2/components/Banner.js +42 -41
  501. package/dist/v2/components/Banner.js.map +1 -1
  502. package/dist/v2/components/Busy.js +22 -27
  503. package/dist/v2/components/Busy.js.map +1 -1
  504. package/dist/v2/components/Button.js +39 -50
  505. package/dist/v2/components/Button.js.map +1 -1
  506. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  507. package/dist/v2/components/CategoryTag.js +49 -32
  508. package/dist/v2/components/CategoryTag.js.map +1 -1
  509. package/dist/v2/components/Checkbox.js +39 -45
  510. package/dist/v2/components/Checkbox.js.map +1 -1
  511. package/dist/v2/components/Chip.js +29 -42
  512. package/dist/v2/components/Chip.js.map +1 -1
  513. package/dist/v2/components/Combobox.js +122 -144
  514. package/dist/v2/components/Combobox.js.map +1 -1
  515. package/dist/v2/components/CommandPalette.js +138 -225
  516. package/dist/v2/components/CommandPalette.js.map +1 -1
  517. package/dist/v2/components/ConfirmDialog.js +46 -56
  518. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  519. package/dist/v2/components/DatePicker.js +81 -86
  520. package/dist/v2/components/DatePicker.js.map +1 -1
  521. package/dist/v2/components/DateRangePicker.js +77 -87
  522. package/dist/v2/components/DateRangePicker.js.map +1 -1
  523. package/dist/v2/components/DateTimePicker.js +84 -91
  524. package/dist/v2/components/DateTimePicker.js.map +1 -1
  525. package/dist/v2/components/Drawer.d.ts.map +1 -1
  526. package/dist/v2/components/Drawer.js +93 -88
  527. package/dist/v2/components/Drawer.js.map +1 -1
  528. package/dist/v2/components/Dropzone.js +150 -196
  529. package/dist/v2/components/Dropzone.js.map +1 -1
  530. package/dist/v2/components/EmptyState.js +18 -20
  531. package/dist/v2/components/EmptyState.js.map +1 -1
  532. package/dist/v2/components/FavoriteToggle.js +28 -39
  533. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  534. package/dist/v2/components/Field.d.ts +62 -4
  535. package/dist/v2/components/Field.d.ts.map +1 -1
  536. package/dist/v2/components/Field.js +169 -70
  537. package/dist/v2/components/Field.js.map +1 -1
  538. package/dist/v2/components/FieldError.js +18 -21
  539. package/dist/v2/components/FieldError.js.map +1 -1
  540. package/dist/v2/components/FieldHelp.js +40 -60
  541. package/dist/v2/components/FieldHelp.js.map +1 -1
  542. package/dist/v2/components/FileCard.js +27 -31
  543. package/dist/v2/components/FileCard.js.map +1 -1
  544. package/dist/v2/components/FilterTab.js +30 -38
  545. package/dist/v2/components/FilterTab.js.map +1 -1
  546. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  547. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  548. package/dist/v2/components/ForbiddenPage.js +37 -17
  549. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  550. package/dist/v2/components/FormGrid.js +53 -59
  551. package/dist/v2/components/FormGrid.js.map +1 -1
  552. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  553. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  554. package/dist/v2/components/FormikDisplay.js +108 -33
  555. package/dist/v2/components/FormikDisplay.js.map +1 -1
  556. package/dist/v2/components/Input.d.ts +40 -0
  557. package/dist/v2/components/Input.d.ts.map +1 -1
  558. package/dist/v2/components/Input.js +81 -41
  559. package/dist/v2/components/Input.js.map +1 -1
  560. package/dist/v2/components/KPICard.js +57 -67
  561. package/dist/v2/components/KPICard.js.map +1 -1
  562. package/dist/v2/components/KPIStrip.js +16 -22
  563. package/dist/v2/components/KPIStrip.js.map +1 -1
  564. package/dist/v2/components/KV.js +25 -31
  565. package/dist/v2/components/KV.js.map +1 -1
  566. package/dist/v2/components/KVGrid.js +19 -26
  567. package/dist/v2/components/KVGrid.js.map +1 -1
  568. package/dist/v2/components/Layout.js +91 -120
  569. package/dist/v2/components/Layout.js.map +1 -1
  570. package/dist/v2/components/MobileRowCard.js +79 -91
  571. package/dist/v2/components/MobileRowCard.js.map +1 -1
  572. package/dist/v2/components/Modal.js +61 -69
  573. package/dist/v2/components/Modal.js.map +1 -1
  574. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  575. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  576. package/dist/v2/components/NetworkErrorPage.js +38 -21
  577. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  578. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  579. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  580. package/dist/v2/components/NotFoundPage.js +37 -18
  581. package/dist/v2/components/NotFoundPage.js.map +1 -1
  582. package/dist/v2/components/NumberInput.js +88 -118
  583. package/dist/v2/components/NumberInput.js.map +1 -1
  584. package/dist/v2/components/OverflowMenu.js +38 -56
  585. package/dist/v2/components/OverflowMenu.js.map +1 -1
  586. package/dist/v2/components/PdfViewer.js +34 -45
  587. package/dist/v2/components/PdfViewer.js.map +1 -1
  588. package/dist/v2/components/ProgressBar.js +42 -49
  589. package/dist/v2/components/ProgressBar.js.map +1 -1
  590. package/dist/v2/components/Radio.js +59 -67
  591. package/dist/v2/components/Radio.js.map +1 -1
  592. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  593. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  594. package/dist/v2/components/SectionHeader.js +34 -41
  595. package/dist/v2/components/SectionHeader.js.map +1 -1
  596. package/dist/v2/components/Segmented.js +69 -93
  597. package/dist/v2/components/Segmented.js.map +1 -1
  598. package/dist/v2/components/Select.d.ts +26 -2
  599. package/dist/v2/components/Select.d.ts.map +1 -1
  600. package/dist/v2/components/Select.js +120 -155
  601. package/dist/v2/components/Select.js.map +1 -1
  602. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  603. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  604. package/dist/v2/components/ServerErrorPage.js +37 -20
  605. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  606. package/dist/v2/components/Skeleton.js +86 -100
  607. package/dist/v2/components/Skeleton.js.map +1 -1
  608. package/dist/v2/components/SkipLink.js +9 -12
  609. package/dist/v2/components/SkipLink.js.map +1 -1
  610. package/dist/v2/components/Spinner.js +16 -25
  611. package/dist/v2/components/Spinner.js.map +1 -1
  612. package/dist/v2/components/Status.js +18 -29
  613. package/dist/v2/components/Status.js.map +1 -1
  614. package/dist/v2/components/Stepper.js +80 -82
  615. package/dist/v2/components/Stepper.js.map +1 -1
  616. package/dist/v2/components/Surface.js +34 -49
  617. package/dist/v2/components/Surface.js.map +1 -1
  618. package/dist/v2/components/Switch.js +29 -37
  619. package/dist/v2/components/Switch.js.map +1 -1
  620. package/dist/v2/components/TabPanel.d.ts +17 -0
  621. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  622. package/dist/v2/components/TabPanel.js +90 -0
  623. package/dist/v2/components/TabPanel.js.map +1 -0
  624. package/dist/v2/components/Tabs.d.ts +25 -0
  625. package/dist/v2/components/Tabs.d.ts.map +1 -1
  626. package/dist/v2/components/Tabs.js +53 -29
  627. package/dist/v2/components/Tabs.js.map +1 -1
  628. package/dist/v2/components/TelInput.js +80 -115
  629. package/dist/v2/components/TelInput.js.map +1 -1
  630. package/dist/v2/components/Textarea.js +26 -35
  631. package/dist/v2/components/Textarea.js.map +1 -1
  632. package/dist/v2/components/TimePicker.js +62 -74
  633. package/dist/v2/components/TimePicker.js.map +1 -1
  634. package/dist/v2/components/Toast.js +119 -174
  635. package/dist/v2/components/Toast.js.map +1 -1
  636. package/dist/v2/components/Tooltip.js +23 -38
  637. package/dist/v2/components/Tooltip.js.map +1 -1
  638. package/dist/v2/components/_ErrorPageBody.js +15 -16
  639. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  640. package/dist/v2/components/_pickerShared.js +5 -5
  641. package/dist/v2/components/_pickerShared.js.map +1 -1
  642. package/dist/v2/components/index.d.ts +40 -1
  643. package/dist/v2/components/index.d.ts.map +1 -1
  644. package/dist/v2/components/index.js +153 -136
  645. package/dist/v2/components/index.js.map +1 -1
  646. package/dist/v2/hooks/index.d.ts +65 -0
  647. package/dist/v2/hooks/index.d.ts.map +1 -1
  648. package/dist/v2/hooks/index.js +63 -24
  649. package/dist/v2/hooks/index.js.map +1 -1
  650. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  651. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  652. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  653. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  654. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  655. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  656. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  657. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  658. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  659. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  660. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  661. package/dist/v2/hooks/useDensity.js +14 -18
  662. package/dist/v2/hooks/useDensity.js.map +1 -1
  663. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  664. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  665. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  666. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  667. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  668. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  669. package/dist/v2/hooks/useFocusTrap.js +20 -24
  670. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  671. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  672. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  673. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  674. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  675. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  676. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  677. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  678. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  679. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  680. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  681. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  682. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  683. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  684. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  685. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  687. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  688. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  689. package/dist/v2/hooks/useSortedRows.js +4 -6
  690. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  691. package/dist/v2/hooks/useTabLoading.js +7 -22
  692. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  693. package/dist/v2/index.js +143 -145
  694. package/dist/v2/index.js.map +1 -1
  695. package/dist/v2/modalContext.js +2 -2
  696. package/dist/v2/modalContext.js.map +1 -1
  697. package/dist/v2/models/favorite.d.ts +8 -9
  698. package/dist/v2/models/favorite.d.ts.map +1 -1
  699. package/dist/v2/models/favorite.js.map +1 -1
  700. package/dist/v2/models/index.js +4 -4
  701. package/dist/v2/models/index.js.map +1 -1
  702. package/dist/v2/models/personalization.d.ts +44 -48
  703. package/dist/v2/models/personalization.d.ts.map +1 -1
  704. package/dist/v2/models/personalization.js.map +1 -1
  705. package/dist/v2/models/referentiel.d.ts +32 -50
  706. package/dist/v2/models/referentiel.d.ts.map +1 -1
  707. package/dist/v2/models/referentiel.js.map +1 -1
  708. package/dist/v2/models/savedFilter.d.ts +8 -17
  709. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  710. package/dist/v2/models/savedFilter.js.map +1 -1
  711. package/dist/v2/patterns/ActionBar.js +152 -187
  712. package/dist/v2/patterns/ActionBar.js.map +1 -1
  713. package/dist/v2/patterns/AppMain.d.ts +109 -0
  714. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  715. package/dist/v2/patterns/AppMain.js +115 -0
  716. package/dist/v2/patterns/AppMain.js.map +1 -0
  717. package/dist/v2/patterns/BulkActionBar.js +40 -42
  718. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  719. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  720. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  721. package/dist/v2/patterns/ChartFigure.js +159 -0
  722. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  723. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  724. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  725. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  726. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  727. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  728. package/dist/v2/patterns/DataGrid.js +262 -297
  729. package/dist/v2/patterns/DataGrid.js.map +1 -1
  730. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  731. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  733. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  734. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  735. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  736. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  737. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  738. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  739. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  740. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  741. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  742. package/dist/v2/patterns/DetailSplit.js +116 -0
  743. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  744. package/dist/v2/patterns/FavoriteColumn.js +22 -23
  745. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  746. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  747. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  748. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  749. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  750. package/dist/v2/patterns/FilterTabBar.js +120 -0
  751. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  752. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  753. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  754. package/dist/v2/patterns/FormPageShell.js +53 -50
  755. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  756. package/dist/v2/patterns/FormSection.d.ts +8 -3
  757. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  758. package/dist/v2/patterns/FormSection.js +44 -51
  759. package/dist/v2/patterns/FormSection.js.map +1 -1
  760. package/dist/v2/patterns/FormikCheckbox.js +36 -45
  761. package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
  762. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  763. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  765. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  766. package/dist/v2/patterns/FormikCombobox.js +55 -72
  767. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  768. package/dist/v2/patterns/FormikDatePicker.js +50 -64
  769. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  770. package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
  771. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
  772. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  773. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  774. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  775. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  776. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  777. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  778. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  779. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikFile.js +99 -83
  781. package/dist/v2/patterns/FormikFile.js.map +1 -1
  782. package/dist/v2/patterns/FormikInput.js +45 -58
  783. package/dist/v2/patterns/FormikInput.js.map +1 -1
  784. package/dist/v2/patterns/FormikRadioGroup.js +45 -56
  785. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
  786. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  787. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  788. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  789. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  790. package/dist/v2/patterns/FormikSelect.js +70 -92
  791. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  792. package/dist/v2/patterns/FormikTextarea.js +35 -51
  793. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  794. package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
  795. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  796. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  797. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  798. package/dist/v2/patterns/PageContent.js +17 -20
  799. package/dist/v2/patterns/PageContent.js.map +1 -1
  800. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  801. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  802. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  803. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  804. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  805. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/ReferentielField.js +347 -327
  807. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
  809. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
  810. package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
  811. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
  812. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  813. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  814. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  815. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  816. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  817. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  818. package/dist/v2/patterns/SortableHeader.js +35 -57
  819. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  820. package/dist/v2/patterns/Tour.js +121 -142
  821. package/dist/v2/patterns/Tour.js.map +1 -1
  822. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  823. package/dist/v2/patterns/_dataGridShared.js +131 -147
  824. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  825. package/dist/v2/patterns/_pickerSerialisation.js +9 -10
  826. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
  827. package/dist/v2/patterns/_sort.js +17 -33
  828. package/dist/v2/patterns/_sort.js.map +1 -1
  829. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  830. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  831. package/dist/v2/patterns/_useColumnResize.js +80 -99
  832. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  833. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  834. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  835. package/dist/v2/patterns/filterCriteria.js +110 -0
  836. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  837. package/dist/v2/patterns/index.d.ts +160 -0
  838. package/dist/v2/patterns/index.d.ts.map +1 -1
  839. package/dist/v2/patterns/index.js +157 -79
  840. package/dist/v2/patterns/index.js.map +1 -1
  841. package/dist/v2/patterns/rowActions.d.ts +150 -0
  842. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  843. package/dist/v2/patterns/rowActions.js +232 -0
  844. package/dist/v2/patterns/rowActions.js.map +1 -0
  845. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  846. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  847. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  848. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  849. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  850. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  851. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  852. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  853. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  854. package/dist/v2/personalization/adapters/index.js +5 -5
  855. package/dist/v2/personalization/adapters/index.js.map +1 -1
  856. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  857. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  858. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  859. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  860. package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
  861. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  862. package/dist/v2/personalization/capabilities/index.js +12 -12
  863. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  864. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  865. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  866. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  867. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  868. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  869. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  870. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  871. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  872. package/dist/v2/personalization/index.d.ts +16 -0
  873. package/dist/v2/personalization/index.d.ts.map +1 -1
  874. package/dist/v2/personalization/index.js +30 -23
  875. package/dist/v2/personalization/index.js.map +1 -1
  876. package/dist/v2/personalization/personalizationContext.js +10 -12
  877. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  878. package/dist/v2/personalization/schema.js +8 -9
  879. package/dist/v2/personalization/schema.js.map +1 -1
  880. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  881. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  882. package/dist/v2/referentiel/index.js +11 -13
  883. package/dist/v2/referentiel/index.js.map +1 -1
  884. package/dist/v2/referentiel/types.d.ts +105 -0
  885. package/dist/v2/referentiel/types.d.ts.map +1 -0
  886. package/dist/v2/referentiel/types.js +6 -0
  887. package/dist/v2/referentiel/types.js.map +1 -0
  888. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  889. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  890. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  891. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  892. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  893. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  894. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  895. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  896. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  897. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  898. package/dist/v2/theme/_brand.js +12 -26
  899. package/dist/v2/theme/_brand.js.map +1 -1
  900. package/dist/v2/theme/_brandSecondary.js +12 -26
  901. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  902. package/dist/v2/theme/createPortnetTheme.js +41 -49
  903. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  904. package/dist/v2/theme/cssVariables.d.ts +3 -3
  905. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  906. package/dist/v2/theme/cssVariables.js +65 -70
  907. package/dist/v2/theme/cssVariables.js.map +1 -1
  908. package/dist/v2/theme/index.js +10 -10
  909. package/dist/v2/theme/index.js.map +1 -1
  910. package/dist/v2/tokens/breakpoints.js +16 -16
  911. package/dist/v2/tokens/breakpoints.js.map +1 -1
  912. package/dist/v2/tokens/chart.d.ts +103 -0
  913. package/dist/v2/tokens/chart.d.ts.map +1 -0
  914. package/dist/v2/tokens/chart.js +270 -0
  915. package/dist/v2/tokens/chart.js.map +1 -0
  916. package/dist/v2/tokens/colors.js +24 -24
  917. package/dist/v2/tokens/colors.js.map +1 -1
  918. package/dist/v2/tokens/density.d.ts +104 -0
  919. package/dist/v2/tokens/density.d.ts.map +1 -1
  920. package/dist/v2/tokens/density.js +67 -12
  921. package/dist/v2/tokens/density.js.map +1 -1
  922. package/dist/v2/tokens/index.d.ts +50 -1
  923. package/dist/v2/tokens/index.d.ts.map +1 -1
  924. package/dist/v2/tokens/index.js +116 -68
  925. package/dist/v2/tokens/index.js.map +1 -1
  926. package/dist/v2/tokens/motion.js +16 -22
  927. package/dist/v2/tokens/motion.js.map +1 -1
  928. package/dist/v2/tokens/radius.js +3 -3
  929. package/dist/v2/tokens/radius.js.map +1 -1
  930. package/dist/v2/tokens/shadows.js +8 -8
  931. package/dist/v2/tokens/shadows.js.map +1 -1
  932. package/dist/v2/tokens/spacing.js +4 -4
  933. package/dist/v2/tokens/spacing.js.map +1 -1
  934. package/dist/v2/tokens/state.js +3 -3
  935. package/dist/v2/tokens/state.js.map +1 -1
  936. package/dist/v2/tokens/statusPalette.js +21 -23
  937. package/dist/v2/tokens/statusPalette.js.map +1 -1
  938. package/dist/v2/tokens/tokens.json +6 -1
  939. package/dist/v2/tokens/typography.js +15 -15
  940. package/dist/v2/tokens/typography.js.map +1 -1
  941. package/dist/v2/tokens/zIndex.js +3 -3
  942. package/dist/v2/tokens/zIndex.js.map +1 -1
  943. package/dist/v2/types/datagrid.d.ts +9 -1
  944. package/dist/v2/types/datagrid.d.ts.map +1 -1
  945. package/dist/v2/types/datagrid.js.map +1 -1
  946. package/dist/v2/types/index.js +2 -2
  947. package/dist/v2/types/index.js.map +1 -1
  948. package/dist/v2/utils/apiError.js +16 -37
  949. package/dist/v2/utils/apiError.js.map +1 -1
  950. package/dist/v2/utils/contrast.js +31 -32
  951. package/dist/v2/utils/contrast.js.map +1 -1
  952. package/dist/v2/utils/cx.js +7 -27
  953. package/dist/v2/utils/cx.js.map +1 -1
  954. package/dist/v2/utils/fileDownload.js +25 -28
  955. package/dist/v2/utils/fileDownload.js.map +1 -1
  956. package/dist/v2/utils/fileValidation.d.ts +116 -0
  957. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  958. package/dist/v2/utils/fileValidation.js +220 -0
  959. package/dist/v2/utils/fileValidation.js.map +1 -0
  960. package/dist/v2/utils/fmtDate.d.ts +103 -0
  961. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  962. package/dist/v2/utils/fmtDate.js +119 -0
  963. package/dist/v2/utils/fmtDate.js.map +1 -0
  964. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  965. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  966. package/dist/v2/utils/fmtMoney.js +9 -11
  967. package/dist/v2/utils/fmtMoney.js.map +1 -1
  968. package/dist/v2/utils/formikErrors.d.ts +67 -0
  969. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  970. package/dist/v2/utils/formikErrors.js +85 -0
  971. package/dist/v2/utils/formikErrors.js.map +1 -0
  972. package/dist/v2/utils/index.d.ts +5 -0
  973. package/dist/v2/utils/index.d.ts.map +1 -1
  974. package/dist/v2/utils/index.js +67 -18
  975. package/dist/v2/utils/index.js.map +1 -1
  976. package/dist/v2/utils/mergeLabels.js +9 -14
  977. package/dist/v2/utils/mergeLabels.js.map +1 -1
  978. package/dist/v2/utils/networkStatus.js +14 -14
  979. package/dist/v2/utils/networkStatus.js.map +1 -1
  980. package/package.json +26 -9
@@ -1 +1 @@
1
- {"version":3,"file":"FormikDateTimePicker.test.js","names":["render","screen","Formik","Form","FormikDateTimePicker","FormikDatePicker","DATETIME_FORMAT_CHARTER","jsx","_jsx","sectionValeur","nom","getByRole","name","getAttribute","sectionVide","HoteLecture","_ref","valeurInitiale","outputFormat","readOnly","initialValues","dateVisite","onSubmit","undefined","children","_objectSpread","label","describe","test","Date","expect","toBe","queryByRole","not","toBeInTheDocument","avertissements","spy","jest","spyOn","console","mockImplementation","_len","arguments","length","args","Array","_key","push","some","a","String","includes","mockRestore","getByText","toHaveAttribute"],"sources":["../../../../src/lib/v2/__tests__/FormikDateTimePicker.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport { Formik, Form } from \"formik\";\r\nimport FormikDateTimePicker from \"../patterns/FormikDateTimePicker\";\r\nimport FormikDatePicker from \"../patterns/FormikDatePicker\";\r\nimport { DATETIME_FORMAT_CHARTER } from \"../components/DateTimePicker\";\r\n\r\n/**\r\n * FormikDateTimePicker — contract tests (gap G-E).\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST. Every case below pins a contract that a screenshot cannot\r\n * see, and each corresponds to a defect this bridge exists to stop:\r\n *\r\n * 1. THE TIME SURVIVES. The whole reason the gap was opened: routed through\r\n * the date-only bridge, a visit scheduled at 14:30 would have been stored\r\n * at 00:00 — silently, with no error, and only the agent showing up at the\r\n * wrong hour would notice. The date-only sibling is asserted side by side,\r\n * so the reason TWO bridges exist stays legible.\r\n *\r\n * 2. THE ROUND-TRIP IS SYMMETRIC (S-03). A value written with a non-ISO\r\n * format must be READ BACK with that same format. The sibling once wrote\r\n * through moment and read through `new Date()`, which turned \"31-12-2026\"\r\n * into Invalid Date and \"05-03-2026\" into 3 May. The write path worked, so\r\n * the damage only appeared on RE-POPULATE — an edit flow, the path a smoke\r\n * test never exercises. One module shipped it for seven batches under a\r\n * clean strict typecheck.\r\n *\r\n * 3. A MALFORMED STORED VALUE YIELDS EMPTY, NOT A PLAUSIBLE WRONG DATE.\r\n * Strict parsing. A missing date is recoverable; a date quietly off by two\r\n * months is not.\r\n *\r\n * ── HOW THESE ASSERTIONS READ THE FIELD (and why not by role \"textbox\") ──\r\n *\r\n * MUI X v9 renders no textbox. The field is a `role=\"group\"` containing one\r\n * `role=\"spinbutton\"` PER SECTION (Year, Month, Day, Hours, Minutes), each\r\n * carrying `aria-valuenow`; the input that holds the formatted string is\r\n * `aria-hidden`. So the assertions read the sections.\r\n *\r\n * That is not a workaround, it is the better probe: `aria-valuenow` is the\r\n * PARSED value, independent of any display format. A test reading the\r\n * formatted text would pass or fail on locale and format changes that have\r\n * nothing to do with the contract under test. Reading the sections also makes\r\n * the date-only comparison exact — the sibling renders no Hours section at\r\n * all, rather than rendering one that happens to read 00.\r\n *\r\n * NOT COVERED — deliberately: opening the picker popup and clicking a day.\r\n * MUI X renders its calendar in a portal with its own interaction model; the\r\n * value plumbing is what belongs to this bridge. The visual side belongs to\r\n * the story.\r\n */\r\n\r\n/** Valeur analysee d'une section du champ (Year, Month, Day, Hours, Minutes). */\r\nfunction sectionValeur(nom: string): string | null {\r\n return screen\r\n .getByRole(\"spinbutton\", { name: nom })\r\n .getAttribute(\"aria-valuenow\");\r\n}\r\n\r\n/** Vrai quand la section est vide (aucune date rendue). */\r\nfunction sectionVide(nom: string): boolean {\r\n return (\r\n screen.getByRole(\"spinbutton\", { name: nom }).getAttribute(\"aria-valuetext\") ===\r\n \"Empty\"\r\n );\r\n}\r\n\r\nfunction HoteLecture({\r\n valeurInitiale,\r\n outputFormat,\r\n readOnly,\r\n}: {\r\n valeurInitiale: unknown;\r\n outputFormat?: string;\r\n readOnly?: boolean;\r\n}) {\r\n return (\r\n <Formik\r\n initialValues={{ dateVisite: valeurInitiale }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikDateTimePicker\r\n name=\"dateVisite\"\r\n label=\"Date de la visite\"\r\n {...(outputFormat !== undefined ? { outputFormat } : {})}\r\n {...(readOnly !== undefined ? { readOnly } : {})}\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n}\r\n\r\ndescribe(\"FormikDateTimePicker — the time survives\", () => {\r\n test(\"an hour stored in Formik reaches the field's time sections\", () => {\r\n render(<HoteLecture valeurInitiale={new Date(2026, 4, 31, 14, 30)} />);\r\n\r\n expect(sectionValeur(\"Hours\")).toBe(\"14\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"30\");\r\n /* La date, elle, est intacte : 31 mai 2026. */\r\n expect(sectionValeur(\"Day\")).toBe(\"31\");\r\n expect(sectionValeur(\"Month\")).toBe(\"5\");\r\n });\r\n\r\n test(\"the date-only sibling has NO time section — which is why G-E exists\", () => {\r\n render(\r\n <Formik\r\n initialValues={{ dateVisite: new Date(2026, 4, 31, 14, 30) }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikDatePicker name=\"dateVisite\" label=\"Date de la visite\" />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n /* Pas de section « Hours » du tout : l'heure n'est pas affichee a 00, elle\r\n * est absente du champ — donc perdue des que la valeur est reserialisee. */\r\n expect(\r\n screen.queryByRole(\"spinbutton\", { name: \"Hours\" })\r\n ).not.toBeInTheDocument();\r\n expect(screen.getByRole(\"spinbutton\", { name: \"Day\" })).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — the round-trip is symmetric (S-03)\", () => {\r\n test(\"a value written in the charter format is read back with it\", () => {\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"2026-12-31 14:30\"\r\n outputFormat={DATETIME_FORMAT_CHARTER}\r\n />\r\n );\r\n\r\n expect(sectionValeur(\"Day\")).toBe(\"31\");\r\n expect(sectionValeur(\"Month\")).toBe(\"12\");\r\n expect(sectionValeur(\"Hours\")).toBe(\"14\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"30\");\r\n });\r\n\r\n test(\"a day-first stored value is NOT misread as month-first\", () => {\r\n /* `new Date(\"05-03-2026 09:15\")` lit MM-DD en V8 : le 3 mai au lieu du\r\n * 5 mars. Avec le format declare, moment lit bien le 5 mars. C'est\r\n * exactement le cas que S-03 decrit. */\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"05-03-2026 09:15\"\r\n outputFormat=\"DD-MM-YYYY HH:mm\"\r\n />\r\n );\r\n\r\n expect(sectionValeur(\"Month\")).toBe(\"3\");\r\n expect(sectionValeur(\"Day\")).toBe(\"5\");\r\n expect(sectionValeur(\"Hours\")).toBe(\"9\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"15\");\r\n });\r\n\r\n test(\"a malformed stored value renders EMPTY, not a guess\", () => {\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"pas-une-date\"\r\n outputFormat={DATETIME_FORMAT_CHARTER}\r\n />\r\n );\r\n\r\n expect(sectionVide(\"Year\")).toBe(true);\r\n expect(sectionVide(\"Day\")).toBe(true);\r\n expect(sectionVide(\"Hours\")).toBe(true);\r\n });\r\n\r\n test(\"`null` renders empty and does not warn about an uncontrolled input\", () => {\r\n const avertissements: unknown[][] = [];\r\n const spy = jest\r\n .spyOn(console, \"error\")\r\n .mockImplementation((...args: unknown[]) => {\r\n avertissements.push(args);\r\n });\r\n\r\n render(<HoteLecture valeurInitiale={null} />);\r\n\r\n expect(sectionVide(\"Year\")).toBe(true);\r\n expect(\r\n avertissements.some((a) => String(a[0]).includes(\"uncontrolled\"))\r\n ).toBe(false);\r\n\r\n spy.mockRestore();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — read-only mode\", () => {\r\n test(\"`readOnly` renders display TEXT, not a picker\", () => {\r\n /* Section Read Only Mode : « Inputs are forbidden in read-only mode. » */\r\n render(\r\n <HoteLecture valeurInitiale={new Date(2026, 11, 31, 14, 30)} readOnly />\r\n );\r\n\r\n expect(\r\n screen.queryByRole(\"spinbutton\", { name: \"Year\" })\r\n ).not.toBeInTheDocument();\r\n expect(screen.getByText(/31\\/12\\/2026 14:30/)).toBeInTheDocument();\r\n });\r\n\r\n test(\"an empty value in read-only mode shows the dash, not a blank panel\", () => {\r\n render(<HoteLecture valeurInitiale={null} readOnly />);\r\n expect(screen.getByText(\"—\")).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — labelling\", () => {\r\n test(\"the visible label is wired to the field id produced by Field\", () => {\r\n render(<HoteLecture valeurInitiale={null} />);\r\n\r\n /* Une premiere version verifiait aussi, par `document.getElementById`, que\r\n * l'element porteur de cet id existe. Deux raisons de l'avoir retiree :\r\n * `testing-library/no-node-access` l'interdit a juste titre, et surtout\r\n * l'assertion visait a cote. L'element existe bel et bien — c'est l'input\r\n * porteur de valeur — mais MUI X v9 le marque `aria-hidden`, donc son\r\n * existence ne prouve RIEN sur ce qui compte. Voir la note ci-dessous. */\r\n expect(screen.getByText(\"Date de la visite\")).toHaveAttribute(\r\n \"for\",\r\n \"dateVisite\"\r\n );\r\n });\r\n\r\n /**\r\n * CE QUI N'EST PAS ASSERTE ICI, ET POURQUOI — defaut ouvert (G-F, reporte)\r\n *\r\n * Le champ n'a PAS de nom accessible, et ce n'est pas le seul degat : les\r\n * QUATRE attributs d'association poses par `Field` sont inertes.\r\n *\r\n * `DateTimePicker` intercepte bien `id`, `aria-describedby`, `aria-invalid`\r\n * et `aria-required` et les route sur l'`<input>` porteur de valeur (c'est le\r\n * correctif DP-1, ecrit exprès) — mais MUI X v9 marque cet input\r\n * `aria-hidden=\"true\"`. Le champ visible est un `role=\"group\"` de\r\n * `role=\"spinbutton\"` par section. Donc : l'etiquette ne nomme rien\r\n * (R-I.1), l'indication et le message d'erreur ne sont jamais annonces\r\n * (R-I.3, R-4.1), et un champ requis ne se declare pas requis (R-I.2).\r\n *\r\n * DEUX TENTATIVES ONT ECHOUE, notees pour ne pas etre refaites :\r\n * 1. router les attributs par `slotProps.textField.InputProps` — accepte\r\n * par les types, n'atterrit nulle part ;\r\n * 2. passer le pont en mode `group` de `Field` — `Field` emet bien\r\n * `aria-labelledby`, mais rien ne le porte jusqu'au groupe, ET le mode\r\n * `group` supprime le `<label for>` : on perd le clic-sur-libellé sans\r\n * rien gagner.\r\n *\r\n * Figer l'etat actuel par une assertion « le nom est vide » en ferait un\r\n * comportement attendu, ce qu'il n'est pas. Le correctif demande le vrai\r\n * point d'ancrage v9 de `PickersInputBase`, et il touche `DatePicker` ET\r\n * `DateTimePicker` — donc tous les champs de date du portefeuille. Batch 10.\r\n */\r\n});\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormikDateTimePicker.test.js","names":["render","screen","Formik","Form","FormikDateTimePicker","FormikDatePicker","DATETIME_FORMAT_CHARTER","jsx","_jsx","sectionValeur","nom","getByRole","name","getAttribute","sectionVide","HoteLecture","valeurInitiale","outputFormat","readOnly","initialValues","dateVisite","onSubmit","undefined","children","label","describe","test","Date","expect","toBe","queryByRole","not","toBeInTheDocument","avertissements","spy","jest","spyOn","console","mockImplementation","args","push","some","a","String","includes","mockRestore","getByText","toHaveAttribute"],"sources":["../../../../src/lib/v2/__tests__/FormikDateTimePicker.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport { Formik, Form } from \"formik\";\r\nimport FormikDateTimePicker from \"../patterns/FormikDateTimePicker\";\r\nimport FormikDatePicker from \"../patterns/FormikDatePicker\";\r\nimport { DATETIME_FORMAT_CHARTER } from \"../components/DateTimePicker\";\r\n\r\n/**\r\n * FormikDateTimePicker — contract tests (gap G-E).\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST. Every case below pins a contract that a screenshot cannot\r\n * see, and each corresponds to a defect this bridge exists to stop:\r\n *\r\n * 1. THE TIME SURVIVES. The whole reason the gap was opened: routed through\r\n * the date-only bridge, a visit scheduled at 14:30 would have been stored\r\n * at 00:00 — silently, with no error, and only the agent showing up at the\r\n * wrong hour would notice. The date-only sibling is asserted side by side,\r\n * so the reason TWO bridges exist stays legible.\r\n *\r\n * 2. THE ROUND-TRIP IS SYMMETRIC (S-03). A value written with a non-ISO\r\n * format must be READ BACK with that same format. The sibling once wrote\r\n * through moment and read through `new Date()`, which turned \"31-12-2026\"\r\n * into Invalid Date and \"05-03-2026\" into 3 May. The write path worked, so\r\n * the damage only appeared on RE-POPULATE — an edit flow, the path a smoke\r\n * test never exercises. One module shipped it for seven batches under a\r\n * clean strict typecheck.\r\n *\r\n * 3. A MALFORMED STORED VALUE YIELDS EMPTY, NOT A PLAUSIBLE WRONG DATE.\r\n * Strict parsing. A missing date is recoverable; a date quietly off by two\r\n * months is not.\r\n *\r\n * ── HOW THESE ASSERTIONS READ THE FIELD (and why not by role \"textbox\") ──\r\n *\r\n * MUI X v9 renders no textbox. The field is a `role=\"group\"` containing one\r\n * `role=\"spinbutton\"` PER SECTION (Year, Month, Day, Hours, Minutes), each\r\n * carrying `aria-valuenow`; the input that holds the formatted string is\r\n * `aria-hidden`. So the assertions read the sections.\r\n *\r\n * That is not a workaround, it is the better probe: `aria-valuenow` is the\r\n * PARSED value, independent of any display format. A test reading the\r\n * formatted text would pass or fail on locale and format changes that have\r\n * nothing to do with the contract under test. Reading the sections also makes\r\n * the date-only comparison exact — the sibling renders no Hours section at\r\n * all, rather than rendering one that happens to read 00.\r\n *\r\n * NOT COVERED — deliberately: opening the picker popup and clicking a day.\r\n * MUI X renders its calendar in a portal with its own interaction model; the\r\n * value plumbing is what belongs to this bridge. The visual side belongs to\r\n * the story.\r\n */\r\n\r\n/** Valeur analysee d'une section du champ (Year, Month, Day, Hours, Minutes). */\r\nfunction sectionValeur(nom: string): string | null {\r\n return screen\r\n .getByRole(\"spinbutton\", { name: nom })\r\n .getAttribute(\"aria-valuenow\");\r\n}\r\n\r\n/** Vrai quand la section est vide (aucune date rendue). */\r\nfunction sectionVide(nom: string): boolean {\r\n return (\r\n screen.getByRole(\"spinbutton\", { name: nom }).getAttribute(\"aria-valuetext\") ===\r\n \"Empty\"\r\n );\r\n}\r\n\r\nfunction HoteLecture({\r\n valeurInitiale,\r\n outputFormat,\r\n readOnly,\r\n}: {\r\n valeurInitiale: unknown;\r\n outputFormat?: string;\r\n readOnly?: boolean;\r\n}) {\r\n return (\r\n <Formik\r\n initialValues={{ dateVisite: valeurInitiale }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikDateTimePicker\r\n name=\"dateVisite\"\r\n label=\"Date de la visite\"\r\n {...(outputFormat !== undefined ? { outputFormat } : {})}\r\n {...(readOnly !== undefined ? { readOnly } : {})}\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n}\r\n\r\ndescribe(\"FormikDateTimePicker — the time survives\", () => {\r\n test(\"an hour stored in Formik reaches the field's time sections\", () => {\r\n render(<HoteLecture valeurInitiale={new Date(2026, 4, 31, 14, 30)} />);\r\n\r\n expect(sectionValeur(\"Hours\")).toBe(\"14\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"30\");\r\n /* La date, elle, est intacte : 31 mai 2026. */\r\n expect(sectionValeur(\"Day\")).toBe(\"31\");\r\n expect(sectionValeur(\"Month\")).toBe(\"5\");\r\n });\r\n\r\n test(\"the date-only sibling has NO time section — which is why G-E exists\", () => {\r\n render(\r\n <Formik\r\n initialValues={{ dateVisite: new Date(2026, 4, 31, 14, 30) }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikDatePicker name=\"dateVisite\" label=\"Date de la visite\" />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n /* Pas de section « Hours » du tout : l'heure n'est pas affichee a 00, elle\r\n * est absente du champ — donc perdue des que la valeur est reserialisee. */\r\n expect(\r\n screen.queryByRole(\"spinbutton\", { name: \"Hours\" })\r\n ).not.toBeInTheDocument();\r\n expect(screen.getByRole(\"spinbutton\", { name: \"Day\" })).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — the round-trip is symmetric (S-03)\", () => {\r\n test(\"a value written in the charter format is read back with it\", () => {\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"2026-12-31 14:30\"\r\n outputFormat={DATETIME_FORMAT_CHARTER}\r\n />\r\n );\r\n\r\n expect(sectionValeur(\"Day\")).toBe(\"31\");\r\n expect(sectionValeur(\"Month\")).toBe(\"12\");\r\n expect(sectionValeur(\"Hours\")).toBe(\"14\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"30\");\r\n });\r\n\r\n test(\"a day-first stored value is NOT misread as month-first\", () => {\r\n /* `new Date(\"05-03-2026 09:15\")` lit MM-DD en V8 : le 3 mai au lieu du\r\n * 5 mars. Avec le format declare, moment lit bien le 5 mars. C'est\r\n * exactement le cas que S-03 decrit. */\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"05-03-2026 09:15\"\r\n outputFormat=\"DD-MM-YYYY HH:mm\"\r\n />\r\n );\r\n\r\n expect(sectionValeur(\"Month\")).toBe(\"3\");\r\n expect(sectionValeur(\"Day\")).toBe(\"5\");\r\n expect(sectionValeur(\"Hours\")).toBe(\"9\");\r\n expect(sectionValeur(\"Minutes\")).toBe(\"15\");\r\n });\r\n\r\n test(\"a malformed stored value renders EMPTY, not a guess\", () => {\r\n render(\r\n <HoteLecture\r\n valeurInitiale=\"pas-une-date\"\r\n outputFormat={DATETIME_FORMAT_CHARTER}\r\n />\r\n );\r\n\r\n expect(sectionVide(\"Year\")).toBe(true);\r\n expect(sectionVide(\"Day\")).toBe(true);\r\n expect(sectionVide(\"Hours\")).toBe(true);\r\n });\r\n\r\n test(\"`null` renders empty and does not warn about an uncontrolled input\", () => {\r\n const avertissements: unknown[][] = [];\r\n const spy = jest\r\n .spyOn(console, \"error\")\r\n .mockImplementation((...args: unknown[]) => {\r\n avertissements.push(args);\r\n });\r\n\r\n render(<HoteLecture valeurInitiale={null} />);\r\n\r\n expect(sectionVide(\"Year\")).toBe(true);\r\n expect(\r\n avertissements.some((a) => String(a[0]).includes(\"uncontrolled\"))\r\n ).toBe(false);\r\n\r\n spy.mockRestore();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — read-only mode\", () => {\r\n test(\"`readOnly` renders display TEXT, not a picker\", () => {\r\n /* Section Read Only Mode : « Inputs are forbidden in read-only mode. » */\r\n render(\r\n <HoteLecture valeurInitiale={new Date(2026, 11, 31, 14, 30)} readOnly />\r\n );\r\n\r\n expect(\r\n screen.queryByRole(\"spinbutton\", { name: \"Year\" })\r\n ).not.toBeInTheDocument();\r\n expect(screen.getByText(/31\\/12\\/2026 14:30/)).toBeInTheDocument();\r\n });\r\n\r\n test(\"an empty value in read-only mode shows the dash, not a blank panel\", () => {\r\n render(<HoteLecture valeurInitiale={null} readOnly />);\r\n expect(screen.getByText(\"—\")).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDateTimePicker — labelling\", () => {\r\n test(\"the visible label is wired to the field id produced by Field\", () => {\r\n render(<HoteLecture valeurInitiale={null} />);\r\n\r\n /* Une premiere version verifiait aussi, par `document.getElementById`, que\r\n * l'element porteur de cet id existe. Deux raisons de l'avoir retiree :\r\n * `testing-library/no-node-access` l'interdit a juste titre, et surtout\r\n * l'assertion visait a cote. L'element existe bel et bien — c'est l'input\r\n * porteur de valeur — mais MUI X v9 le marque `aria-hidden`, donc son\r\n * existence ne prouve RIEN sur ce qui compte. Voir la note ci-dessous. */\r\n expect(screen.getByText(\"Date de la visite\")).toHaveAttribute(\r\n \"for\",\r\n \"dateVisite\"\r\n );\r\n });\r\n\r\n /**\r\n * CE QUI N'EST PAS ASSERTE ICI, ET POURQUOI — defaut ouvert (G-F, reporte)\r\n *\r\n * Le champ n'a PAS de nom accessible, et ce n'est pas le seul degat : les\r\n * QUATRE attributs d'association poses par `Field` sont inertes.\r\n *\r\n * `DateTimePicker` intercepte bien `id`, `aria-describedby`, `aria-invalid`\r\n * et `aria-required` et les route sur l'`<input>` porteur de valeur (c'est le\r\n * correctif DP-1, ecrit exprès) — mais MUI X v9 marque cet input\r\n * `aria-hidden=\"true\"`. Le champ visible est un `role=\"group\"` de\r\n * `role=\"spinbutton\"` par section. Donc : l'etiquette ne nomme rien\r\n * (R-I.1), l'indication et le message d'erreur ne sont jamais annonces\r\n * (R-I.3, R-4.1), et un champ requis ne se declare pas requis (R-I.2).\r\n *\r\n * DEUX TENTATIVES ONT ECHOUE, notees pour ne pas etre refaites :\r\n * 1. router les attributs par `slotProps.textField.InputProps` — accepte\r\n * par les types, n'atterrit nulle part ;\r\n * 2. passer le pont en mode `group` de `Field` — `Field` emet bien\r\n * `aria-labelledby`, mais rien ne le porte jusqu'au groupe, ET le mode\r\n * `group` supprime le `<label for>` : on perd le clic-sur-libellé sans\r\n * rien gagner.\r\n *\r\n * Figer l'etat actuel par une assertion « le nom est vide » en ferait un\r\n * comportement attendu, ce qu'il n'est pas. Le correctif demande le vrai\r\n * point d'ancrage v9 de `PickersInputBase`, et il touche `DatePicker` ET\r\n * `DateTimePicker` — donc tous les champs de date du portefeuille. Batch 10.\r\n */\r\n});\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,101 @@
1
+ import "@testing-library/jest-dom";
2
+ import { render, screen } from "@testing-library/react";
3
+ import { Formik } from "formik";
4
+ import { FIELD_MAX_WIDTH } from "../components/Field";
5
+ import FormikDisplay from "../components/FormikDisplay";
6
+
7
+ /**
8
+ * FormikDisplay — largeur semantique (gap G-H, suite) : tests de contrat.
9
+ *
10
+ * MEME LIMITE QUE `FieldWidth.test.tsx`, ET POUR LA MEME RAISON. Le plafond
11
+ * n'est pose qu'a partir du palier `sm`, donc derriere une requete media
12
+ * qu'`emotion` injecte dans la feuille de style et que jsdom ne resout pas :
13
+ * `getComputedStyle` ne rendra jamais la largeur effective. Asserter la
14
+ * largeur ici donnerait un test qui passe sans rien verifier. Le comportement
15
+ * responsive s'observe dans la story, en redimensionnant la fenetre.
16
+ *
17
+ * Ce fichier epingle donc ce qui compte et qui est verifiable :
18
+ *
19
+ * 1. QUE LA TABLE DE LARGEURS EST CELLE DE `Field`, ET NON UNE COPIE. C'est
20
+ * le risque propre a cet ajout : `FormikDisplay` ne passe pas par `Field`,
21
+ * il aurait donc pu redeclarer ses cinq valeurs. Deux tables finiraient
22
+ * par diverger, et un formulaire melant saisie et affichage retomberait
23
+ * dans le « jagged alignment » que le standard interdit — exactement le
24
+ * defaut que cet ajout corrige.
25
+ *
26
+ * 2. QUE `width` NE TOUCHE PAS AU RENDU NI AU NOM ACCESSIBLE. Une contrainte
27
+ * de mise en page passee par `sx` ne doit rien changer a la valeur
28
+ * affichee ni a ce qu'annonce une technologie d'assistance : c'est la
29
+ * regression la plus probable du changement.
30
+ *
31
+ * 3. QUE L'OMISSION RESTE NEUTRE. Sans `width`, les appelants d'avant ne
32
+ * doivent pas bouger.
33
+ */
34
+ import { jsx as _jsx } from "react/jsx-runtime";
35
+ const withFormik = (children, values) => render(/*#__PURE__*/_jsx(Formik, {
36
+ initialValues: values,
37
+ onSubmit: () => undefined,
38
+ children: () => children
39
+ }));
40
+ describe("FormikDisplay — la table de largeurs est partagee avec Field", () => {
41
+ test("les cinq gabarits sont ceux de `Field`, importes et non recopies", () => {
42
+ /* Ce test echouerait si quelqu'un redeclarait une table locale dans
43
+ * `FormikDisplay` : les valeurs sont epinglees UNE fois, dans
44
+ * `FieldWidth.test.tsx`, et ce fichier verifie que c'est bien la meme
45
+ * source qui est exposee aux deux composants. */
46
+ expect(Object.keys(FIELD_MAX_WIDTH).sort()).toEqual(["l", "m", "s", "xl", "xs"]);
47
+ });
48
+ });
49
+ describe("FormikDisplay — `width` ne touche ni au rendu ni au nom accessible", () => {
50
+ test("la valeur Formik reste affichee", () => {
51
+ withFormik(/*#__PURE__*/_jsx(FormikDisplay, {
52
+ name: "ice",
53
+ label: "ICE",
54
+ width: "s"
55
+ }), {
56
+ ice: "001234567000089"
57
+ });
58
+ expect(screen.getByText("001234567000089")).toBeInTheDocument();
59
+ });
60
+ test("le libelle et la valeur restent annonces ensemble", () => {
61
+ /* `FormikDisplay` expose sa boite en `role="status"` avec un
62
+ * `aria-label` « libelle : valeur » — c'est ce couple qu'une technologie
63
+ * d'assistance lit, et il ne doit pas dependre du gabarit. */
64
+ withFormik(/*#__PURE__*/_jsx(FormikDisplay, {
65
+ name: "raisonSociale",
66
+ label: "Raison sociale",
67
+ width: "l"
68
+ }), {
69
+ raisonSociale: "SOFRANE SA"
70
+ });
71
+ expect(screen.getByRole("status", {
72
+ name: "Raison sociale : SOFRANE SA"
73
+ })).toBeInTheDocument();
74
+ });
75
+ test("le placeholder de valeur vide est inchange", () => {
76
+ withFormik(/*#__PURE__*/_jsx(FormikDisplay, {
77
+ name: "ice",
78
+ label: "ICE",
79
+ width: "s"
80
+ }), {
81
+ ice: ""
82
+ });
83
+ expect(screen.getByRole("status", {
84
+ name: "ICE : \u2014"
85
+ })).toBeInTheDocument();
86
+ });
87
+ });
88
+ describe("FormikDisplay — l'omission reste neutre", () => {
89
+ test("sans `width`, la valeur et son nom accessible sont identiques", () => {
90
+ withFormik(/*#__PURE__*/_jsx(FormikDisplay, {
91
+ name: "email",
92
+ label: "Email"
93
+ }), {
94
+ email: "operateur@example.ma"
95
+ });
96
+ expect(screen.getByRole("status", {
97
+ name: "Email : operateur@example.ma"
98
+ })).toBeInTheDocument();
99
+ });
100
+ });
101
+ //# sourceMappingURL=FormikDisplayWidth.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikDisplayWidth.test.js","names":["render","screen","Formik","FIELD_MAX_WIDTH","FormikDisplay","jsx","_jsx","withFormik","children","values","initialValues","onSubmit","undefined","describe","test","expect","Object","keys","sort","toEqual","name","label","width","ice","getByText","toBeInTheDocument","raisonSociale","getByRole","email"],"sources":["../../../../src/lib/v2/__tests__/FormikDisplayWidth.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport { Formik } from \"formik\";\r\nimport type { ReactNode } from \"react\";\r\nimport { FIELD_MAX_WIDTH } from \"../components/Field\";\r\nimport FormikDisplay from \"../components/FormikDisplay\";\r\n\r\n/**\r\n * FormikDisplay — largeur semantique (gap G-H, suite) : tests de contrat.\r\n *\r\n * MEME LIMITE QUE `FieldWidth.test.tsx`, ET POUR LA MEME RAISON. Le plafond\r\n * n'est pose qu'a partir du palier `sm`, donc derriere une requete media\r\n * qu'`emotion` injecte dans la feuille de style et que jsdom ne resout pas :\r\n * `getComputedStyle` ne rendra jamais la largeur effective. Asserter la\r\n * largeur ici donnerait un test qui passe sans rien verifier. Le comportement\r\n * responsive s'observe dans la story, en redimensionnant la fenetre.\r\n *\r\n * Ce fichier epingle donc ce qui compte et qui est verifiable :\r\n *\r\n * 1. QUE LA TABLE DE LARGEURS EST CELLE DE `Field`, ET NON UNE COPIE. C'est\r\n * le risque propre a cet ajout : `FormikDisplay` ne passe pas par `Field`,\r\n * il aurait donc pu redeclarer ses cinq valeurs. Deux tables finiraient\r\n * par diverger, et un formulaire melant saisie et affichage retomberait\r\n * dans le « jagged alignment » que le standard interdit — exactement le\r\n * defaut que cet ajout corrige.\r\n *\r\n * 2. QUE `width` NE TOUCHE PAS AU RENDU NI AU NOM ACCESSIBLE. Une contrainte\r\n * de mise en page passee par `sx` ne doit rien changer a la valeur\r\n * affichee ni a ce qu'annonce une technologie d'assistance : c'est la\r\n * regression la plus probable du changement.\r\n *\r\n * 3. QUE L'OMISSION RESTE NEUTRE. Sans `width`, les appelants d'avant ne\r\n * doivent pas bouger.\r\n */\r\n\r\nconst withFormik = (children: ReactNode, values: Record<string, unknown>) =>\r\n render(\r\n <Formik initialValues={values} onSubmit={() => undefined}>\r\n {() => children}\r\n </Formik>\r\n );\r\n\r\ndescribe(\"FormikDisplay — la table de largeurs est partagee avec Field\", () => {\r\n test(\"les cinq gabarits sont ceux de `Field`, importes et non recopies\", () => {\r\n /* Ce test echouerait si quelqu'un redeclarait une table locale dans\r\n * `FormikDisplay` : les valeurs sont epinglees UNE fois, dans\r\n * `FieldWidth.test.tsx`, et ce fichier verifie que c'est bien la meme\r\n * source qui est exposee aux deux composants. */\r\n expect(Object.keys(FIELD_MAX_WIDTH).sort()).toEqual([\r\n \"l\",\r\n \"m\",\r\n \"s\",\r\n \"xl\",\r\n \"xs\",\r\n ]);\r\n });\r\n});\r\n\r\ndescribe(\"FormikDisplay — `width` ne touche ni au rendu ni au nom accessible\", () => {\r\n test(\"la valeur Formik reste affichee\", () => {\r\n withFormik(\r\n <FormikDisplay name=\"ice\" label=\"ICE\" width=\"s\" />,\r\n { ice: \"001234567000089\" }\r\n );\r\n\r\n expect(screen.getByText(\"001234567000089\")).toBeInTheDocument();\r\n });\r\n\r\n test(\"le libelle et la valeur restent annonces ensemble\", () => {\r\n /* `FormikDisplay` expose sa boite en `role=\"status\"` avec un\r\n * `aria-label` « libelle : valeur » — c'est ce couple qu'une technologie\r\n * d'assistance lit, et il ne doit pas dependre du gabarit. */\r\n withFormik(\r\n <FormikDisplay name=\"raisonSociale\" label=\"Raison sociale\" width=\"l\" />,\r\n { raisonSociale: \"SOFRANE SA\" }\r\n );\r\n\r\n expect(\r\n screen.getByRole(\"status\", { name: \"Raison sociale : SOFRANE SA\" })\r\n ).toBeInTheDocument();\r\n });\r\n\r\n test(\"le placeholder de valeur vide est inchange\", () => {\r\n withFormik(<FormikDisplay name=\"ice\" label=\"ICE\" width=\"s\" />, { ice: \"\" });\r\n\r\n expect(\r\n screen.getByRole(\"status\", { name: \"ICE : \\u2014\" })\r\n ).toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikDisplay — l'omission reste neutre\", () => {\r\n test(\"sans `width`, la valeur et son nom accessible sont identiques\", () => {\r\n withFormik(<FormikDisplay name=\"email\" label=\"Email\" />, {\r\n email: \"operateur@example.ma\",\r\n });\r\n\r\n expect(\r\n screen.getByRole(\"status\", { name: \"Email : operateur@example.ma\" })\r\n ).toBeInTheDocument();\r\n });\r\n});\r\n"],"mappings":"AAAA,OAAO,2BAA2B;AAClC,SAASA,MAAM,EAAEC,MAAM,QAAQ,wBAAwB;AACvD,SAASC,MAAM,QAAQ,QAAQ;AAE/B,SAASC,eAAe,QAAQ,qBAAqB;AACrD,OAAOC,aAAa,MAAM,6BAA6B;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA1BA,SAAAC,GAAA,IAAAC,IAAA;AA4BA,MAAMC,UAAU,GAAGA,CAACC,QAAmB,EAAEC,MAA+B,KACtET,MAAM,cACJM,IAAA,CAACJ,MAAM;EAACQ,aAAa,EAAED,MAAO;EAACE,QAAQ,EAAEA,CAAA,KAAMC,SAAU;EAAAJ,QAAA,EACtDA,CAAA,KAAMA;AAAQ,CACT,CACV,CAAC;AAEHK,QAAQ,CAAC,8DAA8D,EAAE,MAAM;EAC7EC,IAAI,CAAC,kEAAkE,EAAE,MAAM;IAC7E;AACJ;AACA;AACA;IACIC,MAAM,CAACC,MAAM,CAACC,IAAI,CAACd,eAAe,CAAC,CAACe,IAAI,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAClD,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,IAAI,CACL,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFN,QAAQ,CAAC,oEAAoE,EAAE,MAAM;EACnFC,IAAI,CAAC,iCAAiC,EAAE,MAAM;IAC5CP,UAAU,cACRD,IAAA,CAACF,aAAa;MAACgB,IAAI,EAAC,KAAK;MAACC,KAAK,EAAC,KAAK;MAACC,KAAK,EAAC;IAAG,CAAE,CAAC,EAClD;MAAEC,GAAG,EAAE;IAAkB,CAC3B,CAAC;IAEDR,MAAM,CAACd,MAAM,CAACuB,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAACC,iBAAiB,CAAC,CAAC;EACjE,CAAC,CAAC;EAEFX,IAAI,CAAC,mDAAmD,EAAE,MAAM;IAC9D;AACJ;AACA;IACIP,UAAU,cACRD,IAAA,CAACF,aAAa;MAACgB,IAAI,EAAC,eAAe;MAACC,KAAK,EAAC,gBAAgB;MAACC,KAAK,EAAC;IAAG,CAAE,CAAC,EACvE;MAAEI,aAAa,EAAE;IAAa,CAChC,CAAC;IAEDX,MAAM,CACJd,MAAM,CAAC0B,SAAS,CAAC,QAAQ,EAAE;MAAEP,IAAI,EAAE;IAA8B,CAAC,CACpE,CAAC,CAACK,iBAAiB,CAAC,CAAC;EACvB,CAAC,CAAC;EAEFX,IAAI,CAAC,4CAA4C,EAAE,MAAM;IACvDP,UAAU,cAACD,IAAA,CAACF,aAAa;MAACgB,IAAI,EAAC,KAAK;MAACC,KAAK,EAAC,KAAK;MAACC,KAAK,EAAC;IAAG,CAAE,CAAC,EAAE;MAAEC,GAAG,EAAE;IAAG,CAAC,CAAC;IAE3ER,MAAM,CACJd,MAAM,CAAC0B,SAAS,CAAC,QAAQ,EAAE;MAAEP,IAAI,EAAE;IAAe,CAAC,CACrD,CAAC,CAACK,iBAAiB,CAAC,CAAC;EACvB,CAAC,CAAC;AACJ,CAAC,CAAC;AAEFZ,QAAQ,CAAC,yCAAyC,EAAE,MAAM;EACxDC,IAAI,CAAC,+DAA+D,EAAE,MAAM;IAC1EP,UAAU,cAACD,IAAA,CAACF,aAAa;MAACgB,IAAI,EAAC,OAAO;MAACC,KAAK,EAAC;IAAO,CAAE,CAAC,EAAE;MACvDO,KAAK,EAAE;IACT,CAAC,CAAC;IAEFb,MAAM,CACJd,MAAM,CAAC0B,SAAS,CAAC,QAAQ,EAAE;MAAEP,IAAI,EAAE;IAA+B,CAAC,CACrE,CAAC,CAACK,iBAAiB,CAAC,CAAC;EACvB,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}