@portnet/ui 6.0.2 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (980) hide show
  1. package/CHANGELOG.md +652 -0
  2. package/dist/esm/index.js +72 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
  5. package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
  7. package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
  9. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
  11. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FieldError.test.js +71 -38
  13. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  14. package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
  15. package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/FieldWidth.test.js +11 -11
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  24. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
  25. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +118 -199
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
  29. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  30. package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
  31. package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
  33. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  34. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
  35. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  36. package/dist/esm/v2/__tests__/apiError.test.js +50 -69
  37. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
  38. package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
  39. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
  40. package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
  41. package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
  42. package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
  43. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
  44. package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
  45. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
  46. package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
  47. package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
  48. package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
  49. package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
  50. package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
  51. package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
  52. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
  53. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  54. package/dist/esm/v2/__tests__/labels-merge.test.js +17 -21
  55. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  56. package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
  57. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
  58. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
  59. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  60. package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
  61. package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
  62. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
  63. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  64. package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
  65. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
  66. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
  67. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  68. package/dist/esm/v2/components/Accordion.js +48 -70
  69. package/dist/esm/v2/components/Accordion.js.map +1 -1
  70. package/dist/esm/v2/components/ActionStrip.js +31 -43
  71. package/dist/esm/v2/components/ActionStrip.js.map +1 -1
  72. package/dist/esm/v2/components/Banner.js +25 -22
  73. package/dist/esm/v2/components/Banner.js.map +1 -1
  74. package/dist/esm/v2/components/Busy.js +14 -19
  75. package/dist/esm/v2/components/Busy.js.map +1 -1
  76. package/dist/esm/v2/components/Button.js +34 -45
  77. package/dist/esm/v2/components/Button.js.map +1 -1
  78. package/dist/esm/v2/components/CategoryTag.js +44 -27
  79. package/dist/esm/v2/components/CategoryTag.js.map +1 -1
  80. package/dist/esm/v2/components/Checkbox.js +32 -38
  81. package/dist/esm/v2/components/Checkbox.js.map +1 -1
  82. package/dist/esm/v2/components/Chip.js +23 -36
  83. package/dist/esm/v2/components/Chip.js.map +1 -1
  84. package/dist/esm/v2/components/Combobox.js +112 -136
  85. package/dist/esm/v2/components/Combobox.js.map +1 -1
  86. package/dist/esm/v2/components/CommandPalette.js +113 -198
  87. package/dist/esm/v2/components/CommandPalette.js.map +1 -1
  88. package/dist/esm/v2/components/ConfirmDialog.js +36 -45
  89. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
  90. package/dist/esm/v2/components/DatePicker.js +78 -81
  91. package/dist/esm/v2/components/DatePicker.js.map +1 -1
  92. package/dist/esm/v2/components/DateRangePicker.js +63 -74
  93. package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
  94. package/dist/esm/v2/components/DateTimePicker.js +81 -86
  95. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  96. package/dist/esm/v2/components/Drawer.js +71 -65
  97. package/dist/esm/v2/components/Drawer.js.map +1 -1
  98. package/dist/esm/v2/components/Dropzone.js +130 -177
  99. package/dist/esm/v2/components/Dropzone.js.map +1 -1
  100. package/dist/esm/v2/components/EmptyState.js +9 -9
  101. package/dist/esm/v2/components/EmptyState.js.map +1 -1
  102. package/dist/esm/v2/components/FavoriteToggle.js +24 -33
  103. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
  104. package/dist/esm/v2/components/Field.js +155 -59
  105. package/dist/esm/v2/components/Field.js.map +1 -1
  106. package/dist/esm/v2/components/FieldError.js +9 -13
  107. package/dist/esm/v2/components/FieldError.js.map +1 -1
  108. package/dist/esm/v2/components/FieldHelp.js +28 -49
  109. package/dist/esm/v2/components/FieldHelp.js.map +1 -1
  110. package/dist/esm/v2/components/FileCard.js +14 -19
  111. package/dist/esm/v2/components/FileCard.js.map +1 -1
  112. package/dist/esm/v2/components/FilterTab.js +22 -31
  113. package/dist/esm/v2/components/FilterTab.js.map +1 -1
  114. package/dist/esm/v2/components/ForbiddenPage.js +28 -8
  115. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
  116. package/dist/esm/v2/components/FormGrid.js +48 -54
  117. package/dist/esm/v2/components/FormGrid.js.map +1 -1
  118. package/dist/esm/v2/components/FormikDisplay.js +98 -24
  119. package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
  120. package/dist/esm/v2/components/Input.js +75 -34
  121. package/dist/esm/v2/components/Input.js.map +1 -1
  122. package/dist/esm/v2/components/KPICard.js +42 -51
  123. package/dist/esm/v2/components/KPICard.js.map +1 -1
  124. package/dist/esm/v2/components/KPIStrip.js +9 -15
  125. package/dist/esm/v2/components/KPIStrip.js.map +1 -1
  126. package/dist/esm/v2/components/KV.js +16 -23
  127. package/dist/esm/v2/components/KV.js.map +1 -1
  128. package/dist/esm/v2/components/KVGrid.js +15 -23
  129. package/dist/esm/v2/components/KVGrid.js.map +1 -1
  130. package/dist/esm/v2/components/Layout.js +81 -117
  131. package/dist/esm/v2/components/Layout.js.map +1 -1
  132. package/dist/esm/v2/components/MobileRowCard.js +64 -75
  133. package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
  134. package/dist/esm/v2/components/Modal.js +44 -53
  135. package/dist/esm/v2/components/Modal.js.map +1 -1
  136. package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
  137. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
  138. package/dist/esm/v2/components/NotFoundPage.js +28 -9
  139. package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
  140. package/dist/esm/v2/components/NumberInput.js +77 -107
  141. package/dist/esm/v2/components/NumberInput.js.map +1 -1
  142. package/dist/esm/v2/components/OverflowMenu.js +24 -42
  143. package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
  144. package/dist/esm/v2/components/PdfViewer.js +24 -33
  145. package/dist/esm/v2/components/PdfViewer.js.map +1 -1
  146. package/dist/esm/v2/components/ProgressBar.js +28 -36
  147. package/dist/esm/v2/components/ProgressBar.js.map +1 -1
  148. package/dist/esm/v2/components/Radio.js +49 -57
  149. package/dist/esm/v2/components/Radio.js.map +1 -1
  150. package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
  151. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
  152. package/dist/esm/v2/components/SectionHeader.js +24 -31
  153. package/dist/esm/v2/components/SectionHeader.js.map +1 -1
  154. package/dist/esm/v2/components/Segmented.js +59 -84
  155. package/dist/esm/v2/components/Segmented.js.map +1 -1
  156. package/dist/esm/v2/components/Select.js +100 -138
  157. package/dist/esm/v2/components/Select.js.map +1 -1
  158. package/dist/esm/v2/components/ServerErrorPage.js +27 -10
  159. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
  160. package/dist/esm/v2/components/Skeleton.js +81 -96
  161. package/dist/esm/v2/components/Skeleton.js.map +1 -1
  162. package/dist/esm/v2/components/SkipLink.js +6 -7
  163. package/dist/esm/v2/components/SkipLink.js.map +1 -1
  164. package/dist/esm/v2/components/Spinner.js +13 -22
  165. package/dist/esm/v2/components/Spinner.js.map +1 -1
  166. package/dist/esm/v2/components/Status.js +14 -25
  167. package/dist/esm/v2/components/Status.js.map +1 -1
  168. package/dist/esm/v2/components/Stepper.js +68 -71
  169. package/dist/esm/v2/components/Stepper.js.map +1 -1
  170. package/dist/esm/v2/components/Surface.js +25 -44
  171. package/dist/esm/v2/components/Surface.js.map +1 -1
  172. package/dist/esm/v2/components/Switch.js +21 -29
  173. package/dist/esm/v2/components/Switch.js.map +1 -1
  174. package/dist/esm/v2/components/TabPanel.js +84 -0
  175. package/dist/esm/v2/components/TabPanel.js.map +1 -0
  176. package/dist/esm/v2/components/Tabs.js +43 -19
  177. package/dist/esm/v2/components/Tabs.js.map +1 -1
  178. package/dist/esm/v2/components/TelInput.js +75 -108
  179. package/dist/esm/v2/components/TelInput.js.map +1 -1
  180. package/dist/esm/v2/components/Textarea.js +21 -30
  181. package/dist/esm/v2/components/Textarea.js.map +1 -1
  182. package/dist/esm/v2/components/TimePicker.js +59 -69
  183. package/dist/esm/v2/components/TimePicker.js.map +1 -1
  184. package/dist/esm/v2/components/Toast.js +109 -163
  185. package/dist/esm/v2/components/Toast.js.map +1 -1
  186. package/dist/esm/v2/components/Tooltip.js +18 -31
  187. package/dist/esm/v2/components/Tooltip.js.map +1 -1
  188. package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
  189. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
  190. package/dist/esm/v2/components/_pickerShared.js +2 -2
  191. package/dist/esm/v2/components/_pickerShared.js.map +1 -1
  192. package/dist/esm/v2/components/index.js +37 -0
  193. package/dist/esm/v2/components/index.js.map +1 -1
  194. package/dist/esm/v2/hooks/index.js +62 -0
  195. package/dist/esm/v2/hooks/index.js.map +1 -1
  196. package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
  197. package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
  198. package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
  199. package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
  200. package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
  201. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
  202. package/dist/esm/v2/hooks/useDensity.js +13 -17
  203. package/dist/esm/v2/hooks/useDensity.js.map +1 -1
  204. package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
  205. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
  206. package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
  207. package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  208. package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
  209. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
  210. package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
  211. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
  212. package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
  213. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
  214. package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
  215. package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  216. package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
  217. package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  218. package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
  219. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
  220. package/dist/esm/v2/hooks/useSortedRows.js +3 -5
  221. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
  222. package/dist/esm/v2/hooks/useTabLoading.js +6 -21
  223. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
  224. package/dist/esm/v2/index.js +2 -3
  225. package/dist/esm/v2/index.js.map +1 -1
  226. package/dist/esm/v2/modalContext.js +2 -2
  227. package/dist/esm/v2/modalContext.js.map +1 -1
  228. package/dist/esm/v2/models/favorite.js.map +1 -1
  229. package/dist/esm/v2/models/personalization.js.map +1 -1
  230. package/dist/esm/v2/models/referentiel.js.map +1 -1
  231. package/dist/esm/v2/models/savedFilter.js.map +1 -1
  232. package/dist/esm/v2/patterns/ActionBar.js +115 -159
  233. package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
  234. package/dist/esm/v2/patterns/AppMain.js +108 -0
  235. package/dist/esm/v2/patterns/AppMain.js.map +1 -0
  236. package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
  237. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
  238. package/dist/esm/v2/patterns/ChartFigure.js +151 -0
  239. package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
  240. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
  241. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  242. package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
  243. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
  244. package/dist/esm/v2/patterns/DataGrid.js +221 -255
  245. package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
  246. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
  247. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  248. package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
  249. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
  250. package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
  251. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
  252. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
  253. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  254. package/dist/esm/v2/patterns/DetailSplit.js +108 -0
  255. package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
  256. package/dist/esm/v2/patterns/FavoriteColumn.js +15 -17
  257. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  258. package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
  259. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
  260. package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
  261. package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
  262. package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
  263. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
  264. package/dist/esm/v2/patterns/FormPageShell.js +43 -41
  265. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
  266. package/dist/esm/v2/patterns/FormSection.js +30 -38
  267. package/dist/esm/v2/patterns/FormSection.js.map +1 -1
  268. package/dist/esm/v2/patterns/FormikCheckbox.js +29 -39
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
  270. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
  271. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  272. package/dist/esm/v2/patterns/FormikCombobox.js +51 -69
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
  278. package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
  279. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
  280. package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
  281. package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
  282. package/dist/esm/v2/patterns/FormikFile.js +94 -78
  283. package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
  284. package/dist/esm/v2/patterns/FormikInput.js +40 -53
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
  288. package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
  289. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
  290. package/dist/esm/v2/patterns/FormikSelect.js +64 -87
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
  295. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  296. package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
  297. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
  298. package/dist/esm/v2/patterns/PageContent.js +10 -14
  299. package/dist/esm/v2/patterns/PageContent.js.map +1 -1
  300. package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
  301. package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
  302. package/dist/esm/v2/patterns/ReferentielField.js +327 -312
  303. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
  304. package/dist/esm/v2/patterns/RowFavoriteToggle.js +27 -22
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
  306. package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
  307. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
  308. package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
  309. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
  310. package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
  311. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
  312. package/dist/esm/v2/patterns/SortableHeader.js +22 -45
  313. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
  314. package/dist/esm/v2/patterns/Tour.js +94 -120
  315. package/dist/esm/v2/patterns/Tour.js.map +1 -1
  316. package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
  317. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
  318. package/dist/esm/v2/patterns/_pickerSerialisation.js +6 -8
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
  320. package/dist/esm/v2/patterns/_sort.js +17 -33
  321. package/dist/esm/v2/patterns/_sort.js.map +1 -1
  322. package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
  323. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
  324. package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
  325. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
  326. package/dist/esm/v2/patterns/filterCriteria.js +102 -0
  327. package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
  328. package/dist/esm/v2/patterns/index.js +152 -0
  329. package/dist/esm/v2/patterns/index.js.map +1 -1
  330. package/dist/esm/v2/patterns/rowActions.js +223 -0
  331. package/dist/esm/v2/patterns/rowActions.js.map +1 -0
  332. package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
  333. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
  334. package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
  335. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
  336. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
  337. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  338. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
  339. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  340. package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
  341. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
  342. package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
  343. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
  344. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +28 -34
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  346. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  347. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  348. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  349. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  350. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  351. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  352. package/dist/esm/v2/personalization/index.js +17 -0
  353. package/dist/esm/v2/personalization/index.js.map +1 -1
  354. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  355. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  356. package/dist/esm/v2/personalization/schema.js +8 -9
  357. package/dist/esm/v2/personalization/schema.js.map +1 -1
  358. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  359. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  360. package/dist/esm/v2/referentiel/types.js +2 -0
  361. package/dist/esm/v2/referentiel/types.js.map +1 -0
  362. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  363. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  364. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  365. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  367. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  368. package/dist/esm/v2/theme/_brand.js +8 -24
  369. package/dist/esm/v2/theme/_brand.js.map +1 -1
  370. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  371. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  372. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  373. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  374. package/dist/esm/v2/theme/cssVariables.js +62 -69
  375. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  376. package/dist/esm/v2/theme/index.js +5 -5
  377. package/dist/esm/v2/theme/index.js.map +1 -1
  378. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  379. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  380. package/dist/esm/v2/tokens/chart.js +261 -0
  381. package/dist/esm/v2/tokens/chart.js.map +1 -0
  382. package/dist/esm/v2/tokens/colors.js +22 -22
  383. package/dist/esm/v2/tokens/colors.js.map +1 -1
  384. package/dist/esm/v2/tokens/density.js +62 -7
  385. package/dist/esm/v2/tokens/density.js.map +1 -1
  386. package/dist/esm/v2/tokens/index.js +49 -34
  387. package/dist/esm/v2/tokens/index.js.map +1 -1
  388. package/dist/esm/v2/tokens/motion.js +12 -20
  389. package/dist/esm/v2/tokens/motion.js.map +1 -1
  390. package/dist/esm/v2/tokens/radius.js +1 -1
  391. package/dist/esm/v2/tokens/radius.js.map +1 -1
  392. package/dist/esm/v2/tokens/shadows.js +6 -6
  393. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  394. package/dist/esm/v2/tokens/spacing.js +2 -2
  395. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  396. package/dist/esm/v2/tokens/state.js +1 -1
  397. package/dist/esm/v2/tokens/state.js.map +1 -1
  398. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  399. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  400. package/dist/esm/v2/tokens/tokens.json +6 -1
  401. package/dist/esm/v2/tokens/typography.js +13 -13
  402. package/dist/esm/v2/tokens/typography.js.map +1 -1
  403. package/dist/esm/v2/tokens/zIndex.js +1 -1
  404. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  405. package/dist/esm/v2/types/datagrid.js.map +1 -1
  406. package/dist/esm/v2/utils/apiError.js +16 -37
  407. package/dist/esm/v2/utils/apiError.js.map +1 -1
  408. package/dist/esm/v2/utils/contrast.js +31 -32
  409. package/dist/esm/v2/utils/contrast.js.map +1 -1
  410. package/dist/esm/v2/utils/cx.js +5 -25
  411. package/dist/esm/v2/utils/cx.js.map +1 -1
  412. package/dist/esm/v2/utils/fileDownload.js +23 -26
  413. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  414. package/dist/esm/v2/utils/fileValidation.js +209 -0
  415. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  416. package/dist/esm/v2/utils/fmtDate.js +111 -0
  417. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  419. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  420. package/dist/esm/v2/utils/formikErrors.js +78 -0
  421. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  422. package/dist/esm/v2/utils/index.js +35 -2
  423. package/dist/esm/v2/utils/index.js.map +1 -1
  424. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  425. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  426. package/dist/esm/v2/utils/networkStatus.js +12 -12
  427. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  428. package/dist/index.d.ts +7 -1
  429. package/dist/index.d.ts.map +1 -1
  430. package/dist/index.js +110 -49
  431. package/dist/index.js.map +1 -1
  432. package/dist/v2/__tests__/AppMain.test.js +133 -0
  433. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  434. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  435. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  436. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  437. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  438. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  439. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  440. package/dist/v2/__tests__/FieldError.test.js +82 -49
  441. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  442. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  443. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  444. package/dist/v2/__tests__/FieldWidth.test.js +23 -25
  445. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
  446. package/dist/v2/__tests__/FileCard.test.js +29 -28
  447. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  448. package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
  449. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
  451. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  452. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  453. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
  455. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  456. package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
  457. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  458. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  459. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  460. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  461. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  462. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  463. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  464. package/dist/v2/__tests__/apiError.test.js +50 -69
  465. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  466. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  467. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  468. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  469. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  470. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  471. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  472. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  473. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  474. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  475. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  476. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  477. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  478. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  479. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  480. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  481. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  482. package/dist/v2/__tests__/labels-merge.test.js +23 -27
  483. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  484. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  485. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  486. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  487. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  488. package/dist/v2/__tests__/rowActions.test.js +186 -0
  489. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  490. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  491. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  493. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  494. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  495. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  496. package/dist/v2/components/Accordion.js +60 -82
  497. package/dist/v2/components/Accordion.js.map +1 -1
  498. package/dist/v2/components/ActionStrip.js +40 -52
  499. package/dist/v2/components/ActionStrip.js.map +1 -1
  500. package/dist/v2/components/Banner.js +42 -41
  501. package/dist/v2/components/Banner.js.map +1 -1
  502. package/dist/v2/components/Busy.js +22 -27
  503. package/dist/v2/components/Busy.js.map +1 -1
  504. package/dist/v2/components/Button.js +39 -50
  505. package/dist/v2/components/Button.js.map +1 -1
  506. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  507. package/dist/v2/components/CategoryTag.js +49 -32
  508. package/dist/v2/components/CategoryTag.js.map +1 -1
  509. package/dist/v2/components/Checkbox.js +39 -45
  510. package/dist/v2/components/Checkbox.js.map +1 -1
  511. package/dist/v2/components/Chip.js +29 -42
  512. package/dist/v2/components/Chip.js.map +1 -1
  513. package/dist/v2/components/Combobox.js +122 -144
  514. package/dist/v2/components/Combobox.js.map +1 -1
  515. package/dist/v2/components/CommandPalette.js +138 -225
  516. package/dist/v2/components/CommandPalette.js.map +1 -1
  517. package/dist/v2/components/ConfirmDialog.js +46 -56
  518. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  519. package/dist/v2/components/DatePicker.js +81 -86
  520. package/dist/v2/components/DatePicker.js.map +1 -1
  521. package/dist/v2/components/DateRangePicker.js +77 -87
  522. package/dist/v2/components/DateRangePicker.js.map +1 -1
  523. package/dist/v2/components/DateTimePicker.js +84 -91
  524. package/dist/v2/components/DateTimePicker.js.map +1 -1
  525. package/dist/v2/components/Drawer.d.ts.map +1 -1
  526. package/dist/v2/components/Drawer.js +93 -88
  527. package/dist/v2/components/Drawer.js.map +1 -1
  528. package/dist/v2/components/Dropzone.js +150 -196
  529. package/dist/v2/components/Dropzone.js.map +1 -1
  530. package/dist/v2/components/EmptyState.js +18 -20
  531. package/dist/v2/components/EmptyState.js.map +1 -1
  532. package/dist/v2/components/FavoriteToggle.js +28 -39
  533. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  534. package/dist/v2/components/Field.d.ts +62 -4
  535. package/dist/v2/components/Field.d.ts.map +1 -1
  536. package/dist/v2/components/Field.js +169 -70
  537. package/dist/v2/components/Field.js.map +1 -1
  538. package/dist/v2/components/FieldError.js +18 -21
  539. package/dist/v2/components/FieldError.js.map +1 -1
  540. package/dist/v2/components/FieldHelp.js +40 -60
  541. package/dist/v2/components/FieldHelp.js.map +1 -1
  542. package/dist/v2/components/FileCard.js +27 -31
  543. package/dist/v2/components/FileCard.js.map +1 -1
  544. package/dist/v2/components/FilterTab.js +30 -38
  545. package/dist/v2/components/FilterTab.js.map +1 -1
  546. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  547. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  548. package/dist/v2/components/ForbiddenPage.js +37 -17
  549. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  550. package/dist/v2/components/FormGrid.js +53 -59
  551. package/dist/v2/components/FormGrid.js.map +1 -1
  552. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  553. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  554. package/dist/v2/components/FormikDisplay.js +108 -33
  555. package/dist/v2/components/FormikDisplay.js.map +1 -1
  556. package/dist/v2/components/Input.d.ts +40 -0
  557. package/dist/v2/components/Input.d.ts.map +1 -1
  558. package/dist/v2/components/Input.js +81 -41
  559. package/dist/v2/components/Input.js.map +1 -1
  560. package/dist/v2/components/KPICard.js +57 -67
  561. package/dist/v2/components/KPICard.js.map +1 -1
  562. package/dist/v2/components/KPIStrip.js +16 -22
  563. package/dist/v2/components/KPIStrip.js.map +1 -1
  564. package/dist/v2/components/KV.js +25 -31
  565. package/dist/v2/components/KV.js.map +1 -1
  566. package/dist/v2/components/KVGrid.js +19 -26
  567. package/dist/v2/components/KVGrid.js.map +1 -1
  568. package/dist/v2/components/Layout.js +91 -120
  569. package/dist/v2/components/Layout.js.map +1 -1
  570. package/dist/v2/components/MobileRowCard.js +79 -91
  571. package/dist/v2/components/MobileRowCard.js.map +1 -1
  572. package/dist/v2/components/Modal.js +61 -69
  573. package/dist/v2/components/Modal.js.map +1 -1
  574. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  575. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  576. package/dist/v2/components/NetworkErrorPage.js +38 -21
  577. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  578. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  579. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  580. package/dist/v2/components/NotFoundPage.js +37 -18
  581. package/dist/v2/components/NotFoundPage.js.map +1 -1
  582. package/dist/v2/components/NumberInput.js +88 -118
  583. package/dist/v2/components/NumberInput.js.map +1 -1
  584. package/dist/v2/components/OverflowMenu.js +38 -56
  585. package/dist/v2/components/OverflowMenu.js.map +1 -1
  586. package/dist/v2/components/PdfViewer.js +34 -45
  587. package/dist/v2/components/PdfViewer.js.map +1 -1
  588. package/dist/v2/components/ProgressBar.js +42 -49
  589. package/dist/v2/components/ProgressBar.js.map +1 -1
  590. package/dist/v2/components/Radio.js +59 -67
  591. package/dist/v2/components/Radio.js.map +1 -1
  592. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  593. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  594. package/dist/v2/components/SectionHeader.js +34 -41
  595. package/dist/v2/components/SectionHeader.js.map +1 -1
  596. package/dist/v2/components/Segmented.js +69 -93
  597. package/dist/v2/components/Segmented.js.map +1 -1
  598. package/dist/v2/components/Select.d.ts +26 -2
  599. package/dist/v2/components/Select.d.ts.map +1 -1
  600. package/dist/v2/components/Select.js +120 -155
  601. package/dist/v2/components/Select.js.map +1 -1
  602. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  603. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  604. package/dist/v2/components/ServerErrorPage.js +37 -20
  605. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  606. package/dist/v2/components/Skeleton.js +86 -100
  607. package/dist/v2/components/Skeleton.js.map +1 -1
  608. package/dist/v2/components/SkipLink.js +9 -12
  609. package/dist/v2/components/SkipLink.js.map +1 -1
  610. package/dist/v2/components/Spinner.js +16 -25
  611. package/dist/v2/components/Spinner.js.map +1 -1
  612. package/dist/v2/components/Status.js +18 -29
  613. package/dist/v2/components/Status.js.map +1 -1
  614. package/dist/v2/components/Stepper.js +80 -82
  615. package/dist/v2/components/Stepper.js.map +1 -1
  616. package/dist/v2/components/Surface.js +34 -49
  617. package/dist/v2/components/Surface.js.map +1 -1
  618. package/dist/v2/components/Switch.js +29 -37
  619. package/dist/v2/components/Switch.js.map +1 -1
  620. package/dist/v2/components/TabPanel.d.ts +17 -0
  621. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  622. package/dist/v2/components/TabPanel.js +90 -0
  623. package/dist/v2/components/TabPanel.js.map +1 -0
  624. package/dist/v2/components/Tabs.d.ts +25 -0
  625. package/dist/v2/components/Tabs.d.ts.map +1 -1
  626. package/dist/v2/components/Tabs.js +53 -29
  627. package/dist/v2/components/Tabs.js.map +1 -1
  628. package/dist/v2/components/TelInput.js +80 -115
  629. package/dist/v2/components/TelInput.js.map +1 -1
  630. package/dist/v2/components/Textarea.js +26 -35
  631. package/dist/v2/components/Textarea.js.map +1 -1
  632. package/dist/v2/components/TimePicker.js +62 -74
  633. package/dist/v2/components/TimePicker.js.map +1 -1
  634. package/dist/v2/components/Toast.js +119 -174
  635. package/dist/v2/components/Toast.js.map +1 -1
  636. package/dist/v2/components/Tooltip.js +23 -38
  637. package/dist/v2/components/Tooltip.js.map +1 -1
  638. package/dist/v2/components/_ErrorPageBody.js +15 -16
  639. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  640. package/dist/v2/components/_pickerShared.js +5 -5
  641. package/dist/v2/components/_pickerShared.js.map +1 -1
  642. package/dist/v2/components/index.d.ts +40 -1
  643. package/dist/v2/components/index.d.ts.map +1 -1
  644. package/dist/v2/components/index.js +153 -136
  645. package/dist/v2/components/index.js.map +1 -1
  646. package/dist/v2/hooks/index.d.ts +65 -0
  647. package/dist/v2/hooks/index.d.ts.map +1 -1
  648. package/dist/v2/hooks/index.js +63 -24
  649. package/dist/v2/hooks/index.js.map +1 -1
  650. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  651. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  652. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  653. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  654. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  655. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  656. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  657. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  658. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  659. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  660. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  661. package/dist/v2/hooks/useDensity.js +14 -18
  662. package/dist/v2/hooks/useDensity.js.map +1 -1
  663. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  664. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  665. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  666. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  667. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  668. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  669. package/dist/v2/hooks/useFocusTrap.js +20 -24
  670. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  671. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  672. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  673. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  674. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  675. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  676. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  677. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  678. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  679. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  680. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  681. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  682. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  683. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  684. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  685. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  687. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  688. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  689. package/dist/v2/hooks/useSortedRows.js +4 -6
  690. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  691. package/dist/v2/hooks/useTabLoading.js +7 -22
  692. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  693. package/dist/v2/index.js +143 -145
  694. package/dist/v2/index.js.map +1 -1
  695. package/dist/v2/modalContext.js +2 -2
  696. package/dist/v2/modalContext.js.map +1 -1
  697. package/dist/v2/models/favorite.d.ts +8 -9
  698. package/dist/v2/models/favorite.d.ts.map +1 -1
  699. package/dist/v2/models/favorite.js.map +1 -1
  700. package/dist/v2/models/index.js +4 -4
  701. package/dist/v2/models/index.js.map +1 -1
  702. package/dist/v2/models/personalization.d.ts +44 -48
  703. package/dist/v2/models/personalization.d.ts.map +1 -1
  704. package/dist/v2/models/personalization.js.map +1 -1
  705. package/dist/v2/models/referentiel.d.ts +32 -50
  706. package/dist/v2/models/referentiel.d.ts.map +1 -1
  707. package/dist/v2/models/referentiel.js.map +1 -1
  708. package/dist/v2/models/savedFilter.d.ts +8 -17
  709. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  710. package/dist/v2/models/savedFilter.js.map +1 -1
  711. package/dist/v2/patterns/ActionBar.js +152 -187
  712. package/dist/v2/patterns/ActionBar.js.map +1 -1
  713. package/dist/v2/patterns/AppMain.d.ts +109 -0
  714. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  715. package/dist/v2/patterns/AppMain.js +115 -0
  716. package/dist/v2/patterns/AppMain.js.map +1 -0
  717. package/dist/v2/patterns/BulkActionBar.js +40 -42
  718. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  719. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  720. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  721. package/dist/v2/patterns/ChartFigure.js +159 -0
  722. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  723. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  724. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  725. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  726. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  727. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  728. package/dist/v2/patterns/DataGrid.js +262 -297
  729. package/dist/v2/patterns/DataGrid.js.map +1 -1
  730. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  731. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  733. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  734. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  735. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  736. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  737. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  738. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  739. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  740. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  741. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  742. package/dist/v2/patterns/DetailSplit.js +116 -0
  743. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  744. package/dist/v2/patterns/FavoriteColumn.js +22 -23
  745. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  746. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  747. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  748. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  749. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  750. package/dist/v2/patterns/FilterTabBar.js +120 -0
  751. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  752. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  753. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  754. package/dist/v2/patterns/FormPageShell.js +53 -50
  755. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  756. package/dist/v2/patterns/FormSection.d.ts +8 -3
  757. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  758. package/dist/v2/patterns/FormSection.js +44 -51
  759. package/dist/v2/patterns/FormSection.js.map +1 -1
  760. package/dist/v2/patterns/FormikCheckbox.js +36 -45
  761. package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
  762. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  763. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  765. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  766. package/dist/v2/patterns/FormikCombobox.js +55 -72
  767. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  768. package/dist/v2/patterns/FormikDatePicker.js +50 -64
  769. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  770. package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
  771. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
  772. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  773. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  774. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  775. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  776. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  777. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  778. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  779. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikFile.js +99 -83
  781. package/dist/v2/patterns/FormikFile.js.map +1 -1
  782. package/dist/v2/patterns/FormikInput.js +45 -58
  783. package/dist/v2/patterns/FormikInput.js.map +1 -1
  784. package/dist/v2/patterns/FormikRadioGroup.js +45 -56
  785. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
  786. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  787. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  788. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  789. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  790. package/dist/v2/patterns/FormikSelect.js +70 -92
  791. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  792. package/dist/v2/patterns/FormikTextarea.js +35 -51
  793. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  794. package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
  795. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  796. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  797. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  798. package/dist/v2/patterns/PageContent.js +17 -20
  799. package/dist/v2/patterns/PageContent.js.map +1 -1
  800. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  801. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  802. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  803. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  804. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  805. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/ReferentielField.js +347 -327
  807. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
  809. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
  810. package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
  811. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
  812. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  813. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  814. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  815. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  816. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  817. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  818. package/dist/v2/patterns/SortableHeader.js +35 -57
  819. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  820. package/dist/v2/patterns/Tour.js +121 -142
  821. package/dist/v2/patterns/Tour.js.map +1 -1
  822. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  823. package/dist/v2/patterns/_dataGridShared.js +131 -147
  824. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  825. package/dist/v2/patterns/_pickerSerialisation.js +9 -10
  826. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
  827. package/dist/v2/patterns/_sort.js +17 -33
  828. package/dist/v2/patterns/_sort.js.map +1 -1
  829. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  830. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  831. package/dist/v2/patterns/_useColumnResize.js +80 -99
  832. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  833. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  834. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  835. package/dist/v2/patterns/filterCriteria.js +110 -0
  836. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  837. package/dist/v2/patterns/index.d.ts +160 -0
  838. package/dist/v2/patterns/index.d.ts.map +1 -1
  839. package/dist/v2/patterns/index.js +157 -79
  840. package/dist/v2/patterns/index.js.map +1 -1
  841. package/dist/v2/patterns/rowActions.d.ts +150 -0
  842. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  843. package/dist/v2/patterns/rowActions.js +232 -0
  844. package/dist/v2/patterns/rowActions.js.map +1 -0
  845. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  846. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  847. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  848. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  849. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  850. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  851. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  852. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  853. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  854. package/dist/v2/personalization/adapters/index.js +5 -5
  855. package/dist/v2/personalization/adapters/index.js.map +1 -1
  856. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  857. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  858. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  859. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  860. package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
  861. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  862. package/dist/v2/personalization/capabilities/index.js +12 -12
  863. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  864. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  865. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  866. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  867. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  868. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  869. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  870. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  871. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  872. package/dist/v2/personalization/index.d.ts +16 -0
  873. package/dist/v2/personalization/index.d.ts.map +1 -1
  874. package/dist/v2/personalization/index.js +30 -23
  875. package/dist/v2/personalization/index.js.map +1 -1
  876. package/dist/v2/personalization/personalizationContext.js +10 -12
  877. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  878. package/dist/v2/personalization/schema.js +8 -9
  879. package/dist/v2/personalization/schema.js.map +1 -1
  880. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  881. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  882. package/dist/v2/referentiel/index.js +11 -13
  883. package/dist/v2/referentiel/index.js.map +1 -1
  884. package/dist/v2/referentiel/types.d.ts +105 -0
  885. package/dist/v2/referentiel/types.d.ts.map +1 -0
  886. package/dist/v2/referentiel/types.js +6 -0
  887. package/dist/v2/referentiel/types.js.map +1 -0
  888. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  889. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  890. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  891. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  892. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  893. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  894. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  895. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  896. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  897. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  898. package/dist/v2/theme/_brand.js +12 -26
  899. package/dist/v2/theme/_brand.js.map +1 -1
  900. package/dist/v2/theme/_brandSecondary.js +12 -26
  901. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  902. package/dist/v2/theme/createPortnetTheme.js +41 -49
  903. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  904. package/dist/v2/theme/cssVariables.d.ts +3 -3
  905. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  906. package/dist/v2/theme/cssVariables.js +65 -70
  907. package/dist/v2/theme/cssVariables.js.map +1 -1
  908. package/dist/v2/theme/index.js +10 -10
  909. package/dist/v2/theme/index.js.map +1 -1
  910. package/dist/v2/tokens/breakpoints.js +16 -16
  911. package/dist/v2/tokens/breakpoints.js.map +1 -1
  912. package/dist/v2/tokens/chart.d.ts +103 -0
  913. package/dist/v2/tokens/chart.d.ts.map +1 -0
  914. package/dist/v2/tokens/chart.js +270 -0
  915. package/dist/v2/tokens/chart.js.map +1 -0
  916. package/dist/v2/tokens/colors.js +24 -24
  917. package/dist/v2/tokens/colors.js.map +1 -1
  918. package/dist/v2/tokens/density.d.ts +104 -0
  919. package/dist/v2/tokens/density.d.ts.map +1 -1
  920. package/dist/v2/tokens/density.js +67 -12
  921. package/dist/v2/tokens/density.js.map +1 -1
  922. package/dist/v2/tokens/index.d.ts +50 -1
  923. package/dist/v2/tokens/index.d.ts.map +1 -1
  924. package/dist/v2/tokens/index.js +116 -68
  925. package/dist/v2/tokens/index.js.map +1 -1
  926. package/dist/v2/tokens/motion.js +16 -22
  927. package/dist/v2/tokens/motion.js.map +1 -1
  928. package/dist/v2/tokens/radius.js +3 -3
  929. package/dist/v2/tokens/radius.js.map +1 -1
  930. package/dist/v2/tokens/shadows.js +8 -8
  931. package/dist/v2/tokens/shadows.js.map +1 -1
  932. package/dist/v2/tokens/spacing.js +4 -4
  933. package/dist/v2/tokens/spacing.js.map +1 -1
  934. package/dist/v2/tokens/state.js +3 -3
  935. package/dist/v2/tokens/state.js.map +1 -1
  936. package/dist/v2/tokens/statusPalette.js +21 -23
  937. package/dist/v2/tokens/statusPalette.js.map +1 -1
  938. package/dist/v2/tokens/tokens.json +6 -1
  939. package/dist/v2/tokens/typography.js +15 -15
  940. package/dist/v2/tokens/typography.js.map +1 -1
  941. package/dist/v2/tokens/zIndex.js +3 -3
  942. package/dist/v2/tokens/zIndex.js.map +1 -1
  943. package/dist/v2/types/datagrid.d.ts +9 -1
  944. package/dist/v2/types/datagrid.d.ts.map +1 -1
  945. package/dist/v2/types/datagrid.js.map +1 -1
  946. package/dist/v2/types/index.js +2 -2
  947. package/dist/v2/types/index.js.map +1 -1
  948. package/dist/v2/utils/apiError.js +16 -37
  949. package/dist/v2/utils/apiError.js.map +1 -1
  950. package/dist/v2/utils/contrast.js +31 -32
  951. package/dist/v2/utils/contrast.js.map +1 -1
  952. package/dist/v2/utils/cx.js +7 -27
  953. package/dist/v2/utils/cx.js.map +1 -1
  954. package/dist/v2/utils/fileDownload.js +25 -28
  955. package/dist/v2/utils/fileDownload.js.map +1 -1
  956. package/dist/v2/utils/fileValidation.d.ts +116 -0
  957. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  958. package/dist/v2/utils/fileValidation.js +220 -0
  959. package/dist/v2/utils/fileValidation.js.map +1 -0
  960. package/dist/v2/utils/fmtDate.d.ts +103 -0
  961. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  962. package/dist/v2/utils/fmtDate.js +119 -0
  963. package/dist/v2/utils/fmtDate.js.map +1 -0
  964. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  965. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  966. package/dist/v2/utils/fmtMoney.js +9 -11
  967. package/dist/v2/utils/fmtMoney.js.map +1 -1
  968. package/dist/v2/utils/formikErrors.d.ts +67 -0
  969. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  970. package/dist/v2/utils/formikErrors.js +85 -0
  971. package/dist/v2/utils/formikErrors.js.map +1 -0
  972. package/dist/v2/utils/index.d.ts +5 -0
  973. package/dist/v2/utils/index.d.ts.map +1 -1
  974. package/dist/v2/utils/index.js +67 -18
  975. package/dist/v2/utils/index.js.map +1 -1
  976. package/dist/v2/utils/mergeLabels.js +9 -14
  977. package/dist/v2/utils/mergeLabels.js.map +1 -1
  978. package/dist/v2/utils/networkStatus.js +14 -14
  979. package/dist/v2/utils/networkStatus.js.map +1 -1
  980. package/package.json +26 -9
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var React = _react;
9
9
  var _Autocomplete = _interopRequireDefault(require("@mui/material/Autocomplete"));
@@ -13,7 +13,8 @@ var _CircularProgress = _interopRequireDefault(require("@mui/material/CircularPr
13
13
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
14
14
  var _mergeLabels = require("../utils/mergeLabels");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
- var _excluded = ["value", "onChange", "options", "multiple", "freeSolo", "placeholder", "disabled", "error", "fullWidth", "loading", "groupBy", "getOptionLabel", "isOptionEqualToValue", "filterOptions", "renderOption", "onInputChange", "labels", "sx", "aria-describedby", "aria-invalid", "aria-required"];
16
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
18
  /**
18
19
  * Combobox — Portnet UI v2
19
20
  *
@@ -92,29 +93,21 @@ var _excluded = ["value", "onChange", "options", "multiple", "freeSolo", "placeh
92
93
  * without this the error association / invalid state would never reach
93
94
  * the combobox input for screen-reader users.
94
95
  */
96
+
95
97
  /**
96
98
  * Loose-but-honest value union used for BOTH the `value` input and the
97
99
  * `onChange` output, matching the any-based JS: callers may pass bare
98
100
  * values or option objects (single or array), and onChange re-emits bare
99
101
  * values (objects unwrapped to their `.value`).
100
102
  */
103
+
101
104
  /**
102
105
  * The option generic handed to MUI Autocomplete. It must admit raw
103
106
  * primitive values (not just option objects) because resolvedValue and
104
107
  * handleChange deliberately round-trip bare values (a numeric id stored
105
108
  * by FormikCombobox, a freeSolo string, etc.).
106
109
  */
107
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
108
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
109
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
110
- 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; }
111
- 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; }
112
- 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; }
113
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
114
- 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); }
115
- 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); }
116
- 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; }
117
- 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; }
110
+
118
111
  /**
119
112
  * MuiAutocomplete instantiated with `Multiple: boolean` (not a literal) lets
120
113
  * value/onChange's conditional types distribute naturally into `T | T[]`,
@@ -135,8 +128,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
135
128
  * React unmount/remount the Autocomplete on every parent re-render and drop
136
129
  * focus/open-state.
137
130
  */
138
- var AutocompleteWithTags = _Autocomplete["default"];
139
- var DEFAULT_LABELS = Object.freeze({
131
+ const AutocompleteWithTags = _Autocomplete.default;
132
+ const DEFAULT_LABELS = Object.freeze({
140
133
  noOptions: "Aucun résultat",
141
134
  loading: "Chargement…",
142
135
  clear: "Effacer",
@@ -144,158 +137,136 @@ var DEFAULT_LABELS = Object.freeze({
144
137
  open: "Ouvrir",
145
138
  placeholder: "Sélectionner…"
146
139
  });
147
- var normaliseOption = function normaliseOption(o) {
148
- return typeof o === "string" ? {
149
- value: o,
150
- label: o
151
- } : o;
152
- };
153
- var Combobox = /*#__PURE__*/React.forwardRef(function Combobox(_ref, ref) {
154
- var value = _ref.value,
155
- onChange = _ref.onChange,
156
- _ref$options = _ref.options,
157
- options = _ref$options === void 0 ? [] : _ref$options,
158
- _ref$multiple = _ref.multiple,
159
- multiple = _ref$multiple === void 0 ? false : _ref$multiple,
160
- _ref$freeSolo = _ref.freeSolo,
161
- freeSolo = _ref$freeSolo === void 0 ? false : _ref$freeSolo,
162
- placeholder = _ref.placeholder,
163
- disabled = _ref.disabled,
164
- error = _ref.error,
165
- _ref$fullWidth = _ref.fullWidth,
166
- fullWidth = _ref$fullWidth === void 0 ? true : _ref$fullWidth,
167
- _ref$loading = _ref.loading,
168
- loading = _ref$loading === void 0 ? false : _ref$loading,
169
- groupBy = _ref.groupBy,
170
- getOptionLabel = _ref.getOptionLabel,
171
- isOptionEqualToValue = _ref.isOptionEqualToValue,
172
- filterOptions = _ref.filterOptions,
173
- renderOption = _ref.renderOption,
174
- onInputChange = _ref.onInputChange,
175
- labels = _ref.labels,
176
- sx = _ref.sx,
177
- ariaDescribedBy = _ref["aria-describedby"],
178
- ariaInvalid = _ref["aria-invalid"],
179
- ariaRequired = _ref["aria-required"],
180
- rest = _objectWithoutProperties(_ref, _excluded);
181
- var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
140
+ const normaliseOption = o => typeof o === "string" ? {
141
+ value: o,
142
+ label: o
143
+ } : o;
144
+ const Combobox = /*#__PURE__*/React.forwardRef(function Combobox({
145
+ value,
146
+ onChange,
147
+ options = [],
148
+ multiple = false,
149
+ freeSolo = false,
150
+ placeholder,
151
+ disabled,
152
+ error,
153
+ fullWidth = true,
154
+ loading = false,
155
+ groupBy,
156
+ getOptionLabel,
157
+ isOptionEqualToValue,
158
+ filterOptions,
159
+ renderOption,
160
+ onInputChange,
161
+ labels,
162
+ sx,
163
+ // COMBO-1 — pulled out of ...rest so they DON'T land on the Autocomplete
164
+ // root; threaded onto the native <input> in renderInput below.
165
+ "aria-describedby": ariaDescribedBy,
166
+ "aria-invalid": ariaInvalid,
167
+ "aria-required": ariaRequired,
168
+ ...rest
169
+ }, ref) {
170
+ const L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
182
171
  // Legacy `placeholder` prop wins over labels.placeholder.
183
- var effectivePlaceholder = placeholder !== null && placeholder !== void 0 ? placeholder : L.placeholder;
184
- var normalised = React.useMemo(function () {
185
- return options.map(normaliseOption);
186
- }, [options]);
172
+ const effectivePlaceholder = placeholder ?? L.placeholder;
173
+ const normalised = React.useMemo(() => options.map(normaliseOption), [options]);
187
174
 
188
175
  // Default groupBy — uses option.group if any option has one.
189
- var autoGroupBy = React.useMemo(function () {
176
+ const autoGroupBy = React.useMemo(() => {
190
177
  if (groupBy) return groupBy;
191
- if (normalised.some(function (o) {
192
- return o && _typeof(o) === "object" && o.group;
193
- })) {
194
- return function (o) {
195
- return o && _typeof(o) === "object" ? o.group || "" : "";
196
- };
178
+ if (normalised.some(o => o && typeof o === "object" && o.group)) {
179
+ return o => o && typeof o === "object" ? o.group || "" : "";
197
180
  }
198
181
  return undefined;
199
182
  }, [normalised, groupBy]);
200
- var labelOf = React.useCallback(function (o) {
201
- var _ref2, _obj$label;
183
+ const labelOf = React.useCallback(o => {
202
184
  if (getOptionLabel) return getOptionLabel(o);
203
185
  if (o == null) return "";
204
186
  if (typeof o === "string") return o;
205
- var obj = o;
206
- return String((_ref2 = (_obj$label = obj.label) !== null && _obj$label !== void 0 ? _obj$label : obj.value) !== null && _ref2 !== void 0 ? _ref2 : "");
187
+ const obj = o;
188
+ return String(obj.label ?? obj.value ?? "");
207
189
  }, [getOptionLabel]);
208
- var eqOf = React.useCallback(function (opt, val) {
190
+ const eqOf = React.useCallback((opt, val) => {
209
191
  if (isOptionEqualToValue) return isOptionEqualToValue(opt, val);
210
192
  if (opt == null || val == null) return opt === val;
211
- var a = typeof opt === "string" ? opt : opt.value;
193
+ const a = typeof opt === "string" ? opt : opt.value;
212
194
  // B-eq: primitives (numbers, booleans) are compared as-is.
213
195
  // Previously `val.value` for a non-string, non-object value
214
196
  // (e.g. a numeric id stored by FormikCombobox via setFieldValue)
215
197
  // resolved to undefined, so the lookup never matched and the
216
198
  // selected option was never visually reflected after picking.
217
- var b = typeof val === "string" ? val : val !== null && _typeof(val) === "object" ? val.value : val; // number, boolean, etc. — use the primitive directly
199
+ const b = typeof val === "string" ? val : val !== null && typeof val === "object" ? val.value : val; // number, boolean, etc. — use the primitive directly
218
200
  return a === b;
219
201
  }, [isOptionEqualToValue]);
220
- var handleChange = function handleChange(_event, next) {
202
+ const handleChange = (_event, next) => {
221
203
  if (!onChange) return;
222
204
  // Re-emit raw value(s) — strings stay strings, objects get unwrapped to
223
205
  // their `.value` so callers don't have to deal with the option shape.
224
206
  if (multiple) {
225
- var arr = Array.isArray(next) ? next : [];
226
- var out = arr.map(function (n) {
227
- var _value;
228
- return typeof n === "string" ? n : (_value = n.value) !== null && _value !== void 0 ? _value : n;
229
- });
207
+ const arr = Array.isArray(next) ? next : [];
208
+ const out = arr.map(n => typeof n === "string" ? n : n.value ?? n);
230
209
  onChange(out);
231
210
  return;
232
211
  }
233
212
  if (next == null) {
234
213
  onChange(null);
235
214
  } else {
236
- var _value2;
237
- var single = next;
238
- onChange(typeof single === "string" ? single : (_value2 = single.value) !== null && _value2 !== void 0 ? _value2 : single);
215
+ const single = next;
216
+ onChange(typeof single === "string" ? single : single.value ?? single);
239
217
  }
240
218
  };
241
219
 
242
220
  // Resolve raw value(s) back to option objects so MUI Autocomplete can
243
221
  // display labels properly.
244
- var resolvedValue = React.useMemo(function () {
222
+ const resolvedValue = React.useMemo(() => {
245
223
  if (multiple) {
246
- var arr = Array.isArray(value) ? value : [];
247
- return arr.map(function (v) {
248
- return normalised.find(function (o) {
249
- return eqOf(o, v);
250
- }) || (typeof v === "string" ? {
251
- value: v,
252
- label: v
253
- } : v);
254
- });
224
+ const arr = Array.isArray(value) ? value : [];
225
+ return arr.map(v => normalised.find(o => eqOf(o, v)) || (typeof v === "string" ? {
226
+ value: v,
227
+ label: v
228
+ } : v));
255
229
  }
256
230
  if (value == null || value === "") return null;
257
- return normalised.find(function (o) {
258
- return eqOf(o, value);
259
- }) || (typeof value === "string" ? {
260
- value: value,
231
+ return normalised.find(o => eqOf(o, value)) || (typeof value === "string" ? {
232
+ value,
261
233
  label: value
262
234
  } : value);
263
235
  }, [value, normalised, multiple, eqOf]);
264
236
 
265
237
  // Auto-render helper text when at least one option has one. Hosts can
266
238
  // override entirely by passing their own renderOption.
267
- var anyHelper = normalised.some(function (o) {
268
- return o && _typeof(o) === "object" && o.helper != null && o.helper !== "";
269
- });
270
- var effectiveRenderOption = React.useMemo(function () {
239
+ const anyHelper = normalised.some(o => o && typeof o === "object" && o.helper != null && o.helper !== "");
240
+ const effectiveRenderOption = React.useMemo(() => {
271
241
  if (renderOption) return renderOption;
272
242
  if (!anyHelper) return undefined;
273
243
  // MUI Autocomplete passes (props, option, state) — `props` already
274
244
  // carries the correct <li> role/id/aria-selected. We render the
275
245
  // option content inside it; the helper line is in-flow text so it
276
246
  // becomes part of the option's accessible name automatically.
277
- return function (props, option) {
278
- var label = labelOf(option);
279
- var helper = option && _typeof(option) === "object" ? option.helper : null;
280
- var optValue = _typeof(option) === "object" && option !== null ? option.value : undefined;
281
- var optionKey = optValue == null ? label : typeof optValue === "boolean" ? String(optValue) : optValue;
282
- return /*#__PURE__*/(0, _react.createElement)("li", _objectSpread(_objectSpread({}, props), {}, {
247
+ return (props, option) => {
248
+ const label = labelOf(option);
249
+ const helper = option && typeof option === "object" ? option.helper : null;
250
+ const optValue = typeof option === "object" && option !== null ? option.value : undefined;
251
+ const optionKey = optValue == null ? label : typeof optValue === "boolean" ? String(optValue) : optValue;
252
+ return /*#__PURE__*/(0, _react.createElement)("li", {
253
+ ...props,
283
254
  key: optionKey
284
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
255
+ }, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
285
256
  sx: {
286
257
  display: "flex",
287
258
  flexDirection: "column",
288
259
  paddingY: 0.25,
289
260
  minWidth: 0
290
261
  },
291
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
262
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
292
263
  component: "span",
293
264
  sx: {
294
265
  fontSize: "var(--text-sm)",
295
266
  color: "var(--fg)"
296
267
  },
297
268
  children: label
298
- }), helper && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
269
+ }), helper && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
299
270
  component: "span",
300
271
  sx: {
301
272
  fontSize: "var(--text-xs)",
@@ -307,7 +278,7 @@ var Combobox = /*#__PURE__*/React.forwardRef(function Combobox(_ref, ref) {
307
278
  }));
308
279
  };
309
280
  }, [renderOption, anyHelper, labelOf]);
310
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(AutocompleteWithTags, _objectSpread({
281
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(AutocompleteWithTags, {
311
282
  ref: ref,
312
283
  multiple: multiple,
313
284
  freeSolo: freeSolo,
@@ -329,28 +300,26 @@ var Combobox = /*#__PURE__*/React.forwardRef(function Combobox(_ref, ref) {
329
300
  closeText: L.close,
330
301
  openText: L.open,
331
302
  size: "small",
332
- renderTags: function renderTags(values, getTagProps) {
333
- return values.map(function (option, index) {
334
- var rawVal = _typeof(option) === "object" && option !== null ? option.value : option;
335
- var tagKey = rawVal == null ? index : typeof rawVal === "boolean" ? String(rawVal) : rawVal;
336
- return /*#__PURE__*/(0, _react.createElement)(_Chip["default"], _objectSpread(_objectSpread({}, getTagProps({
337
- index: index
338
- })), {}, {
339
- key: tagKey,
340
- size: "small",
341
- label: labelOf(option),
342
- sx: {
343
- height: 22,
344
- "& .MuiChip-label": {
345
- paddingInline: 1,
346
- fontSize: 12
347
- }
303
+ renderTags: (values, getTagProps) => values.map((option, index) => {
304
+ const rawVal = typeof option === "object" && option !== null ? option.value : option;
305
+ const tagKey = rawVal == null ? index : typeof rawVal === "boolean" ? String(rawVal) : rawVal;
306
+ return /*#__PURE__*/(0, _react.createElement)(_Chip.default, {
307
+ ...getTagProps({
308
+ index
309
+ }),
310
+ key: tagKey,
311
+ size: "small",
312
+ label: labelOf(option),
313
+ sx: {
314
+ height: 22,
315
+ "& .MuiChip-label": {
316
+ paddingInline: 1,
317
+ fontSize: 12
348
318
  }
349
- }));
319
+ }
350
320
  });
351
- },
352
- renderInput: function renderInput(params) {
353
- var _params$slotProps, _params$slotProps$inp, _params$slotProps2, _params$slotProps$htm, _params$slotProps3;
321
+ }),
322
+ renderInput: params => {
354
323
  // MUI v9: the bag passed to renderInput carries the input slot props
355
324
  // at `params.slotProps.input` AND — crucially — the input element ref
356
325
  // at `params.slotProps.htmlInput.ref`, which MUI's Autocomplete
@@ -361,26 +330,34 @@ var Combobox = /*#__PURE__*/React.forwardRef(function Combobox(_ref, ref) {
361
330
  // as { endAdornment? } so the runtime spread still forwards htmlInput.
362
331
  // params.InputProps was the pre-v9 TextField prop, fully replaced by
363
332
  // params.slotProps.input — no longer exists on AutocompleteRenderInputParams.
364
- var paramsSlotProps = (_params$slotProps = params.slotProps) !== null && _params$slotProps !== void 0 ? _params$slotProps : {};
365
- var inputSlot = (_params$slotProps$inp = (_params$slotProps2 = params.slotProps) === null || _params$slotProps2 === void 0 ? void 0 : _params$slotProps2.input) !== null && _params$slotProps$inp !== void 0 ? _params$slotProps$inp : {};
366
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField["default"], _objectSpread(_objectSpread({}, params), {}, {
333
+ const paramsSlotProps = params.slotProps ?? {};
334
+ const inputSlot = params.slotProps?.input ?? {};
335
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, {
336
+ ...params,
367
337
  placeholder: effectivePlaceholder,
368
338
  error: !!error,
369
- slotProps: _objectSpread(_objectSpread({}, paramsSlotProps), {}, {
339
+ slotProps: {
340
+ ...paramsSlotProps,
370
341
  // COMBO-1 — merge Field's aria onto the native <input>. Spread
371
342
  // MUI's existing htmlInput FIRST to keep its ref + combobox aria
372
343
  // (role/aria-expanded/aria-controls/aria-activedescendant); add
373
344
  // ours only when defined (exactOptionalPropertyTypes-safe).
374
- htmlInput: _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, (_params$slotProps$htm = (_params$slotProps3 = params.slotProps) === null || _params$slotProps3 === void 0 ? void 0 : _params$slotProps3.htmlInput) !== null && _params$slotProps$htm !== void 0 ? _params$slotProps$htm : {}), ariaDescribedBy != null ? {
375
- "aria-describedby": ariaDescribedBy
376
- } : {}), ariaInvalid != null ? {
377
- "aria-invalid": ariaInvalid
378
- } : {}), ariaRequired != null ? {
379
- "aria-required": ariaRequired
380
- } : {}),
381
- input: _objectSpread(_objectSpread({}, inputSlot), {}, {
345
+ htmlInput: {
346
+ ...(params.slotProps?.htmlInput ?? {}),
347
+ ...(ariaDescribedBy != null ? {
348
+ "aria-describedby": ariaDescribedBy
349
+ } : {}),
350
+ ...(ariaInvalid != null ? {
351
+ "aria-invalid": ariaInvalid
352
+ } : {}),
353
+ ...(ariaRequired != null ? {
354
+ "aria-required": ariaRequired
355
+ } : {})
356
+ },
357
+ input: {
358
+ ...inputSlot,
382
359
  endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
383
- children: [loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress["default"], {
360
+ children: [loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
384
361
  size: 14,
385
362
  "aria-hidden": "true",
386
363
  role: "presentation",
@@ -389,12 +366,13 @@ var Combobox = /*#__PURE__*/React.forwardRef(function Combobox(_ref, ref) {
389
366
  }
390
367
  }) : null, inputSlot.endAdornment]
391
368
  })
392
- })
393
- })
394
- }));
369
+ }
370
+ }
371
+ });
395
372
  },
396
- sx: sx
397
- }, rest));
373
+ sx: sx,
374
+ ...rest
375
+ });
398
376
  });
399
- var _default = exports["default"] = Combobox;
377
+ var _default = exports.default = Combobox;
400
378
  //# sourceMappingURL=Combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","names":["_react","_interopRequireWildcard","require","React","_Autocomplete","_interopRequireDefault","_TextField","_Chip","_CircularProgress","_Box","_mergeLabels","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","iterator","constructor","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","AutocompleteWithTags","MuiAutocomplete","DEFAULT_LABELS","freeze","noOptions","loading","clear","close","open","placeholder","normaliseOption","o","label","Combobox","forwardRef","_ref","ref","onChange","_ref$options","options","_ref$multiple","multiple","_ref$freeSolo","freeSolo","disabled","error","_ref$fullWidth","fullWidth","_ref$loading","groupBy","getOptionLabel","isOptionEqualToValue","filterOptions","renderOption","onInputChange","labels","sx","ariaDescribedBy","ariaInvalid","ariaRequired","rest","L","mergeLabels","effectivePlaceholder","normalised","useMemo","map","autoGroupBy","some","group","labelOf","useCallback","_ref2","_obj$label","eqOf","opt","val","a","b","handleChange","_event","next","arr","Array","isArray","out","n","_value","_value2","single","resolvedValue","v","find","anyHelper","helper","effectiveRenderOption","props","option","optValue","optionKey","createElement","jsxs","display","flexDirection","paddingY","minWidth","children","jsx","component","fontSize","color","lineHeight","noOptionsText","loadingText","clearText","closeText","openText","size","renderTags","values","getTagProps","index","rawVal","tagKey","height","paddingInline","renderInput","params","_params$slotProps","_params$slotProps$inp","_params$slotProps2","_params$slotProps$htm","_params$slotProps3","paramsSlotProps","slotProps","inputSlot","htmlInput","endAdornment","Fragment","role","marginRight","_default","exports"],"sources":["../../../src/lib/v2/components/Combobox.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiAutocomplete from \"@mui/material/Autocomplete\";\r\nimport type { AutocompleteProps, AutocompleteRenderGetTagProps } from \"@mui/material/Autocomplete\";\r\nimport TextField from \"@mui/material/TextField\";\r\nimport MuiChip from \"@mui/material/Chip\";\r\nimport CircularProgress from \"@mui/material/CircularProgress\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Combobox — Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Combobox / Autocomplete\". Required by R-Sel.1\r\n * for any Select with > 30 options.\r\n *\r\n * Single:\r\n * <Field label=\"Pays\">\r\n * <Combobox\r\n * value={country}\r\n * onChange={setCountry}\r\n * options={countries} // strings or {value,label}\r\n * />\r\n * </Field>\r\n *\r\n * Multi (with helper text per option):\r\n * <Field label=\"Régime\">\r\n * <Combobox\r\n * value={regime}\r\n * onChange={setRegime}\r\n * options={[\r\n * { value: \"atpa\", label: \"ATPA\",\r\n * helper: \"Admission Temporaire avec Paiement\" },\r\n * { value: \"atpf\", label: \"ATPF\",\r\n * helper: \"Admission Temporaire en Franchise\" },\r\n * ]}\r\n * />\r\n * </Field>\r\n *\r\n * Async (server-side filter):\r\n * const [input, setInput] = useState(\"\");\r\n * const [opts, setOpts] = useState([]);\r\n * const [loading, setLoading] = useState(false);\r\n * useEffect(() => {\r\n * const t = setTimeout(() => {\r\n * setLoading(true);\r\n * fetch(`/api/companies?q=${input}`)\r\n * .then(r => r.json()).then(setOpts)\r\n * .finally(() => setLoading(false));\r\n * }, 250);\r\n * return () => clearTimeout(t);\r\n * }, [input]);\r\n *\r\n * <Combobox\r\n * value={company}\r\n * onChange={setCompany}\r\n * onInputChange={(_, v) => setInput(v)}\r\n * options={opts}\r\n * loading={loading}\r\n * filterOptions={(x) => x} // disable client-side filter\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <Combobox labels={{\r\n * noOptions: \"No results\",\r\n * loading: \"Loading…\",\r\n * clear: \"Clear\",\r\n * close: \"Close\",\r\n * open: \"Open\",\r\n * placeholder: \"Select…\",\r\n * }} />\r\n *\r\n * Defaults are French; partial overrides are merged onto the defaults.\r\n *\r\n * A11y:\r\n * - Built on MuiAutocomplete (full WAI-ARIA combobox pattern).\r\n * - When option.helper is present, it is rendered visually AND\r\n * becomes part of the option's accessible name (so screen-reader\r\n * users hear \"ATPA, Admission Temporaire avec Paiement\" when\r\n * navigating).\r\n * - Loading spinner is decorative (aria-hidden); the listbox already\r\n * announces \"Chargement…\" via the loadingText prop.\r\n * - COMBO-1: Field-injected aria-describedby / aria-invalid / aria-required\r\n * are threaded onto the native <input> via renderInput's htmlInput slot.\r\n * MUI spreads unknown top-level props onto the Autocomplete ROOT, so\r\n * without this the error association / invalid state would never reach\r\n * the combobox input for screen-reader users.\r\n */\r\n\r\nexport type ComboboxOptionValue = string | number | boolean;\r\n\r\nexport interface ComboboxOption {\r\n value: ComboboxOptionValue;\r\n label?: React.ReactNode | undefined;\r\n group?: string | undefined;\r\n helper?: React.ReactNode | undefined;\r\n}\r\n\r\n/**\r\n * Loose-but-honest value union used for BOTH the `value` input and the\r\n * `onChange` output, matching the any-based JS: callers may pass bare\r\n * values or option objects (single or array), and onChange re-emits bare\r\n * values (objects unwrapped to their `.value`).\r\n */\r\nexport type ComboboxValue =\r\n | ComboboxOptionValue\r\n | ComboboxOption\r\n | null\r\n | Array<ComboboxOptionValue | ComboboxOption>;\r\n\r\nexport interface ComboboxLabels {\r\n noOptions?: string | undefined;\r\n loading?: string | undefined;\r\n clear?: string | undefined;\r\n close?: string | undefined;\r\n open?: string | undefined;\r\n placeholder?: string | undefined;\r\n}\r\n\r\n/**\r\n * The option generic handed to MUI Autocomplete. It must admit raw\r\n * primitive values (not just option objects) because resolvedValue and\r\n * handleChange deliberately round-trip bare values (a numeric id stored\r\n * by FormikCombobox, a freeSolo string, etc.).\r\n */\r\ntype ComboboxItem = ComboboxOption | ComboboxOptionValue;\r\ntype MuiACProps = AutocompleteProps<ComboboxItem, boolean, false, boolean>;\r\n\r\n/**\r\n * MuiAutocomplete instantiated with `Multiple: boolean` (not a literal) lets\r\n * value/onChange's conditional types distribute naturally into `T | T[]`,\r\n * which is exactly what this component needs to handle both modes at\r\n * runtime from one implementation. MUI's `renderTags`, however, disappears\r\n * from the props type entirely under this instantiation (TS2339) — and,\r\n * per this MUI version, doesn't reappear even when explicitly instantiated\r\n * with the literal `Multiple = true` (TS2344: \"renderTags\" doesn't satisfy\r\n * `keyof AutocompleteProps<..., true, ...>` either). Rather than depend on\r\n * MUI's exact (apparently unstable across instantiations) type surface for\r\n * this one field, declare its shape ourselves — it matches exactly how the\r\n * callback is invoked below (values.map + getTagProps({ index })), and the\r\n * real runtime Autocomplete accepts renderTags regardless of the Multiple\r\n * type param.\r\n *\r\n * Defined once at module scope (not inside the component) so the cast\r\n * doesn't mint a new component identity on every render — that would make\r\n * React unmount/remount the Autocomplete on every parent re-render and drop\r\n * focus/open-state.\r\n */\r\nconst AutocompleteWithTags = MuiAutocomplete as unknown as React.ForwardRefExoticComponent<\r\n MuiACProps & {\r\n renderTags?: (\r\n value: ComboboxItem[],\r\n getTagProps: AutocompleteRenderGetTagProps\r\n ) => React.ReactNode;\r\n } & React.RefAttributes<HTMLDivElement>\r\n>;\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n noOptions: \"Aucun résultat\",\r\n loading: \"Chargement…\",\r\n clear: \"Effacer\",\r\n close: \"Fermer\",\r\n open: \"Ouvrir\",\r\n placeholder: \"Sélectionner…\",\r\n});\r\n\r\nconst normaliseOption = (o: string | ComboboxOption): ComboboxOption =>\r\n typeof o === \"string\" ? { value: o, label: o } : o;\r\n\r\nexport interface ComboboxProps\r\n extends Omit<\r\n MuiACProps,\r\n | \"value\"\r\n | \"onChange\"\r\n | \"options\"\r\n | \"multiple\"\r\n | \"freeSolo\"\r\n | \"renderInput\"\r\n | \"renderTags\"\r\n | \"renderOption\"\r\n | \"getOptionLabel\"\r\n | \"isOptionEqualToValue\"\r\n | \"groupBy\"\r\n | \"filterOptions\"\r\n | \"onInputChange\"\r\n | \"loading\"\r\n | \"disabled\"\r\n | \"fullWidth\"\r\n | \"sx\"\r\n // AutocompleteProps carries its own loosely-typed `ref` (Ref<unknown>,\r\n // for its polymorphic root support) that isn't the \"real\" ref for this\r\n // component. Exclude it here so it never enters ComboboxProps as an\r\n // inherited field — the actual ref (RefAttributes<HTMLDivElement>) comes\r\n // from this component's own React.forwardRef below. Without this,\r\n // Omit<ComboboxProps, ...>-based prop types (e.g. FormikComboboxProps)\r\n // silently carry the stray ref through into their ...rest spreads.\r\n | \"ref\"\r\n > {\r\n value?: ComboboxValue | undefined;\r\n onChange?: ((value: ComboboxValue) => void) | undefined;\r\n options?: Array<string | ComboboxOption> | undefined;\r\n multiple?: boolean | undefined;\r\n freeSolo?: boolean | undefined;\r\n placeholder?: string | undefined;\r\n disabled?: boolean | undefined;\r\n error?: boolean | undefined;\r\n fullWidth?: boolean | undefined;\r\n loading?: boolean | undefined;\r\n groupBy?: ((option: ComboboxItem) => string) | undefined;\r\n getOptionLabel?: ((option: ComboboxItem) => string) | undefined;\r\n isOptionEqualToValue?: ((option: ComboboxItem, value: ComboboxItem) => boolean) | undefined;\r\n filterOptions?: MuiACProps[\"filterOptions\"] | undefined;\r\n renderOption?: MuiACProps[\"renderOption\"] | undefined;\r\n onInputChange?: MuiACProps[\"onInputChange\"] | undefined;\r\n labels?: ComboboxLabels | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst Combobox = React.forwardRef<HTMLDivElement, ComboboxProps>(function Combobox(\r\n {\r\n value,\r\n onChange,\r\n options = [],\r\n multiple = false,\r\n freeSolo = false,\r\n placeholder,\r\n disabled,\r\n error,\r\n fullWidth = true,\r\n loading = false,\r\n groupBy,\r\n getOptionLabel,\r\n isOptionEqualToValue,\r\n filterOptions,\r\n renderOption,\r\n onInputChange,\r\n labels,\r\n sx,\r\n // COMBO-1 — pulled out of ...rest so they DON'T land on the Autocomplete\r\n // root; threaded onto the native <input> in renderInput below.\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n ...rest\r\n },\r\n ref\r\n) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n // Legacy `placeholder` prop wins over labels.placeholder.\r\n const effectivePlaceholder = placeholder ?? L.placeholder;\r\n\r\n const normalised = React.useMemo(() => options.map(normaliseOption), [options]);\r\n\r\n // Default groupBy — uses option.group if any option has one.\r\n const autoGroupBy = React.useMemo((): ((option: ComboboxItem) => string) | undefined => {\r\n if (groupBy) return groupBy;\r\n if (normalised.some((o) => o && typeof o === \"object\" && o.group)) {\r\n return (o: ComboboxItem): string => (o && typeof o === \"object\" ? o.group || \"\" : \"\");\r\n }\r\n return undefined;\r\n }, [normalised, groupBy]);\r\n\r\n const labelOf = React.useCallback(\r\n (o: ComboboxItem): string => {\r\n if (getOptionLabel) return getOptionLabel(o);\r\n if (o == null) return \"\";\r\n if (typeof o === \"string\") return o;\r\n const obj = o as ComboboxOption;\r\n return String(obj.label ?? obj.value ?? \"\");\r\n },\r\n [getOptionLabel]\r\n );\r\n\r\n const eqOf = React.useCallback(\r\n (opt: ComboboxItem, val: unknown): boolean => {\r\n if (isOptionEqualToValue) return isOptionEqualToValue(opt, val as ComboboxItem);\r\n if (opt == null || val == null) return opt === val;\r\n const a = typeof opt === \"string\" ? opt : (opt as ComboboxOption).value;\r\n // B-eq: primitives (numbers, booleans) are compared as-is.\r\n // Previously `val.value` for a non-string, non-object value\r\n // (e.g. a numeric id stored by FormikCombobox via setFieldValue)\r\n // resolved to undefined, so the lookup never matched and the\r\n // selected option was never visually reflected after picking.\r\n const b =\r\n typeof val === \"string\" ? val\r\n : (val !== null && typeof val === \"object\") ? (val as { value?: unknown }).value\r\n : val; // number, boolean, etc. — use the primitive directly\r\n return a === b;\r\n },\r\n [isOptionEqualToValue]\r\n );\r\n\r\n const handleChange = (\r\n _event: React.SyntheticEvent,\r\n next: ComboboxItem | ComboboxItem[] | null\r\n ): void => {\r\n if (!onChange) return;\r\n // Re-emit raw value(s) — strings stay strings, objects get unwrapped to\r\n // their `.value` so callers don't have to deal with the option shape.\r\n if (multiple) {\r\n const arr = Array.isArray(next) ? next : [];\r\n const out = arr.map((n) => (typeof n === \"string\" ? n : (n as ComboboxOption).value ?? n));\r\n onChange(out);\r\n return;\r\n }\r\n if (next == null) {\r\n onChange(null);\r\n } else {\r\n const single = next as ComboboxItem;\r\n onChange(typeof single === \"string\" ? single : (single as ComboboxOption).value ?? single);\r\n }\r\n };\r\n\r\n // Resolve raw value(s) back to option objects so MUI Autocomplete can\r\n // display labels properly.\r\n const resolvedValue = React.useMemo(() => {\r\n if (multiple) {\r\n const arr = Array.isArray(value) ? value : [];\r\n return arr.map(\r\n (v) =>\r\n normalised.find((o) => eqOf(o, v)) ||\r\n (typeof v === \"string\" ? { value: v, label: v } : v)\r\n );\r\n }\r\n if (value == null || value === \"\") return null;\r\n return (\r\n normalised.find((o) => eqOf(o, value)) ||\r\n (typeof value === \"string\" ? { value, label: value } : (value as ComboboxItem))\r\n );\r\n }, [value, normalised, multiple, eqOf]);\r\n\r\n // Auto-render helper text when at least one option has one. Hosts can\r\n // override entirely by passing their own renderOption.\r\n const anyHelper = normalised.some(\r\n (o) => o && typeof o === \"object\" && o.helper != null && o.helper !== \"\"\r\n );\r\n const effectiveRenderOption: MuiACProps[\"renderOption\"] = React.useMemo(() => {\r\n if (renderOption) return renderOption;\r\n if (!anyHelper) return undefined;\r\n // MUI Autocomplete passes (props, option, state) — `props` already\r\n // carries the correct <li> role/id/aria-selected. We render the\r\n // option content inside it; the helper line is in-flow text so it\r\n // becomes part of the option's accessible name automatically.\r\n return (props: React.HTMLAttributes<HTMLLIElement>, option: ComboboxItem): React.ReactNode => {\r\n const label = labelOf(option);\r\n const helper = option && typeof option === \"object\" ? option.helper : null;\r\n const optValue = typeof option === \"object\" && option !== null ? option.value : undefined;\r\n const optionKey: React.Key =\r\n optValue == null ? label\r\n : typeof optValue === \"boolean\" ? String(optValue)\r\n : optValue;\r\n return (\r\n <li {...props} key={optionKey}>\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", paddingY: 0.25, minWidth: 0 }}>\r\n <Box component=\"span\" sx={{ fontSize: \"var(--text-sm)\", color: \"var(--fg)\" }}>\r\n {label}\r\n </Box>\r\n {helper && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n }}\r\n >\r\n {helper}\r\n </Box>\r\n )}\r\n </Box>\r\n </li>\r\n );\r\n };\r\n }, [renderOption, anyHelper, labelOf]);\r\n\r\n return (\r\n <AutocompleteWithTags\r\n ref={ref}\r\n multiple={multiple}\r\n freeSolo={freeSolo}\r\n disabled={disabled}\r\n fullWidth={fullWidth}\r\n value={resolvedValue}\r\n onChange={handleChange}\r\n onInputChange={onInputChange}\r\n options={normalised}\r\n loading={loading}\r\n groupBy={autoGroupBy}\r\n getOptionLabel={labelOf}\r\n isOptionEqualToValue={eqOf}\r\n filterOptions={filterOptions}\r\n renderOption={effectiveRenderOption}\r\n noOptionsText={L.noOptions}\r\n loadingText={L.loading}\r\n clearText={L.clear}\r\n closeText={L.close}\r\n openText={L.open}\r\n size=\"small\"\r\n renderTags={(values: ComboboxItem[], getTagProps: AutocompleteRenderGetTagProps) =>\r\n values.map((option: ComboboxItem, index: number) => {\r\n const rawVal =\r\n typeof option === \"object\" && option !== null ? option.value : option;\r\n const tagKey: React.Key =\r\n rawVal == null ? index\r\n : typeof rawVal === \"boolean\" ? String(rawVal)\r\n : rawVal;\r\n return (\r\n <MuiChip\r\n {...getTagProps({ index })}\r\n key={tagKey}\r\n size=\"small\"\r\n label={labelOf(option)}\r\n sx={{\r\n height: 22,\r\n \"& .MuiChip-label\": { paddingInline: 1, fontSize: 12 },\r\n }}\r\n />\r\n );\r\n })\r\n }\r\n renderInput={(params) => {\r\n // MUI v9: the bag passed to renderInput carries the input slot props\r\n // at `params.slotProps.input` AND — crucially — the input element ref\r\n // at `params.slotProps.htmlInput.ref`, which MUI's Autocomplete\r\n // focuses on click. We must NOT rebuild slotProps from scratch (that\r\n // drops htmlInput → MUI focuses null → \"Cannot read properties of null\r\n // (reading 'focus')\"). Instead, spread the whole params.slotProps and\r\n // only override the input slot's endAdornment. inputSlot is annotated\r\n // as { endAdornment? } so the runtime spread still forwards htmlInput.\r\n // params.InputProps was the pre-v9 TextField prop, fully replaced by\r\n // params.slotProps.input — no longer exists on AutocompleteRenderInputParams.\r\n const paramsSlotProps = params.slotProps ?? {};\r\n const inputSlot: { endAdornment?: React.ReactNode } =\r\n params.slotProps?.input ?? {};\r\n return (\r\n <TextField\r\n {...params}\r\n placeholder={effectivePlaceholder}\r\n error={!!error}\r\n slotProps={{\r\n ...paramsSlotProps,\r\n // COMBO-1 — merge Field's aria onto the native <input>. Spread\r\n // MUI's existing htmlInput FIRST to keep its ref + combobox aria\r\n // (role/aria-expanded/aria-controls/aria-activedescendant); add\r\n // ours only when defined (exactOptionalPropertyTypes-safe).\r\n htmlInput: {\r\n ...(params.slotProps?.htmlInput ?? {}),\r\n ...(ariaDescribedBy != null ? { \"aria-describedby\": ariaDescribedBy } : {}),\r\n ...(ariaInvalid != null ? { \"aria-invalid\": ariaInvalid } : {}),\r\n ...(ariaRequired != null ? { \"aria-required\": ariaRequired } : {}),\r\n },\r\n input: {\r\n ...inputSlot,\r\n endAdornment: (\r\n <>\r\n {/* R-Ar.3 — decorative spinner. The listbox already announces\r\n via the loadingText prop; making the spinner a second\r\n progressbar in the AT tree would just create duplicate\r\n noise. */}\r\n {loading ? (\r\n <CircularProgress\r\n size={14}\r\n aria-hidden=\"true\"\r\n role=\"presentation\"\r\n sx={{ marginRight: 0.5 }}\r\n />\r\n ) : null}\r\n {inputSlot.endAdornment}\r\n </>\r\n ),\r\n },\r\n }}\r\n />\r\n );\r\n }}\r\n sx={sx}\r\n {...rest}\r\n />\r\n );\r\n});\r\n\r\nexport default Combobox;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Combobox.js","names":["_react","_interopRequireWildcard","require","React","_Autocomplete","_interopRequireDefault","_TextField","_Chip","_CircularProgress","_Box","_mergeLabels","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AutocompleteWithTags","MuiAutocomplete","DEFAULT_LABELS","freeze","noOptions","loading","clear","close","open","placeholder","normaliseOption","value","label","Combobox","forwardRef","onChange","options","multiple","freeSolo","disabled","error","fullWidth","groupBy","getOptionLabel","isOptionEqualToValue","filterOptions","renderOption","onInputChange","labels","sx","ariaDescribedBy","ariaInvalid","ariaRequired","rest","ref","L","mergeLabels","effectivePlaceholder","normalised","useMemo","map","autoGroupBy","some","group","undefined","labelOf","useCallback","obj","String","eqOf","opt","val","a","b","handleChange","_event","next","arr","Array","isArray","out","single","resolvedValue","v","find","anyHelper","helper","effectiveRenderOption","props","option","optValue","optionKey","createElement","key","jsxs","display","flexDirection","paddingY","minWidth","children","jsx","component","fontSize","color","lineHeight","noOptionsText","loadingText","clearText","closeText","openText","size","renderTags","values","getTagProps","index","rawVal","tagKey","height","paddingInline","renderInput","params","paramsSlotProps","slotProps","inputSlot","input","htmlInput","endAdornment","Fragment","role","marginRight","_default","exports"],"sources":["../../../src/lib/v2/components/Combobox.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiAutocomplete from \"@mui/material/Autocomplete\";\r\nimport type { AutocompleteProps, AutocompleteRenderGetTagProps } from \"@mui/material/Autocomplete\";\r\nimport TextField from \"@mui/material/TextField\";\r\nimport MuiChip from \"@mui/material/Chip\";\r\nimport CircularProgress from \"@mui/material/CircularProgress\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Combobox — Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Combobox / Autocomplete\". Required by R-Sel.1\r\n * for any Select with > 30 options.\r\n *\r\n * Single:\r\n * <Field label=\"Pays\">\r\n * <Combobox\r\n * value={country}\r\n * onChange={setCountry}\r\n * options={countries} // strings or {value,label}\r\n * />\r\n * </Field>\r\n *\r\n * Multi (with helper text per option):\r\n * <Field label=\"Régime\">\r\n * <Combobox\r\n * value={regime}\r\n * onChange={setRegime}\r\n * options={[\r\n * { value: \"atpa\", label: \"ATPA\",\r\n * helper: \"Admission Temporaire avec Paiement\" },\r\n * { value: \"atpf\", label: \"ATPF\",\r\n * helper: \"Admission Temporaire en Franchise\" },\r\n * ]}\r\n * />\r\n * </Field>\r\n *\r\n * Async (server-side filter):\r\n * const [input, setInput] = useState(\"\");\r\n * const [opts, setOpts] = useState([]);\r\n * const [loading, setLoading] = useState(false);\r\n * useEffect(() => {\r\n * const t = setTimeout(() => {\r\n * setLoading(true);\r\n * fetch(`/api/companies?q=${input}`)\r\n * .then(r => r.json()).then(setOpts)\r\n * .finally(() => setLoading(false));\r\n * }, 250);\r\n * return () => clearTimeout(t);\r\n * }, [input]);\r\n *\r\n * <Combobox\r\n * value={company}\r\n * onChange={setCompany}\r\n * onInputChange={(_, v) => setInput(v)}\r\n * options={opts}\r\n * loading={loading}\r\n * filterOptions={(x) => x} // disable client-side filter\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <Combobox labels={{\r\n * noOptions: \"No results\",\r\n * loading: \"Loading…\",\r\n * clear: \"Clear\",\r\n * close: \"Close\",\r\n * open: \"Open\",\r\n * placeholder: \"Select…\",\r\n * }} />\r\n *\r\n * Defaults are French; partial overrides are merged onto the defaults.\r\n *\r\n * A11y:\r\n * - Built on MuiAutocomplete (full WAI-ARIA combobox pattern).\r\n * - When option.helper is present, it is rendered visually AND\r\n * becomes part of the option's accessible name (so screen-reader\r\n * users hear \"ATPA, Admission Temporaire avec Paiement\" when\r\n * navigating).\r\n * - Loading spinner is decorative (aria-hidden); the listbox already\r\n * announces \"Chargement…\" via the loadingText prop.\r\n * - COMBO-1: Field-injected aria-describedby / aria-invalid / aria-required\r\n * are threaded onto the native <input> via renderInput's htmlInput slot.\r\n * MUI spreads unknown top-level props onto the Autocomplete ROOT, so\r\n * without this the error association / invalid state would never reach\r\n * the combobox input for screen-reader users.\r\n */\r\n\r\nexport type ComboboxOptionValue = string | number | boolean;\r\n\r\nexport interface ComboboxOption {\r\n value: ComboboxOptionValue;\r\n label?: React.ReactNode | undefined;\r\n group?: string | undefined;\r\n helper?: React.ReactNode | undefined;\r\n}\r\n\r\n/**\r\n * Loose-but-honest value union used for BOTH the `value` input and the\r\n * `onChange` output, matching the any-based JS: callers may pass bare\r\n * values or option objects (single or array), and onChange re-emits bare\r\n * values (objects unwrapped to their `.value`).\r\n */\r\nexport type ComboboxValue =\r\n | ComboboxOptionValue\r\n | ComboboxOption\r\n | null\r\n | Array<ComboboxOptionValue | ComboboxOption>;\r\n\r\nexport interface ComboboxLabels {\r\n noOptions?: string | undefined;\r\n loading?: string | undefined;\r\n clear?: string | undefined;\r\n close?: string | undefined;\r\n open?: string | undefined;\r\n placeholder?: string | undefined;\r\n}\r\n\r\n/**\r\n * The option generic handed to MUI Autocomplete. It must admit raw\r\n * primitive values (not just option objects) because resolvedValue and\r\n * handleChange deliberately round-trip bare values (a numeric id stored\r\n * by FormikCombobox, a freeSolo string, etc.).\r\n */\r\ntype ComboboxItem = ComboboxOption | ComboboxOptionValue;\r\ntype MuiACProps = AutocompleteProps<ComboboxItem, boolean, false, boolean>;\r\n\r\n/**\r\n * MuiAutocomplete instantiated with `Multiple: boolean` (not a literal) lets\r\n * value/onChange's conditional types distribute naturally into `T | T[]`,\r\n * which is exactly what this component needs to handle both modes at\r\n * runtime from one implementation. MUI's `renderTags`, however, disappears\r\n * from the props type entirely under this instantiation (TS2339) — and,\r\n * per this MUI version, doesn't reappear even when explicitly instantiated\r\n * with the literal `Multiple = true` (TS2344: \"renderTags\" doesn't satisfy\r\n * `keyof AutocompleteProps<..., true, ...>` either). Rather than depend on\r\n * MUI's exact (apparently unstable across instantiations) type surface for\r\n * this one field, declare its shape ourselves — it matches exactly how the\r\n * callback is invoked below (values.map + getTagProps({ index })), and the\r\n * real runtime Autocomplete accepts renderTags regardless of the Multiple\r\n * type param.\r\n *\r\n * Defined once at module scope (not inside the component) so the cast\r\n * doesn't mint a new component identity on every render — that would make\r\n * React unmount/remount the Autocomplete on every parent re-render and drop\r\n * focus/open-state.\r\n */\r\nconst AutocompleteWithTags = MuiAutocomplete as unknown as React.ForwardRefExoticComponent<\r\n MuiACProps & {\r\n renderTags?: (\r\n value: ComboboxItem[],\r\n getTagProps: AutocompleteRenderGetTagProps\r\n ) => React.ReactNode;\r\n } & React.RefAttributes<HTMLDivElement>\r\n>;\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n noOptions: \"Aucun résultat\",\r\n loading: \"Chargement…\",\r\n clear: \"Effacer\",\r\n close: \"Fermer\",\r\n open: \"Ouvrir\",\r\n placeholder: \"Sélectionner…\",\r\n});\r\n\r\nconst normaliseOption = (o: string | ComboboxOption): ComboboxOption =>\r\n typeof o === \"string\" ? { value: o, label: o } : o;\r\n\r\nexport interface ComboboxProps\r\n extends Omit<\r\n MuiACProps,\r\n | \"value\"\r\n | \"onChange\"\r\n | \"options\"\r\n | \"multiple\"\r\n | \"freeSolo\"\r\n | \"renderInput\"\r\n | \"renderTags\"\r\n | \"renderOption\"\r\n | \"getOptionLabel\"\r\n | \"isOptionEqualToValue\"\r\n | \"groupBy\"\r\n | \"filterOptions\"\r\n | \"onInputChange\"\r\n | \"loading\"\r\n | \"disabled\"\r\n | \"fullWidth\"\r\n | \"sx\"\r\n // AutocompleteProps carries its own loosely-typed `ref` (Ref<unknown>,\r\n // for its polymorphic root support) that isn't the \"real\" ref for this\r\n // component. Exclude it here so it never enters ComboboxProps as an\r\n // inherited field — the actual ref (RefAttributes<HTMLDivElement>) comes\r\n // from this component's own React.forwardRef below. Without this,\r\n // Omit<ComboboxProps, ...>-based prop types (e.g. FormikComboboxProps)\r\n // silently carry the stray ref through into their ...rest spreads.\r\n | \"ref\"\r\n > {\r\n value?: ComboboxValue | undefined;\r\n onChange?: ((value: ComboboxValue) => void) | undefined;\r\n options?: Array<string | ComboboxOption> | undefined;\r\n multiple?: boolean | undefined;\r\n freeSolo?: boolean | undefined;\r\n placeholder?: string | undefined;\r\n disabled?: boolean | undefined;\r\n error?: boolean | undefined;\r\n fullWidth?: boolean | undefined;\r\n loading?: boolean | undefined;\r\n groupBy?: ((option: ComboboxItem) => string) | undefined;\r\n getOptionLabel?: ((option: ComboboxItem) => string) | undefined;\r\n isOptionEqualToValue?: ((option: ComboboxItem, value: ComboboxItem) => boolean) | undefined;\r\n filterOptions?: MuiACProps[\"filterOptions\"] | undefined;\r\n renderOption?: MuiACProps[\"renderOption\"] | undefined;\r\n onInputChange?: MuiACProps[\"onInputChange\"] | undefined;\r\n labels?: ComboboxLabels | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst Combobox = React.forwardRef<HTMLDivElement, ComboboxProps>(function Combobox(\r\n {\r\n value,\r\n onChange,\r\n options = [],\r\n multiple = false,\r\n freeSolo = false,\r\n placeholder,\r\n disabled,\r\n error,\r\n fullWidth = true,\r\n loading = false,\r\n groupBy,\r\n getOptionLabel,\r\n isOptionEqualToValue,\r\n filterOptions,\r\n renderOption,\r\n onInputChange,\r\n labels,\r\n sx,\r\n // COMBO-1 — pulled out of ...rest so they DON'T land on the Autocomplete\r\n // root; threaded onto the native <input> in renderInput below.\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n ...rest\r\n },\r\n ref\r\n) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n // Legacy `placeholder` prop wins over labels.placeholder.\r\n const effectivePlaceholder = placeholder ?? L.placeholder;\r\n\r\n const normalised = React.useMemo(() => options.map(normaliseOption), [options]);\r\n\r\n // Default groupBy — uses option.group if any option has one.\r\n const autoGroupBy = React.useMemo((): ((option: ComboboxItem) => string) | undefined => {\r\n if (groupBy) return groupBy;\r\n if (normalised.some((o) => o && typeof o === \"object\" && o.group)) {\r\n return (o: ComboboxItem): string => (o && typeof o === \"object\" ? o.group || \"\" : \"\");\r\n }\r\n return undefined;\r\n }, [normalised, groupBy]);\r\n\r\n const labelOf = React.useCallback(\r\n (o: ComboboxItem): string => {\r\n if (getOptionLabel) return getOptionLabel(o);\r\n if (o == null) return \"\";\r\n if (typeof o === \"string\") return o;\r\n const obj = o as ComboboxOption;\r\n return String(obj.label ?? obj.value ?? \"\");\r\n },\r\n [getOptionLabel]\r\n );\r\n\r\n const eqOf = React.useCallback(\r\n (opt: ComboboxItem, val: unknown): boolean => {\r\n if (isOptionEqualToValue) return isOptionEqualToValue(opt, val as ComboboxItem);\r\n if (opt == null || val == null) return opt === val;\r\n const a = typeof opt === \"string\" ? opt : (opt as ComboboxOption).value;\r\n // B-eq: primitives (numbers, booleans) are compared as-is.\r\n // Previously `val.value` for a non-string, non-object value\r\n // (e.g. a numeric id stored by FormikCombobox via setFieldValue)\r\n // resolved to undefined, so the lookup never matched and the\r\n // selected option was never visually reflected after picking.\r\n const b =\r\n typeof val === \"string\" ? val\r\n : (val !== null && typeof val === \"object\") ? (val as { value?: unknown }).value\r\n : val; // number, boolean, etc. — use the primitive directly\r\n return a === b;\r\n },\r\n [isOptionEqualToValue]\r\n );\r\n\r\n const handleChange = (\r\n _event: React.SyntheticEvent,\r\n next: ComboboxItem | ComboboxItem[] | null\r\n ): void => {\r\n if (!onChange) return;\r\n // Re-emit raw value(s) — strings stay strings, objects get unwrapped to\r\n // their `.value` so callers don't have to deal with the option shape.\r\n if (multiple) {\r\n const arr = Array.isArray(next) ? next : [];\r\n const out = arr.map((n) => (typeof n === \"string\" ? n : (n as ComboboxOption).value ?? n));\r\n onChange(out);\r\n return;\r\n }\r\n if (next == null) {\r\n onChange(null);\r\n } else {\r\n const single = next as ComboboxItem;\r\n onChange(typeof single === \"string\" ? single : (single as ComboboxOption).value ?? single);\r\n }\r\n };\r\n\r\n // Resolve raw value(s) back to option objects so MUI Autocomplete can\r\n // display labels properly.\r\n const resolvedValue = React.useMemo(() => {\r\n if (multiple) {\r\n const arr = Array.isArray(value) ? value : [];\r\n return arr.map(\r\n (v) =>\r\n normalised.find((o) => eqOf(o, v)) ||\r\n (typeof v === \"string\" ? { value: v, label: v } : v)\r\n );\r\n }\r\n if (value == null || value === \"\") return null;\r\n return (\r\n normalised.find((o) => eqOf(o, value)) ||\r\n (typeof value === \"string\" ? { value, label: value } : (value as ComboboxItem))\r\n );\r\n }, [value, normalised, multiple, eqOf]);\r\n\r\n // Auto-render helper text when at least one option has one. Hosts can\r\n // override entirely by passing their own renderOption.\r\n const anyHelper = normalised.some(\r\n (o) => o && typeof o === \"object\" && o.helper != null && o.helper !== \"\"\r\n );\r\n const effectiveRenderOption: MuiACProps[\"renderOption\"] = React.useMemo(() => {\r\n if (renderOption) return renderOption;\r\n if (!anyHelper) return undefined;\r\n // MUI Autocomplete passes (props, option, state) — `props` already\r\n // carries the correct <li> role/id/aria-selected. We render the\r\n // option content inside it; the helper line is in-flow text so it\r\n // becomes part of the option's accessible name automatically.\r\n return (props: React.HTMLAttributes<HTMLLIElement>, option: ComboboxItem): React.ReactNode => {\r\n const label = labelOf(option);\r\n const helper = option && typeof option === \"object\" ? option.helper : null;\r\n const optValue = typeof option === \"object\" && option !== null ? option.value : undefined;\r\n const optionKey: React.Key =\r\n optValue == null ? label\r\n : typeof optValue === \"boolean\" ? String(optValue)\r\n : optValue;\r\n return (\r\n <li {...props} key={optionKey}>\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", paddingY: 0.25, minWidth: 0 }}>\r\n <Box component=\"span\" sx={{ fontSize: \"var(--text-sm)\", color: \"var(--fg)\" }}>\r\n {label}\r\n </Box>\r\n {helper && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n }}\r\n >\r\n {helper}\r\n </Box>\r\n )}\r\n </Box>\r\n </li>\r\n );\r\n };\r\n }, [renderOption, anyHelper, labelOf]);\r\n\r\n return (\r\n <AutocompleteWithTags\r\n ref={ref}\r\n multiple={multiple}\r\n freeSolo={freeSolo}\r\n disabled={disabled}\r\n fullWidth={fullWidth}\r\n value={resolvedValue}\r\n onChange={handleChange}\r\n onInputChange={onInputChange}\r\n options={normalised}\r\n loading={loading}\r\n groupBy={autoGroupBy}\r\n getOptionLabel={labelOf}\r\n isOptionEqualToValue={eqOf}\r\n filterOptions={filterOptions}\r\n renderOption={effectiveRenderOption}\r\n noOptionsText={L.noOptions}\r\n loadingText={L.loading}\r\n clearText={L.clear}\r\n closeText={L.close}\r\n openText={L.open}\r\n size=\"small\"\r\n renderTags={(values: ComboboxItem[], getTagProps: AutocompleteRenderGetTagProps) =>\r\n values.map((option: ComboboxItem, index: number) => {\r\n const rawVal =\r\n typeof option === \"object\" && option !== null ? option.value : option;\r\n const tagKey: React.Key =\r\n rawVal == null ? index\r\n : typeof rawVal === \"boolean\" ? String(rawVal)\r\n : rawVal;\r\n return (\r\n <MuiChip\r\n {...getTagProps({ index })}\r\n key={tagKey}\r\n size=\"small\"\r\n label={labelOf(option)}\r\n sx={{\r\n height: 22,\r\n \"& .MuiChip-label\": { paddingInline: 1, fontSize: 12 },\r\n }}\r\n />\r\n );\r\n })\r\n }\r\n renderInput={(params) => {\r\n // MUI v9: the bag passed to renderInput carries the input slot props\r\n // at `params.slotProps.input` AND — crucially — the input element ref\r\n // at `params.slotProps.htmlInput.ref`, which MUI's Autocomplete\r\n // focuses on click. We must NOT rebuild slotProps from scratch (that\r\n // drops htmlInput → MUI focuses null → \"Cannot read properties of null\r\n // (reading 'focus')\"). Instead, spread the whole params.slotProps and\r\n // only override the input slot's endAdornment. inputSlot is annotated\r\n // as { endAdornment? } so the runtime spread still forwards htmlInput.\r\n // params.InputProps was the pre-v9 TextField prop, fully replaced by\r\n // params.slotProps.input — no longer exists on AutocompleteRenderInputParams.\r\n const paramsSlotProps = params.slotProps ?? {};\r\n const inputSlot: { endAdornment?: React.ReactNode } =\r\n params.slotProps?.input ?? {};\r\n return (\r\n <TextField\r\n {...params}\r\n placeholder={effectivePlaceholder}\r\n error={!!error}\r\n slotProps={{\r\n ...paramsSlotProps,\r\n // COMBO-1 — merge Field's aria onto the native <input>. Spread\r\n // MUI's existing htmlInput FIRST to keep its ref + combobox aria\r\n // (role/aria-expanded/aria-controls/aria-activedescendant); add\r\n // ours only when defined (exactOptionalPropertyTypes-safe).\r\n htmlInput: {\r\n ...(params.slotProps?.htmlInput ?? {}),\r\n ...(ariaDescribedBy != null ? { \"aria-describedby\": ariaDescribedBy } : {}),\r\n ...(ariaInvalid != null ? { \"aria-invalid\": ariaInvalid } : {}),\r\n ...(ariaRequired != null ? { \"aria-required\": ariaRequired } : {}),\r\n },\r\n input: {\r\n ...inputSlot,\r\n endAdornment: (\r\n <>\r\n {/* R-Ar.3 — decorative spinner. The listbox already announces\r\n via the loadingText prop; making the spinner a second\r\n progressbar in the AT tree would just create duplicate\r\n noise. */}\r\n {loading ? (\r\n <CircularProgress\r\n size={14}\r\n aria-hidden=\"true\"\r\n role=\"presentation\"\r\n sx={{ marginRight: 0.5 }}\r\n />\r\n ) : null}\r\n {inputSlot.endAdornment}\r\n </>\r\n ),\r\n },\r\n }}\r\n />\r\n );\r\n }}\r\n sx={sx}\r\n {...rest}\r\n />\r\n );\r\n});\r\n\r\nexport default Combobox;\r\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,IAAAC,KAAA,GAAAH,MAAA;AAC/B,IAAAI,aAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,UAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,KAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,iBAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,IAAA,GAAAJ,sBAAA,CAAAH,OAAA;AAEA,IAAAQ,YAAA,GAAAR,OAAA;AAAmD,IAAAS,WAAA,GAAAT,OAAA;AAAA,SAAAG,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAX,wBAAAW,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAf,uBAAA,YAAAA,CAAAW,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMgB,oBAAoB,GAAGC,qBAO5B;AAED,MAAMC,cAAc,GAAGL,MAAM,CAACM,MAAM,CAAC;EACnCC,SAAS,EAAI,gBAAgB;EAC7BC,OAAO,EAAM,aAAa;EAC1BC,KAAK,EAAQ,SAAS;EACtBC,KAAK,EAAQ,QAAQ;EACrBC,IAAI,EAAS,QAAQ;EACrBC,WAAW,EAAE;AACf,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAItB,CAA0B,IACjD,OAAOA,CAAC,KAAK,QAAQ,GAAG;EAAEuB,KAAK,EAAEvB,CAAC;EAAEwB,KAAK,EAAExB;AAAE,CAAC,GAAGA,CAAC;AAmDpD,MAAMyB,QAAQ,gBAAGzC,KAAK,CAAC0C,UAAU,CAAgC,SAASD,QAAQA,CAChF;EACEF,KAAK;EACLI,QAAQ;EACRC,OAAO,GAAG,EAAE;EACZC,QAAQ,GAAG,KAAK;EAChBC,QAAQ,GAAG,KAAK;EAChBT,WAAW;EACXU,QAAQ;EACRC,KAAK;EACLC,SAAS,GAAG,IAAI;EAChBhB,OAAO,GAAG,KAAK;EACfiB,OAAO;EACPC,cAAc;EACdC,oBAAoB;EACpBC,aAAa;EACbC,YAAY;EACZC,aAAa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","ignoreList":[]}