@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
@@ -6,16 +6,8 @@ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
6
6
  var _formik = require("formik");
7
7
  var _FormikRadioGroup = _interopRequireDefault(require("../patterns/FormikRadioGroup"));
8
8
  var _jsxRuntime = require("react/jsx-runtime");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
- function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
11
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
12
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
18
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /**
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /**
19
11
  * FormikRadioGroup — contract tests (gap G-C).
20
12
  *
21
13
  * WHY THIS FILE EXISTS
@@ -46,118 +38,86 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
46
38
  *
47
39
  * NOT COVERED — deliberately: the asterisk colour and the error panel are CSS
48
40
  * variables, which jsdom does not resolve. Those belong to the story.
49
- */
50
- var OPTIONS_TEXTE = [{
41
+ */const OPTIONS_TEXTE = [{
51
42
  value: "true",
52
43
  label: "Oui"
53
44
  }, {
54
45
  value: "false",
55
46
  label: "Non"
56
47
  }];
57
- var OPTIONS_NOMBRE = [{
48
+ const OPTIONS_NOMBRE = [{
58
49
  value: 1,
59
50
  label: "Importation"
60
51
  }, {
61
52
  value: 2,
62
53
  label: "Exportation"
63
54
  }];
64
- function Hote(_ref) {
65
- var initialValue = _ref.initialValue,
66
- _ref$options = _ref.options,
67
- options = _ref$options === void 0 ? OPTIONS_TEXTE : _ref$options,
68
- required = _ref.required,
69
- hint = _ref.hint,
70
- onValues = _ref.onValues;
55
+ function Hote({
56
+ initialValue,
57
+ options = OPTIONS_TEXTE,
58
+ required,
59
+ hint,
60
+ onValues
61
+ }) {
71
62
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
72
63
  initialValues: {
73
64
  reponse: initialValue
74
65
  },
75
- validate: function validate(values) {
76
- return required && (values.reponse === null || values.reponse === undefined || values.reponse === "") ? {
77
- reponse: "Choisissez une réponse."
78
- } : {};
79
- },
80
- onSubmit: function onSubmit() {
81
- return undefined;
82
- },
83
- children: function children(_ref2) {
84
- var values = _ref2.values;
85
- onValues === null || onValues === void 0 ? void 0 : onValues(values.reponse);
66
+ validate: values => required && (values.reponse === null || values.reponse === undefined || values.reponse === "") ? {
67
+ reponse: "Choisissez une réponse."
68
+ } : {},
69
+ onSubmit: () => undefined,
70
+ children: ({
71
+ values
72
+ }) => {
73
+ onValues?.(values.reponse);
86
74
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Form, {
87
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup["default"], _objectSpread(_objectSpread({
75
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup.default, {
88
76
  name: "reponse",
89
77
  label: "Mod\xE8le d\xE9j\xE0 approuv\xE9",
90
- options: options
91
- }, required !== undefined ? {
92
- required: required
93
- } : {}), hint !== undefined ? {
94
- hint: hint
95
- } : {}))
78
+ options: options,
79
+ ...(required !== undefined ? {
80
+ required
81
+ } : {}),
82
+ ...(hint !== undefined ? {
83
+ hint
84
+ } : {})
85
+ })
96
86
  });
97
87
  }
98
88
  });
99
89
  }
100
- describe("FormikRadioGroup — the stored value keeps its declared type", function () {
101
- test("numeric options stay NUMBERS, not the DOM's strings", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
102
- var vues;
103
- return _regeneratorRuntime().wrap(function _callee$(_context) {
104
- while (1) {
105
- switch (_context.prev = _context.next) {
106
- case 0:
107
- vues = [];
108
- (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
109
- initialValue: null,
110
- options: OPTIONS_NOMBRE,
111
- onValues: function onValues(v) {
112
- return vues.push(v);
113
- }
114
- }));
115
- _context.next = 4;
116
- return _userEvent["default"].click(_react.screen.getByRole("radio", {
117
- name: "Exportation"
118
- }));
119
- case 4:
120
- expect(vues.at(-1)).toBe(2);
121
- expect(_typeof(vues.at(-1))).toBe("number");
122
- case 6:
123
- case "end":
124
- return _context.stop();
125
- }
126
- }
127
- }, _callee);
128
- })));
129
- test("string options stay strings — « false » is a value, not a boolean", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
130
- var vues;
131
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
132
- while (1) {
133
- switch (_context2.prev = _context2.next) {
134
- case 0:
135
- /* refonte-frontend's case: the payload carries "true" / "false" as text.
136
- * Coercing to a boolean here would change what the backend receives. */
137
- vues = [];
138
- (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
139
- initialValue: null,
140
- onValues: function onValues(v) {
141
- return vues.push(v);
142
- }
143
- }));
144
- _context2.next = 4;
145
- return _userEvent["default"].click(_react.screen.getByRole("radio", {
146
- name: "Non"
147
- }));
148
- case 4:
149
- expect(vues.at(-1)).toBe("false");
150
- expect(_typeof(vues.at(-1))).toBe("string");
151
- case 6:
152
- case "end":
153
- return _context2.stop();
154
- }
155
- }
156
- }, _callee2);
157
- })));
90
+ describe("FormikRadioGroup — the stored value keeps its declared type", () => {
91
+ test("numeric options stay NUMBERS, not the DOM's strings", async () => {
92
+ const vues = [];
93
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
94
+ initialValue: null,
95
+ options: OPTIONS_NOMBRE,
96
+ onValues: v => vues.push(v)
97
+ }));
98
+ await _userEvent.default.click(_react.screen.getByRole("radio", {
99
+ name: "Exportation"
100
+ }));
101
+ expect(vues.at(-1)).toBe(2);
102
+ expect(typeof vues.at(-1)).toBe("number");
103
+ });
104
+ test("string options stay strings — « false » is a value, not a boolean", async () => {
105
+ /* refonte-frontend's case: the payload carries "true" / "false" as text.
106
+ * Coercing to a boolean here would change what the backend receives. */
107
+ const vues = [];
108
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
109
+ initialValue: null,
110
+ onValues: v => vues.push(v)
111
+ }));
112
+ await _userEvent.default.click(_react.screen.getByRole("radio", {
113
+ name: "Non"
114
+ }));
115
+ expect(vues.at(-1)).toBe("false");
116
+ expect(typeof vues.at(-1)).toBe("string");
117
+ });
158
118
  });
159
- describe("FormikRadioGroup — the selection matches across types", function () {
160
- test("a boolean `false` in state selects the option declared « false »", function () {
119
+ describe("FormikRadioGroup — the selection matches across types", () => {
120
+ test("a boolean `false` in state selects the option declared « false »", () => {
161
121
  /* Hosts seed with booleans while declaring string options. A strict
162
122
  * comparison would render the group empty on a form that already holds an
163
123
  * answer. */
@@ -171,7 +131,7 @@ describe("FormikRadioGroup — the selection matches across types", function ()
171
131
  name: "Oui"
172
132
  })).not.toBeChecked();
173
133
  });
174
- test("a number in state selects its numeric option", function () {
134
+ test("a number in state selects its numeric option", () => {
175
135
  (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
176
136
  initialValue: 1,
177
137
  options: OPTIONS_NOMBRE
@@ -180,12 +140,9 @@ describe("FormikRadioGroup — the selection matches across types", function ()
180
140
  name: "Importation"
181
141
  })).toBeChecked();
182
142
  });
183
- test("`null` selects nothing, and does not warn about an uncontrolled group", function () {
184
- var avertissements = [];
185
- var spy = jest.spyOn(console, "error").mockImplementation(function () {
186
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
187
- args[_key] = arguments[_key];
188
- }
143
+ test("`null` selects nothing, and does not warn about an uncontrolled group", () => {
144
+ const avertissements = [];
145
+ const spy = jest.spyOn(console, "error").mockImplementation((...args) => {
189
146
  avertissements.push(args);
190
147
  });
191
148
  (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
@@ -197,85 +154,52 @@ describe("FormikRadioGroup — the selection matches across types", function ()
197
154
  expect(_react.screen.getByRole("radio", {
198
155
  name: "Non"
199
156
  })).not.toBeChecked();
200
- expect(avertissements.some(function (a) {
201
- return String(a[0]).includes("uncontrolled");
202
- })).toBe(false);
157
+ expect(avertissements.some(a => String(a[0]).includes("uncontrolled"))).toBe(false);
203
158
  spy.mockRestore();
204
159
  });
205
- test("displaying does not rewrite the stored value", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
206
- var vues;
207
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
208
- while (1) {
209
- switch (_context3.prev = _context3.next) {
210
- case 0:
211
- /* The string comparison is for MATCHING only. A form opened and closed
212
- * without an answer must still send exactly what it was seeded with. */
213
- vues = [];
214
- (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
215
- initialValue: false,
216
- onValues: function onValues(v) {
217
- return vues.push(v);
218
- }
219
- }));
220
- expect(_react.screen.getByRole("radio", {
221
- name: "Non"
222
- })).toBeChecked();
223
- expect(vues.every(function (v) {
224
- return v === false;
225
- })).toBe(true);
226
- case 4:
227
- case "end":
228
- return _context3.stop();
229
- }
230
- }
231
- }, _callee3);
232
- })));
160
+ test("displaying does not rewrite the stored value", async () => {
161
+ /* The string comparison is for MATCHING only. A form opened and closed
162
+ * without an answer must still send exactly what it was seeded with. */
163
+ const vues = [];
164
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
165
+ initialValue: false,
166
+ onValues: v => vues.push(v)
167
+ }));
168
+ expect(_react.screen.getByRole("radio", {
169
+ name: "Non"
170
+ })).toBeChecked();
171
+ expect(vues.every(v => v === false)).toBe(true);
172
+ });
233
173
  });
234
- describe("FormikRadioGroup — the error is reachable without a blur", function () {
235
- test("picking marks the field touched, so the message appears", /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
236
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
237
- while (1) {
238
- switch (_context4.prev = _context4.next) {
239
- case 0:
240
- /* A validator that ALWAYS rejects : the message can then only be hidden by
241
- * the field being untouched. Before the click it must be absent, after it
242
- * present — that is the whole contract. */
243
- (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
244
- initialValues: {
245
- reponse: null
246
- },
247
- validate: function validate() {
248
- return {
249
- reponse: "Choisissez une réponse."
250
- };
251
- },
252
- onSubmit: function onSubmit() {
253
- return undefined;
254
- },
255
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Form, {
256
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup["default"], {
257
- name: "reponse",
258
- label: "Mod\xE8le d\xE9j\xE0 approuv\xE9",
259
- options: OPTIONS_TEXTE,
260
- required: true
261
- })
262
- })
263
- }));
264
- expect(_react.screen.queryByRole("alert")).not.toBeInTheDocument();
265
- _context4.next = 4;
266
- return _userEvent["default"].click(_react.screen.getByRole("radio", {
267
- name: "Oui"
268
- }));
269
- case 4:
270
- expect(_react.screen.getByRole("alert")).toHaveTextContent("Choisissez une réponse.");
271
- case 5:
272
- case "end":
273
- return _context4.stop();
274
- }
275
- }
276
- }, _callee4);
277
- })));
278
- test("the message becomes the group's accessible description", function () {
174
+ describe("FormikRadioGroup — the error is reachable without a blur", () => {
175
+ test("picking marks the field touched, so the message appears", async () => {
176
+ /* A validator that ALWAYS rejects : the message can then only be hidden by
177
+ * the field being untouched. Before the click it must be absent, after it
178
+ * present that is the whole contract. */
179
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
180
+ initialValues: {
181
+ reponse: null
182
+ },
183
+ validate: () => ({
184
+ reponse: "Choisissez une réponse."
185
+ }),
186
+ onSubmit: () => undefined,
187
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Form, {
188
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup.default, {
189
+ name: "reponse",
190
+ label: "Mod\xE8le d\xE9j\xE0 approuv\xE9",
191
+ options: OPTIONS_TEXTE,
192
+ required: true
193
+ })
194
+ })
195
+ }));
196
+ expect(_react.screen.queryByRole("alert")).not.toBeInTheDocument();
197
+ await _userEvent.default.click(_react.screen.getByRole("radio", {
198
+ name: "Oui"
199
+ }));
200
+ expect(_react.screen.getByRole("alert")).toHaveTextContent("Choisissez une réponse.");
201
+ });
202
+ test("the message becomes the group's accessible description", () => {
279
203
  (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
280
204
  initialValues: {
281
205
  reponse: ""
@@ -286,11 +210,9 @@ describe("FormikRadioGroup — the error is reachable without a blur", function
286
210
  initialErrors: {
287
211
  reponse: "Choisissez une réponse."
288
212
  },
289
- onSubmit: function onSubmit() {
290
- return undefined;
291
- },
213
+ onSubmit: () => undefined,
292
214
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Form, {
293
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup["default"], {
215
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup.default, {
294
216
  name: "reponse",
295
217
  label: "Mod\xE8le d\xE9j\xE0 approuv\xE9",
296
218
  options: OPTIONS_TEXTE,
@@ -300,12 +222,13 @@ describe("FormikRadioGroup — the error is reachable without a blur", function
300
222
  }));
301
223
  expect(_react.screen.getByRole("radiogroup")).toHaveAccessibleDescription("Choisissez une réponse.");
302
224
  });
303
- test("the hint shows while valid and is suppressed by the error", function () {
304
- var _render = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
305
- initialValue: null,
306
- hint: "Une seule r\xE9ponse possible"
307
- })),
308
- unmount = _render.unmount;
225
+ test("the hint shows while valid and is suppressed by the error", () => {
226
+ const {
227
+ unmount
228
+ } = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
229
+ initialValue: null,
230
+ hint: "Une seule r\xE9ponse possible"
231
+ }));
309
232
  expect(_react.screen.getByText("Une seule réponse possible")).toBeInTheDocument();
310
233
  unmount();
311
234
  (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
@@ -318,11 +241,9 @@ describe("FormikRadioGroup — the error is reachable without a blur", function
318
241
  initialErrors: {
319
242
  reponse: "Choisissez une réponse."
320
243
  },
321
- onSubmit: function onSubmit() {
322
- return undefined;
323
- },
244
+ onSubmit: () => undefined,
324
245
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Form, {
325
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup["default"], {
246
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup.default, {
326
247
  name: "reponse",
327
248
  label: "Mod\xE8le d\xE9j\xE0 approuv\xE9",
328
249
  options: OPTIONS_TEXTE,
@@ -333,8 +254,8 @@ describe("FormikRadioGroup — the error is reachable without a blur", function
333
254
  expect(_react.screen.queryByText("Une seule réponse possible")).not.toBeInTheDocument();
334
255
  });
335
256
  });
336
- describe("FormikRadioGroup — ARIA and DOM hygiene", function () {
337
- test("the group is named by the field label", function () {
257
+ describe("FormikRadioGroup — ARIA and DOM hygiene", () => {
258
+ test("the group is named by the field label", () => {
338
259
  (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
339
260
  initialValue: null
340
261
  }));
@@ -342,7 +263,7 @@ describe("FormikRadioGroup — ARIA and DOM hygiene", function () {
342
263
  name: /Modèle déjà approuvé/
343
264
  })).toBeInTheDocument();
344
265
  });
345
- test("`required` reaches the group as aria-required", function () {
266
+ test("`required` reaches the group as aria-required", () => {
346
267
  /* Unlike the single-checkbox case, aria-required IS valid on
347
268
  * role="radiogroup" and RadioGroup forwards Field's injection. */
348
269
  (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Hote, {
@@ -351,7 +272,7 @@ describe("FormikRadioGroup — ARIA and DOM hygiene", function () {
351
272
  }));
352
273
  expect(_react.screen.getByRole("radiogroup")).toHaveAttribute("aria-required", "true");
353
274
  });
354
- test("no `error` or `fullWidth` attribute leaks onto the group", function () {
275
+ test("no `error` or `fullWidth` attribute leaks onto the group", () => {
355
276
  (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Formik, {
356
277
  initialValues: {
357
278
  reponse: ""
@@ -362,18 +283,16 @@ describe("FormikRadioGroup — ARIA and DOM hygiene", function () {
362
283
  initialErrors: {
363
284
  reponse: "Choisissez une réponse."
364
285
  },
365
- onSubmit: function onSubmit() {
366
- return undefined;
367
- },
286
+ onSubmit: () => undefined,
368
287
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_formik.Form, {
369
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup["default"], {
288
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikRadioGroup.default, {
370
289
  name: "reponse",
371
290
  label: "Mod\xE8le d\xE9j\xE0 approuv\xE9",
372
291
  options: OPTIONS_TEXTE
373
292
  })
374
293
  })
375
294
  }));
376
- var groupe = _react.screen.getByRole("radiogroup");
295
+ const groupe = _react.screen.getByRole("radiogroup");
377
296
  expect(groupe).not.toHaveAttribute("error");
378
297
  expect(groupe).not.toHaveAttribute("fullWidth");
379
298
  });
@@ -1 +1 @@
1
- {"version":3,"file":"FormikRadioGroup.test.js","names":["require","_react","_userEvent","_interopRequireDefault","_formik","_FormikRadioGroup","_jsxRuntime","obj","__esModule","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","OPTIONS_TEXTE","label","OPTIONS_NOMBRE","Hote","_ref","initialValue","_ref$options","options","required","onValues","jsx","Formik","initialValues","reponse","validate","onSubmit","children","_ref2","Form","describe","test","_callee","vues","_callee$","_context","render","v","userEvent","click","screen","getByRole","expect","at","toBe","_callee2","_callee2$","_context2","toBeChecked","not","avertissements","spy","jest","spyOn","console","mockImplementation","_len","Array","_key","some","a","includes","mockRestore","_callee3","_callee3$","_context3","every","_callee4","_callee4$","_context4","queryByRole","toBeInTheDocument","toHaveTextContent","initialTouched","initialErrors","toHaveAccessibleDescription","_render","unmount","getByText","queryByText","toHaveAttribute","groupe"],"sources":["../../../src/lib/v2/__tests__/FormikRadioGroup.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport userEvent from \"@testing-library/user-event\";\r\nimport { Formik, Form } from \"formik\";\r\nimport FormikRadioGroup from \"../patterns/FormikRadioGroup\";\r\n\r\n/**\r\n * FormikRadioGroup — contract tests (gap G-C).\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST — and every case below is a defect this bridge exists to\r\n * stop, none of which is visible on screen:\r\n *\r\n * 1. THE STORED VALUE KEEPS ITS DECLARED TYPE. A native radio input only ever\r\n * reports a string. A host with numeric options would silently start\r\n * sending \"1\" where its payload declares 1 — accepted or rejected by the\r\n * API days later, with nothing in the UI to show for it. This is the single\r\n * most important assertion in the file.\r\n *\r\n * 2. THE SELECTION MATCHES ACROSS TYPES. Hosts seed these fields with booleans\r\n * (`false`) or numbers while declaring string options (\"false\"). If the\r\n * comparison were strict, the group would render EMPTY on a form that\r\n * already holds an answer — and the user would re-answer a question that\r\n * was already stored, or worse, leave it blank.\r\n *\r\n * 3. TOUCHED ON PICK, NOT ON BLUR. A radio group's first interaction IS the\r\n * answer; there is no blur-before-change. Waiting for a blur keeps a\r\n * required-group message hidden while the user clicks around.\r\n *\r\n * 4. NO INVALID ATTRIBUTE REACHES THE DOM. `Field` clones its child with\r\n * `error` / `fullWidth`, which are not valid on `role=\"radiogroup\"`.\r\n * `RadioGroup` strips them — assert it, because the day it stops, React\r\n * warns and the rendering stays pixel-identical.\r\n *\r\n * NOT COVERED — deliberately: the asterisk colour and the error panel are CSS\r\n * variables, which jsdom does not resolve. Those belong to the story.\r\n */\r\n\r\nconst OPTIONS_TEXTE = [\r\n { value: \"true\", label: \"Oui\" },\r\n { value: \"false\", label: \"Non\" },\r\n];\r\n\r\nconst OPTIONS_NOMBRE = [\r\n { value: 1, label: \"Importation\" },\r\n { value: 2, label: \"Exportation\" },\r\n];\r\n\r\nfunction Hote({\r\n initialValue,\r\n options = OPTIONS_TEXTE,\r\n required,\r\n hint,\r\n onValues,\r\n}: {\r\n initialValue: unknown;\r\n options?: { value: string | number; label: string }[];\r\n required?: boolean;\r\n hint?: string;\r\n onValues?: (valeur: unknown) => void;\r\n}) {\r\n return (\r\n <Formik\r\n initialValues={{ reponse: initialValue }}\r\n validate={(values) =>\r\n required &&\r\n (values.reponse === null ||\r\n values.reponse === undefined ||\r\n values.reponse === \"\")\r\n ? { reponse: \"Choisissez une réponse.\" }\r\n : {}\r\n }\r\n onSubmit={() => undefined}\r\n >\r\n {({ values }) => {\r\n onValues?.(values.reponse);\r\n return (\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={options}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(hint !== undefined ? { hint } : {})}\r\n />\r\n </Form>\r\n );\r\n }}\r\n </Formik>\r\n );\r\n}\r\n\r\ndescribe(\"FormikRadioGroup — the stored value keeps its declared type\", () => {\r\n test(\"numeric options stay NUMBERS, not the DOM's strings\", async () => {\r\n const vues: unknown[] = [];\r\n render(\r\n <Hote\r\n initialValue={null}\r\n options={OPTIONS_NOMBRE}\r\n onValues={(v) => vues.push(v)}\r\n />\r\n );\r\n\r\n await userEvent.click(screen.getByRole(\"radio\", { name: \"Exportation\" }));\r\n\r\n expect(vues.at(-1)).toBe(2);\r\n expect(typeof vues.at(-1)).toBe(\"number\");\r\n });\r\n\r\n test(\"string options stay strings — « false » is a value, not a boolean\", async () => {\r\n /* refonte-frontend's case: the payload carries \"true\" / \"false\" as text.\r\n * Coercing to a boolean here would change what the backend receives. */\r\n const vues: unknown[] = [];\r\n render(<Hote initialValue={null} onValues={(v) => vues.push(v)} />);\r\n\r\n await userEvent.click(screen.getByRole(\"radio\", { name: \"Non\" }));\r\n\r\n expect(vues.at(-1)).toBe(\"false\");\r\n expect(typeof vues.at(-1)).toBe(\"string\");\r\n });\r\n});\r\n\r\ndescribe(\"FormikRadioGroup — the selection matches across types\", () => {\r\n test(\"a boolean `false` in state selects the option declared « false »\", () => {\r\n /* Hosts seed with booleans while declaring string options. A strict\r\n * comparison would render the group empty on a form that already holds an\r\n * answer. */\r\n render(<Hote initialValue={false} />);\r\n\r\n expect(screen.getByRole(\"radio\", { name: \"Non\" })).toBeChecked();\r\n expect(screen.getByRole(\"radio\", { name: \"Oui\" })).not.toBeChecked();\r\n });\r\n\r\n test(\"a number in state selects its numeric option\", () => {\r\n render(<Hote initialValue={1} options={OPTIONS_NOMBRE} />);\r\n\r\n expect(screen.getByRole(\"radio\", { name: \"Importation\" })).toBeChecked();\r\n });\r\n\r\n test(\"`null` selects nothing, and does not warn about an uncontrolled group\", () => {\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(<Hote initialValue={null} />);\r\n\r\n expect(screen.getByRole(\"radio\", { name: \"Oui\" })).not.toBeChecked();\r\n expect(screen.getByRole(\"radio\", { name: \"Non\" })).not.toBeChecked();\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 test(\"displaying does not rewrite the stored value\", async () => {\r\n /* The string comparison is for MATCHING only. A form opened and closed\r\n * without an answer must still send exactly what it was seeded with. */\r\n const vues: unknown[] = [];\r\n render(<Hote initialValue={false} onValues={(v) => vues.push(v)} />);\r\n\r\n expect(screen.getByRole(\"radio\", { name: \"Non\" })).toBeChecked();\r\n expect(vues.every((v) => v === false)).toBe(true);\r\n });\r\n});\r\n\r\ndescribe(\"FormikRadioGroup — the error is reachable without a blur\", () => {\r\n test(\"picking marks the field touched, so the message appears\", async () => {\r\n /* A validator that ALWAYS rejects : the message can then only be hidden by\r\n * the field being untouched. Before the click it must be absent, after it\r\n * present — that is the whole contract. */\r\n render(\r\n <Formik\r\n initialValues={{ reponse: null }}\r\n validate={() => ({ reponse: \"Choisissez une réponse.\" })}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={OPTIONS_TEXTE}\r\n required\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n expect(screen.queryByRole(\"alert\")).not.toBeInTheDocument();\r\n\r\n await userEvent.click(screen.getByRole(\"radio\", { name: \"Oui\" }));\r\n\r\n expect(screen.getByRole(\"alert\")).toHaveTextContent(\r\n \"Choisissez une réponse.\"\r\n );\r\n });\r\n\r\n test(\"the message becomes the group's accessible description\", () => {\r\n render(\r\n <Formik\r\n initialValues={{ reponse: \"\" }}\r\n initialTouched={{ reponse: true }}\r\n initialErrors={{ reponse: \"Choisissez une réponse.\" }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={OPTIONS_TEXTE}\r\n required\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n expect(screen.getByRole(\"radiogroup\")).toHaveAccessibleDescription(\r\n \"Choisissez une réponse.\"\r\n );\r\n });\r\n\r\n test(\"the hint shows while valid and is suppressed by the error\", () => {\r\n const { unmount } = render(\r\n <Hote initialValue={null} hint=\"Une seule réponse possible\" />\r\n );\r\n expect(screen.getByText(\"Une seule réponse possible\")).toBeInTheDocument();\r\n unmount();\r\n\r\n render(\r\n <Formik\r\n initialValues={{ reponse: \"\" }}\r\n initialTouched={{ reponse: true }}\r\n initialErrors={{ reponse: \"Choisissez une réponse.\" }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={OPTIONS_TEXTE}\r\n hint=\"Une seule réponse possible\"\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n expect(\r\n screen.queryByText(\"Une seule réponse possible\")\r\n ).not.toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikRadioGroup — ARIA and DOM hygiene\", () => {\r\n test(\"the group is named by the field label\", () => {\r\n render(<Hote initialValue={null} />);\r\n expect(\r\n screen.getByRole(\"radiogroup\", { name: /Modèle déjà approuvé/ })\r\n ).toBeInTheDocument();\r\n });\r\n\r\n test(\"`required` reaches the group as aria-required\", () => {\r\n /* Unlike the single-checkbox case, aria-required IS valid on\r\n * role=\"radiogroup\" and RadioGroup forwards Field's injection. */\r\n render(<Hote initialValue={null} required />);\r\n expect(screen.getByRole(\"radiogroup\")).toHaveAttribute(\r\n \"aria-required\",\r\n \"true\"\r\n );\r\n });\r\n\r\n test(\"no `error` or `fullWidth` attribute leaks onto the group\", () => {\r\n render(\r\n <Formik\r\n initialValues={{ reponse: \"\" }}\r\n initialTouched={{ reponse: true }}\r\n initialErrors={{ reponse: \"Choisissez une réponse.\" }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={OPTIONS_TEXTE}\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n const groupe = screen.getByRole(\"radiogroup\");\r\n expect(groupe).not.toHaveAttribute(\"error\");\r\n expect(groupe).not.toHaveAttribute(\"fullWidth\");\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormikRadioGroup.test.js","names":["require","_react","_userEvent","_interopRequireDefault","_formik","_FormikRadioGroup","_jsxRuntime","e","__esModule","default","OPTIONS_TEXTE","value","label","OPTIONS_NOMBRE","Hote","initialValue","options","required","hint","onValues","jsx","Formik","initialValues","reponse","validate","values","undefined","onSubmit","children","Form","name","describe","test","vues","render","v","push","userEvent","click","screen","getByRole","expect","at","toBe","toBeChecked","not","avertissements","spy","jest","spyOn","console","mockImplementation","args","some","a","String","includes","mockRestore","every","queryByRole","toBeInTheDocument","toHaveTextContent","initialTouched","initialErrors","toHaveAccessibleDescription","unmount","getByText","queryByText","toHaveAttribute","groupe"],"sources":["../../../src/lib/v2/__tests__/FormikRadioGroup.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen } from \"@testing-library/react\";\r\nimport userEvent from \"@testing-library/user-event\";\r\nimport { Formik, Form } from \"formik\";\r\nimport FormikRadioGroup from \"../patterns/FormikRadioGroup\";\r\n\r\n/**\r\n * FormikRadioGroup — contract tests (gap G-C).\r\n *\r\n * WHY THIS FILE EXISTS\r\n * --------------------\r\n * §10.3 R-G.6 MUST — and every case below is a defect this bridge exists to\r\n * stop, none of which is visible on screen:\r\n *\r\n * 1. THE STORED VALUE KEEPS ITS DECLARED TYPE. A native radio input only ever\r\n * reports a string. A host with numeric options would silently start\r\n * sending \"1\" where its payload declares 1 — accepted or rejected by the\r\n * API days later, with nothing in the UI to show for it. This is the single\r\n * most important assertion in the file.\r\n *\r\n * 2. THE SELECTION MATCHES ACROSS TYPES. Hosts seed these fields with booleans\r\n * (`false`) or numbers while declaring string options (\"false\"). If the\r\n * comparison were strict, the group would render EMPTY on a form that\r\n * already holds an answer — and the user would re-answer a question that\r\n * was already stored, or worse, leave it blank.\r\n *\r\n * 3. TOUCHED ON PICK, NOT ON BLUR. A radio group's first interaction IS the\r\n * answer; there is no blur-before-change. Waiting for a blur keeps a\r\n * required-group message hidden while the user clicks around.\r\n *\r\n * 4. NO INVALID ATTRIBUTE REACHES THE DOM. `Field` clones its child with\r\n * `error` / `fullWidth`, which are not valid on `role=\"radiogroup\"`.\r\n * `RadioGroup` strips them — assert it, because the day it stops, React\r\n * warns and the rendering stays pixel-identical.\r\n *\r\n * NOT COVERED — deliberately: the asterisk colour and the error panel are CSS\r\n * variables, which jsdom does not resolve. Those belong to the story.\r\n */\r\n\r\nconst OPTIONS_TEXTE = [\r\n { value: \"true\", label: \"Oui\" },\r\n { value: \"false\", label: \"Non\" },\r\n];\r\n\r\nconst OPTIONS_NOMBRE = [\r\n { value: 1, label: \"Importation\" },\r\n { value: 2, label: \"Exportation\" },\r\n];\r\n\r\nfunction Hote({\r\n initialValue,\r\n options = OPTIONS_TEXTE,\r\n required,\r\n hint,\r\n onValues,\r\n}: {\r\n initialValue: unknown;\r\n options?: { value: string | number; label: string }[];\r\n required?: boolean;\r\n hint?: string;\r\n onValues?: (valeur: unknown) => void;\r\n}) {\r\n return (\r\n <Formik\r\n initialValues={{ reponse: initialValue }}\r\n validate={(values) =>\r\n required &&\r\n (values.reponse === null ||\r\n values.reponse === undefined ||\r\n values.reponse === \"\")\r\n ? { reponse: \"Choisissez une réponse.\" }\r\n : {}\r\n }\r\n onSubmit={() => undefined}\r\n >\r\n {({ values }) => {\r\n onValues?.(values.reponse);\r\n return (\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={options}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(hint !== undefined ? { hint } : {})}\r\n />\r\n </Form>\r\n );\r\n }}\r\n </Formik>\r\n );\r\n}\r\n\r\ndescribe(\"FormikRadioGroup — the stored value keeps its declared type\", () => {\r\n test(\"numeric options stay NUMBERS, not the DOM's strings\", async () => {\r\n const vues: unknown[] = [];\r\n render(\r\n <Hote\r\n initialValue={null}\r\n options={OPTIONS_NOMBRE}\r\n onValues={(v) => vues.push(v)}\r\n />\r\n );\r\n\r\n await userEvent.click(screen.getByRole(\"radio\", { name: \"Exportation\" }));\r\n\r\n expect(vues.at(-1)).toBe(2);\r\n expect(typeof vues.at(-1)).toBe(\"number\");\r\n });\r\n\r\n test(\"string options stay strings — « false » is a value, not a boolean\", async () => {\r\n /* refonte-frontend's case: the payload carries \"true\" / \"false\" as text.\r\n * Coercing to a boolean here would change what the backend receives. */\r\n const vues: unknown[] = [];\r\n render(<Hote initialValue={null} onValues={(v) => vues.push(v)} />);\r\n\r\n await userEvent.click(screen.getByRole(\"radio\", { name: \"Non\" }));\r\n\r\n expect(vues.at(-1)).toBe(\"false\");\r\n expect(typeof vues.at(-1)).toBe(\"string\");\r\n });\r\n});\r\n\r\ndescribe(\"FormikRadioGroup — the selection matches across types\", () => {\r\n test(\"a boolean `false` in state selects the option declared « false »\", () => {\r\n /* Hosts seed with booleans while declaring string options. A strict\r\n * comparison would render the group empty on a form that already holds an\r\n * answer. */\r\n render(<Hote initialValue={false} />);\r\n\r\n expect(screen.getByRole(\"radio\", { name: \"Non\" })).toBeChecked();\r\n expect(screen.getByRole(\"radio\", { name: \"Oui\" })).not.toBeChecked();\r\n });\r\n\r\n test(\"a number in state selects its numeric option\", () => {\r\n render(<Hote initialValue={1} options={OPTIONS_NOMBRE} />);\r\n\r\n expect(screen.getByRole(\"radio\", { name: \"Importation\" })).toBeChecked();\r\n });\r\n\r\n test(\"`null` selects nothing, and does not warn about an uncontrolled group\", () => {\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(<Hote initialValue={null} />);\r\n\r\n expect(screen.getByRole(\"radio\", { name: \"Oui\" })).not.toBeChecked();\r\n expect(screen.getByRole(\"radio\", { name: \"Non\" })).not.toBeChecked();\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 test(\"displaying does not rewrite the stored value\", async () => {\r\n /* The string comparison is for MATCHING only. A form opened and closed\r\n * without an answer must still send exactly what it was seeded with. */\r\n const vues: unknown[] = [];\r\n render(<Hote initialValue={false} onValues={(v) => vues.push(v)} />);\r\n\r\n expect(screen.getByRole(\"radio\", { name: \"Non\" })).toBeChecked();\r\n expect(vues.every((v) => v === false)).toBe(true);\r\n });\r\n});\r\n\r\ndescribe(\"FormikRadioGroup — the error is reachable without a blur\", () => {\r\n test(\"picking marks the field touched, so the message appears\", async () => {\r\n /* A validator that ALWAYS rejects : the message can then only be hidden by\r\n * the field being untouched. Before the click it must be absent, after it\r\n * present — that is the whole contract. */\r\n render(\r\n <Formik\r\n initialValues={{ reponse: null }}\r\n validate={() => ({ reponse: \"Choisissez une réponse.\" })}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={OPTIONS_TEXTE}\r\n required\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n expect(screen.queryByRole(\"alert\")).not.toBeInTheDocument();\r\n\r\n await userEvent.click(screen.getByRole(\"radio\", { name: \"Oui\" }));\r\n\r\n expect(screen.getByRole(\"alert\")).toHaveTextContent(\r\n \"Choisissez une réponse.\"\r\n );\r\n });\r\n\r\n test(\"the message becomes the group's accessible description\", () => {\r\n render(\r\n <Formik\r\n initialValues={{ reponse: \"\" }}\r\n initialTouched={{ reponse: true }}\r\n initialErrors={{ reponse: \"Choisissez une réponse.\" }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={OPTIONS_TEXTE}\r\n required\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n expect(screen.getByRole(\"radiogroup\")).toHaveAccessibleDescription(\r\n \"Choisissez une réponse.\"\r\n );\r\n });\r\n\r\n test(\"the hint shows while valid and is suppressed by the error\", () => {\r\n const { unmount } = render(\r\n <Hote initialValue={null} hint=\"Une seule réponse possible\" />\r\n );\r\n expect(screen.getByText(\"Une seule réponse possible\")).toBeInTheDocument();\r\n unmount();\r\n\r\n render(\r\n <Formik\r\n initialValues={{ reponse: \"\" }}\r\n initialTouched={{ reponse: true }}\r\n initialErrors={{ reponse: \"Choisissez une réponse.\" }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={OPTIONS_TEXTE}\r\n hint=\"Une seule réponse possible\"\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n expect(\r\n screen.queryByText(\"Une seule réponse possible\")\r\n ).not.toBeInTheDocument();\r\n });\r\n});\r\n\r\ndescribe(\"FormikRadioGroup — ARIA and DOM hygiene\", () => {\r\n test(\"the group is named by the field label\", () => {\r\n render(<Hote initialValue={null} />);\r\n expect(\r\n screen.getByRole(\"radiogroup\", { name: /Modèle déjà approuvé/ })\r\n ).toBeInTheDocument();\r\n });\r\n\r\n test(\"`required` reaches the group as aria-required\", () => {\r\n /* Unlike the single-checkbox case, aria-required IS valid on\r\n * role=\"radiogroup\" and RadioGroup forwards Field's injection. */\r\n render(<Hote initialValue={null} required />);\r\n expect(screen.getByRole(\"radiogroup\")).toHaveAttribute(\r\n \"aria-required\",\r\n \"true\"\r\n );\r\n });\r\n\r\n test(\"no `error` or `fullWidth` attribute leaks onto the group\", () => {\r\n render(\r\n <Formik\r\n initialValues={{ reponse: \"\" }}\r\n initialTouched={{ reponse: true }}\r\n initialErrors={{ reponse: \"Choisissez une réponse.\" }}\r\n onSubmit={() => undefined}\r\n >\r\n <Form>\r\n <FormikRadioGroup\r\n name=\"reponse\"\r\n label=\"Modèle déjà approuvé\"\r\n options={OPTIONS_TEXTE}\r\n />\r\n </Form>\r\n </Formik>\r\n );\r\n\r\n const groupe = screen.getByRole(\"radiogroup\");\r\n expect(groupe).not.toHaveAttribute(\"error\");\r\n expect(groupe).not.toHaveAttribute(\"fullWidth\");\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}