@portnet/ui 6.0.0 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/dist/esm/index.js +214 -0
  3. package/dist/esm/index.js.map +1 -0
  4. package/dist/esm/v2/__tests__/FieldError.test.js +159 -0
  5. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  7. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/FileCard.test.js +143 -0
  9. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
  11. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
  13. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  14. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
  15. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/MobileRowCard.test.js +332 -0
  17. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
  19. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  20. package/dist/esm/v2/__tests__/apiError.test.js +181 -0
  21. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
  23. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
  24. package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
  25. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
  27. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/labels-merge.test.js +146 -0
  29. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
  30. package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
  31. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
  33. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
  34. package/dist/esm/v2/components/Accordion.js +230 -0
  35. package/dist/esm/v2/components/Accordion.js.map +1 -0
  36. package/dist/esm/v2/components/ActionStrip.js +146 -0
  37. package/dist/esm/v2/components/ActionStrip.js.map +1 -0
  38. package/dist/esm/v2/components/Banner.js +254 -0
  39. package/dist/esm/v2/components/Banner.js.map +1 -0
  40. package/dist/esm/v2/components/Busy.js +97 -0
  41. package/dist/esm/v2/components/Busy.js.map +1 -0
  42. package/dist/esm/v2/components/Button.js +114 -0
  43. package/dist/esm/v2/components/Button.js.map +1 -0
  44. package/dist/esm/v2/components/CategoryTag.js +81 -0
  45. package/dist/esm/v2/components/CategoryTag.js.map +1 -0
  46. package/dist/esm/v2/components/Checkbox.js +124 -0
  47. package/dist/esm/v2/components/Checkbox.js.map +1 -0
  48. package/dist/esm/v2/components/Chip.js +124 -0
  49. package/dist/esm/v2/components/Chip.js.map +1 -0
  50. package/dist/esm/v2/components/Combobox.js +394 -0
  51. package/dist/esm/v2/components/Combobox.js.map +1 -0
  52. package/dist/esm/v2/components/CommandPalette.js +660 -0
  53. package/dist/esm/v2/components/CommandPalette.js.map +1 -0
  54. package/dist/esm/v2/components/ConfirmDialog.js +144 -0
  55. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
  56. package/dist/esm/v2/components/DatePicker.js +200 -0
  57. package/dist/esm/v2/components/DatePicker.js.map +1 -0
  58. package/dist/esm/v2/components/DateRangePicker.js +289 -0
  59. package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
  60. package/dist/esm/v2/components/DateTimePicker.js +215 -0
  61. package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
  62. package/dist/esm/v2/components/Drawer.js +333 -0
  63. package/dist/esm/v2/components/Drawer.js.map +1 -0
  64. package/dist/esm/v2/components/Dropzone.js +540 -0
  65. package/dist/esm/v2/components/Dropzone.js.map +1 -0
  66. package/dist/esm/v2/components/EmptyState.js +102 -0
  67. package/dist/esm/v2/components/EmptyState.js.map +1 -0
  68. package/dist/esm/v2/components/FavoriteToggle.js +127 -0
  69. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
  70. package/dist/esm/v2/components/Field.js +259 -0
  71. package/dist/esm/v2/components/Field.js.map +1 -0
  72. package/dist/esm/v2/components/FieldError.js +124 -0
  73. package/dist/esm/v2/components/FieldError.js.map +1 -0
  74. package/dist/esm/v2/components/FieldHelp.js +202 -0
  75. package/dist/esm/v2/components/FieldHelp.js.map +1 -0
  76. package/dist/esm/v2/components/FileCard.js +162 -0
  77. package/dist/esm/v2/components/FileCard.js.map +1 -0
  78. package/dist/esm/v2/components/FilterTab.js +138 -0
  79. package/dist/esm/v2/components/FilterTab.js.map +1 -0
  80. package/dist/esm/v2/components/ForbiddenPage.js +74 -0
  81. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
  82. package/dist/esm/v2/components/FormGrid.js +179 -0
  83. package/dist/esm/v2/components/FormGrid.js.map +1 -0
  84. package/dist/esm/v2/components/FormikDisplay.js +118 -0
  85. package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
  86. package/dist/esm/v2/components/Input.js +107 -0
  87. package/dist/esm/v2/components/Input.js.map +1 -0
  88. package/dist/esm/v2/components/KPICard.js +237 -0
  89. package/dist/esm/v2/components/KPICard.js.map +1 -0
  90. package/dist/esm/v2/components/KPIStrip.js +84 -0
  91. package/dist/esm/v2/components/KPIStrip.js.map +1 -0
  92. package/dist/esm/v2/components/KV.js +75 -0
  93. package/dist/esm/v2/components/KV.js.map +1 -0
  94. package/dist/esm/v2/components/KVGrid.js +74 -0
  95. package/dist/esm/v2/components/KVGrid.js.map +1 -0
  96. package/dist/esm/v2/components/Layout.js +284 -0
  97. package/dist/esm/v2/components/Layout.js.map +1 -0
  98. package/dist/esm/v2/components/MobileRowCard.js +314 -0
  99. package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
  100. package/dist/esm/v2/components/Modal.js +276 -0
  101. package/dist/esm/v2/components/Modal.js.map +1 -0
  102. package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
  103. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
  104. package/dist/esm/v2/components/NotFoundPage.js +58 -0
  105. package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
  106. package/dist/esm/v2/components/NumberInput.js +309 -0
  107. package/dist/esm/v2/components/NumberInput.js.map +1 -0
  108. package/dist/esm/v2/components/OverflowMenu.js +184 -0
  109. package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
  110. package/dist/esm/v2/components/PdfViewer.js +122 -0
  111. package/dist/esm/v2/components/PdfViewer.js.map +1 -0
  112. package/dist/esm/v2/components/ProgressBar.js +202 -0
  113. package/dist/esm/v2/components/ProgressBar.js.map +1 -0
  114. package/dist/esm/v2/components/Radio.js +228 -0
  115. package/dist/esm/v2/components/Radio.js.map +1 -0
  116. package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
  117. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
  118. package/dist/esm/v2/components/SectionHeader.js +132 -0
  119. package/dist/esm/v2/components/SectionHeader.js.map +1 -0
  120. package/dist/esm/v2/components/Segmented.js +254 -0
  121. package/dist/esm/v2/components/Segmented.js.map +1 -0
  122. package/dist/esm/v2/components/Select.js +490 -0
  123. package/dist/esm/v2/components/Select.js.map +1 -0
  124. package/dist/esm/v2/components/ServerErrorPage.js +74 -0
  125. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
  126. package/dist/esm/v2/components/Skeleton.js +269 -0
  127. package/dist/esm/v2/components/Skeleton.js.map +1 -0
  128. package/dist/esm/v2/components/SkipLink.js +49 -0
  129. package/dist/esm/v2/components/SkipLink.js.map +1 -0
  130. package/dist/esm/v2/components/Spinner.js +69 -0
  131. package/dist/esm/v2/components/Spinner.js.map +1 -0
  132. package/dist/esm/v2/components/Status.js +64 -0
  133. package/dist/esm/v2/components/Status.js.map +1 -0
  134. package/dist/esm/v2/components/Stepper.js +432 -0
  135. package/dist/esm/v2/components/Stepper.js.map +1 -0
  136. package/dist/esm/v2/components/Surface.js +159 -0
  137. package/dist/esm/v2/components/Surface.js.map +1 -0
  138. package/dist/esm/v2/components/Switch.js +128 -0
  139. package/dist/esm/v2/components/Switch.js.map +1 -0
  140. package/dist/esm/v2/components/Tabs.js +150 -0
  141. package/dist/esm/v2/components/Tabs.js.map +1 -0
  142. package/dist/esm/v2/components/TelInput.js +274 -0
  143. package/dist/esm/v2/components/TelInput.js.map +1 -0
  144. package/dist/esm/v2/components/Textarea.js +72 -0
  145. package/dist/esm/v2/components/Textarea.js.map +1 -0
  146. package/dist/esm/v2/components/TimePicker.js +134 -0
  147. package/dist/esm/v2/components/TimePicker.js.map +1 -0
  148. package/dist/esm/v2/components/Toast.js +376 -0
  149. package/dist/esm/v2/components/Toast.js.map +1 -0
  150. package/dist/esm/v2/components/Tooltip.js +161 -0
  151. package/dist/esm/v2/components/Tooltip.js.map +1 -0
  152. package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
  153. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
  154. package/dist/esm/v2/components/_pickerShared.js +60 -0
  155. package/dist/esm/v2/components/_pickerShared.js.map +1 -0
  156. package/dist/esm/v2/components/index.js +271 -0
  157. package/dist/esm/v2/components/index.js.map +1 -0
  158. package/dist/esm/v2/hooks/index.js +10 -0
  159. package/dist/esm/v2/hooks/index.js.map +1 -0
  160. package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
  161. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
  162. package/dist/esm/v2/hooks/useDensity.js +119 -0
  163. package/dist/esm/v2/hooks/useDensity.js.map +1 -0
  164. package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
  165. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
  166. package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
  167. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
  168. package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
  169. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
  170. package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
  171. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
  172. package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
  173. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
  174. package/dist/esm/v2/hooks/useSortedRows.js +32 -0
  175. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
  176. package/dist/esm/v2/hooks/useTabLoading.js +79 -0
  177. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
  178. package/dist/esm/v2/index.js +132 -0
  179. package/dist/esm/v2/index.js.map +1 -0
  180. package/dist/esm/v2/modalContext.js +108 -0
  181. package/dist/esm/v2/modalContext.js.map +1 -0
  182. package/dist/esm/v2/models/favorite.js +2 -0
  183. package/dist/esm/v2/models/favorite.js.map +1 -0
  184. package/dist/esm/v2/models/index.js +12 -0
  185. package/dist/esm/v2/models/index.js.map +1 -0
  186. package/dist/esm/v2/models/personalization.js +2 -0
  187. package/dist/esm/v2/models/personalization.js.map +1 -0
  188. package/dist/esm/v2/models/referentiel.js +2 -0
  189. package/dist/esm/v2/models/referentiel.js.map +1 -0
  190. package/dist/esm/v2/models/savedFilter.js +2 -0
  191. package/dist/esm/v2/models/savedFilter.js.map +1 -0
  192. package/dist/esm/v2/patterns/ActionBar.js +603 -0
  193. package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
  194. package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
  195. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
  196. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
  197. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
  198. package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
  199. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
  200. package/dist/esm/v2/patterns/DataGrid.js +820 -0
  201. package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
  202. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
  203. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
  204. package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
  205. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
  206. package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
  207. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
  208. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
  209. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
  210. package/dist/esm/v2/patterns/FavoriteColumn.js +117 -0
  211. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
  212. package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
  213. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
  214. package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
  215. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
  216. package/dist/esm/v2/patterns/FormPageShell.js +126 -0
  217. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
  218. package/dist/esm/v2/patterns/FormSection.js +190 -0
  219. package/dist/esm/v2/patterns/FormSection.js.map +1 -0
  220. package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
  221. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  222. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
  223. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
  224. package/dist/esm/v2/patterns/FormikCombobox.js +118 -0
  225. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
  226. package/dist/esm/v2/patterns/FormikDatePicker.js +162 -0
  227. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
  228. package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
  229. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  230. package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
  231. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
  232. package/dist/esm/v2/patterns/FormikFile.js +148 -0
  233. package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
  234. package/dist/esm/v2/patterns/FormikInput.js +130 -0
  235. package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
  236. package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
  237. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  238. package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
  239. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
  240. package/dist/esm/v2/patterns/FormikSelect.js +162 -0
  241. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
  242. package/dist/esm/v2/patterns/FormikTextarea.js +79 -0
  243. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
  244. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +212 -0
  245. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
  246. package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
  247. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
  248. package/dist/esm/v2/patterns/PageContent.js +62 -0
  249. package/dist/esm/v2/patterns/PageContent.js.map +1 -0
  250. package/dist/esm/v2/patterns/ReferentielField.js +615 -0
  251. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
  252. package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
  253. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  254. package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
  255. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
  256. package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
  257. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
  258. package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
  259. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
  260. package/dist/esm/v2/patterns/SortableHeader.js +179 -0
  261. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
  262. package/dist/esm/v2/patterns/Tour.js +471 -0
  263. package/dist/esm/v2/patterns/Tour.js.map +1 -0
  264. package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
  265. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
  266. package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
  267. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  268. package/dist/esm/v2/patterns/_sort.js +112 -0
  269. package/dist/esm/v2/patterns/_sort.js.map +1 -0
  270. package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
  271. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
  272. package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
  273. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
  274. package/dist/esm/v2/patterns/index.js +178 -0
  275. package/dist/esm/v2/patterns/index.js.map +1 -0
  276. package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
  277. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
  278. package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
  279. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
  280. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
  281. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
  282. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
  283. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
  284. package/dist/esm/v2/personalization/adapters/index.js +11 -0
  285. package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
  286. package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
  287. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
  288. package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
  289. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
  290. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
  291. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  292. package/dist/esm/v2/personalization/capabilities/index.js +22 -0
  293. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
  294. package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
  295. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
  296. package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
  297. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
  298. package/dist/esm/v2/personalization/index.js +64 -0
  299. package/dist/esm/v2/personalization/index.js.map +1 -0
  300. package/dist/esm/v2/personalization/personalizationContext.js +108 -0
  301. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
  302. package/dist/esm/v2/personalization/schema.js +92 -0
  303. package/dist/esm/v2/personalization/schema.js.map +1 -0
  304. package/dist/esm/v2/personalization/types.js +2 -0
  305. package/dist/esm/v2/personalization/types.js.map +1 -0
  306. package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
  307. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
  308. package/dist/esm/v2/referentiel/index.js +15 -0
  309. package/dist/esm/v2/referentiel/index.js.map +1 -0
  310. package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
  311. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
  312. package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
  313. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
  314. package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
  315. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
  316. package/dist/esm/v2/styles/base.css +425 -0
  317. package/dist/esm/v2/styles/css.d.ts +10 -0
  318. package/dist/esm/v2/styles/index.js +12 -0
  319. package/dist/esm/v2/styles/index.js.map +1 -0
  320. package/dist/esm/v2/theme/_brand.js +64 -0
  321. package/dist/esm/v2/theme/_brand.js.map +1 -0
  322. package/dist/esm/v2/theme/_brandSecondary.js +60 -0
  323. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
  324. package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
  325. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
  326. package/dist/esm/v2/theme/cssVariables.js +198 -0
  327. package/dist/esm/v2/theme/cssVariables.js.map +1 -0
  328. package/dist/esm/v2/theme/index.js +32 -0
  329. package/dist/esm/v2/theme/index.js.map +1 -0
  330. package/dist/esm/v2/tokens/breakpoints.js +106 -0
  331. package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
  332. package/dist/esm/v2/tokens/colors.js +219 -0
  333. package/dist/esm/v2/tokens/colors.js.map +1 -0
  334. package/dist/esm/v2/tokens/density.js +98 -0
  335. package/dist/esm/v2/tokens/density.js.map +1 -0
  336. package/dist/esm/v2/tokens/index.js +80 -0
  337. package/dist/esm/v2/tokens/index.js.map +1 -0
  338. package/dist/esm/v2/tokens/motion.js +88 -0
  339. package/dist/esm/v2/tokens/motion.js.map +1 -0
  340. package/dist/esm/v2/tokens/radius.js +22 -0
  341. package/dist/esm/v2/tokens/radius.js.map +1 -0
  342. package/dist/esm/v2/tokens/shadows.js +40 -0
  343. package/dist/esm/v2/tokens/shadows.js.map +1 -0
  344. package/dist/esm/v2/tokens/spacing.js +51 -0
  345. package/dist/esm/v2/tokens/spacing.js.map +1 -0
  346. package/dist/esm/v2/tokens/state.js +41 -0
  347. package/dist/esm/v2/tokens/state.js.map +1 -0
  348. package/dist/esm/v2/tokens/statusPalette.js +66 -0
  349. package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
  350. package/dist/esm/v2/tokens/tokens.json +153 -0
  351. package/dist/esm/v2/tokens/typography.js +149 -0
  352. package/dist/esm/v2/tokens/typography.js.map +1 -0
  353. package/dist/esm/v2/tokens/zIndex.js +44 -0
  354. package/dist/esm/v2/tokens/zIndex.js.map +1 -0
  355. package/dist/esm/v2/types/common.js +2 -0
  356. package/dist/esm/v2/types/common.js.map +1 -0
  357. package/dist/esm/v2/types/datagrid.js +2 -0
  358. package/dist/esm/v2/types/datagrid.js.map +1 -0
  359. package/dist/esm/v2/types/index.js +12 -0
  360. package/dist/esm/v2/types/index.js.map +1 -0
  361. package/dist/esm/v2/utils/apiError.js +281 -0
  362. package/dist/esm/v2/utils/apiError.js.map +1 -0
  363. package/dist/esm/v2/utils/contrast.js +157 -0
  364. package/dist/esm/v2/utils/contrast.js.map +1 -0
  365. package/dist/esm/v2/utils/cx.js +38 -0
  366. package/dist/esm/v2/utils/cx.js.map +1 -0
  367. package/dist/esm/v2/utils/fileDownload.js +226 -0
  368. package/dist/esm/v2/utils/fileDownload.js.map +1 -0
  369. package/dist/esm/v2/utils/fmtMoney.js +78 -0
  370. package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
  371. package/dist/esm/v2/utils/index.js +43 -0
  372. package/dist/esm/v2/utils/index.js.map +1 -0
  373. package/dist/esm/v2/utils/mergeLabels.js +86 -0
  374. package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
  375. package/dist/esm/v2/utils/networkStatus.js +114 -0
  376. package/dist/esm/v2/utils/networkStatus.js.map +1 -0
  377. package/dist/index.d.ts +5 -2
  378. package/dist/index.d.ts.map +1 -1
  379. package/dist/index.js +35 -0
  380. package/dist/index.js.map +1 -1
  381. package/dist/v2/__tests__/FieldError.test.js +160 -0
  382. package/dist/v2/__tests__/FieldError.test.js.map +1 -0
  383. package/dist/v2/__tests__/FieldWidth.test.js +150 -0
  384. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  385. package/dist/v2/__tests__/FileCard.test.js +144 -0
  386. package/dist/v2/__tests__/FileCard.test.js.map +1 -0
  387. package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
  388. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  389. package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
  390. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  391. package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
  392. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  393. package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
  394. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  395. package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
  396. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  397. package/dist/v2/__tests__/labels-merge.test.js +20 -24
  398. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  399. package/dist/v2/components/Accordion.d.ts +6 -6
  400. package/dist/v2/components/Accordion.d.ts.map +1 -1
  401. package/dist/v2/components/Accordion.js.map +1 -1
  402. package/dist/v2/components/ActionStrip.d.ts +12 -12
  403. package/dist/v2/components/ActionStrip.d.ts.map +1 -1
  404. package/dist/v2/components/ActionStrip.js.map +1 -1
  405. package/dist/v2/components/Banner.d.ts +48 -9
  406. package/dist/v2/components/Banner.d.ts.map +1 -1
  407. package/dist/v2/components/Banner.js +116 -35
  408. package/dist/v2/components/Banner.js.map +1 -1
  409. package/dist/v2/components/Busy.d.ts +3 -3
  410. package/dist/v2/components/Busy.d.ts.map +1 -1
  411. package/dist/v2/components/Busy.js.map +1 -1
  412. package/dist/v2/components/Button.d.ts +6 -6
  413. package/dist/v2/components/Button.d.ts.map +1 -1
  414. package/dist/v2/components/Button.js.map +1 -1
  415. package/dist/v2/components/CategoryTag.d.ts +3 -3
  416. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  417. package/dist/v2/components/CategoryTag.js.map +1 -1
  418. package/dist/v2/components/Checkbox.d.ts +11 -11
  419. package/dist/v2/components/Checkbox.d.ts.map +1 -1
  420. package/dist/v2/components/Checkbox.js.map +1 -1
  421. package/dist/v2/components/Chip.d.ts +8 -8
  422. package/dist/v2/components/Chip.d.ts.map +1 -1
  423. package/dist/v2/components/Chip.js +2 -1
  424. package/dist/v2/components/Chip.js.map +1 -1
  425. package/dist/v2/components/Combobox.d.ts +27 -27
  426. package/dist/v2/components/Combobox.d.ts.map +1 -1
  427. package/dist/v2/components/Combobox.js +3 -2
  428. package/dist/v2/components/Combobox.js.map +1 -1
  429. package/dist/v2/components/CommandPalette.d.ts +20 -20
  430. package/dist/v2/components/CommandPalette.d.ts.map +1 -1
  431. package/dist/v2/components/CommandPalette.js +2 -6
  432. package/dist/v2/components/CommandPalette.js.map +1 -1
  433. package/dist/v2/components/ConfirmDialog.d.ts +13 -13
  434. package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
  435. package/dist/v2/components/ConfirmDialog.js +2 -1
  436. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  437. package/dist/v2/components/DatePicker.d.ts +11 -11
  438. package/dist/v2/components/DatePicker.d.ts.map +1 -1
  439. package/dist/v2/components/DatePicker.js.map +1 -1
  440. package/dist/v2/components/DateRangePicker.d.ts +16 -16
  441. package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
  442. package/dist/v2/components/DateRangePicker.js +2 -1
  443. package/dist/v2/components/DateRangePicker.js.map +1 -1
  444. package/dist/v2/components/DateTimePicker.d.ts +11 -11
  445. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  446. package/dist/v2/components/DateTimePicker.js +37 -4
  447. package/dist/v2/components/DateTimePicker.js.map +1 -1
  448. package/dist/v2/components/Drawer.d.ts +18 -18
  449. package/dist/v2/components/Drawer.d.ts.map +1 -1
  450. package/dist/v2/components/Drawer.js +2 -1
  451. package/dist/v2/components/Drawer.js.map +1 -1
  452. package/dist/v2/components/Dropzone.d.ts +34 -34
  453. package/dist/v2/components/Dropzone.d.ts.map +1 -1
  454. package/dist/v2/components/Dropzone.js +11 -3
  455. package/dist/v2/components/Dropzone.js.map +1 -1
  456. package/dist/v2/components/EmptyState.d.ts +7 -7
  457. package/dist/v2/components/EmptyState.d.ts.map +1 -1
  458. package/dist/v2/components/EmptyState.js.map +1 -1
  459. package/dist/v2/components/FavoriteToggle.d.ts +7 -7
  460. package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
  461. package/dist/v2/components/FavoriteToggle.js +2 -1
  462. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  463. package/dist/v2/components/Field.d.ts +76 -13
  464. package/dist/v2/components/Field.d.ts.map +1 -1
  465. package/dist/v2/components/Field.js +87 -9
  466. package/dist/v2/components/Field.js.map +1 -1
  467. package/dist/v2/components/FieldError.d.ts +78 -0
  468. package/dist/v2/components/FieldError.d.ts.map +1 -0
  469. package/dist/v2/components/FieldError.js +131 -0
  470. package/dist/v2/components/FieldError.js.map +1 -0
  471. package/dist/v2/components/FieldHelp.d.ts +7 -7
  472. package/dist/v2/components/FieldHelp.d.ts.map +1 -1
  473. package/dist/v2/components/FieldHelp.js.map +1 -1
  474. package/dist/v2/components/FileCard.d.ts +75 -0
  475. package/dist/v2/components/FileCard.d.ts.map +1 -0
  476. package/dist/v2/components/FileCard.js +169 -0
  477. package/dist/v2/components/FileCard.js.map +1 -0
  478. package/dist/v2/components/FilterTab.d.ts +9 -9
  479. package/dist/v2/components/FilterTab.d.ts.map +1 -1
  480. package/dist/v2/components/FilterTab.js +2 -1
  481. package/dist/v2/components/FilterTab.js.map +1 -1
  482. package/dist/v2/components/FormGrid.d.ts +9 -4
  483. package/dist/v2/components/FormGrid.d.ts.map +1 -1
  484. package/dist/v2/components/FormGrid.js +11 -1
  485. package/dist/v2/components/FormGrid.js.map +1 -1
  486. package/dist/v2/components/FormikDisplay.d.ts +6 -6
  487. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  488. package/dist/v2/components/FormikDisplay.js.map +1 -1
  489. package/dist/v2/components/Input.d.ts +6 -6
  490. package/dist/v2/components/Input.d.ts.map +1 -1
  491. package/dist/v2/components/Input.js.map +1 -1
  492. package/dist/v2/components/KPICard.d.ts +43 -13
  493. package/dist/v2/components/KPICard.d.ts.map +1 -1
  494. package/dist/v2/components/KPICard.js +53 -14
  495. package/dist/v2/components/KPICard.js.map +1 -1
  496. package/dist/v2/components/KPIStrip.d.ts +68 -0
  497. package/dist/v2/components/KPIStrip.d.ts.map +1 -0
  498. package/dist/v2/components/KPIStrip.js +92 -0
  499. package/dist/v2/components/KPIStrip.js.map +1 -0
  500. package/dist/v2/components/KV.d.ts +3 -3
  501. package/dist/v2/components/KV.d.ts.map +1 -1
  502. package/dist/v2/components/KV.js.map +1 -1
  503. package/dist/v2/components/KVGrid.d.ts +2 -2
  504. package/dist/v2/components/KVGrid.d.ts.map +1 -1
  505. package/dist/v2/components/KVGrid.js +8 -1
  506. package/dist/v2/components/KVGrid.js.map +1 -1
  507. package/dist/v2/components/Layout.d.ts +7 -7
  508. package/dist/v2/components/Layout.d.ts.map +1 -1
  509. package/dist/v2/components/Layout.js.map +1 -1
  510. package/dist/v2/components/MobileRowCard.d.ts +13 -13
  511. package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
  512. package/dist/v2/components/MobileRowCard.js.map +1 -1
  513. package/dist/v2/components/Modal.d.ts +12 -12
  514. package/dist/v2/components/Modal.d.ts.map +1 -1
  515. package/dist/v2/components/Modal.js.map +1 -1
  516. package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
  517. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  518. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  519. package/dist/v2/components/NumberInput.d.ts +14 -14
  520. package/dist/v2/components/NumberInput.d.ts.map +1 -1
  521. package/dist/v2/components/NumberInput.js +7 -6
  522. package/dist/v2/components/NumberInput.js.map +1 -1
  523. package/dist/v2/components/OverflowMenu.d.ts +14 -14
  524. package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
  525. package/dist/v2/components/OverflowMenu.js +4 -8
  526. package/dist/v2/components/OverflowMenu.js.map +1 -1
  527. package/dist/v2/components/PdfViewer.d.ts +9 -9
  528. package/dist/v2/components/PdfViewer.d.ts.map +1 -1
  529. package/dist/v2/components/PdfViewer.js.map +1 -1
  530. package/dist/v2/components/ProgressBar.d.ts +10 -10
  531. package/dist/v2/components/ProgressBar.d.ts.map +1 -1
  532. package/dist/v2/components/ProgressBar.js.map +1 -1
  533. package/dist/v2/components/Radio.d.ts +7 -7
  534. package/dist/v2/components/Radio.d.ts.map +1 -1
  535. package/dist/v2/components/Radio.js.map +1 -1
  536. package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
  537. package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
  538. package/dist/v2/components/SectionErrorBoundary.js +221 -0
  539. package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
  540. package/dist/v2/components/SectionHeader.d.ts +5 -5
  541. package/dist/v2/components/SectionHeader.d.ts.map +1 -1
  542. package/dist/v2/components/SectionHeader.js.map +1 -1
  543. package/dist/v2/components/Segmented.d.ts +11 -11
  544. package/dist/v2/components/Segmented.d.ts.map +1 -1
  545. package/dist/v2/components/Segmented.js.map +1 -1
  546. package/dist/v2/components/Select.d.ts +33 -15
  547. package/dist/v2/components/Select.d.ts.map +1 -1
  548. package/dist/v2/components/Select.js +147 -30
  549. package/dist/v2/components/Select.js.map +1 -1
  550. package/dist/v2/components/ServerErrorPage.d.ts +1 -1
  551. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  552. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  553. package/dist/v2/components/Skeleton.d.ts +15 -15
  554. package/dist/v2/components/Skeleton.d.ts.map +1 -1
  555. package/dist/v2/components/Skeleton.js.map +1 -1
  556. package/dist/v2/components/SkipLink.d.ts +2 -2
  557. package/dist/v2/components/SkipLink.d.ts.map +1 -1
  558. package/dist/v2/components/SkipLink.js.map +1 -1
  559. package/dist/v2/components/Status.d.ts +3 -3
  560. package/dist/v2/components/Status.d.ts.map +1 -1
  561. package/dist/v2/components/Status.js.map +1 -1
  562. package/dist/v2/components/Stepper.d.ts +28 -22
  563. package/dist/v2/components/Stepper.d.ts.map +1 -1
  564. package/dist/v2/components/Stepper.js +31 -5
  565. package/dist/v2/components/Stepper.js.map +1 -1
  566. package/dist/v2/components/Surface.d.ts +94 -0
  567. package/dist/v2/components/Surface.d.ts.map +1 -0
  568. package/dist/v2/components/Surface.js +163 -0
  569. package/dist/v2/components/Surface.js.map +1 -0
  570. package/dist/v2/components/Switch.d.ts +4 -4
  571. package/dist/v2/components/Switch.d.ts.map +1 -1
  572. package/dist/v2/components/Switch.js.map +1 -1
  573. package/dist/v2/components/Tabs.d.ts +6 -6
  574. package/dist/v2/components/Tabs.d.ts.map +1 -1
  575. package/dist/v2/components/Tabs.js.map +1 -1
  576. package/dist/v2/components/TelInput.d.ts +8 -8
  577. package/dist/v2/components/TelInput.d.ts.map +1 -1
  578. package/dist/v2/components/TelInput.js +18 -18
  579. package/dist/v2/components/TelInput.js.map +1 -1
  580. package/dist/v2/components/Textarea.d.ts +1 -1
  581. package/dist/v2/components/Textarea.d.ts.map +1 -1
  582. package/dist/v2/components/Textarea.js.map +1 -1
  583. package/dist/v2/components/TimePicker.d.ts +11 -11
  584. package/dist/v2/components/TimePicker.d.ts.map +1 -1
  585. package/dist/v2/components/TimePicker.js.map +1 -1
  586. package/dist/v2/components/Toast.d.ts +6 -6
  587. package/dist/v2/components/Toast.d.ts.map +1 -1
  588. package/dist/v2/components/Toast.js +9 -8
  589. package/dist/v2/components/Toast.js.map +1 -1
  590. package/dist/v2/components/Tooltip.d.ts +1 -1
  591. package/dist/v2/components/Tooltip.d.ts.map +1 -1
  592. package/dist/v2/components/Tooltip.js.map +1 -1
  593. package/dist/v2/components/index.d.ts +170 -0
  594. package/dist/v2/components/index.d.ts.map +1 -1
  595. package/dist/v2/components/index.js +35 -0
  596. package/dist/v2/components/index.js.map +1 -1
  597. package/dist/v2/index.d.ts.map +1 -1
  598. package/dist/v2/index.js.map +1 -1
  599. package/dist/v2/models/favorite.d.ts +1 -1
  600. package/dist/v2/models/favorite.d.ts.map +1 -1
  601. package/dist/v2/models/favorite.js.map +1 -1
  602. package/dist/v2/models/personalization.d.ts +13 -13
  603. package/dist/v2/models/personalization.d.ts.map +1 -1
  604. package/dist/v2/models/personalization.js.map +1 -1
  605. package/dist/v2/models/referentiel.d.ts +11 -11
  606. package/dist/v2/models/referentiel.d.ts.map +1 -1
  607. package/dist/v2/models/referentiel.js.map +1 -1
  608. package/dist/v2/models/savedFilter.d.ts +8 -8
  609. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  610. package/dist/v2/models/savedFilter.js.map +1 -1
  611. package/dist/v2/patterns/ActionBar.d.ts +33 -33
  612. package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
  613. package/dist/v2/patterns/ActionBar.js +2 -1
  614. package/dist/v2/patterns/ActionBar.js.map +1 -1
  615. package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
  616. package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
  617. package/dist/v2/patterns/BulkActionBar.js +2 -1
  618. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  619. package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
  620. package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
  621. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  622. package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
  623. package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
  624. package/dist/v2/patterns/ColumnsToggle.js +4 -8
  625. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  626. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
  627. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  628. package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
  629. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  630. package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
  631. package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
  632. package/dist/v2/patterns/DataGridToolbar.js +2 -1
  633. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  634. package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
  635. package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
  636. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  637. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
  638. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
  639. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  640. package/dist/v2/patterns/FavoriteColumn.d.ts +15 -15
  641. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  642. package/dist/v2/patterns/FavoriteColumn.js +14 -61
  643. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  644. package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
  645. package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
  646. package/dist/v2/patterns/FavoritesFilter.js +2 -1
  647. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  648. package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
  649. package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
  650. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  651. package/dist/v2/patterns/FormPageShell.d.ts +4 -4
  652. package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
  653. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  654. package/dist/v2/patterns/FormSection.d.ts +19 -8
  655. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  656. package/dist/v2/patterns/FormSection.js +106 -71
  657. package/dist/v2/patterns/FormSection.js.map +1 -1
  658. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  659. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  660. package/dist/v2/patterns/FormikCheckbox.js +147 -0
  661. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  662. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
  663. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  664. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  665. package/dist/v2/patterns/FormikCombobox.d.ts +18 -12
  666. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  667. package/dist/v2/patterns/FormikCombobox.js +5 -2
  668. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  669. package/dist/v2/patterns/FormikDatePicker.d.ts +48 -8
  670. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  671. package/dist/v2/patterns/FormikDatePicker.js +58 -65
  672. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  673. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  674. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  675. package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
  676. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  677. package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
  678. package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
  679. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  680. package/dist/v2/patterns/FormikFile.d.ts +8 -8
  681. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  682. package/dist/v2/patterns/FormikFile.js.map +1 -1
  683. package/dist/v2/patterns/FormikInput.d.ts +51 -6
  684. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  685. package/dist/v2/patterns/FormikInput.js +53 -2
  686. package/dist/v2/patterns/FormikInput.js.map +1 -1
  687. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  688. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  689. package/dist/v2/patterns/FormikRadioGroup.js +148 -0
  690. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  691. package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
  692. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  693. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  694. package/dist/v2/patterns/FormikSelect.d.ts +41 -12
  695. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  696. package/dist/v2/patterns/FormikSelect.js +32 -3
  697. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  698. package/dist/v2/patterns/FormikTextarea.d.ts +14 -6
  699. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  700. package/dist/v2/patterns/FormikTextarea.js +5 -2
  701. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  702. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +21 -8
  703. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  704. package/dist/v2/patterns/KeyboardShortcutsHelp.js +27 -14
  705. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  706. package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
  707. package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
  708. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  709. package/dist/v2/patterns/PageContent.d.ts +3 -3
  710. package/dist/v2/patterns/PageContent.d.ts.map +1 -1
  711. package/dist/v2/patterns/PageContent.js.map +1 -1
  712. package/dist/v2/patterns/ReferentielField.d.ts +49 -49
  713. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  714. package/dist/v2/patterns/ReferentielField.js +2 -1
  715. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  716. package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
  717. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  718. package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
  719. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  720. package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
  721. package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
  722. package/dist/v2/patterns/SaveFilterDialog.js +9 -8
  723. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  724. package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
  725. package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
  726. package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
  727. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  728. package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
  729. package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
  730. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  731. package/dist/v2/patterns/SortableHeader.d.ts +1 -1
  732. package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
  733. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  734. package/dist/v2/patterns/Tour.d.ts +12 -12
  735. package/dist/v2/patterns/Tour.d.ts.map +1 -1
  736. package/dist/v2/patterns/Tour.js +9 -8
  737. package/dist/v2/patterns/Tour.js.map +1 -1
  738. package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
  739. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  740. package/dist/v2/patterns/_dataGridShared.js +37 -3
  741. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  742. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  743. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  744. package/dist/v2/patterns/_pickerSerialisation.js +81 -0
  745. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  746. package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
  747. package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
  748. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  749. package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
  750. package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
  751. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  752. package/dist/v2/patterns/index.d.ts +114 -0
  753. package/dist/v2/patterns/index.d.ts.map +1 -1
  754. package/dist/v2/patterns/index.js +34 -0
  755. package/dist/v2/patterns/index.js.map +1 -1
  756. package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
  757. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  758. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  759. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
  760. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
  761. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  762. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
  763. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
  764. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  765. package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
  766. package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
  767. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  768. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  769. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  770. package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
  771. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  772. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  773. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  774. package/dist/v2/personalization/capabilities/index.js +13 -0
  775. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  776. package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
  777. package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
  778. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  779. package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
  780. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  781. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  782. package/dist/v2/personalization/index.d.ts +18 -0
  783. package/dist/v2/personalization/index.d.ts.map +1 -1
  784. package/dist/v2/personalization/index.js +13 -0
  785. package/dist/v2/personalization/index.js.map +1 -1
  786. package/dist/v2/personalization/schema.d.ts +2 -2
  787. package/dist/v2/personalization/schema.d.ts.map +1 -1
  788. package/dist/v2/personalization/schema.js.map +1 -1
  789. package/dist/v2/personalization/types.d.ts +19 -19
  790. package/dist/v2/personalization/types.d.ts.map +1 -1
  791. package/dist/v2/personalization/types.js.map +1 -1
  792. package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
  793. package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
  794. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  795. package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
  796. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  797. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  798. package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
  799. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  800. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  801. package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
  802. package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
  803. package/dist/v2/theme/createPortnetTheme.js +25 -1
  804. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  805. package/dist/v2/types/datagrid.d.ts +59 -59
  806. package/dist/v2/types/datagrid.d.ts.map +1 -1
  807. package/dist/v2/types/datagrid.js.map +1 -1
  808. package/dist/v2/utils/apiError.d.ts +65 -4
  809. package/dist/v2/utils/apiError.d.ts.map +1 -1
  810. package/dist/v2/utils/apiError.js +69 -6
  811. package/dist/v2/utils/apiError.js.map +1 -1
  812. package/dist/v2/utils/index.d.ts +1 -0
  813. package/dist/v2/utils/index.d.ts.map +1 -1
  814. package/dist/v2/utils/index.js +7 -0
  815. package/dist/v2/utils/index.js.map +1 -1
  816. package/dist/v2/utils/mergeLabels.d.ts +59 -0
  817. package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
  818. package/dist/v2/utils/mergeLabels.js +93 -0
  819. package/dist/v2/utils/mergeLabels.js.map +1 -0
  820. package/package.json +23 -15
@@ -0,0 +1,432 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
+ import * as React from "react";
8
+ import CheckIcon from "@mui/icons-material/Check";
9
+ import Box from "@mui/material/Box";
10
+ import { mergeLabels } from "../utils/mergeLabels";
11
+
12
+ /**
13
+ * Stepper - Portnet UI v2
14
+ *
15
+ * Charter §03 · Component "Stepper". Required on flows ≥ 3 steps (R-3.4).
16
+ *
17
+ * Two ways to drive HStepper:
18
+ *
19
+ * 1. SIMPLE mode — plain labels + `current` index (Charter default):
20
+ *
21
+ * <HStepper
22
+ * steps={["Identification", "Marchandise", "Banque", "Validation"]}
23
+ * current={1}
24
+ * onJump={i => goTo(i)}
25
+ * />
26
+ *
27
+ * 2. RICH mode — objects carry their own state, including a "disabled"
28
+ * state for locked future steps (used by wizards where step N is
29
+ * unavailable until step N-1 has been submitted):
30
+ *
31
+ * <HStepper
32
+ * steps={[
33
+ * { id: "importateur", label: "Importateur", status: "completed" },
34
+ * { id: "donneesTI", label: "Données", status: "current" },
35
+ * { id: "marchandises",label: "Marchandises", status: "disabled" },
36
+ * { id: "revision", label: "Révision", status: "pending" },
37
+ * ]}
38
+ * onStepClick={i => goTo(i)}
39
+ * ariaLabel="Étapes de création du titre"
40
+ * />
41
+ *
42
+ * status values: "current" | "active" | "completed" | "complete" |
43
+ * "pending" | "disabled"
44
+ * ("current"/"active" and "completed"/"complete" are accepted as
45
+ * synonyms to ease migration from host modules.)
46
+ *
47
+ * VStepper — vertical history/progression timeline. Each item may carry
48
+ * `timestamp` (date/time of the action) and `actor` (the user who did it);
49
+ * they render as a muted "timestamp · actor" line under the title. `meta`
50
+ * still works for free-form text (e.g. "En cours" on the active step):
51
+ *
52
+ * <VStepper items={[
53
+ * { status: "completed", title: "Titre d'importation créé",
54
+ * timestamp: "27/03/2025 09:48", actor: "dsmoimp" },
55
+ * { status: "completed", title: "Soumis à la banque (CITIBANK)",
56
+ * timestamp: "27/03/2025 10:16", actor: "Transit Jebli" },
57
+ * { status: "active", title: "En attente de réponse banque", meta: "En cours" },
58
+ * ]} />
59
+ *
60
+ * Localisation (FR / EN / AR):
61
+ * <HStepper labels={{
62
+ * nav: "Form steps",
63
+ * item: (n, label, state) =>
64
+ * `Step ${n}: ${label} (${
65
+ * state === "complete" ? "completed" :
66
+ * state === "active" ? "in progress" : "upcoming"
67
+ * })`,
68
+ * }} />
69
+ *
70
+ * <VStepper labels={{
71
+ * nav: "Step history",
72
+ * state: { complete: "Completed step.", active: "Current step.", pending: "Upcoming step." },
73
+ * }} />
74
+ *
75
+ * A11y note (R-Ar.1):
76
+ * Clickable HStepper steps render as real <button> elements.
77
+ * VStepper's per-item title element is host-configurable via
78
+ * `titleAs` so the page heading hierarchy stays consistent.
79
+ */
80
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
81
+ var DEFAULT_H_LABELS = Object.freeze({
82
+ nav: "Étapes du formulaire",
83
+ item: function item(n, label, state) {
84
+ var suffix = state === "complete" ? " (complétée)" : state === "active" ? " (en cours)" : state === "disabled" ? " (verrouillée)" : " (à venir)";
85
+ return "\xC9tape ".concat(n, " : ").concat(label).concat(suffix);
86
+ }
87
+ });
88
+ var DEFAULT_V_LABELS = Object.freeze({
89
+ nav: "Historique des étapes",
90
+ state: Object.freeze({
91
+ complete: "Étape complétée. ",
92
+ active: "Étape en cours. ",
93
+ pending: "Étape à venir. ",
94
+ /* WCAG 1.4.1 — the fourth state was MISSING. VStepper accepts the same rich
95
+ * item shape as HStepper (see normalisedItems below: "so host modules can pass
96
+ * the same array to both steppers"), and HStepper documents
97
+ * `status: "disabled"` for wizard steps locked until the previous one is
98
+ * submitted. So a disabled step could reach VStepper and render an EMPTY
99
+ * sr-only span — its state conveyed by colour alone, which is precisely what
100
+ * the comment on that span forbids. No host had to do anything wrong. */
101
+ disabled: "Étape verrouillée. "
102
+ })
103
+ });
104
+ var dotBaseStyle = {
105
+ width: 24,
106
+ height: 24,
107
+ borderRadius: "50%",
108
+ display: "grid",
109
+ placeItems: "center",
110
+ fontSize: "var(--text-xs)",
111
+ fontWeight: "var(--fw-semibold)",
112
+ flex: "0 0 auto",
113
+ border: "2px solid",
114
+ transition: "background var(--duration-base, 180ms), color var(--duration-base, 180ms), border-color var(--duration-base, 180ms)"
115
+ };
116
+ var stateStyle = function stateStyle(state) {
117
+ if (state === "complete") {
118
+ return {
119
+ background: "var(--accent)",
120
+ borderColor: "var(--accent)",
121
+ color: "var(--accent-fg)"
122
+ };
123
+ }
124
+ if (state === "active") {
125
+ return {
126
+ background: "var(--surface)",
127
+ borderColor: "var(--accent)",
128
+ color: "var(--accent)"
129
+ };
130
+ }
131
+ if (state === "disabled") {
132
+ return {
133
+ background: "var(--bg-subtle)",
134
+ borderColor: "var(--border)",
135
+ color: "var(--fg-subtle)"
136
+ };
137
+ }
138
+ return {
139
+ background: "var(--surface)",
140
+ borderColor: "var(--border-strong)",
141
+ color: "var(--fg-subtle)"
142
+ };
143
+ };
144
+ // Inner content shared between the clickable <button> and the
145
+ // non-interactive <span> renderings of an HStepper step.
146
+ function StepInner(_ref) {
147
+ var index = _ref.index,
148
+ label = _ref.label,
149
+ state = _ref.state;
150
+ return /*#__PURE__*/_jsxs(_Fragment, {
151
+ children: [/*#__PURE__*/_jsx("span", {
152
+ style: _objectSpread(_objectSpread({}, dotBaseStyle), stateStyle(state)),
153
+ children: state === "complete" ? /*#__PURE__*/_jsx(CheckIcon, {
154
+ fontSize: "inherit"
155
+ }) : index + 1
156
+ }), /*#__PURE__*/_jsx("span", {
157
+ style: {
158
+ fontSize: "var(--text-sm)",
159
+ // Was 650 (non-standard, banned by Batch 1 typography tokens).
160
+ // var(--fw-semibold) (600) is the canonical "emphasised" weight.
161
+ fontWeight: state === "active" ? "var(--fw-semibold)" : "var(--fw-medium)",
162
+ color: state === "pending" ? "var(--fg-subtle)" : state === "disabled" ? "var(--fg-muted)" : "var(--fg)",
163
+ whiteSpace: "nowrap"
164
+ },
165
+ children: label
166
+ })]
167
+ });
168
+ }
169
+ var stepBoxSx = {
170
+ display: "flex",
171
+ alignItems: "center",
172
+ gap: 1,
173
+ padding: "var(--s-1) calc(var(--s-1) + 2px)",
174
+ borderRadius: "var(--r-md)",
175
+ // Reset native <button> styling to match the previous Box look.
176
+ background: "transparent",
177
+ border: 0,
178
+ font: "inherit",
179
+ textAlign: "left",
180
+ "&:focus-visible": {
181
+ outline: "2px solid var(--accent)",
182
+ outlineOffset: "var(--pui-outline-offset)"
183
+ }
184
+ };
185
+
186
+ /* Detect whether the `steps` array carries plain labels (legacy)
187
+ * or rich {id, label, status} objects. ReactElements (icons,
188
+ * fragments) and strings are treated as plain labels.
189
+ * Plain boolean predicate (not a type guard): the rich object shape
190
+ * for VStepper also carries title/meta/etc., so narrowing to
191
+ * HStepperRichStep here would hide those fields. */
192
+ function isRichStep(s) {
193
+ return s != null && _typeof(s) === "object" && !Array.isArray(s) && ! /*#__PURE__*/React.isValidElement(s) && ("label" in s || "status" in s);
194
+ }
195
+ function normaliseStatusToState(status) {
196
+ if (status === "current" || status === "active") return "active";
197
+ if (status === "completed" || status === "complete") return "complete";
198
+ if (status === "disabled") return "disabled";
199
+ return "pending";
200
+ }
201
+
202
+ /* Convert rich steps to the legacy { label, state, clickable, key }
203
+ * shape consumed by the rendering loop. */
204
+ function normaliseSteps(steps, current) {
205
+ if (steps.length === 0) return [];
206
+ if (isRichStep(steps[0])) {
207
+ return steps.map(function (s, i) {
208
+ var _rich$id;
209
+ var rich = s;
210
+ var state = normaliseStatusToState(rich.status);
211
+ return {
212
+ key: (_rich$id = rich.id) !== null && _rich$id !== void 0 ? _rich$id : i,
213
+ label: rich.label,
214
+ state: state,
215
+ // Disabled steps are never clickable. Other rich states
216
+ // remain clickable so the host can offer free navigation.
217
+ clickable: state !== "disabled"
218
+ };
219
+ });
220
+ }
221
+ // Legacy: plain labels driven by `current`.
222
+ return steps.map(function (label, i) {
223
+ return {
224
+ key: i,
225
+ label: label,
226
+ state: i < current ? "complete" : i === current ? "active" : "pending",
227
+ clickable: i <= current
228
+ };
229
+ });
230
+ }
231
+ export function HStepper(_ref2) {
232
+ var steps = _ref2.steps,
233
+ _ref2$current = _ref2.current,
234
+ current = _ref2$current === void 0 ? 0 : _ref2$current,
235
+ onJump = _ref2.onJump,
236
+ onStepClick = _ref2.onStepClick,
237
+ ariaLabel = _ref2.ariaLabel,
238
+ labels = _ref2.labels;
239
+ var L = mergeLabels(DEFAULT_H_LABELS, labels);
240
+ var navLabel = ariaLabel || L.nav;
241
+ var jumpHandler = onJump || onStepClick;
242
+ var normalised = normaliseSteps(steps, current);
243
+ return /*#__PURE__*/_jsx("nav", {
244
+ "aria-label": navLabel,
245
+ style: {
246
+ display: "flex",
247
+ alignItems: "center",
248
+ gap: 8,
249
+ padding: "12px 0",
250
+ overflowX: "auto"
251
+ },
252
+ children: normalised.map(function (step, i) {
253
+ var a11yLabel = L.item(i + 1, step.label, step.state);
254
+ return /*#__PURE__*/_jsxs(React.Fragment, {
255
+ children: [step.clickable ? /*#__PURE__*/_jsx(Box, {
256
+ component: "button",
257
+ type: "button",
258
+ "aria-current": step.state === "active" ? "step" : undefined,
259
+ "aria-label": a11yLabel,
260
+ onClick: function onClick() {
261
+ return jumpHandler === null || jumpHandler === void 0 ? void 0 : jumpHandler(i);
262
+ },
263
+ sx: _objectSpread(_objectSpread({}, stepBoxSx), {}, {
264
+ cursor: "pointer"
265
+ }),
266
+ children: /*#__PURE__*/_jsx(StepInner, {
267
+ index: i,
268
+ label: step.label,
269
+ state: step.state
270
+ })
271
+ }) : /*#__PURE__*/_jsx(Box, {
272
+ component: "span",
273
+ "aria-label": a11yLabel,
274
+ "aria-disabled": step.state === "disabled" ? "true" : undefined,
275
+ sx: _objectSpread(_objectSpread({}, stepBoxSx), {}, {
276
+ cursor: "default"
277
+ }),
278
+ children: /*#__PURE__*/_jsx(StepInner, {
279
+ index: i,
280
+ label: step.label,
281
+ state: step.state
282
+ })
283
+ }), i < normalised.length - 1 && /*#__PURE__*/_jsx(Box, {
284
+ "aria-hidden": "true",
285
+ sx: {
286
+ flex: 1,
287
+ minWidth: 24,
288
+ height: 2,
289
+ background: step.state === "complete" ? "var(--accent)" : "var(--border)",
290
+ borderRadius: 1
291
+ }
292
+ })]
293
+ }, step.key);
294
+ })
295
+ });
296
+ }
297
+ /**
298
+ * VStepper - vertical historical / progression stepper.
299
+ *
300
+ * @param items - list of { state|status, title, meta?, timestamp?, actor? }.
301
+ * `timestamp` (date/time) + `actor` (user) render as a
302
+ * muted "timestamp · actor" line under the title; `meta`
303
+ * renders on its own line (free-form, e.g. "En cours").
304
+ * @param titleAs - element used for each step title. Defaults to "h4".
305
+ * Hosts whose outline already used h2/h3 above the
306
+ * stepper should pick the next level (e.g. titleAs="h3"
307
+ * after an h2 ActionBar title). Pass "div"/"span" to
308
+ * opt out of heading semantics entirely.
309
+ * @param labels - i18n overrides; see file header.
310
+ */
311
+ export function VStepper(_ref3) {
312
+ var items = _ref3.items,
313
+ _ref3$titleAs = _ref3.titleAs,
314
+ titleAs = _ref3$titleAs === void 0 ? "h4" : _ref3$titleAs,
315
+ labels = _ref3.labels,
316
+ ariaLabel = _ref3.ariaLabel;
317
+ /*
318
+ * Nested-dictionary merge, both levels through the shared undefined-safe helper
319
+ * (gap G-24, fourth instance after Dropzone.reasons and DataGridLabels.
320
+ * pagination).
321
+ *
322
+ * The previous form spread `...labels` at the top level, so an explicitly-passed
323
+ * `undefined` on `nav` DELETED the default and left the <ol> without an
324
+ * accessible name (R-Ar.5). And the inner `|| {}` guarded the `state` sub-object
325
+ * against being undefined without guarding its VALUES — so
326
+ * `state: { complete: undefined }` emptied the sr-only span below and reduced the
327
+ * step's state to colour alone, defeating the WCAG 1.4.1 rule its own comment
328
+ * invokes.
329
+ *
330
+ * `state` is merged at its OWN level rather than through a recursive deep merge:
331
+ * two explicit levels can be read, a recursive helper hides how deep it goes.
332
+ * Same convention as _dataGridShared.
333
+ */
334
+ var L = labels ? mergeLabels(DEFAULT_V_LABELS, _objectSpread(_objectSpread({}, labels), {}, {
335
+ state: mergeLabels(DEFAULT_V_LABELS.state, labels.state)
336
+ })) : DEFAULT_V_LABELS;
337
+ var navLabel = ariaLabel || L.nav;
338
+
339
+ /* Accept the same rich-step shape HStepper uses, so host modules
340
+ * can pass the same array to both steppers without re-mapping. */
341
+ var normalisedItems = items.map(function (it) {
342
+ if (isRichStep(it) && it.status !== undefined) {
343
+ var _it$title;
344
+ return {
345
+ state: normaliseStatusToState(it.status),
346
+ title: (_it$title = it.title) !== null && _it$title !== void 0 ? _it$title : it.label,
347
+ meta: it.meta,
348
+ timestamp: it.timestamp,
349
+ actor: it.actor
350
+ };
351
+ }
352
+ return it;
353
+ });
354
+ return /*#__PURE__*/_jsx("ol", {
355
+ style: {
356
+ listStyle: "none",
357
+ padding: 0,
358
+ margin: 0
359
+ },
360
+ "aria-label": navLabel,
361
+ children: normalisedItems.map(function (it, i) {
362
+ var _it$state;
363
+ var st = (_it$state = it.state) !== null && _it$state !== void 0 ? _it$state : "pending";
364
+ return /*#__PURE__*/_jsxs("li", {
365
+ "aria-current": st === "active" ? "step" : undefined,
366
+ style: {
367
+ display: "flex",
368
+ gap: 12,
369
+ paddingBottom: i < normalisedItems.length - 1 ? 16 : 0,
370
+ position: "relative"
371
+ },
372
+ children: [/*#__PURE__*/_jsx("span", {
373
+ "aria-hidden": "true",
374
+ style: _objectSpread(_objectSpread({}, dotBaseStyle), stateStyle(st)),
375
+ children: st === "complete" ? /*#__PURE__*/_jsx(CheckIcon, {
376
+ fontSize: "inherit"
377
+ }) : i + 1
378
+ }), /*#__PURE__*/_jsx("span", {
379
+ className: "pui-sr-only",
380
+ children: L.state[st]
381
+ }), /*#__PURE__*/_jsxs("div", {
382
+ style: {
383
+ flex: 1
384
+ },
385
+ children: [/*#__PURE__*/_jsx(Box, {
386
+ component: titleAs,
387
+ sx: {
388
+ margin: 0,
389
+ fontSize: "var(--text-sm)",
390
+ fontWeight: "var(--fw-semibold)",
391
+ color: "var(--fg)",
392
+ lineHeight: "var(--lh-snug)"
393
+ },
394
+ children: it.title
395
+ }), (it.timestamp != null || it.actor != null) && /*#__PURE__*/_jsxs("p", {
396
+ style: {
397
+ margin: "2px 0 0",
398
+ fontSize: "var(--text-xs)",
399
+ color: "var(--fg-subtle)"
400
+ },
401
+ children: [it.timestamp != null ? it.timestamp : null, it.timestamp != null && it.actor != null ? " · " : null, it.actor != null ? /*#__PURE__*/_jsx("span", {
402
+ style: {
403
+ color: "var(--fg-muted)",
404
+ fontWeight: "var(--fw-medium)"
405
+ },
406
+ children: it.actor
407
+ }) : null]
408
+ }), it.meta != null && it.meta !== "" && /*#__PURE__*/_jsx("p", {
409
+ style: {
410
+ margin: "2px 0 0",
411
+ fontSize: "var(--text-xs)",
412
+ color: "var(--fg-subtle)"
413
+ },
414
+ children: it.meta
415
+ })]
416
+ }), i < normalisedItems.length - 1 && /*#__PURE__*/_jsx("span", {
417
+ "aria-hidden": "true",
418
+ style: {
419
+ position: "absolute",
420
+ left: 11,
421
+ top: 26,
422
+ bottom: 0,
423
+ width: 2,
424
+ background: "var(--border)"
425
+ }
426
+ })]
427
+ }, i);
428
+ })
429
+ });
430
+ }
431
+ export default HStepper;
432
+ //# sourceMappingURL=Stepper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stepper.js","names":["React","CheckIcon","Box","mergeLabels","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_H_LABELS","Object","freeze","nav","item","n","label","state","suffix","concat","DEFAULT_V_LABELS","complete","active","pending","disabled","dotBaseStyle","width","height","borderRadius","display","placeItems","fontSize","fontWeight","flex","border","transition","stateStyle","background","borderColor","color","StepInner","_ref","index","children","style","_objectSpread","whiteSpace","stepBoxSx","alignItems","gap","padding","font","textAlign","outline","outlineOffset","isRichStep","s","_typeof","Array","isArray","isValidElement","normaliseStatusToState","status","normaliseSteps","steps","current","length","map","i","_rich$id","rich","key","id","clickable","HStepper","_ref2","_ref2$current","onJump","onStepClick","ariaLabel","labels","L","navLabel","jumpHandler","normalised","overflowX","step","a11yLabel","component","type","undefined","onClick","sx","cursor","minWidth","VStepper","_ref3","items","_ref3$titleAs","titleAs","normalisedItems","it","_it$title","title","meta","timestamp","actor","listStyle","margin","_it$state","st","paddingBottom","position","className","lineHeight","left","top","bottom"],"sources":["../../../../src/lib/v2/components/Stepper.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport CheckIcon from \"@mui/icons-material/Check\";\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 * Stepper - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Stepper\". Required on flows ≥ 3 steps (R-3.4).\r\n *\r\n * Two ways to drive HStepper:\r\n *\r\n * 1. SIMPLE mode — plain labels + `current` index (Charter default):\r\n *\r\n * <HStepper\r\n * steps={[\"Identification\", \"Marchandise\", \"Banque\", \"Validation\"]}\r\n * current={1}\r\n * onJump={i => goTo(i)}\r\n * />\r\n *\r\n * 2. RICH mode — objects carry their own state, including a \"disabled\"\r\n * state for locked future steps (used by wizards where step N is\r\n * unavailable until step N-1 has been submitted):\r\n *\r\n * <HStepper\r\n * steps={[\r\n * { id: \"importateur\", label: \"Importateur\", status: \"completed\" },\r\n * { id: \"donneesTI\", label: \"Données\", status: \"current\" },\r\n * { id: \"marchandises\",label: \"Marchandises\", status: \"disabled\" },\r\n * { id: \"revision\", label: \"Révision\", status: \"pending\" },\r\n * ]}\r\n * onStepClick={i => goTo(i)}\r\n * ariaLabel=\"Étapes de création du titre\"\r\n * />\r\n *\r\n * status values: \"current\" | \"active\" | \"completed\" | \"complete\" |\r\n * \"pending\" | \"disabled\"\r\n * (\"current\"/\"active\" and \"completed\"/\"complete\" are accepted as\r\n * synonyms to ease migration from host modules.)\r\n *\r\n * VStepper — vertical history/progression timeline. Each item may carry\r\n * `timestamp` (date/time of the action) and `actor` (the user who did it);\r\n * they render as a muted \"timestamp · actor\" line under the title. `meta`\r\n * still works for free-form text (e.g. \"En cours\" on the active step):\r\n *\r\n * <VStepper items={[\r\n * { status: \"completed\", title: \"Titre d'importation créé\",\r\n * timestamp: \"27/03/2025 09:48\", actor: \"dsmoimp\" },\r\n * { status: \"completed\", title: \"Soumis à la banque (CITIBANK)\",\r\n * timestamp: \"27/03/2025 10:16\", actor: \"Transit Jebli\" },\r\n * { status: \"active\", title: \"En attente de réponse banque\", meta: \"En cours\" },\r\n * ]} />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <HStepper labels={{\r\n * nav: \"Form steps\",\r\n * item: (n, label, state) =>\r\n * `Step ${n}: ${label} (${\r\n * state === \"complete\" ? \"completed\" :\r\n * state === \"active\" ? \"in progress\" : \"upcoming\"\r\n * })`,\r\n * }} />\r\n *\r\n * <VStepper labels={{\r\n * nav: \"Step history\",\r\n * state: { complete: \"Completed step.\", active: \"Current step.\", pending: \"Upcoming step.\" },\r\n * }} />\r\n *\r\n * A11y note (R-Ar.1):\r\n * Clickable HStepper steps render as real <button> elements.\r\n * VStepper's per-item title element is host-configurable via\r\n * `titleAs` so the page heading hierarchy stays consistent.\r\n */\r\n\r\nexport type StepState = \"complete\" | \"active\" | \"pending\" | \"disabled\";\r\nexport type StepStatus =\r\n | \"current\"\r\n | \"active\"\r\n | \"completed\"\r\n | \"complete\"\r\n | \"pending\"\r\n | \"disabled\";\r\n\r\nexport interface HStepperRichStep {\r\n id?: string | number | undefined;\r\n label?: React.ReactNode | undefined;\r\n status?: StepStatus | undefined;\r\n}\r\n\r\nexport type HStepperStep = React.ReactNode | HStepperRichStep;\r\n\r\ninterface NormalisedStep {\r\n key: React.Key;\r\n label: React.ReactNode;\r\n state: StepState;\r\n clickable: boolean;\r\n}\r\n\r\nconst DEFAULT_H_LABELS = Object.freeze({\r\n nav: \"Étapes du formulaire\",\r\n item: (n: number, label: React.ReactNode, state: StepState): string => {\r\n const suffix =\r\n state === \"complete\" ? \" (complétée)\" :\r\n state === \"active\" ? \" (en cours)\" :\r\n state === \"disabled\" ? \" (verrouillée)\" : \" (à venir)\";\r\n return `Étape ${n} : ${label}${suffix}`;\r\n },\r\n});\r\n\r\nconst DEFAULT_V_LABELS: {\r\n nav: string;\r\n state: Partial<Record<StepState, string>>;\r\n} = Object.freeze({\r\n nav: \"Historique des étapes\",\r\n state: Object.freeze({\r\n complete: \"Étape complétée. \",\r\n active: \"Étape en cours. \",\r\n pending: \"Étape à venir. \",\r\n /* WCAG 1.4.1 — the fourth state was MISSING. VStepper accepts the same rich\r\n * item shape as HStepper (see normalisedItems below: \"so host modules can pass\r\n * the same array to both steppers\"), and HStepper documents\r\n * `status: \"disabled\"` for wizard steps locked until the previous one is\r\n * submitted. So a disabled step could reach VStepper and render an EMPTY\r\n * sr-only span — its state conveyed by colour alone, which is precisely what\r\n * the comment on that span forbids. No host had to do anything wrong. */\r\n disabled: \"Étape verrouillée. \",\r\n }),\r\n});\r\n\r\nconst dotBaseStyle: React.CSSProperties = {\r\n width: 24,\r\n height: 24,\r\n borderRadius: \"50%\",\r\n display: \"grid\",\r\n placeItems: \"center\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n flex: \"0 0 auto\",\r\n border: \"2px solid\",\r\n transition:\r\n \"background var(--duration-base, 180ms), color var(--duration-base, 180ms), border-color var(--duration-base, 180ms)\",\r\n};\r\n\r\nconst stateStyle = (state: StepState): React.CSSProperties => {\r\n if (state === \"complete\") {\r\n return { background: \"var(--accent)\", borderColor: \"var(--accent)\", color: \"var(--accent-fg)\" };\r\n }\r\n if (state === \"active\") {\r\n return { background: \"var(--surface)\", borderColor: \"var(--accent)\", color: \"var(--accent)\" };\r\n }\r\n if (state === \"disabled\") {\r\n return { background: \"var(--bg-subtle)\", borderColor: \"var(--border)\", color: \"var(--fg-subtle)\" };\r\n }\r\n return { background: \"var(--surface)\", borderColor: \"var(--border-strong)\", color: \"var(--fg-subtle)\" };\r\n};\r\n\r\ninterface StepInnerProps {\r\n index: number;\r\n label: React.ReactNode;\r\n state: StepState;\r\n}\r\n\r\n// Inner content shared between the clickable <button> and the\r\n// non-interactive <span> renderings of an HStepper step.\r\nfunction StepInner({ index, label, state }: StepInnerProps) {\r\n return (\r\n <>\r\n <span style={{ ...dotBaseStyle, ...stateStyle(state) }}>\r\n {state === \"complete\" ? <CheckIcon fontSize=\"inherit\" /> : index + 1}\r\n </span>\r\n <span\r\n style={{\r\n fontSize: \"var(--text-sm)\",\r\n // Was 650 (non-standard, banned by Batch 1 typography tokens).\r\n // var(--fw-semibold) (600) is the canonical \"emphasised\" weight.\r\n fontWeight: state === \"active\" ? \"var(--fw-semibold)\" : \"var(--fw-medium)\",\r\n color:\r\n state === \"pending\" ? \"var(--fg-subtle)\" :\r\n state === \"disabled\" ? \"var(--fg-muted)\" : \"var(--fg)\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {label}\r\n </span>\r\n </>\r\n );\r\n}\r\n\r\nconst stepBoxSx = {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 1,\r\n padding: \"var(--s-1) calc(var(--s-1) + 2px)\",\r\n borderRadius: \"var(--r-md)\",\r\n // Reset native <button> styling to match the previous Box look.\r\n background: \"transparent\",\r\n border: 0,\r\n font: \"inherit\",\r\n textAlign: \"left\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n} satisfies SxProps<Theme>;\r\n\r\n/* Detect whether the `steps` array carries plain labels (legacy)\r\n * or rich {id, label, status} objects. ReactElements (icons,\r\n * fragments) and strings are treated as plain labels.\r\n * Plain boolean predicate (not a type guard): the rich object shape\r\n * for VStepper also carries title/meta/etc., so narrowing to\r\n * HStepperRichStep here would hide those fields. */\r\nfunction isRichStep(s: unknown): boolean {\r\n return (\r\n s != null &&\r\n typeof s === \"object\" &&\r\n !Array.isArray(s) &&\r\n !React.isValidElement(s) &&\r\n (\"label\" in s || \"status\" in s)\r\n );\r\n}\r\n\r\nfunction normaliseStatusToState(status: StepStatus | undefined): StepState {\r\n if (status === \"current\" || status === \"active\") return \"active\";\r\n if (status === \"completed\" || status === \"complete\") return \"complete\";\r\n if (status === \"disabled\") return \"disabled\";\r\n return \"pending\";\r\n}\r\n\r\n/* Convert rich steps to the legacy { label, state, clickable, key }\r\n * shape consumed by the rendering loop. */\r\nfunction normaliseSteps(steps: HStepperStep[], current: number): NormalisedStep[] {\r\n if (steps.length === 0) return [];\r\n if (isRichStep(steps[0])) {\r\n return steps.map((s, i): NormalisedStep => {\r\n const rich = s as HStepperRichStep;\r\n const state = normaliseStatusToState(rich.status);\r\n return {\r\n key: rich.id ?? i,\r\n label: rich.label,\r\n state,\r\n // Disabled steps are never clickable. Other rich states\r\n // remain clickable so the host can offer free navigation.\r\n clickable: state !== \"disabled\",\r\n };\r\n });\r\n }\r\n // Legacy: plain labels driven by `current`.\r\n return steps.map((label, i): NormalisedStep => ({\r\n key: i,\r\n label: label as React.ReactNode,\r\n state: i < current ? \"complete\" : i === current ? \"active\" : \"pending\",\r\n clickable: i <= current,\r\n }));\r\n}\r\n\r\nexport interface HStepperLabels {\r\n nav?: string | undefined;\r\n item?: ((n: number, label: React.ReactNode, state: StepState) => string) | undefined;\r\n}\r\n\r\nexport interface HStepperProps {\r\n /**\r\n * Either an array of plain labels (strings/nodes) driven by\r\n * `current`, or an array of `{ id?, label, status }` objects\r\n * where status carries the per-step state.\r\n */\r\n steps: HStepperStep[];\r\n /** Legacy: index of the active step. Ignored when `steps` are rich objects. */\r\n current?: number | undefined;\r\n /** Click handler. Receives the step index. */\r\n onJump?: ((index: number) => void) | undefined;\r\n /** Alias of `onJump` (some host modules used this name). */\r\n onStepClick?: ((index: number) => void) | undefined;\r\n /** Shortcut for `labels.nav`. */\r\n ariaLabel?: string | undefined;\r\n /** Full i18n override; see file header. */\r\n labels?: HStepperLabels | undefined;\r\n}\r\n\r\nexport function HStepper({\r\n steps,\r\n current = 0,\r\n onJump,\r\n onStepClick,\r\n ariaLabel,\r\n labels,\r\n}: HStepperProps) {\r\n const L = mergeLabels(DEFAULT_H_LABELS, labels);\r\n const navLabel = ariaLabel || L.nav;\r\n const jumpHandler = onJump || onStepClick;\r\n\r\n const normalised = normaliseSteps(steps, current);\r\n\r\n return (\r\n <nav\r\n aria-label={navLabel}\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 8,\r\n padding: \"12px 0\",\r\n overflowX: \"auto\",\r\n }}\r\n >\r\n {normalised.map((step, i) => {\r\n const a11yLabel = L.item(i + 1, step.label, step.state);\r\n return (\r\n <React.Fragment key={step.key}>\r\n {step.clickable ? (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n aria-current={step.state === \"active\" ? \"step\" : undefined}\r\n aria-label={a11yLabel}\r\n onClick={() => jumpHandler?.(i)}\r\n sx={{ ...stepBoxSx, cursor: \"pointer\" }}\r\n >\r\n <StepInner index={i} label={step.label} state={step.state} />\r\n </Box>\r\n ) : (\r\n <Box\r\n component=\"span\"\r\n aria-label={a11yLabel}\r\n aria-disabled={step.state === \"disabled\" ? \"true\" : undefined}\r\n sx={{ ...stepBoxSx, cursor: \"default\" }}\r\n >\r\n <StepInner index={i} label={step.label} state={step.state} />\r\n </Box>\r\n )}\r\n {i < normalised.length - 1 && (\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n flex: 1,\r\n minWidth: 24,\r\n height: 2,\r\n background: step.state === \"complete\" ? \"var(--accent)\" : \"var(--border)\",\r\n borderRadius: 1,\r\n }}\r\n />\r\n )}\r\n </React.Fragment>\r\n );\r\n })}\r\n </nav>\r\n );\r\n}\r\n\r\nexport interface VStepperItem {\r\n state?: StepState | undefined;\r\n status?: StepStatus | undefined;\r\n title?: React.ReactNode | undefined;\r\n label?: React.ReactNode | undefined;\r\n meta?: React.ReactNode | undefined;\r\n timestamp?: React.ReactNode | undefined;\r\n actor?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface VStepperLabels {\r\n nav?: string | undefined;\r\n /**\r\n * SR-only sentence per step state. Widened from the three visible states to the\r\n * full `StepState` union: `disabled` was unreachable for hosts even though\r\n * VStepper accepts disabled items, so its text alternative could not be\r\n * translated (WCAG 1.4.1 + R-Ar.3).\r\n */\r\n state?: Partial<Record<StepState, string>> | undefined;\r\n}\r\n\r\nexport interface VStepperProps {\r\n items: VStepperItem[];\r\n titleAs?: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"div\" | \"span\" | \"p\" | undefined;\r\n ariaLabel?: string | undefined;\r\n labels?: VStepperLabels | undefined;\r\n}\r\n\r\n/**\r\n * VStepper - vertical historical / progression stepper.\r\n *\r\n * @param items - list of { state|status, title, meta?, timestamp?, actor? }.\r\n * `timestamp` (date/time) + `actor` (user) render as a\r\n * muted \"timestamp · actor\" line under the title; `meta`\r\n * renders on its own line (free-form, e.g. \"En cours\").\r\n * @param titleAs - element used for each step title. Defaults to \"h4\".\r\n * Hosts whose outline already used h2/h3 above the\r\n * stepper should pick the next level (e.g. titleAs=\"h3\"\r\n * after an h2 ActionBar title). Pass \"div\"/\"span\" to\r\n * opt out of heading semantics entirely.\r\n * @param labels - i18n overrides; see file header.\r\n */\r\nexport function VStepper({ items, titleAs = \"h4\", labels, ariaLabel }: VStepperProps) {\r\n /*\r\n * Nested-dictionary merge, both levels through the shared undefined-safe helper\r\n * (gap G-24, fourth instance after Dropzone.reasons and DataGridLabels.\r\n * pagination).\r\n *\r\n * The previous form spread `...labels` at the top level, so an explicitly-passed\r\n * `undefined` on `nav` DELETED the default and left the <ol> without an\r\n * accessible name (R-Ar.5). And the inner `|| {}` guarded the `state` sub-object\r\n * against being undefined without guarding its VALUES — so\r\n * `state: { complete: undefined }` emptied the sr-only span below and reduced the\r\n * step's state to colour alone, defeating the WCAG 1.4.1 rule its own comment\r\n * invokes.\r\n *\r\n * `state` is merged at its OWN level rather than through a recursive deep merge:\r\n * two explicit levels can be read, a recursive helper hides how deep it goes.\r\n * Same convention as _dataGridShared.\r\n */\r\n const L = labels\r\n ? mergeLabels(DEFAULT_V_LABELS, {\r\n ...labels,\r\n state: mergeLabels(DEFAULT_V_LABELS.state, labels.state),\r\n })\r\n : DEFAULT_V_LABELS;\r\n const navLabel = ariaLabel || L.nav;\r\n\r\n /* Accept the same rich-step shape HStepper uses, so host modules\r\n * can pass the same array to both steppers without re-mapping. */\r\n const normalisedItems = items.map((it) => {\r\n if (isRichStep(it) && it.status !== undefined) {\r\n return {\r\n state: normaliseStatusToState(it.status),\r\n title: it.title ?? it.label,\r\n meta: it.meta,\r\n timestamp: it.timestamp,\r\n actor: it.actor,\r\n };\r\n }\r\n return it;\r\n });\r\n\r\n return (\r\n <ol style={{ listStyle: \"none\", padding: 0, margin: 0 }} aria-label={navLabel}>\r\n {normalisedItems.map((it, i) => {\r\n const st: StepState = it.state ?? \"pending\";\r\n return (\r\n <li\r\n key={i}\r\n aria-current={st === \"active\" ? \"step\" : undefined}\r\n style={{\r\n display: \"flex\",\r\n gap: 12,\r\n paddingBottom: i < normalisedItems.length - 1 ? 16 : 0,\r\n position: \"relative\",\r\n }}\r\n >\r\n <span aria-hidden=\"true\" style={{ ...dotBaseStyle, ...stateStyle(st) }}>\r\n {st === \"complete\" ? <CheckIcon fontSize=\"inherit\" /> : i + 1}\r\n </span>\r\n {/* WCAG 1.4.1 - convey state in text, not only colour. */}\r\n <span className=\"pui-sr-only\">{L.state[st]}</span>\r\n <div style={{ flex: 1 }}>\r\n <Box\r\n component={titleAs}\r\n sx={{\r\n margin: 0,\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n }}\r\n >\r\n {it.title}\r\n </Box>\r\n {(it.timestamp != null || it.actor != null) && (\r\n <p\r\n style={{\r\n margin: \"2px 0 0\",\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n }}\r\n >\r\n {it.timestamp != null ? it.timestamp : null}\r\n {it.timestamp != null && it.actor != null ? \" · \" : null}\r\n {it.actor != null ? (\r\n <span style={{ color: \"var(--fg-muted)\", fontWeight: \"var(--fw-medium)\" }}>\r\n {it.actor}\r\n </span>\r\n ) : null}\r\n </p>\r\n )}\r\n {it.meta != null && it.meta !== \"\" && (\r\n <p\r\n style={{\r\n margin: \"2px 0 0\",\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n }}\r\n >\r\n {it.meta}\r\n </p>\r\n )}\r\n </div>\r\n {i < normalisedItems.length - 1 && (\r\n <span\r\n aria-hidden=\"true\"\r\n style={{\r\n position: \"absolute\",\r\n left: 11, top: 26, bottom: 0,\r\n width: 2,\r\n background: \"var(--border)\",\r\n }}\r\n />\r\n )}\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n );\r\n}\r\n\r\nexport default HStepper;\r\n"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,SAAS,MAAM,2BAA2B;AACjD,OAAOC,GAAG,MAAM,mBAAmB;AAEnC,SAASC,WAAW,QAAQ,sBAAsB;;AAElD;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;AAnEA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AA6FA,IAAMC,gBAAgB,GAAGC,MAAM,CAACC,MAAM,CAAC;EACrCC,GAAG,EAAE,sBAAsB;EAC3BC,IAAI,EAAE,SAAAA,KAACC,CAAS,EAAEC,KAAsB,EAAEC,KAAgB,EAAa;IACrE,IAAMC,MAAM,GACVD,KAAK,KAAK,UAAU,GAAG,cAAc,GACrCA,KAAK,KAAK,QAAQ,GAAK,aAAa,GACpCA,KAAK,KAAK,UAAU,GAAG,gBAAgB,GAAG,YAAY;IACxD,mBAAAE,MAAA,CAAgBJ,CAAC,SAAAI,MAAA,CAAMH,KAAK,EAAAG,MAAA,CAAGD,MAAM;EACvC;AACF,CAAC,CAAC;AAEF,IAAME,gBAGL,GAAGT,MAAM,CAACC,MAAM,CAAC;EAChBC,GAAG,EAAE,uBAAuB;EAC5BI,KAAK,EAAEN,MAAM,CAACC,MAAM,CAAC;IACnBS,QAAQ,EAAE,mBAAmB;IAC7BC,MAAM,EAAI,kBAAkB;IAC5BC,OAAO,EAAG,iBAAiB;IAC3B;AACJ;AACA;AACA;AACA;AACA;AACA;IACIC,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC,CAAC;AAEF,IAAMC,YAAiC,GAAG;EACxCC,KAAK,EAAE,EAAE;EACTC,MAAM,EAAE,EAAE;EACVC,YAAY,EAAE,KAAK;EACnBC,OAAO,EAAE,MAAM;EACfC,UAAU,EAAE,QAAQ;EACpBC,QAAQ,EAAE,gBAAgB;EAC1BC,UAAU,EAAE,oBAAoB;EAChCC,IAAI,EAAE,UAAU;EAChBC,MAAM,EAAE,WAAW;EACnBC,UAAU,EACR;AACJ,CAAC;AAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAInB,KAAgB,EAA0B;EAC5D,IAAIA,KAAK,KAAK,UAAU,EAAE;IACxB,OAAO;MAAEoB,UAAU,EAAE,eAAe;MAAEC,WAAW,EAAE,eAAe;MAAEC,KAAK,EAAE;IAAmB,CAAC;EACjG;EACA,IAAItB,KAAK,KAAK,QAAQ,EAAE;IACtB,OAAO;MAAEoB,UAAU,EAAE,gBAAgB;MAAEC,WAAW,EAAE,eAAe;MAAEC,KAAK,EAAE;IAAgB,CAAC;EAC/F;EACA,IAAItB,KAAK,KAAK,UAAU,EAAE;IACxB,OAAO;MAAEoB,UAAU,EAAE,kBAAkB;MAAEC,WAAW,EAAE,eAAe;MAAEC,KAAK,EAAE;IAAmB,CAAC;EACpG;EACA,OAAO;IAAEF,UAAU,EAAE,gBAAgB;IAAEC,WAAW,EAAE,sBAAsB;IAAEC,KAAK,EAAE;EAAmB,CAAC;AACzG,CAAC;AAQD;AACA;AACA,SAASC,SAASA,CAAAC,IAAA,EAA0C;EAAA,IAAvCC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAE1B,KAAK,GAAAyB,IAAA,CAALzB,KAAK;IAAEC,KAAK,GAAAwB,IAAA,CAALxB,KAAK;EACtC,oBACER,KAAA,CAAAF,SAAA;IAAAoC,QAAA,gBACEtC,IAAA;MAAMuC,KAAK,EAAAC,aAAA,CAAAA,aAAA,KAAOpB,YAAY,GAAKW,UAAU,CAACnB,KAAK,CAAC,CAAG;MAAA0B,QAAA,EACpD1B,KAAK,KAAK,UAAU,gBAAGZ,IAAA,CAACJ,SAAS;QAAC8B,QAAQ,EAAC;MAAS,CAAE,CAAC,GAAGW,KAAK,GAAG;IAAC,CAChE,CAAC,eACPrC,IAAA;MACEuC,KAAK,EAAE;QACLb,QAAQ,EAAE,gBAAgB;QAC1B;QACA;QACAC,UAAU,EAAEf,KAAK,KAAK,QAAQ,GAAG,oBAAoB,GAAG,kBAAkB;QAC1EsB,KAAK,EACHtB,KAAK,KAAK,SAAS,GAAI,kBAAkB,GACzCA,KAAK,KAAK,UAAU,GAAG,iBAAiB,GAAI,WAAW;QACzD6B,UAAU,EAAE;MACd,CAAE;MAAAH,QAAA,EAED3B;IAAK,CACF,CAAC;EAAA,CACP,CAAC;AAEP;AAEA,IAAM+B,SAAS,GAAG;EAChBlB,OAAO,EAAE,MAAM;EACfmB,UAAU,EAAE,QAAQ;EACpBC,GAAG,EAAE,CAAC;EACNC,OAAO,EAAE,mCAAmC;EAC5CtB,YAAY,EAAE,aAAa;EAC3B;EACAS,UAAU,EAAE,aAAa;EACzBH,MAAM,EAAE,CAAC;EACTiB,IAAI,EAAE,SAAS;EACfC,SAAS,EAAE,MAAM;EACjB,iBAAiB,EAAE;IACjBC,OAAO,EAAE,yBAAyB;IAClCC,aAAa,EAAE;EACjB;AACF,CAA0B;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAACC,CAAU,EAAW;EACvC,OACEA,CAAC,IAAI,IAAI,IACTC,OAAA,CAAOD,CAAC,MAAK,QAAQ,IACrB,CAACE,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,IACjB,eAACxD,KAAK,CAAC4D,cAAc,CAACJ,CAAC,CAAC,KACvB,OAAO,IAAIA,CAAC,IAAI,QAAQ,IAAIA,CAAC,CAAC;AAEnC;AAEA,SAASK,sBAAsBA,CAACC,MAA8B,EAAa;EACzE,IAAIA,MAAM,KAAK,SAAS,IAAMA,MAAM,KAAK,QAAQ,EAAK,OAAO,QAAQ;EACrE,IAAIA,MAAM,KAAK,WAAW,IAAIA,MAAM,KAAK,UAAU,EAAG,OAAO,UAAU;EACvE,IAAIA,MAAM,KAAK,UAAU,EAAE,OAAO,UAAU;EAC5C,OAAO,SAAS;AAClB;;AAEA;AACA;AACA,SAASC,cAAcA,CAACC,KAAqB,EAAEC,OAAe,EAAoB;EAChF,IAAID,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;EACjC,IAAIX,UAAU,CAACS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;IACxB,OAAOA,KAAK,CAACG,GAAG,CAAC,UAACX,CAAC,EAAEY,CAAC,EAAqB;MAAA,IAAAC,QAAA;MACzC,IAAMC,IAAI,GAAGd,CAAqB;MAClC,IAAMvC,KAAK,GAAG4C,sBAAsB,CAACS,IAAI,CAACR,MAAM,CAAC;MACjD,OAAO;QACLS,GAAG,GAAAF,QAAA,GAAQC,IAAI,CAACE,EAAE,cAAAH,QAAA,cAAAA,QAAA,GAAID,CAAC;QACvBpD,KAAK,EAAMsD,IAAI,CAACtD,KAAK;QACrBC,KAAK,EAALA,KAAK;QACL;QACA;QACAwD,SAAS,EAAExD,KAAK,KAAK;MACvB,CAAC;IACH,CAAC,CAAC;EACJ;EACA;EACA,OAAO+C,KAAK,CAACG,GAAG,CAAC,UAACnD,KAAK,EAAEoD,CAAC;IAAA,OAAsB;MAC9CG,GAAG,EAAQH,CAAC;MACZpD,KAAK,EAAMA,KAAwB;MACnCC,KAAK,EAAMmD,CAAC,GAAGH,OAAO,GAAG,UAAU,GAAGG,CAAC,KAAKH,OAAO,GAAG,QAAQ,GAAG,SAAS;MAC1EQ,SAAS,EAAEL,CAAC,IAAIH;IAClB,CAAC;EAAA,CAAC,CAAC;AACL;AA0BA,OAAO,SAASS,QAAQA,CAAAC,KAAA,EAON;EAAA,IANhBX,KAAK,GAAAW,KAAA,CAALX,KAAK;IAAAY,aAAA,GAAAD,KAAA,CACLV,OAAO;IAAPA,OAAO,GAAAW,aAAA,cAAG,CAAC,GAAAA,aAAA;IACXC,MAAM,GAAAF,KAAA,CAANE,MAAM;IACNC,WAAW,GAAAH,KAAA,CAAXG,WAAW;IACXC,SAAS,GAAAJ,KAAA,CAATI,SAAS;IACTC,MAAM,GAAAL,KAAA,CAANK,MAAM;EAEN,IAAMC,CAAC,GAAG9E,WAAW,CAACO,gBAAgB,EAAEsE,MAAM,CAAC;EAC/C,IAAME,QAAQ,GAAGH,SAAS,IAAIE,CAAC,CAACpE,GAAG;EACnC,IAAMsE,WAAW,GAAGN,MAAM,IAAIC,WAAW;EAEzC,IAAMM,UAAU,GAAGrB,cAAc,CAACC,KAAK,EAAEC,OAAO,CAAC;EAEjD,oBACE5D,IAAA;IACE,cAAY6E,QAAS;IACrBtC,KAAK,EAAE;MACLf,OAAO,EAAE,MAAM;MACfmB,UAAU,EAAE,QAAQ;MACpBC,GAAG,EAAE,CAAC;MACNC,OAAO,EAAE,QAAQ;MACjBmC,SAAS,EAAE;IACb,CAAE;IAAA1C,QAAA,EAEDyC,UAAU,CAACjB,GAAG,CAAC,UAACmB,IAAI,EAAElB,CAAC,EAAK;MAC3B,IAAMmB,SAAS,GAAGN,CAAC,CAACnE,IAAI,CAACsD,CAAC,GAAG,CAAC,EAAEkB,IAAI,CAACtE,KAAK,EAAEsE,IAAI,CAACrE,KAAK,CAAC;MACvD,oBACER,KAAA,CAACT,KAAK,CAACM,QAAQ;QAAAqC,QAAA,GACZ2C,IAAI,CAACb,SAAS,gBACbpE,IAAA,CAACH,GAAG;UACFsF,SAAS,EAAC,QAAQ;UAClBC,IAAI,EAAC,QAAQ;UACb,gBAAcH,IAAI,CAACrE,KAAK,KAAK,QAAQ,GAAG,MAAM,GAAGyE,SAAU;UAC3D,cAAYH,SAAU;UACtBI,OAAO,EAAE,SAAAA,QAAA;YAAA,OAAMR,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAGf,CAAC,CAAC;UAAA,CAAC;UAChCwB,EAAE,EAAA/C,aAAA,CAAAA,aAAA,KAAOE,SAAS;YAAE8C,MAAM,EAAE;UAAS,EAAG;UAAAlD,QAAA,eAExCtC,IAAA,CAACmC,SAAS;YAACE,KAAK,EAAE0B,CAAE;YAACpD,KAAK,EAAEsE,IAAI,CAACtE,KAAM;YAACC,KAAK,EAAEqE,IAAI,CAACrE;UAAM,CAAE;QAAC,CAC1D,CAAC,gBAENZ,IAAA,CAACH,GAAG;UACFsF,SAAS,EAAC,MAAM;UAChB,cAAYD,SAAU;UACtB,iBAAeD,IAAI,CAACrE,KAAK,KAAK,UAAU,GAAG,MAAM,GAAGyE,SAAU;UAC9DE,EAAE,EAAA/C,aAAA,CAAAA,aAAA,KAAOE,SAAS;YAAE8C,MAAM,EAAE;UAAS,EAAG;UAAAlD,QAAA,eAExCtC,IAAA,CAACmC,SAAS;YAACE,KAAK,EAAE0B,CAAE;YAACpD,KAAK,EAAEsE,IAAI,CAACtE,KAAM;YAACC,KAAK,EAAEqE,IAAI,CAACrE;UAAM,CAAE;QAAC,CAC1D,CACN,EACAmD,CAAC,GAAGgB,UAAU,CAAClB,MAAM,GAAG,CAAC,iBACxB7D,IAAA,CAACH,GAAG;UACF,eAAY,MAAM;UAClB0F,EAAE,EAAE;YACF3D,IAAI,EAAE,CAAC;YACP6D,QAAQ,EAAE,EAAE;YACZnE,MAAM,EAAE,CAAC;YACTU,UAAU,EAAEiD,IAAI,CAACrE,KAAK,KAAK,UAAU,GAAG,eAAe,GAAG,eAAe;YACzEW,YAAY,EAAE;UAChB;QAAE,CACH,CACF;MAAA,GAjCkB0D,IAAI,CAACf,GAkCV,CAAC;IAErB,CAAC;EAAC,CACC,CAAC;AAEV;AA8BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASwB,QAAQA,CAAAC,KAAA,EAA8D;EAAA,IAA3DC,KAAK,GAAAD,KAAA,CAALC,KAAK;IAAAC,aAAA,GAAAF,KAAA,CAAEG,OAAO;IAAPA,OAAO,GAAAD,aAAA,cAAG,IAAI,GAAAA,aAAA;IAAElB,MAAM,GAAAgB,KAAA,CAANhB,MAAM;IAAED,SAAS,GAAAiB,KAAA,CAATjB,SAAS;EACjE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAME,CAAC,GAAGD,MAAM,GACZ7E,WAAW,CAACiB,gBAAgB,EAAAyB,aAAA,CAAAA,aAAA,KACvBmC,MAAM;IACT/D,KAAK,EAAEd,WAAW,CAACiB,gBAAgB,CAACH,KAAK,EAAE+D,MAAM,CAAC/D,KAAK;EAAC,EACzD,CAAC,GACFG,gBAAgB;EACpB,IAAM8D,QAAQ,GAAGH,SAAS,IAAIE,CAAC,CAACpE,GAAG;;EAEnC;AACF;EACE,IAAMuF,eAAe,GAAGH,KAAK,CAAC9B,GAAG,CAAC,UAACkC,EAAE,EAAK;IACxC,IAAI9C,UAAU,CAAC8C,EAAE,CAAC,IAAIA,EAAE,CAACvC,MAAM,KAAK4B,SAAS,EAAE;MAAA,IAAAY,SAAA;MAC7C,OAAO;QACLrF,KAAK,EAAE4C,sBAAsB,CAACwC,EAAE,CAACvC,MAAM,CAAC;QACxCyC,KAAK,GAAAD,SAAA,GAAED,EAAE,CAACE,KAAK,cAAAD,SAAA,cAAAA,SAAA,GAAID,EAAE,CAACrF,KAAK;QAC3BwF,IAAI,EAAGH,EAAE,CAACG,IAAI;QACdC,SAAS,EAAEJ,EAAE,CAACI,SAAS;QACvBC,KAAK,EAAEL,EAAE,CAACK;MACZ,CAAC;IACH;IACA,OAAOL,EAAE;EACX,CAAC,CAAC;EAEF,oBACEhG,IAAA;IAAIuC,KAAK,EAAE;MAAE+D,SAAS,EAAE,MAAM;MAAEzD,OAAO,EAAE,CAAC;MAAE0D,MAAM,EAAE;IAAE,CAAE;IAAC,cAAY1B,QAAS;IAAAvC,QAAA,EAC3EyD,eAAe,CAACjC,GAAG,CAAC,UAACkC,EAAE,EAAEjC,CAAC,EAAK;MAAA,IAAAyC,SAAA;MAC9B,IAAMC,EAAa,IAAAD,SAAA,GAAGR,EAAE,CAACpF,KAAK,cAAA4F,SAAA,cAAAA,SAAA,GAAI,SAAS;MAC3C,oBACEpG,KAAA;QAEE,gBAAcqG,EAAE,KAAK,QAAQ,GAAG,MAAM,GAAGpB,SAAU;QACnD9C,KAAK,EAAE;UACLf,OAAO,EAAE,MAAM;UACfoB,GAAG,EAAE,EAAE;UACP8D,aAAa,EAAE3C,CAAC,GAAGgC,eAAe,CAAClC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;UACtD8C,QAAQ,EAAE;QACZ,CAAE;QAAArE,QAAA,gBAEFtC,IAAA;UAAM,eAAY,MAAM;UAACuC,KAAK,EAAAC,aAAA,CAAAA,aAAA,KAAOpB,YAAY,GAAKW,UAAU,CAAC0E,EAAE,CAAC,CAAG;UAAAnE,QAAA,EACpEmE,EAAE,KAAK,UAAU,gBAAGzG,IAAA,CAACJ,SAAS;YAAC8B,QAAQ,EAAC;UAAS,CAAE,CAAC,GAAGqC,CAAC,GAAG;QAAC,CACzD,CAAC,eAEP/D,IAAA;UAAM4G,SAAS,EAAC,aAAa;UAAAtE,QAAA,EAAEsC,CAAC,CAAChE,KAAK,CAAC6F,EAAE;QAAC,CAAO,CAAC,eAClDrG,KAAA;UAAKmC,KAAK,EAAE;YAAEX,IAAI,EAAE;UAAE,CAAE;UAAAU,QAAA,gBACtBtC,IAAA,CAACH,GAAG;YACFsF,SAAS,EAAEW,OAAQ;YACnBP,EAAE,EAAE;cACFgB,MAAM,EAAE,CAAC;cACT7E,QAAQ,EAAE,gBAAgB;cAC1BC,UAAU,EAAE,oBAAoB;cAChCO,KAAK,EAAE,WAAW;cAClB2E,UAAU,EAAE;YACd,CAAE;YAAAvE,QAAA,EAED0D,EAAE,CAACE;UAAK,CACN,CAAC,EACL,CAACF,EAAE,CAACI,SAAS,IAAI,IAAI,IAAIJ,EAAE,CAACK,KAAK,IAAI,IAAI,kBACxCjG,KAAA;YACEmC,KAAK,EAAE;cACLgE,MAAM,EAAE,SAAS;cACjB7E,QAAQ,EAAE,gBAAgB;cAC1BQ,KAAK,EAAE;YACT,CAAE;YAAAI,QAAA,GAED0D,EAAE,CAACI,SAAS,IAAI,IAAI,GAAGJ,EAAE,CAACI,SAAS,GAAG,IAAI,EAC1CJ,EAAE,CAACI,SAAS,IAAI,IAAI,IAAIJ,EAAE,CAACK,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,EACvDL,EAAE,CAACK,KAAK,IAAI,IAAI,gBACfrG,IAAA;cAAMuC,KAAK,EAAE;gBAAEL,KAAK,EAAE,iBAAiB;gBAAEP,UAAU,EAAE;cAAmB,CAAE;cAAAW,QAAA,EACvE0D,EAAE,CAACK;YAAK,CACL,CAAC,GACL,IAAI;UAAA,CACP,CACJ,EACAL,EAAE,CAACG,IAAI,IAAI,IAAI,IAAIH,EAAE,CAACG,IAAI,KAAK,EAAE,iBAChCnG,IAAA;YACEuC,KAAK,EAAE;cACLgE,MAAM,EAAE,SAAS;cACjB7E,QAAQ,EAAE,gBAAgB;cAC1BQ,KAAK,EAAE;YACT,CAAE;YAAAI,QAAA,EAED0D,EAAE,CAACG;UAAI,CACP,CACJ;QAAA,CACE,CAAC,EACLpC,CAAC,GAAGgC,eAAe,CAAClC,MAAM,GAAG,CAAC,iBAC7B7D,IAAA;UACE,eAAY,MAAM;UAClBuC,KAAK,EAAE;YACLoE,QAAQ,EAAE,UAAU;YACpBG,IAAI,EAAE,EAAE;YAAEC,GAAG,EAAE,EAAE;YAAEC,MAAM,EAAE,CAAC;YAC5B3F,KAAK,EAAE,CAAC;YACRW,UAAU,EAAE;UACd;QAAE,CACH,CACF;MAAA,GAlEI+B,CAmEH,CAAC;IAET,CAAC;EAAC,CACA,CAAC;AAET;AAEA,eAAeM,QAAQ","ignoreList":[]}