@portnet/ui 6.0.0 → 6.0.2

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 (820) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/dist/esm/index.js +214 -0
  3. package/dist/esm/index.js.map +1 -0
  4. package/dist/esm/v2/__tests__/FieldError.test.js +159 -0
  5. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  7. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/FileCard.test.js +143 -0
  9. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
  11. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
  13. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  14. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
  15. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/MobileRowCard.test.js +332 -0
  17. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
  19. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  20. package/dist/esm/v2/__tests__/apiError.test.js +181 -0
  21. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
  23. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
  24. package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
  25. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
  27. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/labels-merge.test.js +146 -0
  29. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
  30. package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
  31. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
  33. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
  34. package/dist/esm/v2/components/Accordion.js +230 -0
  35. package/dist/esm/v2/components/Accordion.js.map +1 -0
  36. package/dist/esm/v2/components/ActionStrip.js +146 -0
  37. package/dist/esm/v2/components/ActionStrip.js.map +1 -0
  38. package/dist/esm/v2/components/Banner.js +254 -0
  39. package/dist/esm/v2/components/Banner.js.map +1 -0
  40. package/dist/esm/v2/components/Busy.js +97 -0
  41. package/dist/esm/v2/components/Busy.js.map +1 -0
  42. package/dist/esm/v2/components/Button.js +114 -0
  43. package/dist/esm/v2/components/Button.js.map +1 -0
  44. package/dist/esm/v2/components/CategoryTag.js +81 -0
  45. package/dist/esm/v2/components/CategoryTag.js.map +1 -0
  46. package/dist/esm/v2/components/Checkbox.js +124 -0
  47. package/dist/esm/v2/components/Checkbox.js.map +1 -0
  48. package/dist/esm/v2/components/Chip.js +124 -0
  49. package/dist/esm/v2/components/Chip.js.map +1 -0
  50. package/dist/esm/v2/components/Combobox.js +394 -0
  51. package/dist/esm/v2/components/Combobox.js.map +1 -0
  52. package/dist/esm/v2/components/CommandPalette.js +660 -0
  53. package/dist/esm/v2/components/CommandPalette.js.map +1 -0
  54. package/dist/esm/v2/components/ConfirmDialog.js +144 -0
  55. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
  56. package/dist/esm/v2/components/DatePicker.js +200 -0
  57. package/dist/esm/v2/components/DatePicker.js.map +1 -0
  58. package/dist/esm/v2/components/DateRangePicker.js +289 -0
  59. package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
  60. package/dist/esm/v2/components/DateTimePicker.js +215 -0
  61. package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
  62. package/dist/esm/v2/components/Drawer.js +333 -0
  63. package/dist/esm/v2/components/Drawer.js.map +1 -0
  64. package/dist/esm/v2/components/Dropzone.js +540 -0
  65. package/dist/esm/v2/components/Dropzone.js.map +1 -0
  66. package/dist/esm/v2/components/EmptyState.js +102 -0
  67. package/dist/esm/v2/components/EmptyState.js.map +1 -0
  68. package/dist/esm/v2/components/FavoriteToggle.js +127 -0
  69. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
  70. package/dist/esm/v2/components/Field.js +259 -0
  71. package/dist/esm/v2/components/Field.js.map +1 -0
  72. package/dist/esm/v2/components/FieldError.js +124 -0
  73. package/dist/esm/v2/components/FieldError.js.map +1 -0
  74. package/dist/esm/v2/components/FieldHelp.js +202 -0
  75. package/dist/esm/v2/components/FieldHelp.js.map +1 -0
  76. package/dist/esm/v2/components/FileCard.js +162 -0
  77. package/dist/esm/v2/components/FileCard.js.map +1 -0
  78. package/dist/esm/v2/components/FilterTab.js +138 -0
  79. package/dist/esm/v2/components/FilterTab.js.map +1 -0
  80. package/dist/esm/v2/components/ForbiddenPage.js +74 -0
  81. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
  82. package/dist/esm/v2/components/FormGrid.js +179 -0
  83. package/dist/esm/v2/components/FormGrid.js.map +1 -0
  84. package/dist/esm/v2/components/FormikDisplay.js +118 -0
  85. package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
  86. package/dist/esm/v2/components/Input.js +107 -0
  87. package/dist/esm/v2/components/Input.js.map +1 -0
  88. package/dist/esm/v2/components/KPICard.js +237 -0
  89. package/dist/esm/v2/components/KPICard.js.map +1 -0
  90. package/dist/esm/v2/components/KPIStrip.js +84 -0
  91. package/dist/esm/v2/components/KPIStrip.js.map +1 -0
  92. package/dist/esm/v2/components/KV.js +75 -0
  93. package/dist/esm/v2/components/KV.js.map +1 -0
  94. package/dist/esm/v2/components/KVGrid.js +74 -0
  95. package/dist/esm/v2/components/KVGrid.js.map +1 -0
  96. package/dist/esm/v2/components/Layout.js +284 -0
  97. package/dist/esm/v2/components/Layout.js.map +1 -0
  98. package/dist/esm/v2/components/MobileRowCard.js +314 -0
  99. package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
  100. package/dist/esm/v2/components/Modal.js +276 -0
  101. package/dist/esm/v2/components/Modal.js.map +1 -0
  102. package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
  103. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
  104. package/dist/esm/v2/components/NotFoundPage.js +58 -0
  105. package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
  106. package/dist/esm/v2/components/NumberInput.js +309 -0
  107. package/dist/esm/v2/components/NumberInput.js.map +1 -0
  108. package/dist/esm/v2/components/OverflowMenu.js +184 -0
  109. package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
  110. package/dist/esm/v2/components/PdfViewer.js +122 -0
  111. package/dist/esm/v2/components/PdfViewer.js.map +1 -0
  112. package/dist/esm/v2/components/ProgressBar.js +202 -0
  113. package/dist/esm/v2/components/ProgressBar.js.map +1 -0
  114. package/dist/esm/v2/components/Radio.js +228 -0
  115. package/dist/esm/v2/components/Radio.js.map +1 -0
  116. package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
  117. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
  118. package/dist/esm/v2/components/SectionHeader.js +132 -0
  119. package/dist/esm/v2/components/SectionHeader.js.map +1 -0
  120. package/dist/esm/v2/components/Segmented.js +254 -0
  121. package/dist/esm/v2/components/Segmented.js.map +1 -0
  122. package/dist/esm/v2/components/Select.js +490 -0
  123. package/dist/esm/v2/components/Select.js.map +1 -0
  124. package/dist/esm/v2/components/ServerErrorPage.js +74 -0
  125. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
  126. package/dist/esm/v2/components/Skeleton.js +269 -0
  127. package/dist/esm/v2/components/Skeleton.js.map +1 -0
  128. package/dist/esm/v2/components/SkipLink.js +49 -0
  129. package/dist/esm/v2/components/SkipLink.js.map +1 -0
  130. package/dist/esm/v2/components/Spinner.js +69 -0
  131. package/dist/esm/v2/components/Spinner.js.map +1 -0
  132. package/dist/esm/v2/components/Status.js +64 -0
  133. package/dist/esm/v2/components/Status.js.map +1 -0
  134. package/dist/esm/v2/components/Stepper.js +432 -0
  135. package/dist/esm/v2/components/Stepper.js.map +1 -0
  136. package/dist/esm/v2/components/Surface.js +159 -0
  137. package/dist/esm/v2/components/Surface.js.map +1 -0
  138. package/dist/esm/v2/components/Switch.js +128 -0
  139. package/dist/esm/v2/components/Switch.js.map +1 -0
  140. package/dist/esm/v2/components/Tabs.js +150 -0
  141. package/dist/esm/v2/components/Tabs.js.map +1 -0
  142. package/dist/esm/v2/components/TelInput.js +274 -0
  143. package/dist/esm/v2/components/TelInput.js.map +1 -0
  144. package/dist/esm/v2/components/Textarea.js +72 -0
  145. package/dist/esm/v2/components/Textarea.js.map +1 -0
  146. package/dist/esm/v2/components/TimePicker.js +134 -0
  147. package/dist/esm/v2/components/TimePicker.js.map +1 -0
  148. package/dist/esm/v2/components/Toast.js +376 -0
  149. package/dist/esm/v2/components/Toast.js.map +1 -0
  150. package/dist/esm/v2/components/Tooltip.js +161 -0
  151. package/dist/esm/v2/components/Tooltip.js.map +1 -0
  152. package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
  153. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
  154. package/dist/esm/v2/components/_pickerShared.js +60 -0
  155. package/dist/esm/v2/components/_pickerShared.js.map +1 -0
  156. package/dist/esm/v2/components/index.js +271 -0
  157. package/dist/esm/v2/components/index.js.map +1 -0
  158. package/dist/esm/v2/hooks/index.js +10 -0
  159. package/dist/esm/v2/hooks/index.js.map +1 -0
  160. package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
  161. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
  162. package/dist/esm/v2/hooks/useDensity.js +119 -0
  163. package/dist/esm/v2/hooks/useDensity.js.map +1 -0
  164. package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
  165. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
  166. package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
  167. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
  168. package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
  169. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
  170. package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
  171. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
  172. package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
  173. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
  174. package/dist/esm/v2/hooks/useSortedRows.js +32 -0
  175. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
  176. package/dist/esm/v2/hooks/useTabLoading.js +79 -0
  177. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
  178. package/dist/esm/v2/index.js +132 -0
  179. package/dist/esm/v2/index.js.map +1 -0
  180. package/dist/esm/v2/modalContext.js +108 -0
  181. package/dist/esm/v2/modalContext.js.map +1 -0
  182. package/dist/esm/v2/models/favorite.js +2 -0
  183. package/dist/esm/v2/models/favorite.js.map +1 -0
  184. package/dist/esm/v2/models/index.js +12 -0
  185. package/dist/esm/v2/models/index.js.map +1 -0
  186. package/dist/esm/v2/models/personalization.js +2 -0
  187. package/dist/esm/v2/models/personalization.js.map +1 -0
  188. package/dist/esm/v2/models/referentiel.js +2 -0
  189. package/dist/esm/v2/models/referentiel.js.map +1 -0
  190. package/dist/esm/v2/models/savedFilter.js +2 -0
  191. package/dist/esm/v2/models/savedFilter.js.map +1 -0
  192. package/dist/esm/v2/patterns/ActionBar.js +603 -0
  193. package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
  194. package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
  195. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
  196. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
  197. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
  198. package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
  199. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
  200. package/dist/esm/v2/patterns/DataGrid.js +820 -0
  201. package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
  202. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
  203. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
  204. package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
  205. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
  206. package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
  207. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
  208. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
  209. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
  210. package/dist/esm/v2/patterns/FavoriteColumn.js +117 -0
  211. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
  212. package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
  213. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
  214. package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
  215. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
  216. package/dist/esm/v2/patterns/FormPageShell.js +126 -0
  217. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
  218. package/dist/esm/v2/patterns/FormSection.js +190 -0
  219. package/dist/esm/v2/patterns/FormSection.js.map +1 -0
  220. package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
  221. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  222. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
  223. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
  224. package/dist/esm/v2/patterns/FormikCombobox.js +118 -0
  225. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
  226. package/dist/esm/v2/patterns/FormikDatePicker.js +162 -0
  227. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
  228. package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
  229. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  230. package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
  231. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
  232. package/dist/esm/v2/patterns/FormikFile.js +148 -0
  233. package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
  234. package/dist/esm/v2/patterns/FormikInput.js +130 -0
  235. package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
  236. package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
  237. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  238. package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
  239. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
  240. package/dist/esm/v2/patterns/FormikSelect.js +162 -0
  241. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
  242. package/dist/esm/v2/patterns/FormikTextarea.js +79 -0
  243. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
  244. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +212 -0
  245. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
  246. package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
  247. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
  248. package/dist/esm/v2/patterns/PageContent.js +62 -0
  249. package/dist/esm/v2/patterns/PageContent.js.map +1 -0
  250. package/dist/esm/v2/patterns/ReferentielField.js +615 -0
  251. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
  252. package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
  253. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  254. package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
  255. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
  256. package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
  257. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
  258. package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
  259. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
  260. package/dist/esm/v2/patterns/SortableHeader.js +179 -0
  261. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
  262. package/dist/esm/v2/patterns/Tour.js +471 -0
  263. package/dist/esm/v2/patterns/Tour.js.map +1 -0
  264. package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
  265. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
  266. package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
  267. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  268. package/dist/esm/v2/patterns/_sort.js +112 -0
  269. package/dist/esm/v2/patterns/_sort.js.map +1 -0
  270. package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
  271. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
  272. package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
  273. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
  274. package/dist/esm/v2/patterns/index.js +178 -0
  275. package/dist/esm/v2/patterns/index.js.map +1 -0
  276. package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
  277. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
  278. package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
  279. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
  280. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
  281. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
  282. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
  283. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
  284. package/dist/esm/v2/personalization/adapters/index.js +11 -0
  285. package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
  286. package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
  287. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
  288. package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
  289. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
  290. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
  291. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  292. package/dist/esm/v2/personalization/capabilities/index.js +22 -0
  293. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
  294. package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
  295. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
  296. package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
  297. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
  298. package/dist/esm/v2/personalization/index.js +64 -0
  299. package/dist/esm/v2/personalization/index.js.map +1 -0
  300. package/dist/esm/v2/personalization/personalizationContext.js +108 -0
  301. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
  302. package/dist/esm/v2/personalization/schema.js +92 -0
  303. package/dist/esm/v2/personalization/schema.js.map +1 -0
  304. package/dist/esm/v2/personalization/types.js +2 -0
  305. package/dist/esm/v2/personalization/types.js.map +1 -0
  306. package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
  307. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
  308. package/dist/esm/v2/referentiel/index.js +15 -0
  309. package/dist/esm/v2/referentiel/index.js.map +1 -0
  310. package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
  311. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
  312. package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
  313. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
  314. package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
  315. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
  316. package/dist/esm/v2/styles/base.css +425 -0
  317. package/dist/esm/v2/styles/css.d.ts +10 -0
  318. package/dist/esm/v2/styles/index.js +12 -0
  319. package/dist/esm/v2/styles/index.js.map +1 -0
  320. package/dist/esm/v2/theme/_brand.js +64 -0
  321. package/dist/esm/v2/theme/_brand.js.map +1 -0
  322. package/dist/esm/v2/theme/_brandSecondary.js +60 -0
  323. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
  324. package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
  325. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
  326. package/dist/esm/v2/theme/cssVariables.js +198 -0
  327. package/dist/esm/v2/theme/cssVariables.js.map +1 -0
  328. package/dist/esm/v2/theme/index.js +32 -0
  329. package/dist/esm/v2/theme/index.js.map +1 -0
  330. package/dist/esm/v2/tokens/breakpoints.js +106 -0
  331. package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
  332. package/dist/esm/v2/tokens/colors.js +219 -0
  333. package/dist/esm/v2/tokens/colors.js.map +1 -0
  334. package/dist/esm/v2/tokens/density.js +98 -0
  335. package/dist/esm/v2/tokens/density.js.map +1 -0
  336. package/dist/esm/v2/tokens/index.js +80 -0
  337. package/dist/esm/v2/tokens/index.js.map +1 -0
  338. package/dist/esm/v2/tokens/motion.js +88 -0
  339. package/dist/esm/v2/tokens/motion.js.map +1 -0
  340. package/dist/esm/v2/tokens/radius.js +22 -0
  341. package/dist/esm/v2/tokens/radius.js.map +1 -0
  342. package/dist/esm/v2/tokens/shadows.js +40 -0
  343. package/dist/esm/v2/tokens/shadows.js.map +1 -0
  344. package/dist/esm/v2/tokens/spacing.js +51 -0
  345. package/dist/esm/v2/tokens/spacing.js.map +1 -0
  346. package/dist/esm/v2/tokens/state.js +41 -0
  347. package/dist/esm/v2/tokens/state.js.map +1 -0
  348. package/dist/esm/v2/tokens/statusPalette.js +66 -0
  349. package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
  350. package/dist/esm/v2/tokens/tokens.json +153 -0
  351. package/dist/esm/v2/tokens/typography.js +149 -0
  352. package/dist/esm/v2/tokens/typography.js.map +1 -0
  353. package/dist/esm/v2/tokens/zIndex.js +44 -0
  354. package/dist/esm/v2/tokens/zIndex.js.map +1 -0
  355. package/dist/esm/v2/types/common.js +2 -0
  356. package/dist/esm/v2/types/common.js.map +1 -0
  357. package/dist/esm/v2/types/datagrid.js +2 -0
  358. package/dist/esm/v2/types/datagrid.js.map +1 -0
  359. package/dist/esm/v2/types/index.js +12 -0
  360. package/dist/esm/v2/types/index.js.map +1 -0
  361. package/dist/esm/v2/utils/apiError.js +281 -0
  362. package/dist/esm/v2/utils/apiError.js.map +1 -0
  363. package/dist/esm/v2/utils/contrast.js +157 -0
  364. package/dist/esm/v2/utils/contrast.js.map +1 -0
  365. package/dist/esm/v2/utils/cx.js +38 -0
  366. package/dist/esm/v2/utils/cx.js.map +1 -0
  367. package/dist/esm/v2/utils/fileDownload.js +226 -0
  368. package/dist/esm/v2/utils/fileDownload.js.map +1 -0
  369. package/dist/esm/v2/utils/fmtMoney.js +78 -0
  370. package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
  371. package/dist/esm/v2/utils/index.js +43 -0
  372. package/dist/esm/v2/utils/index.js.map +1 -0
  373. package/dist/esm/v2/utils/mergeLabels.js +86 -0
  374. package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
  375. package/dist/esm/v2/utils/networkStatus.js +114 -0
  376. package/dist/esm/v2/utils/networkStatus.js.map +1 -0
  377. package/dist/index.d.ts +5 -2
  378. package/dist/index.d.ts.map +1 -1
  379. package/dist/index.js +35 -0
  380. package/dist/index.js.map +1 -1
  381. package/dist/v2/__tests__/FieldError.test.js +160 -0
  382. package/dist/v2/__tests__/FieldError.test.js.map +1 -0
  383. package/dist/v2/__tests__/FieldWidth.test.js +150 -0
  384. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  385. package/dist/v2/__tests__/FileCard.test.js +144 -0
  386. package/dist/v2/__tests__/FileCard.test.js.map +1 -0
  387. package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
  388. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  389. package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
  390. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  391. package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
  392. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  393. package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
  394. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  395. package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
  396. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  397. package/dist/v2/__tests__/labels-merge.test.js +20 -24
  398. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  399. package/dist/v2/components/Accordion.d.ts +6 -6
  400. package/dist/v2/components/Accordion.d.ts.map +1 -1
  401. package/dist/v2/components/Accordion.js.map +1 -1
  402. package/dist/v2/components/ActionStrip.d.ts +12 -12
  403. package/dist/v2/components/ActionStrip.d.ts.map +1 -1
  404. package/dist/v2/components/ActionStrip.js.map +1 -1
  405. package/dist/v2/components/Banner.d.ts +48 -9
  406. package/dist/v2/components/Banner.d.ts.map +1 -1
  407. package/dist/v2/components/Banner.js +116 -35
  408. package/dist/v2/components/Banner.js.map +1 -1
  409. package/dist/v2/components/Busy.d.ts +3 -3
  410. package/dist/v2/components/Busy.d.ts.map +1 -1
  411. package/dist/v2/components/Busy.js.map +1 -1
  412. package/dist/v2/components/Button.d.ts +6 -6
  413. package/dist/v2/components/Button.d.ts.map +1 -1
  414. package/dist/v2/components/Button.js.map +1 -1
  415. package/dist/v2/components/CategoryTag.d.ts +3 -3
  416. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  417. package/dist/v2/components/CategoryTag.js.map +1 -1
  418. package/dist/v2/components/Checkbox.d.ts +11 -11
  419. package/dist/v2/components/Checkbox.d.ts.map +1 -1
  420. package/dist/v2/components/Checkbox.js.map +1 -1
  421. package/dist/v2/components/Chip.d.ts +8 -8
  422. package/dist/v2/components/Chip.d.ts.map +1 -1
  423. package/dist/v2/components/Chip.js +2 -1
  424. package/dist/v2/components/Chip.js.map +1 -1
  425. package/dist/v2/components/Combobox.d.ts +27 -27
  426. package/dist/v2/components/Combobox.d.ts.map +1 -1
  427. package/dist/v2/components/Combobox.js +3 -2
  428. package/dist/v2/components/Combobox.js.map +1 -1
  429. package/dist/v2/components/CommandPalette.d.ts +20 -20
  430. package/dist/v2/components/CommandPalette.d.ts.map +1 -1
  431. package/dist/v2/components/CommandPalette.js +2 -6
  432. package/dist/v2/components/CommandPalette.js.map +1 -1
  433. package/dist/v2/components/ConfirmDialog.d.ts +13 -13
  434. package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
  435. package/dist/v2/components/ConfirmDialog.js +2 -1
  436. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  437. package/dist/v2/components/DatePicker.d.ts +11 -11
  438. package/dist/v2/components/DatePicker.d.ts.map +1 -1
  439. package/dist/v2/components/DatePicker.js.map +1 -1
  440. package/dist/v2/components/DateRangePicker.d.ts +16 -16
  441. package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
  442. package/dist/v2/components/DateRangePicker.js +2 -1
  443. package/dist/v2/components/DateRangePicker.js.map +1 -1
  444. package/dist/v2/components/DateTimePicker.d.ts +11 -11
  445. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  446. package/dist/v2/components/DateTimePicker.js +37 -4
  447. package/dist/v2/components/DateTimePicker.js.map +1 -1
  448. package/dist/v2/components/Drawer.d.ts +18 -18
  449. package/dist/v2/components/Drawer.d.ts.map +1 -1
  450. package/dist/v2/components/Drawer.js +2 -1
  451. package/dist/v2/components/Drawer.js.map +1 -1
  452. package/dist/v2/components/Dropzone.d.ts +34 -34
  453. package/dist/v2/components/Dropzone.d.ts.map +1 -1
  454. package/dist/v2/components/Dropzone.js +11 -3
  455. package/dist/v2/components/Dropzone.js.map +1 -1
  456. package/dist/v2/components/EmptyState.d.ts +7 -7
  457. package/dist/v2/components/EmptyState.d.ts.map +1 -1
  458. package/dist/v2/components/EmptyState.js.map +1 -1
  459. package/dist/v2/components/FavoriteToggle.d.ts +7 -7
  460. package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
  461. package/dist/v2/components/FavoriteToggle.js +2 -1
  462. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  463. package/dist/v2/components/Field.d.ts +76 -13
  464. package/dist/v2/components/Field.d.ts.map +1 -1
  465. package/dist/v2/components/Field.js +87 -9
  466. package/dist/v2/components/Field.js.map +1 -1
  467. package/dist/v2/components/FieldError.d.ts +78 -0
  468. package/dist/v2/components/FieldError.d.ts.map +1 -0
  469. package/dist/v2/components/FieldError.js +131 -0
  470. package/dist/v2/components/FieldError.js.map +1 -0
  471. package/dist/v2/components/FieldHelp.d.ts +7 -7
  472. package/dist/v2/components/FieldHelp.d.ts.map +1 -1
  473. package/dist/v2/components/FieldHelp.js.map +1 -1
  474. package/dist/v2/components/FileCard.d.ts +75 -0
  475. package/dist/v2/components/FileCard.d.ts.map +1 -0
  476. package/dist/v2/components/FileCard.js +169 -0
  477. package/dist/v2/components/FileCard.js.map +1 -0
  478. package/dist/v2/components/FilterTab.d.ts +9 -9
  479. package/dist/v2/components/FilterTab.d.ts.map +1 -1
  480. package/dist/v2/components/FilterTab.js +2 -1
  481. package/dist/v2/components/FilterTab.js.map +1 -1
  482. package/dist/v2/components/FormGrid.d.ts +9 -4
  483. package/dist/v2/components/FormGrid.d.ts.map +1 -1
  484. package/dist/v2/components/FormGrid.js +11 -1
  485. package/dist/v2/components/FormGrid.js.map +1 -1
  486. package/dist/v2/components/FormikDisplay.d.ts +6 -6
  487. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  488. package/dist/v2/components/FormikDisplay.js.map +1 -1
  489. package/dist/v2/components/Input.d.ts +6 -6
  490. package/dist/v2/components/Input.d.ts.map +1 -1
  491. package/dist/v2/components/Input.js.map +1 -1
  492. package/dist/v2/components/KPICard.d.ts +43 -13
  493. package/dist/v2/components/KPICard.d.ts.map +1 -1
  494. package/dist/v2/components/KPICard.js +53 -14
  495. package/dist/v2/components/KPICard.js.map +1 -1
  496. package/dist/v2/components/KPIStrip.d.ts +68 -0
  497. package/dist/v2/components/KPIStrip.d.ts.map +1 -0
  498. package/dist/v2/components/KPIStrip.js +92 -0
  499. package/dist/v2/components/KPIStrip.js.map +1 -0
  500. package/dist/v2/components/KV.d.ts +3 -3
  501. package/dist/v2/components/KV.d.ts.map +1 -1
  502. package/dist/v2/components/KV.js.map +1 -1
  503. package/dist/v2/components/KVGrid.d.ts +2 -2
  504. package/dist/v2/components/KVGrid.d.ts.map +1 -1
  505. package/dist/v2/components/KVGrid.js +8 -1
  506. package/dist/v2/components/KVGrid.js.map +1 -1
  507. package/dist/v2/components/Layout.d.ts +7 -7
  508. package/dist/v2/components/Layout.d.ts.map +1 -1
  509. package/dist/v2/components/Layout.js.map +1 -1
  510. package/dist/v2/components/MobileRowCard.d.ts +13 -13
  511. package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
  512. package/dist/v2/components/MobileRowCard.js.map +1 -1
  513. package/dist/v2/components/Modal.d.ts +12 -12
  514. package/dist/v2/components/Modal.d.ts.map +1 -1
  515. package/dist/v2/components/Modal.js.map +1 -1
  516. package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
  517. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  518. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  519. package/dist/v2/components/NumberInput.d.ts +14 -14
  520. package/dist/v2/components/NumberInput.d.ts.map +1 -1
  521. package/dist/v2/components/NumberInput.js +7 -6
  522. package/dist/v2/components/NumberInput.js.map +1 -1
  523. package/dist/v2/components/OverflowMenu.d.ts +14 -14
  524. package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
  525. package/dist/v2/components/OverflowMenu.js +4 -8
  526. package/dist/v2/components/OverflowMenu.js.map +1 -1
  527. package/dist/v2/components/PdfViewer.d.ts +9 -9
  528. package/dist/v2/components/PdfViewer.d.ts.map +1 -1
  529. package/dist/v2/components/PdfViewer.js.map +1 -1
  530. package/dist/v2/components/ProgressBar.d.ts +10 -10
  531. package/dist/v2/components/ProgressBar.d.ts.map +1 -1
  532. package/dist/v2/components/ProgressBar.js.map +1 -1
  533. package/dist/v2/components/Radio.d.ts +7 -7
  534. package/dist/v2/components/Radio.d.ts.map +1 -1
  535. package/dist/v2/components/Radio.js.map +1 -1
  536. package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
  537. package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
  538. package/dist/v2/components/SectionErrorBoundary.js +221 -0
  539. package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
  540. package/dist/v2/components/SectionHeader.d.ts +5 -5
  541. package/dist/v2/components/SectionHeader.d.ts.map +1 -1
  542. package/dist/v2/components/SectionHeader.js.map +1 -1
  543. package/dist/v2/components/Segmented.d.ts +11 -11
  544. package/dist/v2/components/Segmented.d.ts.map +1 -1
  545. package/dist/v2/components/Segmented.js.map +1 -1
  546. package/dist/v2/components/Select.d.ts +33 -15
  547. package/dist/v2/components/Select.d.ts.map +1 -1
  548. package/dist/v2/components/Select.js +147 -30
  549. package/dist/v2/components/Select.js.map +1 -1
  550. package/dist/v2/components/ServerErrorPage.d.ts +1 -1
  551. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  552. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  553. package/dist/v2/components/Skeleton.d.ts +15 -15
  554. package/dist/v2/components/Skeleton.d.ts.map +1 -1
  555. package/dist/v2/components/Skeleton.js.map +1 -1
  556. package/dist/v2/components/SkipLink.d.ts +2 -2
  557. package/dist/v2/components/SkipLink.d.ts.map +1 -1
  558. package/dist/v2/components/SkipLink.js.map +1 -1
  559. package/dist/v2/components/Status.d.ts +3 -3
  560. package/dist/v2/components/Status.d.ts.map +1 -1
  561. package/dist/v2/components/Status.js.map +1 -1
  562. package/dist/v2/components/Stepper.d.ts +28 -22
  563. package/dist/v2/components/Stepper.d.ts.map +1 -1
  564. package/dist/v2/components/Stepper.js +31 -5
  565. package/dist/v2/components/Stepper.js.map +1 -1
  566. package/dist/v2/components/Surface.d.ts +94 -0
  567. package/dist/v2/components/Surface.d.ts.map +1 -0
  568. package/dist/v2/components/Surface.js +163 -0
  569. package/dist/v2/components/Surface.js.map +1 -0
  570. package/dist/v2/components/Switch.d.ts +4 -4
  571. package/dist/v2/components/Switch.d.ts.map +1 -1
  572. package/dist/v2/components/Switch.js.map +1 -1
  573. package/dist/v2/components/Tabs.d.ts +6 -6
  574. package/dist/v2/components/Tabs.d.ts.map +1 -1
  575. package/dist/v2/components/Tabs.js.map +1 -1
  576. package/dist/v2/components/TelInput.d.ts +8 -8
  577. package/dist/v2/components/TelInput.d.ts.map +1 -1
  578. package/dist/v2/components/TelInput.js +18 -18
  579. package/dist/v2/components/TelInput.js.map +1 -1
  580. package/dist/v2/components/Textarea.d.ts +1 -1
  581. package/dist/v2/components/Textarea.d.ts.map +1 -1
  582. package/dist/v2/components/Textarea.js.map +1 -1
  583. package/dist/v2/components/TimePicker.d.ts +11 -11
  584. package/dist/v2/components/TimePicker.d.ts.map +1 -1
  585. package/dist/v2/components/TimePicker.js.map +1 -1
  586. package/dist/v2/components/Toast.d.ts +6 -6
  587. package/dist/v2/components/Toast.d.ts.map +1 -1
  588. package/dist/v2/components/Toast.js +9 -8
  589. package/dist/v2/components/Toast.js.map +1 -1
  590. package/dist/v2/components/Tooltip.d.ts +1 -1
  591. package/dist/v2/components/Tooltip.d.ts.map +1 -1
  592. package/dist/v2/components/Tooltip.js.map +1 -1
  593. package/dist/v2/components/index.d.ts +170 -0
  594. package/dist/v2/components/index.d.ts.map +1 -1
  595. package/dist/v2/components/index.js +35 -0
  596. package/dist/v2/components/index.js.map +1 -1
  597. package/dist/v2/index.d.ts.map +1 -1
  598. package/dist/v2/index.js.map +1 -1
  599. package/dist/v2/models/favorite.d.ts +1 -1
  600. package/dist/v2/models/favorite.d.ts.map +1 -1
  601. package/dist/v2/models/favorite.js.map +1 -1
  602. package/dist/v2/models/personalization.d.ts +13 -13
  603. package/dist/v2/models/personalization.d.ts.map +1 -1
  604. package/dist/v2/models/personalization.js.map +1 -1
  605. package/dist/v2/models/referentiel.d.ts +11 -11
  606. package/dist/v2/models/referentiel.d.ts.map +1 -1
  607. package/dist/v2/models/referentiel.js.map +1 -1
  608. package/dist/v2/models/savedFilter.d.ts +8 -8
  609. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  610. package/dist/v2/models/savedFilter.js.map +1 -1
  611. package/dist/v2/patterns/ActionBar.d.ts +33 -33
  612. package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
  613. package/dist/v2/patterns/ActionBar.js +2 -1
  614. package/dist/v2/patterns/ActionBar.js.map +1 -1
  615. package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
  616. package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
  617. package/dist/v2/patterns/BulkActionBar.js +2 -1
  618. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  619. package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
  620. package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
  621. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  622. package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
  623. package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
  624. package/dist/v2/patterns/ColumnsToggle.js +4 -8
  625. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  626. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
  627. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  628. package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
  629. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  630. package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
  631. package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
  632. package/dist/v2/patterns/DataGridToolbar.js +2 -1
  633. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  634. package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
  635. package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
  636. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  637. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
  638. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
  639. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  640. package/dist/v2/patterns/FavoriteColumn.d.ts +15 -15
  641. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  642. package/dist/v2/patterns/FavoriteColumn.js +14 -61
  643. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  644. package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
  645. package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
  646. package/dist/v2/patterns/FavoritesFilter.js +2 -1
  647. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  648. package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
  649. package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
  650. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  651. package/dist/v2/patterns/FormPageShell.d.ts +4 -4
  652. package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
  653. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  654. package/dist/v2/patterns/FormSection.d.ts +19 -8
  655. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  656. package/dist/v2/patterns/FormSection.js +106 -71
  657. package/dist/v2/patterns/FormSection.js.map +1 -1
  658. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  659. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  660. package/dist/v2/patterns/FormikCheckbox.js +147 -0
  661. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  662. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
  663. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  664. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  665. package/dist/v2/patterns/FormikCombobox.d.ts +18 -12
  666. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  667. package/dist/v2/patterns/FormikCombobox.js +5 -2
  668. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  669. package/dist/v2/patterns/FormikDatePicker.d.ts +48 -8
  670. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  671. package/dist/v2/patterns/FormikDatePicker.js +58 -65
  672. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  673. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  674. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  675. package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
  676. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  677. package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
  678. package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
  679. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  680. package/dist/v2/patterns/FormikFile.d.ts +8 -8
  681. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  682. package/dist/v2/patterns/FormikFile.js.map +1 -1
  683. package/dist/v2/patterns/FormikInput.d.ts +51 -6
  684. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  685. package/dist/v2/patterns/FormikInput.js +53 -2
  686. package/dist/v2/patterns/FormikInput.js.map +1 -1
  687. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  688. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  689. package/dist/v2/patterns/FormikRadioGroup.js +148 -0
  690. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  691. package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
  692. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  693. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  694. package/dist/v2/patterns/FormikSelect.d.ts +41 -12
  695. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  696. package/dist/v2/patterns/FormikSelect.js +32 -3
  697. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  698. package/dist/v2/patterns/FormikTextarea.d.ts +14 -6
  699. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  700. package/dist/v2/patterns/FormikTextarea.js +5 -2
  701. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  702. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +21 -8
  703. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  704. package/dist/v2/patterns/KeyboardShortcutsHelp.js +27 -14
  705. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  706. package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
  707. package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
  708. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  709. package/dist/v2/patterns/PageContent.d.ts +3 -3
  710. package/dist/v2/patterns/PageContent.d.ts.map +1 -1
  711. package/dist/v2/patterns/PageContent.js.map +1 -1
  712. package/dist/v2/patterns/ReferentielField.d.ts +49 -49
  713. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  714. package/dist/v2/patterns/ReferentielField.js +2 -1
  715. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  716. package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
  717. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  718. package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
  719. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  720. package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
  721. package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
  722. package/dist/v2/patterns/SaveFilterDialog.js +9 -8
  723. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  724. package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
  725. package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
  726. package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
  727. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  728. package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
  729. package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
  730. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  731. package/dist/v2/patterns/SortableHeader.d.ts +1 -1
  732. package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
  733. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  734. package/dist/v2/patterns/Tour.d.ts +12 -12
  735. package/dist/v2/patterns/Tour.d.ts.map +1 -1
  736. package/dist/v2/patterns/Tour.js +9 -8
  737. package/dist/v2/patterns/Tour.js.map +1 -1
  738. package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
  739. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  740. package/dist/v2/patterns/_dataGridShared.js +37 -3
  741. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  742. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  743. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  744. package/dist/v2/patterns/_pickerSerialisation.js +81 -0
  745. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  746. package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
  747. package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
  748. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  749. package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
  750. package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
  751. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  752. package/dist/v2/patterns/index.d.ts +114 -0
  753. package/dist/v2/patterns/index.d.ts.map +1 -1
  754. package/dist/v2/patterns/index.js +34 -0
  755. package/dist/v2/patterns/index.js.map +1 -1
  756. package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
  757. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  758. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  759. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
  760. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
  761. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  762. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
  763. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
  764. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  765. package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
  766. package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
  767. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  768. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  769. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  770. package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
  771. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  772. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  773. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  774. package/dist/v2/personalization/capabilities/index.js +13 -0
  775. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  776. package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
  777. package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
  778. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  779. package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
  780. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  781. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  782. package/dist/v2/personalization/index.d.ts +18 -0
  783. package/dist/v2/personalization/index.d.ts.map +1 -1
  784. package/dist/v2/personalization/index.js +13 -0
  785. package/dist/v2/personalization/index.js.map +1 -1
  786. package/dist/v2/personalization/schema.d.ts +2 -2
  787. package/dist/v2/personalization/schema.d.ts.map +1 -1
  788. package/dist/v2/personalization/schema.js.map +1 -1
  789. package/dist/v2/personalization/types.d.ts +19 -19
  790. package/dist/v2/personalization/types.d.ts.map +1 -1
  791. package/dist/v2/personalization/types.js.map +1 -1
  792. package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
  793. package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
  794. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  795. package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
  796. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  797. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  798. package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
  799. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  800. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  801. package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
  802. package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
  803. package/dist/v2/theme/createPortnetTheme.js +25 -1
  804. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  805. package/dist/v2/types/datagrid.d.ts +59 -59
  806. package/dist/v2/types/datagrid.d.ts.map +1 -1
  807. package/dist/v2/types/datagrid.js.map +1 -1
  808. package/dist/v2/utils/apiError.d.ts +65 -4
  809. package/dist/v2/utils/apiError.d.ts.map +1 -1
  810. package/dist/v2/utils/apiError.js +69 -6
  811. package/dist/v2/utils/apiError.js.map +1 -1
  812. package/dist/v2/utils/index.d.ts +1 -0
  813. package/dist/v2/utils/index.d.ts.map +1 -1
  814. package/dist/v2/utils/index.js +7 -0
  815. package/dist/v2/utils/index.js.map +1 -1
  816. package/dist/v2/utils/mergeLabels.d.ts +59 -0
  817. package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
  818. package/dist/v2/utils/mergeLabels.js +93 -0
  819. package/dist/v2/utils/mergeLabels.js.map +1 -0
  820. package/package.json +23 -15
@@ -0,0 +1,148 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ var _excluded = ["name", "label", "hint", "accept", "maxSize", "required", "disabled", "mode", "companionFields"];
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
11
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
12
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
13
+ 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."); }
14
+ 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); }
15
+ 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; }
16
+ 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; } }
17
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18
+ 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; }
19
+ 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; }
20
+ /**
21
+ * FormikFile — bridge between Formik state and v2.Dropzone.
22
+ *
23
+ * Two modes:
24
+ * - mode="single" (default): File or null in Formik. Writes
25
+ * companion metadata fields (extension/size/type/name) on
26
+ * add; clears them on remove.
27
+ * - mode="bulk": File[] in Formik. No companion writes.
28
+ *
29
+ * Companion-field naming defaults to ms-ti-fe convention
30
+ * (fileExtension / fileSize / fileType / nom). Override with
31
+ * `companionFields` prop if your module differs.
32
+ *
33
+ * v2.Dropzone contract used:
34
+ * - value: [{id, name, size}]
35
+ * - onAdd(File[]): receives accepted files (already validated)
36
+ * - onRemove(id): receives the id of the entry to remove
37
+ *
38
+ * Charter R-FU.*. Peer dep: formik >= 2.x.
39
+ */
40
+
41
+ import * as React from "react";
42
+ import { useField, useFormikContext } from "formik";
43
+ import Field from "../components/Field";
44
+ import Dropzone from "../components/Dropzone";
45
+ import { jsx as _jsx } from "react/jsx-runtime";
46
+ var DEFAULT_COMPANION_FIELDS = Object.freeze({
47
+ ext: "fileExtension",
48
+ size: "fileSize",
49
+ type: "fileType",
50
+ name: "nom"
51
+ });
52
+
53
+ /* v2.Dropzone displays a row per entry in `value`. We synthesise
54
+ the row shape from the File object held in Formik. We use
55
+ `file.name` as the id since File has no stable identifier of
56
+ its own — Dropzone passes this id back to onRemove. */
57
+ var toDropzoneShape = function toDropzoneShape(file) {
58
+ if (file == null || !(file instanceof File)) return null;
59
+ return {
60
+ id: file.name,
61
+ name: file.name,
62
+ size: file.size
63
+ };
64
+ };
65
+ var FormikFile = function FormikFile(_ref) {
66
+ var name = _ref.name,
67
+ label = _ref.label,
68
+ hint = _ref.hint,
69
+ accept = _ref.accept,
70
+ maxSize = _ref.maxSize,
71
+ required = _ref.required,
72
+ disabled = _ref.disabled,
73
+ _ref$mode = _ref.mode,
74
+ mode = _ref$mode === void 0 ? "single" : _ref$mode,
75
+ _ref$companionFields = _ref.companionFields,
76
+ companionFields = _ref$companionFields === void 0 ? DEFAULT_COMPANION_FIELDS : _ref$companionFields,
77
+ rest = _objectWithoutProperties(_ref, _excluded);
78
+ var _useField = useField(name),
79
+ _useField2 = _slicedToArray(_useField, 2),
80
+ field = _useField2[0],
81
+ meta = _useField2[1];
82
+ var _useFormikContext = useFormikContext(),
83
+ setFieldValue = _useFormikContext.setFieldValue,
84
+ setFieldTouched = _useFormikContext.setFieldTouched;
85
+ var hasError = Boolean(meta.touched && meta.error);
86
+ var isBulk = mode === "bulk";
87
+ var value = (isBulk ? (Array.isArray(field.value) ? field.value : []).map(toDropzoneShape) : field.value instanceof File ? [toDropzoneShape(field.value)] : []).filter(function (x) {
88
+ return x != null;
89
+ });
90
+ var writeCompanions = function writeCompanions(file) {
91
+ if (isBulk) return;
92
+ setFieldValue(companionFields.ext, file ? file.name.split(".").pop() : "");
93
+ setFieldValue(companionFields.size, file ? file.size : null);
94
+ setFieldValue(companionFields.type, file ? file.type : "");
95
+ setFieldValue(companionFields.name, file ? file.name : "");
96
+ };
97
+ var handleAdd = function handleAdd(files) {
98
+ if (!files || files.length === 0) return;
99
+ if (isBulk) {
100
+ var merged = [].concat(_toConsumableArray(Array.isArray(field.value) ? field.value : []), _toConsumableArray(files));
101
+ setFieldValue(name, merged);
102
+ setFieldTouched(name, true, false);
103
+ } else {
104
+ var file = files[0];
105
+ setFieldValue(name, file);
106
+ writeCompanions(file !== null && file !== void 0 ? file : null);
107
+ setFieldTouched(name, true, false);
108
+ }
109
+ };
110
+
111
+ /* Dropzone calls onRemove(id). In single mode the id was the
112
+ File's name; in bulk mode we filter by the same key. */
113
+ var handleRemove = function handleRemove(id) {
114
+ if (isBulk) {
115
+ var remaining = (Array.isArray(field.value) ? field.value : []).filter(function (f) {
116
+ return f.name !== id;
117
+ });
118
+ setFieldValue(name, remaining);
119
+ } else {
120
+ setFieldValue(name, null);
121
+ writeCompanions(null);
122
+ }
123
+ };
124
+ return /*#__PURE__*/_jsx(Field, _objectSpread(_objectSpread(_objectSpread({
125
+ label: label,
126
+ error: hasError ? meta.error : null
127
+ }, required !== undefined ? {
128
+ required: required
129
+ } : {}), disabled !== undefined ? {
130
+ disabled: disabled
131
+ } : {}), {}, {
132
+ children: /*#__PURE__*/_jsx(Dropzone, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
133
+ multiple: isBulk,
134
+ value: value,
135
+ hint: hint,
136
+ onAdd: handleAdd,
137
+ onRemove: handleRemove
138
+ }, rest), accept !== undefined ? {
139
+ accept: accept
140
+ } : {}), disabled !== undefined ? {
141
+ disabled: disabled
142
+ } : {}), maxSize !== undefined ? {
143
+ maxSize: maxSize
144
+ } : {}))
145
+ }));
146
+ };
147
+ export default FormikFile;
148
+ //# sourceMappingURL=FormikFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikFile.js","names":["React","useField","useFormikContext","Field","Dropzone","jsx","_jsx","DEFAULT_COMPANION_FIELDS","Object","freeze","ext","size","type","name","toDropzoneShape","file","File","id","FormikFile","_ref","label","hint","accept","maxSize","required","disabled","_ref$mode","mode","_ref$companionFields","companionFields","rest","_objectWithoutProperties","_excluded","_useField","_useField2","_slicedToArray","field","meta","_useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","isBulk","value","Array","isArray","map","filter","x","writeCompanions","split","pop","handleAdd","files","length","merged","concat","_toConsumableArray","handleRemove","remaining","f","_objectSpread","undefined","children","multiple","onAdd","onRemove"],"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":[]}
@@ -0,0 +1,130 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ var _excluded = ["name", "label", "required", "disabled", "readOnly", "mono", "htmlFor", "hint", "width"];
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
+ 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."); }
10
+ 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); }
11
+ 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; }
12
+ 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; } }
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+ 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; }
15
+ 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; }
16
+ /**
17
+ * FormikInput — bridge between Formik state and v2.Field + v2.Input.
18
+ *
19
+ * Charter §03 / R-I.1 → R-I.6. Replaces the inline copy of this
20
+ * bridge that consumer modules previously duplicated.
21
+ *
22
+ * Peer dependency: `formik` >= 2.x must be installed in the host
23
+ * module. The lib does not bundle Formik.
24
+ *
25
+ * Usage:
26
+ *
27
+ * import { FormikInput } from "@portnet/ui/lib/v2";
28
+ *
29
+ * <FormikInput
30
+ * name="numeroRc"
31
+ * label="Numéro RC"
32
+ * required
33
+ * inputProps={{ maxLength: 20 }}
34
+ * />
35
+ *
36
+ * Error semantics: errors surface only after the field is
37
+ * touched (first blur). This matches Charter R-I.4 — do not
38
+ * shout at the user on every keystroke.
39
+ *
40
+ * ── `readOnly` vs `disabled` ─────────────────────────────────────────
41
+ *
42
+ * <FormikInput name="raison" label="Raison sociale" readOnly={isDetail} />
43
+ *
44
+ * `readOnly` renders the value through `FormikDisplay` — grey panel, no input
45
+ * chrome, selectable text. `disabled` keeps an input and greys it out.
46
+ *
47
+ * THE TWO ARE NOT INTERCHANGEABLE, and modules had only `disabled`. Consumers
48
+ * that reuse ONE form for create, edit AND consultation were therefore passing
49
+ * `disabled={readOnly}` on every field, so a detail page rendered ~100 greyed
50
+ * INPUTS. That is the wrong affordance: a disabled control means "temporarily
51
+ * unavailable, may become editable", not "this is information". Reported from
52
+ * amssnur-ui testing across its whole demande form.
53
+ *
54
+ * Note WCAG does NOT forbid the old behaviour — SC 1.4.3 exempts "text that is
55
+ * part of an inactive user interface component" from contrast requirements. So
56
+ * this is a Charter and affordance defect, not an accessibility violation. But
57
+ * `FormikDisplay` is measurably better anyway: its own audit records 7.52:1
58
+ * (AAA) for `--fg-muted` on `--bg-subtle`, against roughly 2.9:1 for MUI's
59
+ * disabled text.
60
+ *
61
+ * Why here and not in each module: `FormikDisplay` already existed and was
62
+ * already correct — nothing routed to it automatically, so every module had to
63
+ * branch by hand per field, and none did. The certified reference (`ms-ti-fe`)
64
+ * sidesteps the problem by building SEPARATE read-only components for its
65
+ * detail pages, which is a valid architecture but not one a module reusing a
66
+ * single form can adopt without a rewrite.
67
+ *
68
+ * `disabled` wins when both are passed: a field that is genuinely unavailable
69
+ * (dependency not yet chosen) must not be presented as settled information.
70
+ */
71
+
72
+ import * as React from "react";
73
+ import { useField } from "formik";
74
+ import Field from "../components/Field";
75
+ import Input from "../components/Input";
76
+ import FormikDisplay from "../components/FormikDisplay";
77
+ import { jsx as _jsx } from "react/jsx-runtime";
78
+ var FormikInput = function FormikInput(_ref) {
79
+ var _field$value;
80
+ var name = _ref.name,
81
+ label = _ref.label,
82
+ required = _ref.required,
83
+ disabled = _ref.disabled,
84
+ readOnly = _ref.readOnly,
85
+ mono = _ref.mono,
86
+ htmlFor = _ref.htmlFor,
87
+ hint = _ref.hint,
88
+ width = _ref.width,
89
+ rest = _objectWithoutProperties(_ref, _excluded);
90
+ var _useField = useField(name),
91
+ _useField2 = _slicedToArray(_useField, 2),
92
+ field = _useField2[0],
93
+ meta = _useField2[1];
94
+ var hasError = Boolean(meta.touched && meta.error);
95
+
96
+ /* Read-only display. `disabled` takes precedence deliberately — see header.
97
+ * `required` is dropped: an asterisk on information the user cannot supply is
98
+ * noise, and validation cannot fire on a field with no input. */
99
+ if (readOnly && !disabled) {
100
+ return /*#__PURE__*/_jsx(FormikDisplay, _objectSpread(_objectSpread({
101
+ name: name,
102
+ label: label
103
+ }, hint !== undefined ? {
104
+ hint: hint
105
+ } : {}), mono !== undefined ? {
106
+ mono: mono
107
+ } : {}));
108
+ }
109
+ return /*#__PURE__*/_jsx(Field, _objectSpread(_objectSpread(_objectSpread(_objectSpread({
110
+ label: label,
111
+ error: hasError ? meta.error : null,
112
+ hint: !hasError ? hint : undefined,
113
+ htmlFor: htmlFor || name
114
+ }, required !== undefined ? {
115
+ required: required
116
+ } : {}), disabled !== undefined ? {
117
+ disabled: disabled
118
+ } : {}), width !== undefined ? {
119
+ width: width
120
+ } : {}), {}, {
121
+ children: /*#__PURE__*/_jsx(Input, _objectSpread({
122
+ name: field.name,
123
+ value: (_field$value = field.value) !== null && _field$value !== void 0 ? _field$value : "",
124
+ onChange: field.onChange,
125
+ onBlur: field.onBlur
126
+ }, rest))
127
+ }));
128
+ };
129
+ export default FormikInput;
130
+ //# sourceMappingURL=FormikInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikInput.js","names":["React","useField","Field","Input","FormikDisplay","jsx","_jsx","FormikInput","_ref","_field$value","name","label","required","disabled","readOnly","mono","htmlFor","hint","width","rest","_objectWithoutProperties","_excluded","_useField","_useField2","_slicedToArray","field","meta","hasError","Boolean","touched","error","_objectSpread","undefined","children","value","onChange","onBlur"],"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,141 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ 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); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ 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."); }
9
+ 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); }
10
+ 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; }
11
+ 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; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ /**
14
+ * FormikRadioGroup — bridge between Formik state and v2.Field +
15
+ * v2.RadioGroup.
16
+ *
17
+ * ── WHY (gap G-C) ────────────────────────────────────────────────────
18
+ *
19
+ * R-Sel.2 is a MUST: 2–3 options → Radio or Segmented, never a Select. So any
20
+ * form with a two-way business question has to reach for `RadioGroup` — and
21
+ * until now there was no Formik bridge for it, while `FormikCheckboxGroup`,
22
+ * `FormikSelect`, `FormikCombobox`, `FormikDatePicker`, `FormikTextarea`,
23
+ * `FormikFile` and `FormikInput` all exist. Every host therefore re-wired
24
+ * `useField` + `RadioGroup` by hand, which is the duplication R-2.1 forbids
25
+ * and, worse, the shape in which validation messages go missing: a hand-rolled
26
+ * bridge renders the control but forgets `FieldError`.
27
+ *
28
+ * Reported from refonte-frontend (lot 5), where ONE form carried two such
29
+ * groups (`usageHorsMetrologique`, `certificat`).
30
+ *
31
+ * ── THE VALUE IS WRITTEN BACK AS DECLARED, NOT AS THE DOM SAW IT ─────
32
+ *
33
+ * This is the contract that matters, and it is invisible.
34
+ *
35
+ * A native `<input type="radio">` only ever reports a STRING. A host whose
36
+ * options are numbers — `{ value: 1 }`, `{ value: 2 }` — and whose payload
37
+ * declares a number would silently start sending `"1"` after the user picks.
38
+ * The API accepts it or rejects it days later; nothing in the UI tells anyone.
39
+ *
40
+ * So `onChange` matches the DOM string back against the option list and writes
41
+ * the ORIGINAL option value. Numbers stay numbers, strings stay strings. Only
42
+ * when no option matches (a host mutating its list mid-flight) does the raw DOM
43
+ * string go through, because dropping the user's click would be worse.
44
+ *
45
+ * Symmetrically, the group's `value` is compared as a string, so a field
46
+ * holding a boolean `false` selects the option declared `"false"`, and a field
47
+ * holding the number `2` selects `{ value: 2 }`. The STORED value is never
48
+ * coerced by this — only the comparison is.
49
+ *
50
+ * Usage:
51
+ *
52
+ * <FormikRadioGroup
53
+ * name="importateur.certificat"
54
+ * label="Modèle déjà approuvé"
55
+ * required
56
+ * row
57
+ * options={[
58
+ * { value: "true", label: "Oui" },
59
+ * { value: "false", label: "Non" },
60
+ * ]}
61
+ * />
62
+ *
63
+ * ── ERRORS APPEAR ON PICK, NOT ON BLUR ──────────────────────────────
64
+ *
65
+ * A radio group has no meaningful blur-before-change: the first interaction IS
66
+ * the answer. Waiting for a blur keeps a required-group message hidden while
67
+ * the user clicks around. Picking marks the field touched — same rule as
68
+ * `FormikCheckbox` and `FormikCheckboxGroup`.
69
+ *
70
+ * `required` is expressed on the FIELD, not on the options: `Field` renders the
71
+ * asterisk on the group label and injects `aria-required`, which — unlike the
72
+ * single-checkbox case — is valid on `role="radiogroup"` and forwarded by
73
+ * `RadioGroup`.
74
+ *
75
+ * Charter §03 · R-Sel.2, R-I.2, R-I.3, R-4.1. Peer dependency: formik >= 2.x.
76
+ */
77
+
78
+ import * as React from "react";
79
+ import { useField, useFormikContext } from "formik";
80
+ import Field from "../components/Field";
81
+ import { RadioGroup } from "../components/Radio";
82
+ import { jsx as _jsx } from "react/jsx-runtime";
83
+ /** Declared value of an option, whatever its shape. */
84
+ function valeurOption(option) {
85
+ return typeof option === "string" ? option : option.value;
86
+ }
87
+ var FormikRadioGroup = function FormikRadioGroup(_ref) {
88
+ var name = _ref.name,
89
+ label = _ref.label,
90
+ _ref$options = _ref.options,
91
+ options = _ref$options === void 0 ? [] : _ref$options,
92
+ required = _ref.required,
93
+ disabled = _ref.disabled,
94
+ hint = _ref.hint,
95
+ row = _ref.row;
96
+ var _useField = useField(name),
97
+ _useField2 = _slicedToArray(_useField, 2),
98
+ field = _useField2[0],
99
+ meta = _useField2[1];
100
+ var _useFormikContext = useFormikContext(),
101
+ setFieldValue = _useFormikContext.setFieldValue,
102
+ setFieldTouched = _useFormikContext.setFieldTouched;
103
+ var hasError = Boolean(meta.touched && meta.error);
104
+
105
+ /* Comparison only — the stored value is left untouched. A field holding
106
+ * boolean `false` therefore selects the option declared "false". */
107
+ var selection = field.value === null || field.value === undefined ? "" : String(field.value);
108
+ var handleChange = function handleChange(_event, valeurDom) {
109
+ var correspondante = options.find(function (option) {
110
+ return String(valeurOption(option)) === valeurDom;
111
+ });
112
+ /* Write back the DECLARED value — see the note above. The raw DOM string
113
+ * is the fallback, not the norm. */
114
+ void setFieldValue(name, correspondante === undefined ? valeurDom : valeurOption(correspondante));
115
+ void setFieldTouched(name, true, false);
116
+ };
117
+ return /*#__PURE__*/_jsx(Field, _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, label !== undefined ? {
118
+ label: label
119
+ } : {}), {}, {
120
+ error: hasError ? meta.error : null,
121
+ hint: !hasError ? hint : undefined,
122
+ group: true
123
+ }, required !== undefined ? {
124
+ required: required
125
+ } : {}), disabled !== undefined ? {
126
+ disabled: disabled
127
+ } : {}), {}, {
128
+ children: /*#__PURE__*/_jsx(RadioGroup, _objectSpread(_objectSpread({
129
+ name: name,
130
+ value: selection,
131
+ options: options,
132
+ onChange: handleChange
133
+ }, row !== undefined ? {
134
+ row: row
135
+ } : {}), disabled !== undefined ? {
136
+ disabled: disabled
137
+ } : {}))
138
+ }));
139
+ };
140
+ export default FormikRadioGroup;
141
+ //# sourceMappingURL=FormikRadioGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormikRadioGroup.js","names":["React","useField","useFormikContext","Field","RadioGroup","jsx","_jsx","valeurOption","option","value","FormikRadioGroup","_ref","name","label","_ref$options","options","required","disabled","hint","row","_useField","_useField2","_slicedToArray","field","meta","_useFormikContext","setFieldValue","setFieldTouched","hasError","Boolean","touched","error","selection","undefined","String","handleChange","_event","valeurDom","correspondante","find","_objectSpread","group","children","onChange"],"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":[]}
@@ -0,0 +1,116 @@
1
+ var _excluded = ["name", "label", "required", "disabled", "hint", "htmlFor", "getOptionValue", "getDescription", "onPick", "seenRows"];
2
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ 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); }
7
+ 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); }
8
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
+ 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."); }
10
+ 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); }
11
+ 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; }
12
+ 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; } }
13
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
+ 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; }
15
+ 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; }
16
+ /**
17
+ * FormikReferentielField — bridge between Formik state and
18
+ * v2.ReferentielField.
19
+ *
20
+ * Mirrors the API surface of the legacy AppFormikSearchField wrapper:
21
+ * - stores `getOptionValue(row)` in Formik state under `name`
22
+ * - displays `getDescription(row)` in the trigger Input (resolves
23
+ * via a host-supplied lookup or a cached map of seen rows)
24
+ * - calls `onPick(row)` after a successful selection so the host
25
+ * can mirror sibling fields (e.g. *.id + *.description pairs)
26
+ *
27
+ * Charter R-Sel.1 → R-Sel.4. Peer dependency: formik >= 2.x.
28
+ */
29
+
30
+ import * as React from "react";
31
+ import { useField, useFormikContext } from "formik";
32
+ import Field from "../components/Field";
33
+ import ReferentielField from "./ReferentielField";
34
+ import { jsx as _jsx } from "react/jsx-runtime";
35
+ function FormikReferentielField(_ref) {
36
+ var name = _ref.name,
37
+ label = _ref.label,
38
+ required = _ref.required,
39
+ disabled = _ref.disabled,
40
+ hint = _ref.hint,
41
+ htmlFor = _ref.htmlFor,
42
+ getOptionValue = _ref.getOptionValue,
43
+ getDescription = _ref.getDescription,
44
+ onPick = _ref.onPick,
45
+ seenRows = _ref.seenRows,
46
+ refProps = _objectWithoutProperties(_ref, _excluded);
47
+ var _useField = useField(name),
48
+ _useField2 = _slicedToArray(_useField, 2),
49
+ field = _useField2[0],
50
+ meta = _useField2[1];
51
+ var _useFormikContext = useFormikContext(),
52
+ setFieldValue = _useFormikContext.setFieldValue,
53
+ setFieldTouched = _useFormikContext.setFieldTouched;
54
+ var hasError = Boolean(meta.touched && meta.error);
55
+
56
+ /* Cache of rows the user has picked in this session, keyed by the
57
+ * resolved option value. Lets us render the trigger label after a
58
+ * pick without re-fetching. */
59
+ var cacheRef = React.useRef(new Map());
60
+ // `seenRows` (if provided) seeds the cache and is NOT forwarded to
61
+ // ReferentielField — consuming it via the destructure keeps refProps clean.
62
+ if (seenRows) {
63
+ seenRows.forEach(function (row) {
64
+ cacheRef.current.set(getOptionValue ? getOptionValue(row) : row, row);
65
+ });
66
+ }
67
+ var valueRow = React.useMemo(function () {
68
+ var _cacheRef$current$get;
69
+ if (field.value == null || field.value === "") return null;
70
+ return (_cacheRef$current$get = cacheRef.current.get(field.value)) !== null && _cacheRef$current$get !== void 0 ? _cacheRef$current$get : null;
71
+ }, [field.value]);
72
+ var handleChange = function handleChange(row) {
73
+ if (row == null) {
74
+ setFieldValue(name, "");
75
+ setFieldTouched(name, true, false);
76
+ return;
77
+ }
78
+ var val = getOptionValue ? getOptionValue(row) : row;
79
+ cacheRef.current.set(val, row);
80
+ setFieldValue(name, val);
81
+ setFieldTouched(name, true, false);
82
+ if (typeof onPick === "function") onPick(row);
83
+ };
84
+ var display = React.useCallback(function (rowOrVal) {
85
+ // ReferentielField calls getDisplayValue(value) — `value` here is
86
+ // either the cached row (if available) or the raw formik primitive.
87
+ // Resolve through the cache when we have it.
88
+ if (rowOrVal && _typeof(rowOrVal) === "object") {
89
+ return getDescription ? getDescription(rowOrVal) : String(rowOrVal);
90
+ }
91
+ var cached = cacheRef.current.get(rowOrVal);
92
+ if (cached) return getDescription ? getDescription(cached) : String(cached);
93
+ return rowOrVal == null ? "" : String(rowOrVal);
94
+ }, [getDescription]);
95
+ return /*#__PURE__*/_jsx(Field, _objectSpread(_objectSpread(_objectSpread({
96
+ label: label,
97
+ error: hasError ? meta.error : null,
98
+ hint: !hasError ? hint : undefined,
99
+ htmlFor: htmlFor || name
100
+ }, required !== undefined ? {
101
+ required: required
102
+ } : {}), disabled !== undefined ? {
103
+ disabled: disabled
104
+ } : {}), {}, {
105
+ children: /*#__PURE__*/_jsx(ReferentielField, _objectSpread(_objectSpread({
106
+ name: name,
107
+ value: valueRow !== null && valueRow !== void 0 ? valueRow : field.value,
108
+ onChange: handleChange,
109
+ getDisplayValue: display
110
+ }, refProps), disabled !== undefined ? {
111
+ disabled: disabled
112
+ } : {}))
113
+ }));
114
+ }
115
+ export default FormikReferentielField;
116
+ //# sourceMappingURL=FormikReferentielField.js.map