@portnet/ui 6.0.1 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1011) hide show
  1. package/CHANGELOG.md +737 -0
  2. package/dist/esm/index.js +90 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
  5. package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
  7. package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
  9. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
  11. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FieldError.test.js +71 -39
  13. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  14. package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
  15. package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -18
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +173 -0
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +236 -0
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  24. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
  25. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +299 -0
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -43
  29. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  30. package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
  31. package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
  33. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  34. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
  35. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  36. package/dist/esm/v2/__tests__/apiError.test.js +50 -69
  37. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
  38. package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
  39. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
  40. package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
  41. package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
  42. package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
  43. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
  44. package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
  45. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
  46. package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
  47. package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
  48. package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
  49. package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
  50. package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
  51. package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
  52. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
  53. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  54. package/dist/esm/v2/__tests__/labels-merge.test.js +17 -22
  55. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  56. package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
  57. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
  58. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
  59. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  60. package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
  61. package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
  62. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
  63. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  64. package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
  65. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
  66. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
  67. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  68. package/dist/esm/v2/components/Accordion.js +48 -70
  69. package/dist/esm/v2/components/Accordion.js.map +1 -1
  70. package/dist/esm/v2/components/ActionStrip.js +31 -43
  71. package/dist/esm/v2/components/ActionStrip.js.map +1 -1
  72. package/dist/esm/v2/components/Banner.js +25 -22
  73. package/dist/esm/v2/components/Banner.js.map +1 -1
  74. package/dist/esm/v2/components/Busy.js +14 -19
  75. package/dist/esm/v2/components/Busy.js.map +1 -1
  76. package/dist/esm/v2/components/Button.js +34 -45
  77. package/dist/esm/v2/components/Button.js.map +1 -1
  78. package/dist/esm/v2/components/CategoryTag.js +44 -27
  79. package/dist/esm/v2/components/CategoryTag.js.map +1 -1
  80. package/dist/esm/v2/components/Checkbox.js +32 -38
  81. package/dist/esm/v2/components/Checkbox.js.map +1 -1
  82. package/dist/esm/v2/components/Chip.js +23 -36
  83. package/dist/esm/v2/components/Chip.js.map +1 -1
  84. package/dist/esm/v2/components/Combobox.js +112 -136
  85. package/dist/esm/v2/components/Combobox.js.map +1 -1
  86. package/dist/esm/v2/components/CommandPalette.js +113 -198
  87. package/dist/esm/v2/components/CommandPalette.js.map +1 -1
  88. package/dist/esm/v2/components/ConfirmDialog.js +36 -45
  89. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
  90. package/dist/esm/v2/components/DatePicker.js +78 -81
  91. package/dist/esm/v2/components/DatePicker.js.map +1 -1
  92. package/dist/esm/v2/components/DateRangePicker.js +63 -74
  93. package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
  94. package/dist/esm/v2/components/DateTimePicker.js +118 -90
  95. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  96. package/dist/esm/v2/components/Drawer.js +71 -65
  97. package/dist/esm/v2/components/Drawer.js.map +1 -1
  98. package/dist/esm/v2/components/Dropzone.js +130 -177
  99. package/dist/esm/v2/components/Dropzone.js.map +1 -1
  100. package/dist/esm/v2/components/EmptyState.js +9 -9
  101. package/dist/esm/v2/components/EmptyState.js.map +1 -1
  102. package/dist/esm/v2/components/FavoriteToggle.js +24 -33
  103. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
  104. package/dist/esm/v2/components/Field.js +210 -52
  105. package/dist/esm/v2/components/Field.js.map +1 -1
  106. package/dist/esm/v2/components/FieldError.js +9 -13
  107. package/dist/esm/v2/components/FieldError.js.map +1 -1
  108. package/dist/esm/v2/components/FieldHelp.js +28 -49
  109. package/dist/esm/v2/components/FieldHelp.js.map +1 -1
  110. package/dist/esm/v2/components/FileCard.js +14 -19
  111. package/dist/esm/v2/components/FileCard.js.map +1 -1
  112. package/dist/esm/v2/components/FilterTab.js +22 -31
  113. package/dist/esm/v2/components/FilterTab.js.map +1 -1
  114. package/dist/esm/v2/components/ForbiddenPage.js +28 -8
  115. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
  116. package/dist/esm/v2/components/FormGrid.js +48 -54
  117. package/dist/esm/v2/components/FormGrid.js.map +1 -1
  118. package/dist/esm/v2/components/FormikDisplay.js +98 -24
  119. package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
  120. package/dist/esm/v2/components/Input.js +75 -34
  121. package/dist/esm/v2/components/Input.js.map +1 -1
  122. package/dist/esm/v2/components/KPICard.js +42 -51
  123. package/dist/esm/v2/components/KPICard.js.map +1 -1
  124. package/dist/esm/v2/components/KPIStrip.js +9 -15
  125. package/dist/esm/v2/components/KPIStrip.js.map +1 -1
  126. package/dist/esm/v2/components/KV.js +16 -23
  127. package/dist/esm/v2/components/KV.js.map +1 -1
  128. package/dist/esm/v2/components/KVGrid.js +15 -23
  129. package/dist/esm/v2/components/KVGrid.js.map +1 -1
  130. package/dist/esm/v2/components/Layout.js +81 -117
  131. package/dist/esm/v2/components/Layout.js.map +1 -1
  132. package/dist/esm/v2/components/MobileRowCard.js +64 -75
  133. package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
  134. package/dist/esm/v2/components/Modal.js +44 -53
  135. package/dist/esm/v2/components/Modal.js.map +1 -1
  136. package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
  137. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
  138. package/dist/esm/v2/components/NotFoundPage.js +28 -9
  139. package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
  140. package/dist/esm/v2/components/NumberInput.js +77 -107
  141. package/dist/esm/v2/components/NumberInput.js.map +1 -1
  142. package/dist/esm/v2/components/OverflowMenu.js +24 -42
  143. package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
  144. package/dist/esm/v2/components/PdfViewer.js +24 -33
  145. package/dist/esm/v2/components/PdfViewer.js.map +1 -1
  146. package/dist/esm/v2/components/ProgressBar.js +28 -36
  147. package/dist/esm/v2/components/ProgressBar.js.map +1 -1
  148. package/dist/esm/v2/components/Radio.js +49 -57
  149. package/dist/esm/v2/components/Radio.js.map +1 -1
  150. package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
  151. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
  152. package/dist/esm/v2/components/SectionHeader.js +24 -31
  153. package/dist/esm/v2/components/SectionHeader.js.map +1 -1
  154. package/dist/esm/v2/components/Segmented.js +59 -84
  155. package/dist/esm/v2/components/Segmented.js.map +1 -1
  156. package/dist/esm/v2/components/Select.js +100 -138
  157. package/dist/esm/v2/components/Select.js.map +1 -1
  158. package/dist/esm/v2/components/ServerErrorPage.js +27 -10
  159. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
  160. package/dist/esm/v2/components/Skeleton.js +81 -96
  161. package/dist/esm/v2/components/Skeleton.js.map +1 -1
  162. package/dist/esm/v2/components/SkipLink.js +6 -7
  163. package/dist/esm/v2/components/SkipLink.js.map +1 -1
  164. package/dist/esm/v2/components/Spinner.js +13 -22
  165. package/dist/esm/v2/components/Spinner.js.map +1 -1
  166. package/dist/esm/v2/components/Status.js +14 -25
  167. package/dist/esm/v2/components/Status.js.map +1 -1
  168. package/dist/esm/v2/components/Stepper.js +68 -71
  169. package/dist/esm/v2/components/Stepper.js.map +1 -1
  170. package/dist/esm/v2/components/Surface.js +25 -44
  171. package/dist/esm/v2/components/Surface.js.map +1 -1
  172. package/dist/esm/v2/components/Switch.js +21 -29
  173. package/dist/esm/v2/components/Switch.js.map +1 -1
  174. package/dist/esm/v2/components/TabPanel.js +84 -0
  175. package/dist/esm/v2/components/TabPanel.js.map +1 -0
  176. package/dist/esm/v2/components/Tabs.js +43 -19
  177. package/dist/esm/v2/components/Tabs.js.map +1 -1
  178. package/dist/esm/v2/components/TelInput.js +75 -108
  179. package/dist/esm/v2/components/TelInput.js.map +1 -1
  180. package/dist/esm/v2/components/Textarea.js +21 -30
  181. package/dist/esm/v2/components/Textarea.js.map +1 -1
  182. package/dist/esm/v2/components/TimePicker.js +59 -69
  183. package/dist/esm/v2/components/TimePicker.js.map +1 -1
  184. package/dist/esm/v2/components/Toast.js +109 -163
  185. package/dist/esm/v2/components/Toast.js.map +1 -1
  186. package/dist/esm/v2/components/Tooltip.js +18 -31
  187. package/dist/esm/v2/components/Tooltip.js.map +1 -1
  188. package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
  189. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
  190. package/dist/esm/v2/components/_pickerShared.js +2 -2
  191. package/dist/esm/v2/components/_pickerShared.js.map +1 -1
  192. package/dist/esm/v2/components/index.js +64 -0
  193. package/dist/esm/v2/components/index.js.map +1 -1
  194. package/dist/esm/v2/hooks/index.js +62 -0
  195. package/dist/esm/v2/hooks/index.js.map +1 -1
  196. package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
  197. package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
  198. package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
  199. package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
  200. package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
  201. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
  202. package/dist/esm/v2/hooks/useDensity.js +13 -17
  203. package/dist/esm/v2/hooks/useDensity.js.map +1 -1
  204. package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
  205. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
  206. package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
  207. package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  208. package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
  209. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
  210. package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
  211. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
  212. package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
  213. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
  214. package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
  215. package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  216. package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
  217. package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  218. package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
  219. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
  220. package/dist/esm/v2/hooks/useSortedRows.js +3 -5
  221. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
  222. package/dist/esm/v2/hooks/useTabLoading.js +6 -21
  223. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
  224. package/dist/esm/v2/index.js +14 -4
  225. package/dist/esm/v2/index.js.map +1 -1
  226. package/dist/esm/v2/modalContext.js +2 -2
  227. package/dist/esm/v2/modalContext.js.map +1 -1
  228. package/dist/esm/v2/models/favorite.js.map +1 -1
  229. package/dist/esm/v2/models/personalization.js.map +1 -1
  230. package/dist/esm/v2/models/referentiel.js.map +1 -1
  231. package/dist/esm/v2/models/savedFilter.js.map +1 -1
  232. package/dist/esm/v2/patterns/ActionBar.js +115 -159
  233. package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
  234. package/dist/esm/v2/patterns/AppMain.js +108 -0
  235. package/dist/esm/v2/patterns/AppMain.js.map +1 -0
  236. package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
  237. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
  238. package/dist/esm/v2/patterns/ChartFigure.js +151 -0
  239. package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
  240. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
  241. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  242. package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
  243. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
  244. package/dist/esm/v2/patterns/DataGrid.js +221 -255
  245. package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
  246. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
  247. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  248. package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
  249. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
  250. package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
  251. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
  252. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
  253. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  254. package/dist/esm/v2/patterns/DetailSplit.js +108 -0
  255. package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
  256. package/dist/esm/v2/patterns/FavoriteColumn.js +26 -75
  257. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  258. package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
  259. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
  260. package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
  261. package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
  262. package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
  263. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
  264. package/dist/esm/v2/patterns/FormPageShell.js +43 -41
  265. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
  266. package/dist/esm/v2/patterns/FormSection.js +30 -38
  267. package/dist/esm/v2/patterns/FormSection.js.map +1 -1
  268. package/dist/esm/v2/patterns/FormikCheckbox.js +130 -0
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  270. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
  271. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  272. package/dist/esm/v2/patterns/FormikCombobox.js +51 -66
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +51 -99
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +136 -0
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  278. package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
  279. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
  280. package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
  281. package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
  282. package/dist/esm/v2/patterns/FormikFile.js +94 -78
  283. package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
  284. package/dist/esm/v2/patterns/FormikInput.js +40 -50
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +129 -0
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  288. package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
  289. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
  290. package/dist/esm/v2/patterns/FormikSelect.js +64 -84
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -43
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +64 -65
  295. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  296. package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
  297. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
  298. package/dist/esm/v2/patterns/PageContent.js +10 -14
  299. package/dist/esm/v2/patterns/PageContent.js.map +1 -1
  300. package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
  301. package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
  302. package/dist/esm/v2/patterns/ReferentielField.js +327 -312
  303. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
  304. package/dist/esm/v2/patterns/RowFavoriteToggle.js +127 -0
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  306. package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
  307. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
  308. package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
  309. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
  310. package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
  311. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
  312. package/dist/esm/v2/patterns/SortableHeader.js +22 -45
  313. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
  314. package/dist/esm/v2/patterns/Tour.js +94 -120
  315. package/dist/esm/v2/patterns/Tour.js.map +1 -1
  316. package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
  317. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
  318. package/dist/esm/v2/patterns/_pickerSerialisation.js +72 -0
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  320. package/dist/esm/v2/patterns/_sort.js +17 -33
  321. package/dist/esm/v2/patterns/_sort.js.map +1 -1
  322. package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
  323. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
  324. package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
  325. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
  326. package/dist/esm/v2/patterns/filterCriteria.js +102 -0
  327. package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
  328. package/dist/esm/v2/patterns/index.js +235 -0
  329. package/dist/esm/v2/patterns/index.js.map +1 -1
  330. package/dist/esm/v2/patterns/rowActions.js +223 -0
  331. package/dist/esm/v2/patterns/rowActions.js.map +1 -0
  332. package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
  333. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
  334. package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
  335. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
  336. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
  337. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  338. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
  339. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  340. package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
  341. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
  342. package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
  343. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
  344. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +203 -0
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  346. package/dist/esm/v2/personalization/capabilities/index.js +5 -0
  347. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
  348. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  349. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  350. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  351. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  352. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  353. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  354. package/dist/esm/v2/personalization/index.js +35 -0
  355. package/dist/esm/v2/personalization/index.js.map +1 -1
  356. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  357. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  358. package/dist/esm/v2/personalization/schema.js +8 -9
  359. package/dist/esm/v2/personalization/schema.js.map +1 -1
  360. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  361. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  362. package/dist/esm/v2/referentiel/types.js +2 -0
  363. package/dist/esm/v2/referentiel/types.js.map +1 -0
  364. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  365. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  367. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  368. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  369. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  370. package/dist/esm/v2/theme/_brand.js +8 -24
  371. package/dist/esm/v2/theme/_brand.js.map +1 -1
  372. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  373. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  374. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  375. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  376. package/dist/esm/v2/theme/cssVariables.js +62 -69
  377. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  378. package/dist/esm/v2/theme/index.js +5 -5
  379. package/dist/esm/v2/theme/index.js.map +1 -1
  380. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  381. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  382. package/dist/esm/v2/tokens/chart.js +261 -0
  383. package/dist/esm/v2/tokens/chart.js.map +1 -0
  384. package/dist/esm/v2/tokens/colors.js +22 -22
  385. package/dist/esm/v2/tokens/colors.js.map +1 -1
  386. package/dist/esm/v2/tokens/density.js +62 -7
  387. package/dist/esm/v2/tokens/density.js.map +1 -1
  388. package/dist/esm/v2/tokens/index.js +49 -34
  389. package/dist/esm/v2/tokens/index.js.map +1 -1
  390. package/dist/esm/v2/tokens/motion.js +12 -20
  391. package/dist/esm/v2/tokens/motion.js.map +1 -1
  392. package/dist/esm/v2/tokens/radius.js +1 -1
  393. package/dist/esm/v2/tokens/radius.js.map +1 -1
  394. package/dist/esm/v2/tokens/shadows.js +6 -6
  395. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  396. package/dist/esm/v2/tokens/spacing.js +2 -2
  397. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  398. package/dist/esm/v2/tokens/state.js +1 -1
  399. package/dist/esm/v2/tokens/state.js.map +1 -1
  400. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  401. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  402. package/dist/esm/v2/tokens/tokens.json +6 -1
  403. package/dist/esm/v2/tokens/typography.js +13 -13
  404. package/dist/esm/v2/tokens/typography.js.map +1 -1
  405. package/dist/esm/v2/tokens/zIndex.js +1 -1
  406. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  407. package/dist/esm/v2/types/datagrid.js.map +1 -1
  408. package/dist/esm/v2/utils/apiError.js +16 -37
  409. package/dist/esm/v2/utils/apiError.js.map +1 -1
  410. package/dist/esm/v2/utils/contrast.js +31 -32
  411. package/dist/esm/v2/utils/contrast.js.map +1 -1
  412. package/dist/esm/v2/utils/cx.js +5 -25
  413. package/dist/esm/v2/utils/cx.js.map +1 -1
  414. package/dist/esm/v2/utils/fileDownload.js +23 -26
  415. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  416. package/dist/esm/v2/utils/fileValidation.js +209 -0
  417. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtDate.js +111 -0
  419. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  420. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  421. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  422. package/dist/esm/v2/utils/formikErrors.js +78 -0
  423. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  424. package/dist/esm/v2/utils/index.js +35 -2
  425. package/dist/esm/v2/utils/index.js.map +1 -1
  426. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  427. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  428. package/dist/esm/v2/utils/networkStatus.js +12 -12
  429. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  430. package/dist/index.d.ts +9 -1
  431. package/dist/index.d.ts.map +1 -1
  432. package/dist/index.js +122 -47
  433. package/dist/index.js.map +1 -1
  434. package/dist/v2/__tests__/AppMain.test.js +133 -0
  435. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  436. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  437. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  438. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  439. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  440. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  441. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  442. package/dist/v2/__tests__/FieldError.test.js +98 -69
  443. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  444. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  445. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  446. package/dist/v2/__tests__/FieldWidth.test.js +148 -0
  447. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  448. package/dist/v2/__tests__/FileCard.test.js +45 -48
  449. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikCheckbox.test.js +175 -0
  451. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  452. package/dist/v2/__tests__/FormikDateTimePicker.test.js +237 -0
  453. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  455. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  456. package/dist/v2/__tests__/FormikRadioGroup.test.js +300 -0
  457. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  458. package/dist/v2/__tests__/MobileRowCard.test.js +100 -102
  459. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  460. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  461. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  462. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  463. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  464. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  465. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  466. package/dist/v2/__tests__/apiError.test.js +50 -69
  467. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  468. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  469. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  470. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  471. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  472. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  473. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  474. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  475. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  476. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  477. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  478. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  479. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  480. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  481. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  482. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  483. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  484. package/dist/v2/__tests__/labels-merge.test.js +38 -46
  485. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  486. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  487. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  488. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  489. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  490. package/dist/v2/__tests__/rowActions.test.js +186 -0
  491. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  493. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  494. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  495. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  496. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  497. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  498. package/dist/v2/components/Accordion.js +60 -82
  499. package/dist/v2/components/Accordion.js.map +1 -1
  500. package/dist/v2/components/ActionStrip.js +40 -52
  501. package/dist/v2/components/ActionStrip.js.map +1 -1
  502. package/dist/v2/components/Banner.js +42 -41
  503. package/dist/v2/components/Banner.js.map +1 -1
  504. package/dist/v2/components/Busy.js +22 -27
  505. package/dist/v2/components/Busy.js.map +1 -1
  506. package/dist/v2/components/Button.js +39 -50
  507. package/dist/v2/components/Button.js.map +1 -1
  508. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  509. package/dist/v2/components/CategoryTag.js +49 -32
  510. package/dist/v2/components/CategoryTag.js.map +1 -1
  511. package/dist/v2/components/Checkbox.js +39 -45
  512. package/dist/v2/components/Checkbox.js.map +1 -1
  513. package/dist/v2/components/Chip.js +29 -42
  514. package/dist/v2/components/Chip.js.map +1 -1
  515. package/dist/v2/components/Combobox.js +122 -144
  516. package/dist/v2/components/Combobox.js.map +1 -1
  517. package/dist/v2/components/CommandPalette.js +138 -225
  518. package/dist/v2/components/CommandPalette.js.map +1 -1
  519. package/dist/v2/components/ConfirmDialog.js +46 -56
  520. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  521. package/dist/v2/components/DatePicker.js +81 -86
  522. package/dist/v2/components/DatePicker.js.map +1 -1
  523. package/dist/v2/components/DateRangePicker.js +77 -87
  524. package/dist/v2/components/DateRangePicker.js.map +1 -1
  525. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  526. package/dist/v2/components/DateTimePicker.js +121 -95
  527. package/dist/v2/components/DateTimePicker.js.map +1 -1
  528. package/dist/v2/components/Drawer.d.ts.map +1 -1
  529. package/dist/v2/components/Drawer.js +93 -88
  530. package/dist/v2/components/Drawer.js.map +1 -1
  531. package/dist/v2/components/Dropzone.js +150 -196
  532. package/dist/v2/components/Dropzone.js.map +1 -1
  533. package/dist/v2/components/EmptyState.js +18 -20
  534. package/dist/v2/components/EmptyState.js.map +1 -1
  535. package/dist/v2/components/FavoriteToggle.js +28 -39
  536. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  537. package/dist/v2/components/Field.d.ts +121 -5
  538. package/dist/v2/components/Field.d.ts.map +1 -1
  539. package/dist/v2/components/Field.js +221 -62
  540. package/dist/v2/components/Field.js.map +1 -1
  541. package/dist/v2/components/FieldError.js +18 -21
  542. package/dist/v2/components/FieldError.js.map +1 -1
  543. package/dist/v2/components/FieldHelp.js +40 -60
  544. package/dist/v2/components/FieldHelp.js.map +1 -1
  545. package/dist/v2/components/FileCard.js +27 -31
  546. package/dist/v2/components/FileCard.js.map +1 -1
  547. package/dist/v2/components/FilterTab.js +30 -38
  548. package/dist/v2/components/FilterTab.js.map +1 -1
  549. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  550. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  551. package/dist/v2/components/ForbiddenPage.js +37 -17
  552. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  553. package/dist/v2/components/FormGrid.js +53 -59
  554. package/dist/v2/components/FormGrid.js.map +1 -1
  555. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  556. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  557. package/dist/v2/components/FormikDisplay.js +108 -33
  558. package/dist/v2/components/FormikDisplay.js.map +1 -1
  559. package/dist/v2/components/Input.d.ts +40 -0
  560. package/dist/v2/components/Input.d.ts.map +1 -1
  561. package/dist/v2/components/Input.js +81 -41
  562. package/dist/v2/components/Input.js.map +1 -1
  563. package/dist/v2/components/KPICard.js +57 -67
  564. package/dist/v2/components/KPICard.js.map +1 -1
  565. package/dist/v2/components/KPIStrip.js +16 -22
  566. package/dist/v2/components/KPIStrip.js.map +1 -1
  567. package/dist/v2/components/KV.js +25 -31
  568. package/dist/v2/components/KV.js.map +1 -1
  569. package/dist/v2/components/KVGrid.js +19 -26
  570. package/dist/v2/components/KVGrid.js.map +1 -1
  571. package/dist/v2/components/Layout.js +91 -120
  572. package/dist/v2/components/Layout.js.map +1 -1
  573. package/dist/v2/components/MobileRowCard.js +79 -91
  574. package/dist/v2/components/MobileRowCard.js.map +1 -1
  575. package/dist/v2/components/Modal.js +61 -69
  576. package/dist/v2/components/Modal.js.map +1 -1
  577. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  578. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  579. package/dist/v2/components/NetworkErrorPage.js +38 -21
  580. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  581. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  582. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  583. package/dist/v2/components/NotFoundPage.js +37 -18
  584. package/dist/v2/components/NotFoundPage.js.map +1 -1
  585. package/dist/v2/components/NumberInput.js +88 -118
  586. package/dist/v2/components/NumberInput.js.map +1 -1
  587. package/dist/v2/components/OverflowMenu.js +38 -56
  588. package/dist/v2/components/OverflowMenu.js.map +1 -1
  589. package/dist/v2/components/PdfViewer.js +34 -45
  590. package/dist/v2/components/PdfViewer.js.map +1 -1
  591. package/dist/v2/components/ProgressBar.js +42 -49
  592. package/dist/v2/components/ProgressBar.js.map +1 -1
  593. package/dist/v2/components/Radio.js +59 -67
  594. package/dist/v2/components/Radio.js.map +1 -1
  595. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  596. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  597. package/dist/v2/components/SectionHeader.js +34 -41
  598. package/dist/v2/components/SectionHeader.js.map +1 -1
  599. package/dist/v2/components/Segmented.js +69 -93
  600. package/dist/v2/components/Segmented.js.map +1 -1
  601. package/dist/v2/components/Select.d.ts +26 -2
  602. package/dist/v2/components/Select.d.ts.map +1 -1
  603. package/dist/v2/components/Select.js +120 -155
  604. package/dist/v2/components/Select.js.map +1 -1
  605. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  606. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  607. package/dist/v2/components/ServerErrorPage.js +37 -20
  608. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  609. package/dist/v2/components/Skeleton.js +86 -100
  610. package/dist/v2/components/Skeleton.js.map +1 -1
  611. package/dist/v2/components/SkipLink.js +9 -12
  612. package/dist/v2/components/SkipLink.js.map +1 -1
  613. package/dist/v2/components/Spinner.js +16 -25
  614. package/dist/v2/components/Spinner.js.map +1 -1
  615. package/dist/v2/components/Status.js +18 -29
  616. package/dist/v2/components/Status.js.map +1 -1
  617. package/dist/v2/components/Stepper.js +80 -82
  618. package/dist/v2/components/Stepper.js.map +1 -1
  619. package/dist/v2/components/Surface.js +34 -49
  620. package/dist/v2/components/Surface.js.map +1 -1
  621. package/dist/v2/components/Switch.js +29 -37
  622. package/dist/v2/components/Switch.js.map +1 -1
  623. package/dist/v2/components/TabPanel.d.ts +17 -0
  624. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  625. package/dist/v2/components/TabPanel.js +90 -0
  626. package/dist/v2/components/TabPanel.js.map +1 -0
  627. package/dist/v2/components/Tabs.d.ts +25 -0
  628. package/dist/v2/components/Tabs.d.ts.map +1 -1
  629. package/dist/v2/components/Tabs.js +53 -29
  630. package/dist/v2/components/Tabs.js.map +1 -1
  631. package/dist/v2/components/TelInput.js +80 -115
  632. package/dist/v2/components/TelInput.js.map +1 -1
  633. package/dist/v2/components/Textarea.js +26 -35
  634. package/dist/v2/components/Textarea.js.map +1 -1
  635. package/dist/v2/components/TimePicker.js +62 -74
  636. package/dist/v2/components/TimePicker.js.map +1 -1
  637. package/dist/v2/components/Toast.js +119 -174
  638. package/dist/v2/components/Toast.js.map +1 -1
  639. package/dist/v2/components/Tooltip.js +23 -38
  640. package/dist/v2/components/Tooltip.js.map +1 -1
  641. package/dist/v2/components/_ErrorPageBody.js +15 -16
  642. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  643. package/dist/v2/components/_pickerShared.js +5 -5
  644. package/dist/v2/components/_pickerShared.js.map +1 -1
  645. package/dist/v2/components/index.d.ts +67 -1
  646. package/dist/v2/components/index.d.ts.map +1 -1
  647. package/dist/v2/components/index.js +153 -136
  648. package/dist/v2/components/index.js.map +1 -1
  649. package/dist/v2/hooks/index.d.ts +65 -0
  650. package/dist/v2/hooks/index.d.ts.map +1 -1
  651. package/dist/v2/hooks/index.js +63 -24
  652. package/dist/v2/hooks/index.js.map +1 -1
  653. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  654. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  655. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  656. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  657. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  658. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  659. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  660. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  661. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  662. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  663. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  664. package/dist/v2/hooks/useDensity.js +14 -18
  665. package/dist/v2/hooks/useDensity.js.map +1 -1
  666. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  667. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  668. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  669. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  670. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  671. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  672. package/dist/v2/hooks/useFocusTrap.js +20 -24
  673. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  674. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  675. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  676. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  677. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  678. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  679. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  680. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  681. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  682. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  683. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  684. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  685. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  687. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  688. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  689. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  690. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  691. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  692. package/dist/v2/hooks/useSortedRows.js +4 -6
  693. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  694. package/dist/v2/hooks/useTabLoading.js +7 -22
  695. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  696. package/dist/v2/index.d.ts.map +1 -1
  697. package/dist/v2/index.js +143 -145
  698. package/dist/v2/index.js.map +1 -1
  699. package/dist/v2/modalContext.js +2 -2
  700. package/dist/v2/modalContext.js.map +1 -1
  701. package/dist/v2/models/favorite.d.ts +8 -9
  702. package/dist/v2/models/favorite.d.ts.map +1 -1
  703. package/dist/v2/models/favorite.js.map +1 -1
  704. package/dist/v2/models/index.js +4 -4
  705. package/dist/v2/models/index.js.map +1 -1
  706. package/dist/v2/models/personalization.d.ts +44 -48
  707. package/dist/v2/models/personalization.d.ts.map +1 -1
  708. package/dist/v2/models/personalization.js.map +1 -1
  709. package/dist/v2/models/referentiel.d.ts +32 -50
  710. package/dist/v2/models/referentiel.d.ts.map +1 -1
  711. package/dist/v2/models/referentiel.js.map +1 -1
  712. package/dist/v2/models/savedFilter.d.ts +8 -17
  713. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  714. package/dist/v2/models/savedFilter.js.map +1 -1
  715. package/dist/v2/patterns/ActionBar.js +152 -187
  716. package/dist/v2/patterns/ActionBar.js.map +1 -1
  717. package/dist/v2/patterns/AppMain.d.ts +109 -0
  718. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  719. package/dist/v2/patterns/AppMain.js +115 -0
  720. package/dist/v2/patterns/AppMain.js.map +1 -0
  721. package/dist/v2/patterns/BulkActionBar.js +40 -42
  722. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  723. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  724. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  725. package/dist/v2/patterns/ChartFigure.js +159 -0
  726. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  727. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  728. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  729. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  730. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  731. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGrid.js +262 -297
  733. package/dist/v2/patterns/DataGrid.js.map +1 -1
  734. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  735. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  736. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  737. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  738. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  739. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  740. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  741. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  742. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  743. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  744. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  745. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  746. package/dist/v2/patterns/DetailSplit.js +116 -0
  747. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  748. package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
  749. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  750. package/dist/v2/patterns/FavoriteColumn.js +32 -80
  751. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  752. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  753. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  754. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  755. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  756. package/dist/v2/patterns/FilterTabBar.js +120 -0
  757. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  758. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  759. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  760. package/dist/v2/patterns/FormPageShell.js +53 -50
  761. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  762. package/dist/v2/patterns/FormSection.d.ts +8 -3
  763. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormSection.js +44 -51
  765. package/dist/v2/patterns/FormSection.js.map +1 -1
  766. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  767. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  768. package/dist/v2/patterns/FormikCheckbox.js +138 -0
  769. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  770. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  771. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  772. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  773. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  774. package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
  775. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  776. package/dist/v2/patterns/FormikCombobox.js +55 -69
  777. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  778. package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
  779. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikDatePicker.js +59 -106
  781. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  782. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  783. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  784. package/dist/v2/patterns/FormikDateTimePicker.js +144 -0
  785. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  786. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  787. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  788. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  789. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  790. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  791. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  792. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  793. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  794. package/dist/v2/patterns/FormikFile.js +99 -83
  795. package/dist/v2/patterns/FormikFile.js.map +1 -1
  796. package/dist/v2/patterns/FormikInput.d.ts +11 -1
  797. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  798. package/dist/v2/patterns/FormikInput.js +45 -55
  799. package/dist/v2/patterns/FormikInput.js.map +1 -1
  800. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  801. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  802. package/dist/v2/patterns/FormikRadioGroup.js +137 -0
  803. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  804. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  805. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  807. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/FormikSelect.d.ts +9 -1
  809. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  810. package/dist/v2/patterns/FormikSelect.js +70 -89
  811. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  812. package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
  813. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  814. package/dist/v2/patterns/FormikTextarea.js +35 -48
  815. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  816. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
  817. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  818. package/dist/v2/patterns/KeyboardShortcutsHelp.js +71 -74
  819. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  820. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  821. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  822. package/dist/v2/patterns/PageContent.js +17 -20
  823. package/dist/v2/patterns/PageContent.js.map +1 -1
  824. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  825. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  826. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  827. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  828. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  829. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  830. package/dist/v2/patterns/ReferentielField.js +347 -327
  831. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  832. package/dist/v2/patterns/RowFavoriteToggle.d.ts +98 -0
  833. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  834. package/dist/v2/patterns/RowFavoriteToggle.js +135 -0
  835. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  836. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  837. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  838. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  839. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  840. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  841. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  842. package/dist/v2/patterns/SortableHeader.js +35 -57
  843. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  844. package/dist/v2/patterns/Tour.js +121 -142
  845. package/dist/v2/patterns/Tour.js.map +1 -1
  846. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  847. package/dist/v2/patterns/_dataGridShared.js +131 -147
  848. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  849. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  850. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  851. package/dist/v2/patterns/_pickerSerialisation.js +80 -0
  852. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  853. package/dist/v2/patterns/_sort.js +17 -33
  854. package/dist/v2/patterns/_sort.js.map +1 -1
  855. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  856. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  857. package/dist/v2/patterns/_useColumnResize.js +80 -99
  858. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  859. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  860. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  861. package/dist/v2/patterns/filterCriteria.js +110 -0
  862. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  863. package/dist/v2/patterns/index.d.ts +247 -0
  864. package/dist/v2/patterns/index.d.ts.map +1 -1
  865. package/dist/v2/patterns/index.js +182 -70
  866. package/dist/v2/patterns/index.js.map +1 -1
  867. package/dist/v2/patterns/rowActions.d.ts +150 -0
  868. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  869. package/dist/v2/patterns/rowActions.js +232 -0
  870. package/dist/v2/patterns/rowActions.js.map +1 -0
  871. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  872. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  873. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  874. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  875. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  876. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  877. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  878. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  879. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  880. package/dist/v2/personalization/adapters/index.js +5 -5
  881. package/dist/v2/personalization/adapters/index.js.map +1 -1
  882. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  883. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  884. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  885. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  886. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  887. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  888. package/dist/v2/personalization/capabilities/gridPreferences.js +210 -0
  889. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  890. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  891. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  892. package/dist/v2/personalization/capabilities/index.js +23 -10
  893. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  894. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  895. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  896. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  897. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  898. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  899. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  900. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  901. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  902. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  903. package/dist/v2/personalization/index.d.ts +34 -0
  904. package/dist/v2/personalization/index.d.ts.map +1 -1
  905. package/dist/v2/personalization/index.js +41 -21
  906. package/dist/v2/personalization/index.js.map +1 -1
  907. package/dist/v2/personalization/personalizationContext.js +10 -12
  908. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  909. package/dist/v2/personalization/schema.js +8 -9
  910. package/dist/v2/personalization/schema.js.map +1 -1
  911. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  912. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  913. package/dist/v2/referentiel/index.js +11 -13
  914. package/dist/v2/referentiel/index.js.map +1 -1
  915. package/dist/v2/referentiel/types.d.ts +105 -0
  916. package/dist/v2/referentiel/types.d.ts.map +1 -0
  917. package/dist/v2/referentiel/types.js +6 -0
  918. package/dist/v2/referentiel/types.js.map +1 -0
  919. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  920. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  921. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  922. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  923. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  924. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  925. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  926. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  927. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  928. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  929. package/dist/v2/theme/_brand.js +12 -26
  930. package/dist/v2/theme/_brand.js.map +1 -1
  931. package/dist/v2/theme/_brandSecondary.js +12 -26
  932. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  933. package/dist/v2/theme/createPortnetTheme.js +41 -49
  934. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  935. package/dist/v2/theme/cssVariables.d.ts +3 -3
  936. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  937. package/dist/v2/theme/cssVariables.js +65 -70
  938. package/dist/v2/theme/cssVariables.js.map +1 -1
  939. package/dist/v2/theme/index.js +10 -10
  940. package/dist/v2/theme/index.js.map +1 -1
  941. package/dist/v2/tokens/breakpoints.js +16 -16
  942. package/dist/v2/tokens/breakpoints.js.map +1 -1
  943. package/dist/v2/tokens/chart.d.ts +103 -0
  944. package/dist/v2/tokens/chart.d.ts.map +1 -0
  945. package/dist/v2/tokens/chart.js +270 -0
  946. package/dist/v2/tokens/chart.js.map +1 -0
  947. package/dist/v2/tokens/colors.js +24 -24
  948. package/dist/v2/tokens/colors.js.map +1 -1
  949. package/dist/v2/tokens/density.d.ts +104 -0
  950. package/dist/v2/tokens/density.d.ts.map +1 -1
  951. package/dist/v2/tokens/density.js +67 -12
  952. package/dist/v2/tokens/density.js.map +1 -1
  953. package/dist/v2/tokens/index.d.ts +50 -1
  954. package/dist/v2/tokens/index.d.ts.map +1 -1
  955. package/dist/v2/tokens/index.js +116 -68
  956. package/dist/v2/tokens/index.js.map +1 -1
  957. package/dist/v2/tokens/motion.js +16 -22
  958. package/dist/v2/tokens/motion.js.map +1 -1
  959. package/dist/v2/tokens/radius.js +3 -3
  960. package/dist/v2/tokens/radius.js.map +1 -1
  961. package/dist/v2/tokens/shadows.js +8 -8
  962. package/dist/v2/tokens/shadows.js.map +1 -1
  963. package/dist/v2/tokens/spacing.js +4 -4
  964. package/dist/v2/tokens/spacing.js.map +1 -1
  965. package/dist/v2/tokens/state.js +3 -3
  966. package/dist/v2/tokens/state.js.map +1 -1
  967. package/dist/v2/tokens/statusPalette.js +21 -23
  968. package/dist/v2/tokens/statusPalette.js.map +1 -1
  969. package/dist/v2/tokens/tokens.json +6 -1
  970. package/dist/v2/tokens/typography.js +15 -15
  971. package/dist/v2/tokens/typography.js.map +1 -1
  972. package/dist/v2/tokens/zIndex.js +3 -3
  973. package/dist/v2/tokens/zIndex.js.map +1 -1
  974. package/dist/v2/types/datagrid.d.ts +9 -1
  975. package/dist/v2/types/datagrid.d.ts.map +1 -1
  976. package/dist/v2/types/datagrid.js.map +1 -1
  977. package/dist/v2/types/index.js +2 -2
  978. package/dist/v2/types/index.js.map +1 -1
  979. package/dist/v2/utils/apiError.js +16 -37
  980. package/dist/v2/utils/apiError.js.map +1 -1
  981. package/dist/v2/utils/contrast.js +31 -32
  982. package/dist/v2/utils/contrast.js.map +1 -1
  983. package/dist/v2/utils/cx.js +7 -27
  984. package/dist/v2/utils/cx.js.map +1 -1
  985. package/dist/v2/utils/fileDownload.js +25 -28
  986. package/dist/v2/utils/fileDownload.js.map +1 -1
  987. package/dist/v2/utils/fileValidation.d.ts +116 -0
  988. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  989. package/dist/v2/utils/fileValidation.js +220 -0
  990. package/dist/v2/utils/fileValidation.js.map +1 -0
  991. package/dist/v2/utils/fmtDate.d.ts +103 -0
  992. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  993. package/dist/v2/utils/fmtDate.js +119 -0
  994. package/dist/v2/utils/fmtDate.js.map +1 -0
  995. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  996. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  997. package/dist/v2/utils/fmtMoney.js +9 -11
  998. package/dist/v2/utils/fmtMoney.js.map +1 -1
  999. package/dist/v2/utils/formikErrors.d.ts +67 -0
  1000. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  1001. package/dist/v2/utils/formikErrors.js +85 -0
  1002. package/dist/v2/utils/formikErrors.js.map +1 -0
  1003. package/dist/v2/utils/index.d.ts +5 -0
  1004. package/dist/v2/utils/index.d.ts.map +1 -1
  1005. package/dist/v2/utils/index.js +67 -18
  1006. package/dist/v2/utils/index.js.map +1 -1
  1007. package/dist/v2/utils/mergeLabels.js +9 -14
  1008. package/dist/v2/utils/mergeLabels.js.map +1 -1
  1009. package/dist/v2/utils/networkStatus.js +14 -14
  1010. package/dist/v2/utils/networkStatus.js.map +1 -1
  1011. package/package.json +26 -9
@@ -1 +1 @@
1
- {"version":3,"file":"FormikFile.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Dropzone","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","iter","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","toString","slice","constructor","name","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","err","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","DEFAULT_COMPANION_FIELDS","freeze","ext","size","type","toDropzoneShape","file","File","id","FormikFile","_ref","label","accept","maxSize","required","disabled","_ref$mode","mode","_ref$companionFields","companionFields","rest","_useField","useField","_useField2","field","meta","_useFormikContext","useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","isBulk","map","x","writeCompanions","split","pop","handleAdd","files","merged","concat","handleRemove","remaining","f","jsx","children","multiple","onAdd","onRemove","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikFile.tsx"],"sourcesContent":["/**\r\n * FormikFile — bridge between Formik state and v2.Dropzone.\r\n *\r\n * Two modes:\r\n * - mode=\"single\" (default): File or null in Formik. Writes\r\n * companion metadata fields (extension/size/type/name) on\r\n * add; clears them on remove.\r\n * - mode=\"bulk\": File[] in Formik. No companion writes.\r\n *\r\n * Companion-field naming defaults to ms-ti-fe convention\r\n * (fileExtension / fileSize / fileType / nom). Override with\r\n * `companionFields` prop if your module differs.\r\n *\r\n * v2.Dropzone contract used:\r\n * - value: [{id, name, size}]\r\n * - onAdd(File[]): receives accepted files (already validated)\r\n * - onRemove(id): receives the id of the entry to remove\r\n *\r\n * Charter R-FU.*. Peer dep: formik >= 2.x.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Dropzone from \"../components/Dropzone\";\r\nimport type { DropzoneFile, DropzoneProps } from \"../components/Dropzone\";\r\n\r\nexport type FormikFileMode = \"single\" | \"bulk\";\r\n\r\nexport interface FormikFileCompanionFields {\r\n ext: string;\r\n size: string;\r\n type: string;\r\n name: string;\r\n}\r\n\r\nexport interface FormikFileProps\r\n extends Omit<\r\n DropzoneProps,\r\n \"value\" | \"onAdd\" | \"onRemove\" | \"multiple\" | \"accept\" | \"maxSize\" | \"hint\" | \"disabled\" | \"label\"\r\n > {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n hint?: React.ReactNode | undefined;\r\n accept?: string | undefined;\r\n maxSize?: number | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n mode?: FormikFileMode | undefined;\r\n companionFields?: FormikFileCompanionFields | undefined;\r\n}\r\n\r\nconst DEFAULT_COMPANION_FIELDS: FormikFileCompanionFields = Object.freeze({\r\n ext: \"fileExtension\",\r\n size: \"fileSize\",\r\n type: \"fileType\",\r\n name: \"nom\",\r\n});\r\n\r\n/* v2.Dropzone displays a row per entry in `value`. We synthesise\r\n the row shape from the File object held in Formik. We use\r\n `file.name` as the id since File has no stable identifier of\r\n its own — Dropzone passes this id back to onRemove. */\r\nconst toDropzoneShape = (file: unknown): DropzoneFile | null => {\r\n if (file == null || !(file instanceof File)) return null;\r\n return { id: file.name, name: file.name, size: file.size };\r\n};\r\n\r\nconst FormikFile = ({\r\n name,\r\n label,\r\n hint,\r\n accept,\r\n maxSize,\r\n required,\r\n disabled,\r\n mode = \"single\",\r\n companionFields = DEFAULT_COMPANION_FIELDS,\r\n ...rest\r\n}: FormikFileProps) => {\r\n const [field, meta] = useField(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n const isBulk = mode === \"bulk\";\r\n\r\n const value: DropzoneFile[] = (\r\n isBulk\r\n ? (Array.isArray(field.value) ? field.value : []).map(toDropzoneShape)\r\n : field.value instanceof File\r\n ? [toDropzoneShape(field.value)]\r\n : []\r\n ).filter((x): x is DropzoneFile => x != null);\r\n\r\n const writeCompanions = (file: File | null) => {\r\n if (isBulk) return;\r\n setFieldValue(companionFields.ext, file ? file.name.split(\".\").pop() : \"\");\r\n setFieldValue(companionFields.size, file ? file.size : null);\r\n setFieldValue(companionFields.type, file ? file.type : \"\");\r\n setFieldValue(companionFields.name, file ? file.name : \"\");\r\n };\r\n\r\n const handleAdd = (files: File[]) => {\r\n if (!files || files.length === 0) return;\r\n if (isBulk) {\r\n const merged = [\r\n ...(Array.isArray(field.value) ? field.value : []),\r\n ...files,\r\n ];\r\n setFieldValue(name, merged);\r\n setFieldTouched(name, true, false);\r\n } else {\r\n const file = files[0];\r\n setFieldValue(name, file);\r\n writeCompanions(file ?? null);\r\n setFieldTouched(name, true, false);\r\n }\r\n };\r\n\r\n /* Dropzone calls onRemove(id). In single mode the id was the\r\n File's name; in bulk mode we filter by the same key. */\r\n const handleRemove = (id: string | number) => {\r\n if (isBulk) {\r\n const remaining = (Array.isArray(field.value) ? field.value : []).filter(\r\n (f) => f.name !== id\r\n );\r\n setFieldValue(name, remaining);\r\n } else {\r\n setFieldValue(name, null);\r\n writeCompanions(null);\r\n }\r\n };\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n >\r\n <Dropzone\r\n multiple={isBulk}\r\n value={value}\r\n hint={hint}\r\n onAdd={handleAdd}\r\n onRemove={handleRemove}\r\n {...rest}\r\n {...(accept !== undefined ? { accept } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n {...(maxSize !== undefined ? { maxSize } : {})}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikFile;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormikFile.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Dropzone","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_COMPANION_FIELDS","freeze","ext","size","type","name","FILE_IDS","fileIdSeq","idFor","file","existing","undefined","id","toDropzoneShape","File","FormikFile","label","hint","accept","maxSize","required","disabled","mode","companionFields","htmlFor","rest","field","meta","useField","setFieldValue","setFieldTouched","useFormikContext","hasError","Boolean","touched","error","isBulk","value","Array","isArray","map","filter","x","writeCompanions","split","pop","handleAdd","files","length","merged","handleRemove","remaining","jsx","children","multiple","onAdd","onRemove","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikFile.tsx"],"sourcesContent":["/**\r\n * FormikFile — bridge between Formik state and v2.Dropzone.\r\n *\r\n * Two modes:\r\n * - mode=\"single\" (default): File or null in Formik. Writes\r\n * companion metadata fields (extension/size/type/name) on\r\n * add; clears them on remove.\r\n * - mode=\"bulk\": File[] in Formik. No companion writes.\r\n *\r\n * Companion-field naming defaults to ms-ti-fe convention\r\n * (fileExtension / fileSize / fileType / nom). Override with\r\n * `companionFields` prop if your module differs.\r\n *\r\n * v2.Dropzone contract used:\r\n * - value: [{id, name, size}]\r\n * - onAdd(File[]): receives accepted files (already validated)\r\n * - onRemove(id): receives the id of the entry to remove\r\n *\r\n * Charter R-FU.*. Peer dep: formik >= 2.x.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Dropzone from \"../components/Dropzone\";\r\nimport type { DropzoneFile, DropzoneProps } from \"../components/Dropzone\";\r\n\r\nexport type FormikFileMode = \"single\" | \"bulk\";\r\n\r\nexport interface FormikFileCompanionFields {\r\n ext: string;\r\n size: string;\r\n type: string;\r\n name: string;\r\n}\r\n\r\nexport interface FormikFileProps\r\n extends Omit<\r\n DropzoneProps,\r\n \"value\" | \"onAdd\" | \"onRemove\" | \"multiple\" | \"accept\" | \"maxSize\" | \"hint\" | \"disabled\" | \"label\"\r\n > {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n hint?: React.ReactNode | undefined;\r\n accept?: string | undefined;\r\n maxSize?: number | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n mode?: FormikFileMode | undefined;\r\n companionFields?: FormikFileCompanionFields | undefined;\r\n /**\r\n * Id given to the control, and the target of the label's `htmlFor`.\r\n * Defaults to `name` (P-2).\r\n *\r\n * This is what makes the field reachable by `focusFieldByName`, and so by\r\n * `FormikErrorFocus` after a failed submit (R-F.3). Without it Field falls\r\n * back to a `useId` value — stable, but not derivable from the field name,\r\n * so [id=…] cannot be resolved and the field is silently skipped.\r\n *\r\n * Override only if the id must match something external, and keep it in\r\n * step with FormikErrorFocus's `order`, which addresses fields by `name`.\r\n */\r\n htmlFor?: string | undefined;\r\n}\r\n\r\nconst DEFAULT_COMPANION_FIELDS: FormikFileCompanionFields = Object.freeze({\r\n ext: \"fileExtension\",\r\n size: \"fileSize\",\r\n type: \"fileType\",\r\n name: \"nom\",\r\n});\r\n\r\n/* ── Surrogate file ids (defect D-2) ──────────────────────────────────\r\n *\r\n * A File carries no stable identifier, and this bridge previously used\r\n * `file.name` as the Dropzone entry id — with `handleRemove` filtering the\r\n * array by that same name. Two files called \"facture.pdf\" therefore shared a\r\n * React key AND removing either one removed BOTH, silently.\r\n *\r\n * That is not an edge case: scans, exports and generated documents routinely\r\n * arrive with generic names, so a user attaching two scans from different\r\n * folders hits it immediately. A host could not work around it either, since\r\n * the id was synthesised in here with nowhere to inject a key.\r\n *\r\n * A WeakMap keyed by the File OBJECT fixes all of it:\r\n * - two files with the same name are different objects → different ids;\r\n * - the same File across re-renders is the same object → the same id, so\r\n * React keys stay stable and rows do not remount while uploading;\r\n * - entries die with the File, so there is nothing to clean up.\r\n *\r\n * The id is opaque to Dropzone (it hands it straight back to onRemove) and is\r\n * session-scoped — never persisted, never sent anywhere.\r\n */\r\nconst FILE_IDS = new WeakMap<File, string>();\r\nlet fileIdSeq = 0;\r\n\r\nconst idFor = (file: File): string => {\r\n const existing = FILE_IDS.get(file);\r\n if (existing !== undefined) return existing;\r\n fileIdSeq += 1;\r\n const id = `pui-file-${fileIdSeq}`;\r\n FILE_IDS.set(file, id);\r\n return id;\r\n};\r\n\r\n/* v2.Dropzone displays a row per entry in `value`. We synthesise the row\r\n shape from the File held in Formik, with a surrogate id (see above). */\r\nconst toDropzoneShape = (file: unknown): DropzoneFile | null => {\r\n if (file == null || !(file instanceof File)) return null;\r\n return { id: idFor(file), name: file.name, size: file.size };\r\n};\r\n\r\nconst FormikFile = ({\r\n name,\r\n label,\r\n hint,\r\n accept,\r\n maxSize,\r\n required,\r\n disabled,\r\n mode = \"single\",\r\n companionFields = DEFAULT_COMPANION_FIELDS,\r\n htmlFor,\r\n ...rest\r\n}: FormikFileProps) => {\r\n const [field, meta] = useField(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n const isBulk = mode === \"bulk\";\r\n\r\n const value: DropzoneFile[] = (\r\n isBulk\r\n ? (Array.isArray(field.value) ? field.value : []).map(toDropzoneShape)\r\n : field.value instanceof File\r\n ? [toDropzoneShape(field.value)]\r\n : []\r\n ).filter((x): x is DropzoneFile => x != null);\r\n\r\n const writeCompanions = (file: File | null) => {\r\n if (isBulk) return;\r\n setFieldValue(companionFields.ext, file ? file.name.split(\".\").pop() : \"\");\r\n setFieldValue(companionFields.size, file ? file.size : null);\r\n setFieldValue(companionFields.type, file ? file.type : \"\");\r\n setFieldValue(companionFields.name, file ? file.name : \"\");\r\n };\r\n\r\n const handleAdd = (files: File[]) => {\r\n if (!files || files.length === 0) return;\r\n if (isBulk) {\r\n const merged = [\r\n ...(Array.isArray(field.value) ? field.value : []),\r\n ...files,\r\n ];\r\n setFieldValue(name, merged);\r\n setFieldTouched(name, true, false);\r\n } else {\r\n const file = files[0];\r\n setFieldValue(name, file);\r\n writeCompanions(file ?? null);\r\n setFieldTouched(name, true, false);\r\n }\r\n };\r\n\r\n /* Dropzone calls onRemove(id) with the surrogate id issued above. In bulk\r\n mode we resolve each entry through the same WeakMap so two files sharing\r\n a name are distinguished; non-File entries are left untouched, preserving\r\n the defensive tolerance for a malformed array. */\r\n const handleRemove = (id: string | number) => {\r\n if (isBulk) {\r\n const remaining = (Array.isArray(field.value) ? field.value : []).filter(\r\n (f) => !(f instanceof File) || idFor(f) !== id\r\n );\r\n setFieldValue(name, remaining);\r\n } else {\r\n setFieldValue(name, null);\r\n writeCompanions(null);\r\n }\r\n };\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n /* P-2 — a predictable id, so focusFieldByName can resolve [id=…] and\r\n FormikErrorFocus can reach this field after a failed submit. Matches\r\n FormikInput / FormikSelect / FormikCombobox. */\r\n htmlFor={htmlFor || name}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n >\r\n <Dropzone\r\n multiple={isBulk}\r\n value={value}\r\n hint={hint}\r\n onAdd={handleAdd}\r\n onRemove={handleRemove}\r\n {...rest}\r\n {...(accept !== undefined ? { accept } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n {...(maxSize !== undefined ? { maxSize } : {})}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikFile;\r\n"],"mappings":"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","ignoreList":[]}
@@ -54,6 +54,7 @@
54
54
  * (dependency not yet chosen) must not be presented as settled information.
55
55
  */
56
56
  import * as React from "react";
57
+ import type { FieldWidth } from "../components/Field";
57
58
  import type { InputProps } from "../components/Input";
58
59
  export interface FormikInputProps extends Omit<InputProps, "name" | "value" | "onChange" | "onBlur" | "label" | "required" | "disabled" | "error"> {
59
60
  name: string;
@@ -66,7 +67,16 @@ export interface FormikInputProps extends Omit<InputProps, "name" | "value" | "o
66
67
  mono?: boolean | undefined;
67
68
  htmlFor?: string | undefined;
68
69
  hint?: React.ReactNode | undefined;
70
+ /**
71
+ * Gabarit de largeur semantique (G-H), d'apres la contrainte de CARACTERES
72
+ * du champ. Relaye a `Field`, qui en fait un plafond a partir de `sm`.
73
+ *
74
+ * NE S'APPLIQUE PAS en mode `readOnly` : c'est alors `FormikDisplay` qui est
75
+ * rendu, et il possede sa propre boite. A revoir si un ecran de consultation
76
+ * en a besoin.
77
+ */
78
+ width?: FieldWidth | undefined;
69
79
  }
70
- declare const FormikInput: ({ name, label, required, disabled, readOnly, mono, htmlFor, hint, ...rest }: FormikInputProps) => React.JSX.Element;
80
+ declare const FormikInput: ({ name, label, required, disabled, readOnly, mono, htmlFor, hint, width, ...rest }: FormikInputProps) => React.JSX.Element;
71
81
  export default FormikInput;
72
82
  //# sourceMappingURL=FormikInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormikInput.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,gBACf,SAAQ,IAAI,CACV,UAAU,EACV,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CACvF;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;CACpC;AAED,QAAA,MAAM,WAAW,GAAI,6EAUlB,gBAAgB,sBAoClB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"FormikInput.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,WAAW,gBACf,SAAQ,IAAI,CACV,UAAU,EACV,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CACvF;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,sEAAsE;IACtE,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAChC;AAED,QAAA,MAAM,WAAW,GAAI,oFAWlB,gBAAgB,sBAqClB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -1,17 +1,17 @@
1
1
  "use strict";
2
2
 
3
- 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); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports["default"] = void 0;
6
+ exports.default = void 0;
8
7
  var React = _interopRequireWildcard(require("react"));
9
8
  var _formik = require("formik");
10
9
  var _Field = _interopRequireDefault(require("../components/Field"));
11
10
  var _Input = _interopRequireDefault(require("../components/Input"));
12
11
  var _FormikDisplay = _interopRequireDefault(require("../components/FormikDisplay"));
13
12
  var _jsxRuntime = require("react/jsx-runtime");
14
- var _excluded = ["name", "label", "required", "disabled", "readOnly", "mono", "htmlFor", "hint"];
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
15
  /**
16
16
  * FormikInput — bridge between Formik state and v2.Field + v2.Input.
17
17
  *
@@ -67,69 +67,59 @@ var _excluded = ["name", "label", "required", "disabled", "readOnly", "mono", "h
67
67
  * `disabled` wins when both are passed: a field that is genuinely unavailable
68
68
  * (dependency not yet chosen) must not be presented as settled information.
69
69
  */
70
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
71
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
72
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
73
- 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; }
74
- 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; }
75
- 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; }
76
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
77
- 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); }
78
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
79
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
80
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
81
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
82
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
83
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
84
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
85
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
86
- var FormikInput = function FormikInput(_ref) {
87
- var _field$value;
88
- var name = _ref.name,
89
- label = _ref.label,
90
- required = _ref.required,
91
- disabled = _ref.disabled,
92
- readOnly = _ref.readOnly,
93
- mono = _ref.mono,
94
- htmlFor = _ref.htmlFor,
95
- hint = _ref.hint,
96
- rest = _objectWithoutProperties(_ref, _excluded);
97
- var _useField = (0, _formik.useField)(name),
98
- _useField2 = _slicedToArray(_useField, 2),
99
- field = _useField2[0],
100
- meta = _useField2[1];
101
- var hasError = Boolean(meta.touched && meta.error);
70
+
71
+ const FormikInput = ({
72
+ name,
73
+ label,
74
+ required,
75
+ disabled,
76
+ readOnly,
77
+ mono,
78
+ htmlFor,
79
+ hint,
80
+ width,
81
+ ...rest
82
+ }) => {
83
+ const [field, meta] = (0, _formik.useField)(name);
84
+ const hasError = Boolean(meta.touched && meta.error);
102
85
 
103
86
  /* Read-only display. `disabled` takes precedence deliberately — see header.
104
87
  * `required` is dropped: an asterisk on information the user cannot supply is
105
88
  * noise, and validation cannot fire on a field with no input. */
106
89
  if (readOnly && !disabled) {
107
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDisplay["default"], _objectSpread(_objectSpread({
90
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FormikDisplay.default, {
108
91
  name: name,
109
- label: label
110
- }, hint !== undefined ? {
111
- hint: hint
112
- } : {}), mono !== undefined ? {
113
- mono: mono
114
- } : {}));
92
+ label: label,
93
+ ...(hint !== undefined ? {
94
+ hint
95
+ } : {}),
96
+ ...(mono !== undefined ? {
97
+ mono
98
+ } : {})
99
+ });
115
100
  }
116
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field["default"], _objectSpread(_objectSpread(_objectSpread({
101
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.default, {
117
102
  label: label,
118
103
  error: hasError ? meta.error : null,
119
104
  hint: !hasError ? hint : undefined,
120
- htmlFor: htmlFor || name
121
- }, required !== undefined ? {
122
- required: required
123
- } : {}), disabled !== undefined ? {
124
- disabled: disabled
125
- } : {}), {}, {
126
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input["default"], _objectSpread({
105
+ htmlFor: htmlFor || name,
106
+ ...(required !== undefined ? {
107
+ required
108
+ } : {}),
109
+ ...(disabled !== undefined ? {
110
+ disabled
111
+ } : {}),
112
+ ...(width !== undefined ? {
113
+ width
114
+ } : {}),
115
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input.default, {
127
116
  name: field.name,
128
- value: (_field$value = field.value) !== null && _field$value !== void 0 ? _field$value : "",
117
+ value: field.value ?? "",
129
118
  onChange: field.onChange,
130
- onBlur: field.onBlur
131
- }, rest))
132
- }));
119
+ onBlur: field.onBlur,
120
+ ...rest
121
+ })
122
+ });
133
123
  };
134
- var _default = exports["default"] = FormikInput;
124
+ var _default = exports.default = FormikInput;
135
125
  //# sourceMappingURL=FormikInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormikInput.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Input","_FormikDisplay","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","FormikInput","_ref","_field$value","label","required","disabled","readOnly","mono","htmlFor","rest","_useField","useField","_useField2","field","meta","hasError","Boolean","touched","error","jsx","children","onChange","onBlur","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikInput.tsx"],"sourcesContent":["/**\r\n * FormikInput — bridge between Formik state and v2.Field + v2.Input.\r\n *\r\n * Charter §03 / R-I.1 → R-I.6. Replaces the inline copy of this\r\n * bridge that consumer modules previously duplicated.\r\n *\r\n * Peer dependency: `formik` >= 2.x must be installed in the host\r\n * module. The lib does not bundle Formik.\r\n *\r\n * Usage:\r\n *\r\n * import { FormikInput } from \"@portnet/ui/lib/v2\";\r\n *\r\n * <FormikInput\r\n * name=\"numeroRc\"\r\n * label=\"Numéro RC\"\r\n * required\r\n * inputProps={{ maxLength: 20 }}\r\n * />\r\n *\r\n * Error semantics: errors surface only after the field is\r\n * touched (first blur). This matches Charter R-I.4 — do not\r\n * shout at the user on every keystroke.\r\n *\r\n * ── `readOnly` vs `disabled` ─────────────────────────────────────────\r\n *\r\n * <FormikInput name=\"raison\" label=\"Raison sociale\" readOnly={isDetail} />\r\n *\r\n * `readOnly` renders the value through `FormikDisplay` — grey panel, no input\r\n * chrome, selectable text. `disabled` keeps an input and greys it out.\r\n *\r\n * THE TWO ARE NOT INTERCHANGEABLE, and modules had only `disabled`. Consumers\r\n * that reuse ONE form for create, edit AND consultation were therefore passing\r\n * `disabled={readOnly}` on every field, so a detail page rendered ~100 greyed\r\n * INPUTS. That is the wrong affordance: a disabled control means \"temporarily\r\n * unavailable, may become editable\", not \"this is information\". Reported from\r\n * amssnur-ui testing across its whole demande form.\r\n *\r\n * Note WCAG does NOT forbid the old behaviour — SC 1.4.3 exempts \"text that is\r\n * part of an inactive user interface component\" from contrast requirements. So\r\n * this is a Charter and affordance defect, not an accessibility violation. But\r\n * `FormikDisplay` is measurably better anyway: its own audit records 7.52:1\r\n * (AAA) for `--fg-muted` on `--bg-subtle`, against roughly 2.9:1 for MUI's\r\n * disabled text.\r\n *\r\n * Why here and not in each module: `FormikDisplay` already existed and was\r\n * already correct — nothing routed to it automatically, so every module had to\r\n * branch by hand per field, and none did. The certified reference (`ms-ti-fe`)\r\n * sidesteps the problem by building SEPARATE read-only components for its\r\n * detail pages, which is a valid architecture but not one a module reusing a\r\n * single form can adopt without a rewrite.\r\n *\r\n * `disabled` wins when both are passed: a field that is genuinely unavailable\r\n * (dependency not yet chosen) must not be presented as settled information.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Input from \"../components/Input\";\r\nimport FormikDisplay from \"../components/FormikDisplay\";\r\nimport type { InputProps } from \"../components/Input\";\r\n\r\nexport interface FormikInputProps\r\n extends Omit<\r\n InputProps,\r\n \"name\" | \"value\" | \"onChange\" | \"onBlur\" | \"label\" | \"required\" | \"disabled\" | \"error\"\r\n > {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n /** Render as read-only text via FormikDisplay instead of an input. */\r\n readOnly?: boolean | undefined;\r\n /** Tabular-nums monospace in read-only mode — IDs, amounts, codes. */\r\n mono?: boolean | undefined;\r\n htmlFor?: string | undefined;\r\n hint?: React.ReactNode | undefined;\r\n}\r\n\r\nconst FormikInput = ({\r\n name,\r\n label,\r\n required,\r\n disabled,\r\n readOnly,\r\n mono,\r\n htmlFor,\r\n hint,\r\n ...rest\r\n}: FormikInputProps) => {\r\n const [field, meta] = useField<string | number>(name);\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n /* Read-only display. `disabled` takes precedence deliberately — see header.\r\n * `required` is dropped: an asterisk on information the user cannot supply is\r\n * noise, and validation cannot fire on a field with no input. */\r\n if (readOnly && !disabled) {\r\n return (\r\n <FormikDisplay\r\n name={name}\r\n label={label}\r\n {...(hint !== undefined ? { hint } : {})}\r\n {...(mono !== undefined ? { mono } : {})}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n htmlFor={htmlFor || name}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n >\r\n <Input\r\n name={field.name}\r\n value={field.value ?? \"\"}\r\n onChange={field.onChange}\r\n onBlur={field.onBlur}\r\n {...rest}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikInput;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FormikInput.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Input","_FormikDisplay","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FormikInput","name","label","required","disabled","readOnly","mono","htmlFor","hint","width","rest","field","meta","useField","hasError","Boolean","touched","error","jsx","undefined","children","value","onChange","onBlur","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikInput.tsx"],"sourcesContent":["/**\r\n * FormikInput — bridge between Formik state and v2.Field + v2.Input.\r\n *\r\n * Charter §03 / R-I.1 → R-I.6. Replaces the inline copy of this\r\n * bridge that consumer modules previously duplicated.\r\n *\r\n * Peer dependency: `formik` >= 2.x must be installed in the host\r\n * module. The lib does not bundle Formik.\r\n *\r\n * Usage:\r\n *\r\n * import { FormikInput } from \"@portnet/ui/lib/v2\";\r\n *\r\n * <FormikInput\r\n * name=\"numeroRc\"\r\n * label=\"Numéro RC\"\r\n * required\r\n * inputProps={{ maxLength: 20 }}\r\n * />\r\n *\r\n * Error semantics: errors surface only after the field is\r\n * touched (first blur). This matches Charter R-I.4 — do not\r\n * shout at the user on every keystroke.\r\n *\r\n * ── `readOnly` vs `disabled` ─────────────────────────────────────────\r\n *\r\n * <FormikInput name=\"raison\" label=\"Raison sociale\" readOnly={isDetail} />\r\n *\r\n * `readOnly` renders the value through `FormikDisplay` — grey panel, no input\r\n * chrome, selectable text. `disabled` keeps an input and greys it out.\r\n *\r\n * THE TWO ARE NOT INTERCHANGEABLE, and modules had only `disabled`. Consumers\r\n * that reuse ONE form for create, edit AND consultation were therefore passing\r\n * `disabled={readOnly}` on every field, so a detail page rendered ~100 greyed\r\n * INPUTS. That is the wrong affordance: a disabled control means \"temporarily\r\n * unavailable, may become editable\", not \"this is information\". Reported from\r\n * amssnur-ui testing across its whole demande form.\r\n *\r\n * Note WCAG does NOT forbid the old behaviour — SC 1.4.3 exempts \"text that is\r\n * part of an inactive user interface component\" from contrast requirements. So\r\n * this is a Charter and affordance defect, not an accessibility violation. But\r\n * `FormikDisplay` is measurably better anyway: its own audit records 7.52:1\r\n * (AAA) for `--fg-muted` on `--bg-subtle`, against roughly 2.9:1 for MUI's\r\n * disabled text.\r\n *\r\n * Why here and not in each module: `FormikDisplay` already existed and was\r\n * already correct — nothing routed to it automatically, so every module had to\r\n * branch by hand per field, and none did. The certified reference (`ms-ti-fe`)\r\n * sidesteps the problem by building SEPARATE read-only components for its\r\n * detail pages, which is a valid architecture but not one a module reusing a\r\n * single form can adopt without a rewrite.\r\n *\r\n * `disabled` wins when both are passed: a field that is genuinely unavailable\r\n * (dependency not yet chosen) must not be presented as settled information.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport Input from \"../components/Input\";\r\nimport FormikDisplay from \"../components/FormikDisplay\";\r\nimport type { FieldWidth } from \"../components/Field\";\r\nimport type { InputProps } from \"../components/Input\";\r\n\r\nexport interface FormikInputProps\r\n extends Omit<\r\n InputProps,\r\n \"name\" | \"value\" | \"onChange\" | \"onBlur\" | \"label\" | \"required\" | \"disabled\" | \"error\"\r\n > {\r\n name: string;\r\n label?: React.ReactNode | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n /** Render as read-only text via FormikDisplay instead of an input. */\r\n readOnly?: boolean | undefined;\r\n /** Tabular-nums monospace in read-only mode — IDs, amounts, codes. */\r\n mono?: boolean | undefined;\r\n htmlFor?: string | undefined;\r\n hint?: React.ReactNode | undefined;\r\n /**\r\n * Gabarit de largeur semantique (G-H), d'apres la contrainte de CARACTERES\r\n * du champ. Relaye a `Field`, qui en fait un plafond a partir de `sm`.\r\n *\r\n * NE S'APPLIQUE PAS en mode `readOnly` : c'est alors `FormikDisplay` qui est\r\n * rendu, et il possede sa propre boite. A revoir si un ecran de consultation\r\n * en a besoin.\r\n */\r\n width?: FieldWidth | undefined;\r\n}\r\n\r\nconst FormikInput = ({\r\n name,\r\n label,\r\n required,\r\n disabled,\r\n readOnly,\r\n mono,\r\n htmlFor,\r\n hint,\r\n width,\r\n ...rest\r\n}: FormikInputProps) => {\r\n const [field, meta] = useField<string | number>(name);\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n /* Read-only display. `disabled` takes precedence deliberately — see header.\r\n * `required` is dropped: an asterisk on information the user cannot supply is\r\n * noise, and validation cannot fire on a field with no input. */\r\n if (readOnly && !disabled) {\r\n return (\r\n <FormikDisplay\r\n name={name}\r\n label={label}\r\n {...(hint !== undefined ? { hint } : {})}\r\n {...(mono !== undefined ? { mono } : {})}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Field\r\n label={label}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n htmlFor={htmlFor || name}\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n {...(width !== undefined ? { width } : {})}\r\n >\r\n <Input\r\n name={field.name}\r\n value={field.value ?? \"\"}\r\n onChange={field.onChange}\r\n onBlur={field.onBlur}\r\n {...rest}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikInput;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * FormikRadioGroup — bridge between Formik state and v2.Field +
3
+ * v2.RadioGroup.
4
+ *
5
+ * ── WHY (gap G-C) ────────────────────────────────────────────────────
6
+ *
7
+ * R-Sel.2 is a MUST: 2–3 options → Radio or Segmented, never a Select. So any
8
+ * form with a two-way business question has to reach for `RadioGroup` — and
9
+ * until now there was no Formik bridge for it, while `FormikCheckboxGroup`,
10
+ * `FormikSelect`, `FormikCombobox`, `FormikDatePicker`, `FormikTextarea`,
11
+ * `FormikFile` and `FormikInput` all exist. Every host therefore re-wired
12
+ * `useField` + `RadioGroup` by hand, which is the duplication R-2.1 forbids
13
+ * and, worse, the shape in which validation messages go missing: a hand-rolled
14
+ * bridge renders the control but forgets `FieldError`.
15
+ *
16
+ * Reported from refonte-frontend (lot 5), where ONE form carried two such
17
+ * groups (`usageHorsMetrologique`, `certificat`).
18
+ *
19
+ * ── THE VALUE IS WRITTEN BACK AS DECLARED, NOT AS THE DOM SAW IT ─────
20
+ *
21
+ * This is the contract that matters, and it is invisible.
22
+ *
23
+ * A native `<input type="radio">` only ever reports a STRING. A host whose
24
+ * options are numbers — `{ value: 1 }`, `{ value: 2 }` — and whose payload
25
+ * declares a number would silently start sending `"1"` after the user picks.
26
+ * The API accepts it or rejects it days later; nothing in the UI tells anyone.
27
+ *
28
+ * So `onChange` matches the DOM string back against the option list and writes
29
+ * the ORIGINAL option value. Numbers stay numbers, strings stay strings. Only
30
+ * when no option matches (a host mutating its list mid-flight) does the raw DOM
31
+ * string go through, because dropping the user's click would be worse.
32
+ *
33
+ * Symmetrically, the group's `value` is compared as a string, so a field
34
+ * holding a boolean `false` selects the option declared `"false"`, and a field
35
+ * holding the number `2` selects `{ value: 2 }`. The STORED value is never
36
+ * coerced by this — only the comparison is.
37
+ *
38
+ * Usage:
39
+ *
40
+ * <FormikRadioGroup
41
+ * name="importateur.certificat"
42
+ * label="Modèle déjà approuvé"
43
+ * required
44
+ * row
45
+ * options={[
46
+ * { value: "true", label: "Oui" },
47
+ * { value: "false", label: "Non" },
48
+ * ]}
49
+ * />
50
+ *
51
+ * ── ERRORS APPEAR ON PICK, NOT ON BLUR ──────────────────────────────
52
+ *
53
+ * A radio group has no meaningful blur-before-change: the first interaction IS
54
+ * the answer. Waiting for a blur keeps a required-group message hidden while
55
+ * the user clicks around. Picking marks the field touched — same rule as
56
+ * `FormikCheckbox` and `FormikCheckboxGroup`.
57
+ *
58
+ * `required` is expressed on the FIELD, not on the options: `Field` renders the
59
+ * asterisk on the group label and injects `aria-required`, which — unlike the
60
+ * single-checkbox case — is valid on `role="radiogroup"` and forwarded by
61
+ * `RadioGroup`.
62
+ *
63
+ * Charter §03 · R-Sel.2, R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.
64
+ */
65
+ import * as React from "react";
66
+ import type { RadioGroupOption } from "../components/Radio";
67
+ export interface FormikRadioGroupProps {
68
+ name: string;
69
+ /** Group label — rendered by `Field` above the options. */
70
+ label?: React.ReactNode | undefined;
71
+ options?: RadioGroupOption[] | undefined;
72
+ required?: boolean | undefined;
73
+ disabled?: boolean | undefined;
74
+ hint?: React.ReactNode | undefined;
75
+ /** Horizontal layout. Use only with short labels. */
76
+ row?: boolean | undefined;
77
+ }
78
+ declare const FormikRadioGroup: ({ name, label, options, required, disabled, hint, row, }: FormikRadioGroupProps) => React.JSX.Element;
79
+ export default FormikRadioGroup;
80
+ //# sourceMappingURL=FormikRadioGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikRadioGroup.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikRadioGroup.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,qDAAqD;IACrD,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAOD,QAAA,MAAM,gBAAgB,GAAI,0DAQvB,qBAAqB,sBA+CvB,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var React = _interopRequireWildcard(require("react"));
8
+ var _formik = require("formik");
9
+ var _Field = _interopRequireDefault(require("../components/Field"));
10
+ var _Radio = require("../components/Radio");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ /**
15
+ * FormikRadioGroup — bridge between Formik state and v2.Field +
16
+ * v2.RadioGroup.
17
+ *
18
+ * ── WHY (gap G-C) ────────────────────────────────────────────────────
19
+ *
20
+ * R-Sel.2 is a MUST: 2–3 options → Radio or Segmented, never a Select. So any
21
+ * form with a two-way business question has to reach for `RadioGroup` — and
22
+ * until now there was no Formik bridge for it, while `FormikCheckboxGroup`,
23
+ * `FormikSelect`, `FormikCombobox`, `FormikDatePicker`, `FormikTextarea`,
24
+ * `FormikFile` and `FormikInput` all exist. Every host therefore re-wired
25
+ * `useField` + `RadioGroup` by hand, which is the duplication R-2.1 forbids
26
+ * and, worse, the shape in which validation messages go missing: a hand-rolled
27
+ * bridge renders the control but forgets `FieldError`.
28
+ *
29
+ * Reported from refonte-frontend (lot 5), where ONE form carried two such
30
+ * groups (`usageHorsMetrologique`, `certificat`).
31
+ *
32
+ * ── THE VALUE IS WRITTEN BACK AS DECLARED, NOT AS THE DOM SAW IT ─────
33
+ *
34
+ * This is the contract that matters, and it is invisible.
35
+ *
36
+ * A native `<input type="radio">` only ever reports a STRING. A host whose
37
+ * options are numbers — `{ value: 1 }`, `{ value: 2 }` — and whose payload
38
+ * declares a number would silently start sending `"1"` after the user picks.
39
+ * The API accepts it or rejects it days later; nothing in the UI tells anyone.
40
+ *
41
+ * So `onChange` matches the DOM string back against the option list and writes
42
+ * the ORIGINAL option value. Numbers stay numbers, strings stay strings. Only
43
+ * when no option matches (a host mutating its list mid-flight) does the raw DOM
44
+ * string go through, because dropping the user's click would be worse.
45
+ *
46
+ * Symmetrically, the group's `value` is compared as a string, so a field
47
+ * holding a boolean `false` selects the option declared `"false"`, and a field
48
+ * holding the number `2` selects `{ value: 2 }`. The STORED value is never
49
+ * coerced by this — only the comparison is.
50
+ *
51
+ * Usage:
52
+ *
53
+ * <FormikRadioGroup
54
+ * name="importateur.certificat"
55
+ * label="Modèle déjà approuvé"
56
+ * required
57
+ * row
58
+ * options={[
59
+ * { value: "true", label: "Oui" },
60
+ * { value: "false", label: "Non" },
61
+ * ]}
62
+ * />
63
+ *
64
+ * ── ERRORS APPEAR ON PICK, NOT ON BLUR ──────────────────────────────
65
+ *
66
+ * A radio group has no meaningful blur-before-change: the first interaction IS
67
+ * the answer. Waiting for a blur keeps a required-group message hidden while
68
+ * the user clicks around. Picking marks the field touched — same rule as
69
+ * `FormikCheckbox` and `FormikCheckboxGroup`.
70
+ *
71
+ * `required` is expressed on the FIELD, not on the options: `Field` renders the
72
+ * asterisk on the group label and injects `aria-required`, which — unlike the
73
+ * single-checkbox case — is valid on `role="radiogroup"` and forwarded by
74
+ * `RadioGroup`.
75
+ *
76
+ * Charter §03 · R-Sel.2, R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.
77
+ */
78
+
79
+ /** Declared value of an option, whatever its shape. */
80
+ function valeurOption(option) {
81
+ return typeof option === "string" ? option : option.value;
82
+ }
83
+ const FormikRadioGroup = ({
84
+ name,
85
+ label,
86
+ options = [],
87
+ required,
88
+ disabled,
89
+ hint,
90
+ row
91
+ }) => {
92
+ const [field, meta] = (0, _formik.useField)(name);
93
+ const {
94
+ setFieldValue,
95
+ setFieldTouched
96
+ } = (0, _formik.useFormikContext)();
97
+ const hasError = Boolean(meta.touched && meta.error);
98
+
99
+ /* Comparison only — the stored value is left untouched. A field holding
100
+ * boolean `false` therefore selects the option declared "false". */
101
+ const selection = field.value === null || field.value === undefined ? "" : String(field.value);
102
+ const handleChange = (_event, valeurDom) => {
103
+ const correspondante = options.find(option => String(valeurOption(option)) === valeurDom);
104
+ /* Write back the DECLARED value — see the note above. The raw DOM string
105
+ * is the fallback, not the norm. */
106
+ void setFieldValue(name, correspondante === undefined ? valeurDom : valeurOption(correspondante));
107
+ void setFieldTouched(name, true, false);
108
+ };
109
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Field.default, {
110
+ ...(label !== undefined ? {
111
+ label
112
+ } : {}),
113
+ error: hasError ? meta.error : null,
114
+ hint: !hasError ? hint : undefined,
115
+ group: true,
116
+ ...(required !== undefined ? {
117
+ required
118
+ } : {}),
119
+ ...(disabled !== undefined ? {
120
+ disabled
121
+ } : {}),
122
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Radio.RadioGroup, {
123
+ name: name,
124
+ value: selection,
125
+ options: options,
126
+ onChange: handleChange,
127
+ ...(row !== undefined ? {
128
+ row
129
+ } : {}),
130
+ ...(disabled !== undefined ? {
131
+ disabled
132
+ } : {})
133
+ })
134
+ });
135
+ };
136
+ var _default = exports.default = FormikRadioGroup;
137
+ //# sourceMappingURL=FormikRadioGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikRadioGroup.js","names":["React","_interopRequireWildcard","require","_formik","_Field","_interopRequireDefault","_Radio","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","valeurOption","option","value","FormikRadioGroup","name","label","options","required","disabled","hint","row","field","meta","useField","setFieldValue","setFieldTouched","useFormikContext","hasError","Boolean","touched","error","selection","undefined","String","handleChange","_event","valeurDom","correspondante","find","jsx","group","children","RadioGroup","onChange","_default","exports"],"sources":["../../../src/lib/v2/patterns/FormikRadioGroup.tsx"],"sourcesContent":["/**\r\n * FormikRadioGroup — bridge between Formik state and v2.Field +\r\n * v2.RadioGroup.\r\n *\r\n * ── WHY (gap G-C) ────────────────────────────────────────────────────\r\n *\r\n * R-Sel.2 is a MUST: 2–3 options → Radio or Segmented, never a Select. So any\r\n * form with a two-way business question has to reach for `RadioGroup` — and\r\n * until now there was no Formik bridge for it, while `FormikCheckboxGroup`,\r\n * `FormikSelect`, `FormikCombobox`, `FormikDatePicker`, `FormikTextarea`,\r\n * `FormikFile` and `FormikInput` all exist. Every host therefore re-wired\r\n * `useField` + `RadioGroup` by hand, which is the duplication R-2.1 forbids\r\n * and, worse, the shape in which validation messages go missing: a hand-rolled\r\n * bridge renders the control but forgets `FieldError`.\r\n *\r\n * Reported from refonte-frontend (lot 5), where ONE form carried two such\r\n * groups (`usageHorsMetrologique`, `certificat`).\r\n *\r\n * ── THE VALUE IS WRITTEN BACK AS DECLARED, NOT AS THE DOM SAW IT ─────\r\n *\r\n * This is the contract that matters, and it is invisible.\r\n *\r\n * A native `<input type=\"radio\">` only ever reports a STRING. A host whose\r\n * options are numbers — `{ value: 1 }`, `{ value: 2 }` — and whose payload\r\n * declares a number would silently start sending `\"1\"` after the user picks.\r\n * The API accepts it or rejects it days later; nothing in the UI tells anyone.\r\n *\r\n * So `onChange` matches the DOM string back against the option list and writes\r\n * the ORIGINAL option value. Numbers stay numbers, strings stay strings. Only\r\n * when no option matches (a host mutating its list mid-flight) does the raw DOM\r\n * string go through, because dropping the user's click would be worse.\r\n *\r\n * Symmetrically, the group's `value` is compared as a string, so a field\r\n * holding a boolean `false` selects the option declared `\"false\"`, and a field\r\n * holding the number `2` selects `{ value: 2 }`. The STORED value is never\r\n * coerced by this — only the comparison is.\r\n *\r\n * Usage:\r\n *\r\n * <FormikRadioGroup\r\n * name=\"importateur.certificat\"\r\n * label=\"Modèle déjà approuvé\"\r\n * required\r\n * row\r\n * options={[\r\n * { value: \"true\", label: \"Oui\" },\r\n * { value: \"false\", label: \"Non\" },\r\n * ]}\r\n * />\r\n *\r\n * ── ERRORS APPEAR ON PICK, NOT ON BLUR ──────────────────────────────\r\n *\r\n * A radio group has no meaningful blur-before-change: the first interaction IS\r\n * the answer. Waiting for a blur keeps a required-group message hidden while\r\n * the user clicks around. Picking marks the field touched — same rule as\r\n * `FormikCheckbox` and `FormikCheckboxGroup`.\r\n *\r\n * `required` is expressed on the FIELD, not on the options: `Field` renders the\r\n * asterisk on the group label and injects `aria-required`, which — unlike the\r\n * single-checkbox case — is valid on `role=\"radiogroup\"` and forwarded by\r\n * `RadioGroup`.\r\n *\r\n * Charter §03 · R-Sel.2, R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { useField, useFormikContext } from \"formik\";\r\nimport Field from \"../components/Field\";\r\nimport { RadioGroup } from \"../components/Radio\";\r\nimport type { RadioGroupOption } from \"../components/Radio\";\r\n\r\nexport interface FormikRadioGroupProps {\r\n name: string;\r\n /** Group label — rendered by `Field` above the options. */\r\n label?: React.ReactNode | undefined;\r\n options?: RadioGroupOption[] | undefined;\r\n required?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n hint?: React.ReactNode | undefined;\r\n /** Horizontal layout. Use only with short labels. */\r\n row?: boolean | undefined;\r\n}\r\n\r\n/** Declared value of an option, whatever its shape. */\r\nfunction valeurOption(option: RadioGroupOption): string | number {\r\n return typeof option === \"string\" ? option : option.value;\r\n}\r\n\r\nconst FormikRadioGroup = ({\r\n name,\r\n label,\r\n options = [],\r\n required,\r\n disabled,\r\n hint,\r\n row,\r\n}: FormikRadioGroupProps) => {\r\n const [field, meta] = useField(name);\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const hasError = Boolean(meta.touched && meta.error);\r\n\r\n /* Comparison only — the stored value is left untouched. A field holding\r\n * boolean `false` therefore selects the option declared \"false\". */\r\n const selection =\r\n field.value === null || field.value === undefined\r\n ? \"\"\r\n : String(field.value);\r\n\r\n const handleChange = (\r\n _event: React.ChangeEvent<HTMLInputElement>,\r\n valeurDom: string\r\n ) => {\r\n const correspondante = options.find(\r\n (option) => String(valeurOption(option)) === valeurDom\r\n );\r\n /* Write back the DECLARED value — see the note above. The raw DOM string\r\n * is the fallback, not the norm. */\r\n void setFieldValue(\r\n name,\r\n correspondante === undefined ? valeurDom : valeurOption(correspondante)\r\n );\r\n void setFieldTouched(name, true, false);\r\n };\r\n\r\n return (\r\n <Field\r\n {...(label !== undefined ? { label } : {})}\r\n error={hasError ? meta.error : null}\r\n hint={!hasError ? hint : undefined}\r\n group\r\n {...(required !== undefined ? { required } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n >\r\n <RadioGroup\r\n name={name}\r\n value={selection}\r\n options={options}\r\n onChange={handleChange}\r\n {...(row !== undefined ? { row } : {})}\r\n {...(disabled !== undefined ? { disabled } : {})}\r\n />\r\n </Field>\r\n );\r\n};\r\n\r\nexport default FormikRadioGroup;\r\n"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,7 @@
12
12
  * Charter R-Sel.1 → R-Sel.4. Peer dependency: formik >= 2.x.
13
13
  */
14
14
  import * as React from "react";
15
+ import type { FieldWidth } from "../components/Field";
15
16
  import { type ReferentielFieldProps } from "./ReferentielField";
16
17
  export interface FormikReferentielFieldProps<T> extends Omit<ReferentielFieldProps<T>, "value" | "onChange" | "getDisplayValue" | "name"> {
17
18
  name: string;
@@ -27,7 +28,17 @@ export interface FormikReferentielFieldProps<T> extends Omit<ReferentielFieldPro
27
28
  onPick?: ((row: T) => void) | undefined;
28
29
  /** Rows to seed the label cache with (e.g. an edit form's initial value). */
29
30
  seenRows?: T[] | undefined;
31
+ /**
32
+ * Semantic width bucket (gap G-H). The Platform standard files « complex
33
+ * search auto-completes » under L — which is exactly what this field is,
34
+ * so `l` is the usual choice here.
35
+ *
36
+ * Wired last of the seven bridges, on the first real case: the shared IDM
37
+ * search form has an Importateur field on this bridge, and §Form Field Width
38
+ * forbids leaving it unbounded.
39
+ */
40
+ width?: FieldWidth | undefined;
30
41
  }
31
- declare function FormikReferentielField<T>({ name, label, required, disabled, hint, htmlFor, getOptionValue, getDescription, onPick, seenRows, ...refProps }: FormikReferentielFieldProps<T>): React.JSX.Element;
42
+ declare function FormikReferentielField<T>({ name, label, required, disabled, hint, htmlFor, getOptionValue, getDescription, onPick, seenRows, width, ...refProps }: FormikReferentielFieldProps<T>): React.JSX.Element;
32
43
  export default FormikReferentielField;
33
44
  //# sourceMappingURL=FormikReferentielField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormikReferentielField.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikReferentielField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAyB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,2BAA2B,CAAC,CAAC,CAC5C,SAAQ,IAAI,CACV,qBAAqB,CAAC,CAAC,CAAC,EACxB,OAAO,GAAG,UAAU,GAAG,iBAAiB,GAAG,MAAM,CAClD;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,sEAAsE;IACtE,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAClD,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;CAC5B;AAED,iBAAS,sBAAsB,CAAC,CAAC,EAAE,EACjC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,cAAc,EACd,cAAc,EACd,MAAM,EACN,QAAQ,EACR,GAAG,QAAQ,EACZ,EAAE,2BAA2B,CAAC,CAAC,CAAC,qBAsEhC;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"FormikReferentielField.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/FormikReferentielField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAyB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAElF,MAAM,WAAW,2BAA2B,CAAC,CAAC,CAC5C,SAAQ,IAAI,CACV,qBAAqB,CAAC,CAAC,CAAC,EACxB,OAAO,GAAG,UAAU,GAAG,iBAAiB,GAAG,MAAM,CAClD;IACD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,sEAAsE;IACtE,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IACnD,qDAAqD;IACrD,cAAc,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAClD,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;IAC3B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAChC;AAED,iBAAS,sBAAsB,CAAC,CAAC,EAAE,EACjC,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,cAAc,EACd,cAAc,EACd,MAAM,EACN,QAAQ,EACR,KAAK,EACL,GAAG,QAAQ,EACZ,EAAE,2BAA2B,CAAC,CAAC,CAAC,qBAuEhC;AAED,eAAe,sBAAsB,CAAC"}