@portnet/ui 6.0.2 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (980) hide show
  1. package/CHANGELOG.md +652 -0
  2. package/dist/esm/index.js +72 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
  5. package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
  7. package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
  9. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
  11. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FieldError.test.js +71 -38
  13. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  14. package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
  15. package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/FieldWidth.test.js +11 -11
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  24. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
  25. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +118 -199
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
  29. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  30. package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
  31. package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
  33. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  34. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
  35. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  36. package/dist/esm/v2/__tests__/apiError.test.js +50 -69
  37. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
  38. package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
  39. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
  40. package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
  41. package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
  42. package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
  43. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
  44. package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
  45. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
  46. package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
  47. package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
  48. package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
  49. package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
  50. package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
  51. package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
  52. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
  53. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  54. package/dist/esm/v2/__tests__/labels-merge.test.js +17 -21
  55. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  56. package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
  57. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
  58. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
  59. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  60. package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
  61. package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
  62. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
  63. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  64. package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
  65. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
  66. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
  67. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  68. package/dist/esm/v2/components/Accordion.js +48 -70
  69. package/dist/esm/v2/components/Accordion.js.map +1 -1
  70. package/dist/esm/v2/components/ActionStrip.js +31 -43
  71. package/dist/esm/v2/components/ActionStrip.js.map +1 -1
  72. package/dist/esm/v2/components/Banner.js +25 -22
  73. package/dist/esm/v2/components/Banner.js.map +1 -1
  74. package/dist/esm/v2/components/Busy.js +14 -19
  75. package/dist/esm/v2/components/Busy.js.map +1 -1
  76. package/dist/esm/v2/components/Button.js +34 -45
  77. package/dist/esm/v2/components/Button.js.map +1 -1
  78. package/dist/esm/v2/components/CategoryTag.js +44 -27
  79. package/dist/esm/v2/components/CategoryTag.js.map +1 -1
  80. package/dist/esm/v2/components/Checkbox.js +32 -38
  81. package/dist/esm/v2/components/Checkbox.js.map +1 -1
  82. package/dist/esm/v2/components/Chip.js +23 -36
  83. package/dist/esm/v2/components/Chip.js.map +1 -1
  84. package/dist/esm/v2/components/Combobox.js +112 -136
  85. package/dist/esm/v2/components/Combobox.js.map +1 -1
  86. package/dist/esm/v2/components/CommandPalette.js +113 -198
  87. package/dist/esm/v2/components/CommandPalette.js.map +1 -1
  88. package/dist/esm/v2/components/ConfirmDialog.js +36 -45
  89. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
  90. package/dist/esm/v2/components/DatePicker.js +78 -81
  91. package/dist/esm/v2/components/DatePicker.js.map +1 -1
  92. package/dist/esm/v2/components/DateRangePicker.js +63 -74
  93. package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
  94. package/dist/esm/v2/components/DateTimePicker.js +81 -86
  95. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  96. package/dist/esm/v2/components/Drawer.js +71 -65
  97. package/dist/esm/v2/components/Drawer.js.map +1 -1
  98. package/dist/esm/v2/components/Dropzone.js +130 -177
  99. package/dist/esm/v2/components/Dropzone.js.map +1 -1
  100. package/dist/esm/v2/components/EmptyState.js +9 -9
  101. package/dist/esm/v2/components/EmptyState.js.map +1 -1
  102. package/dist/esm/v2/components/FavoriteToggle.js +24 -33
  103. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
  104. package/dist/esm/v2/components/Field.js +155 -59
  105. package/dist/esm/v2/components/Field.js.map +1 -1
  106. package/dist/esm/v2/components/FieldError.js +9 -13
  107. package/dist/esm/v2/components/FieldError.js.map +1 -1
  108. package/dist/esm/v2/components/FieldHelp.js +28 -49
  109. package/dist/esm/v2/components/FieldHelp.js.map +1 -1
  110. package/dist/esm/v2/components/FileCard.js +14 -19
  111. package/dist/esm/v2/components/FileCard.js.map +1 -1
  112. package/dist/esm/v2/components/FilterTab.js +22 -31
  113. package/dist/esm/v2/components/FilterTab.js.map +1 -1
  114. package/dist/esm/v2/components/ForbiddenPage.js +28 -8
  115. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
  116. package/dist/esm/v2/components/FormGrid.js +48 -54
  117. package/dist/esm/v2/components/FormGrid.js.map +1 -1
  118. package/dist/esm/v2/components/FormikDisplay.js +98 -24
  119. package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
  120. package/dist/esm/v2/components/Input.js +75 -34
  121. package/dist/esm/v2/components/Input.js.map +1 -1
  122. package/dist/esm/v2/components/KPICard.js +42 -51
  123. package/dist/esm/v2/components/KPICard.js.map +1 -1
  124. package/dist/esm/v2/components/KPIStrip.js +9 -15
  125. package/dist/esm/v2/components/KPIStrip.js.map +1 -1
  126. package/dist/esm/v2/components/KV.js +16 -23
  127. package/dist/esm/v2/components/KV.js.map +1 -1
  128. package/dist/esm/v2/components/KVGrid.js +15 -23
  129. package/dist/esm/v2/components/KVGrid.js.map +1 -1
  130. package/dist/esm/v2/components/Layout.js +81 -117
  131. package/dist/esm/v2/components/Layout.js.map +1 -1
  132. package/dist/esm/v2/components/MobileRowCard.js +64 -75
  133. package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
  134. package/dist/esm/v2/components/Modal.js +44 -53
  135. package/dist/esm/v2/components/Modal.js.map +1 -1
  136. package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
  137. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
  138. package/dist/esm/v2/components/NotFoundPage.js +28 -9
  139. package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
  140. package/dist/esm/v2/components/NumberInput.js +77 -107
  141. package/dist/esm/v2/components/NumberInput.js.map +1 -1
  142. package/dist/esm/v2/components/OverflowMenu.js +24 -42
  143. package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
  144. package/dist/esm/v2/components/PdfViewer.js +24 -33
  145. package/dist/esm/v2/components/PdfViewer.js.map +1 -1
  146. package/dist/esm/v2/components/ProgressBar.js +28 -36
  147. package/dist/esm/v2/components/ProgressBar.js.map +1 -1
  148. package/dist/esm/v2/components/Radio.js +49 -57
  149. package/dist/esm/v2/components/Radio.js.map +1 -1
  150. package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
  151. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
  152. package/dist/esm/v2/components/SectionHeader.js +24 -31
  153. package/dist/esm/v2/components/SectionHeader.js.map +1 -1
  154. package/dist/esm/v2/components/Segmented.js +59 -84
  155. package/dist/esm/v2/components/Segmented.js.map +1 -1
  156. package/dist/esm/v2/components/Select.js +100 -138
  157. package/dist/esm/v2/components/Select.js.map +1 -1
  158. package/dist/esm/v2/components/ServerErrorPage.js +27 -10
  159. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
  160. package/dist/esm/v2/components/Skeleton.js +81 -96
  161. package/dist/esm/v2/components/Skeleton.js.map +1 -1
  162. package/dist/esm/v2/components/SkipLink.js +6 -7
  163. package/dist/esm/v2/components/SkipLink.js.map +1 -1
  164. package/dist/esm/v2/components/Spinner.js +13 -22
  165. package/dist/esm/v2/components/Spinner.js.map +1 -1
  166. package/dist/esm/v2/components/Status.js +14 -25
  167. package/dist/esm/v2/components/Status.js.map +1 -1
  168. package/dist/esm/v2/components/Stepper.js +68 -71
  169. package/dist/esm/v2/components/Stepper.js.map +1 -1
  170. package/dist/esm/v2/components/Surface.js +25 -44
  171. package/dist/esm/v2/components/Surface.js.map +1 -1
  172. package/dist/esm/v2/components/Switch.js +21 -29
  173. package/dist/esm/v2/components/Switch.js.map +1 -1
  174. package/dist/esm/v2/components/TabPanel.js +84 -0
  175. package/dist/esm/v2/components/TabPanel.js.map +1 -0
  176. package/dist/esm/v2/components/Tabs.js +43 -19
  177. package/dist/esm/v2/components/Tabs.js.map +1 -1
  178. package/dist/esm/v2/components/TelInput.js +75 -108
  179. package/dist/esm/v2/components/TelInput.js.map +1 -1
  180. package/dist/esm/v2/components/Textarea.js +21 -30
  181. package/dist/esm/v2/components/Textarea.js.map +1 -1
  182. package/dist/esm/v2/components/TimePicker.js +59 -69
  183. package/dist/esm/v2/components/TimePicker.js.map +1 -1
  184. package/dist/esm/v2/components/Toast.js +109 -163
  185. package/dist/esm/v2/components/Toast.js.map +1 -1
  186. package/dist/esm/v2/components/Tooltip.js +18 -31
  187. package/dist/esm/v2/components/Tooltip.js.map +1 -1
  188. package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
  189. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
  190. package/dist/esm/v2/components/_pickerShared.js +2 -2
  191. package/dist/esm/v2/components/_pickerShared.js.map +1 -1
  192. package/dist/esm/v2/components/index.js +37 -0
  193. package/dist/esm/v2/components/index.js.map +1 -1
  194. package/dist/esm/v2/hooks/index.js +62 -0
  195. package/dist/esm/v2/hooks/index.js.map +1 -1
  196. package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
  197. package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
  198. package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
  199. package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
  200. package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
  201. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
  202. package/dist/esm/v2/hooks/useDensity.js +13 -17
  203. package/dist/esm/v2/hooks/useDensity.js.map +1 -1
  204. package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
  205. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
  206. package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
  207. package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  208. package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
  209. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
  210. package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
  211. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
  212. package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
  213. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
  214. package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
  215. package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  216. package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
  217. package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  218. package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
  219. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
  220. package/dist/esm/v2/hooks/useSortedRows.js +3 -5
  221. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
  222. package/dist/esm/v2/hooks/useTabLoading.js +6 -21
  223. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
  224. package/dist/esm/v2/index.js +2 -3
  225. package/dist/esm/v2/index.js.map +1 -1
  226. package/dist/esm/v2/modalContext.js +2 -2
  227. package/dist/esm/v2/modalContext.js.map +1 -1
  228. package/dist/esm/v2/models/favorite.js.map +1 -1
  229. package/dist/esm/v2/models/personalization.js.map +1 -1
  230. package/dist/esm/v2/models/referentiel.js.map +1 -1
  231. package/dist/esm/v2/models/savedFilter.js.map +1 -1
  232. package/dist/esm/v2/patterns/ActionBar.js +115 -159
  233. package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
  234. package/dist/esm/v2/patterns/AppMain.js +108 -0
  235. package/dist/esm/v2/patterns/AppMain.js.map +1 -0
  236. package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
  237. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
  238. package/dist/esm/v2/patterns/ChartFigure.js +151 -0
  239. package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
  240. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
  241. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  242. package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
  243. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
  244. package/dist/esm/v2/patterns/DataGrid.js +221 -255
  245. package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
  246. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
  247. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  248. package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
  249. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
  250. package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
  251. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
  252. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
  253. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  254. package/dist/esm/v2/patterns/DetailSplit.js +108 -0
  255. package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
  256. package/dist/esm/v2/patterns/FavoriteColumn.js +15 -17
  257. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  258. package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
  259. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
  260. package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
  261. package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
  262. package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
  263. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
  264. package/dist/esm/v2/patterns/FormPageShell.js +43 -41
  265. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
  266. package/dist/esm/v2/patterns/FormSection.js +30 -38
  267. package/dist/esm/v2/patterns/FormSection.js.map +1 -1
  268. package/dist/esm/v2/patterns/FormikCheckbox.js +29 -39
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
  270. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
  271. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  272. package/dist/esm/v2/patterns/FormikCombobox.js +51 -69
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
  278. package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
  279. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
  280. package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
  281. package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
  282. package/dist/esm/v2/patterns/FormikFile.js +94 -78
  283. package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
  284. package/dist/esm/v2/patterns/FormikInput.js +40 -53
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
  288. package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
  289. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
  290. package/dist/esm/v2/patterns/FormikSelect.js +64 -87
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
  295. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  296. package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
  297. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
  298. package/dist/esm/v2/patterns/PageContent.js +10 -14
  299. package/dist/esm/v2/patterns/PageContent.js.map +1 -1
  300. package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
  301. package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
  302. package/dist/esm/v2/patterns/ReferentielField.js +327 -312
  303. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
  304. package/dist/esm/v2/patterns/RowFavoriteToggle.js +27 -22
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
  306. package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
  307. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
  308. package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
  309. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
  310. package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
  311. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
  312. package/dist/esm/v2/patterns/SortableHeader.js +22 -45
  313. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
  314. package/dist/esm/v2/patterns/Tour.js +94 -120
  315. package/dist/esm/v2/patterns/Tour.js.map +1 -1
  316. package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
  317. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
  318. package/dist/esm/v2/patterns/_pickerSerialisation.js +6 -8
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
  320. package/dist/esm/v2/patterns/_sort.js +17 -33
  321. package/dist/esm/v2/patterns/_sort.js.map +1 -1
  322. package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
  323. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
  324. package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
  325. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
  326. package/dist/esm/v2/patterns/filterCriteria.js +102 -0
  327. package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
  328. package/dist/esm/v2/patterns/index.js +152 -0
  329. package/dist/esm/v2/patterns/index.js.map +1 -1
  330. package/dist/esm/v2/patterns/rowActions.js +223 -0
  331. package/dist/esm/v2/patterns/rowActions.js.map +1 -0
  332. package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
  333. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
  334. package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
  335. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
  336. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
  337. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  338. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
  339. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  340. package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
  341. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
  342. package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
  343. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
  344. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +28 -34
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  346. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  347. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  348. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  349. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  350. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  351. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  352. package/dist/esm/v2/personalization/index.js +17 -0
  353. package/dist/esm/v2/personalization/index.js.map +1 -1
  354. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  355. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  356. package/dist/esm/v2/personalization/schema.js +8 -9
  357. package/dist/esm/v2/personalization/schema.js.map +1 -1
  358. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  359. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  360. package/dist/esm/v2/referentiel/types.js +2 -0
  361. package/dist/esm/v2/referentiel/types.js.map +1 -0
  362. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  363. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  364. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  365. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  367. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  368. package/dist/esm/v2/theme/_brand.js +8 -24
  369. package/dist/esm/v2/theme/_brand.js.map +1 -1
  370. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  371. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  372. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  373. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  374. package/dist/esm/v2/theme/cssVariables.js +62 -69
  375. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  376. package/dist/esm/v2/theme/index.js +5 -5
  377. package/dist/esm/v2/theme/index.js.map +1 -1
  378. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  379. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  380. package/dist/esm/v2/tokens/chart.js +261 -0
  381. package/dist/esm/v2/tokens/chart.js.map +1 -0
  382. package/dist/esm/v2/tokens/colors.js +22 -22
  383. package/dist/esm/v2/tokens/colors.js.map +1 -1
  384. package/dist/esm/v2/tokens/density.js +62 -7
  385. package/dist/esm/v2/tokens/density.js.map +1 -1
  386. package/dist/esm/v2/tokens/index.js +49 -34
  387. package/dist/esm/v2/tokens/index.js.map +1 -1
  388. package/dist/esm/v2/tokens/motion.js +12 -20
  389. package/dist/esm/v2/tokens/motion.js.map +1 -1
  390. package/dist/esm/v2/tokens/radius.js +1 -1
  391. package/dist/esm/v2/tokens/radius.js.map +1 -1
  392. package/dist/esm/v2/tokens/shadows.js +6 -6
  393. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  394. package/dist/esm/v2/tokens/spacing.js +2 -2
  395. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  396. package/dist/esm/v2/tokens/state.js +1 -1
  397. package/dist/esm/v2/tokens/state.js.map +1 -1
  398. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  399. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  400. package/dist/esm/v2/tokens/tokens.json +6 -1
  401. package/dist/esm/v2/tokens/typography.js +13 -13
  402. package/dist/esm/v2/tokens/typography.js.map +1 -1
  403. package/dist/esm/v2/tokens/zIndex.js +1 -1
  404. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  405. package/dist/esm/v2/types/datagrid.js.map +1 -1
  406. package/dist/esm/v2/utils/apiError.js +16 -37
  407. package/dist/esm/v2/utils/apiError.js.map +1 -1
  408. package/dist/esm/v2/utils/contrast.js +31 -32
  409. package/dist/esm/v2/utils/contrast.js.map +1 -1
  410. package/dist/esm/v2/utils/cx.js +5 -25
  411. package/dist/esm/v2/utils/cx.js.map +1 -1
  412. package/dist/esm/v2/utils/fileDownload.js +23 -26
  413. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  414. package/dist/esm/v2/utils/fileValidation.js +209 -0
  415. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  416. package/dist/esm/v2/utils/fmtDate.js +111 -0
  417. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  419. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  420. package/dist/esm/v2/utils/formikErrors.js +78 -0
  421. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  422. package/dist/esm/v2/utils/index.js +35 -2
  423. package/dist/esm/v2/utils/index.js.map +1 -1
  424. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  425. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  426. package/dist/esm/v2/utils/networkStatus.js +12 -12
  427. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  428. package/dist/index.d.ts +7 -1
  429. package/dist/index.d.ts.map +1 -1
  430. package/dist/index.js +110 -49
  431. package/dist/index.js.map +1 -1
  432. package/dist/v2/__tests__/AppMain.test.js +133 -0
  433. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  434. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  435. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  436. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  437. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  438. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  439. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  440. package/dist/v2/__tests__/FieldError.test.js +82 -49
  441. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  442. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  443. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  444. package/dist/v2/__tests__/FieldWidth.test.js +23 -25
  445. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
  446. package/dist/v2/__tests__/FileCard.test.js +29 -28
  447. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  448. package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
  449. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
  451. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  452. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  453. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
  455. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  456. package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
  457. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  458. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  459. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  460. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  461. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  462. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  463. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  464. package/dist/v2/__tests__/apiError.test.js +50 -69
  465. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  466. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  467. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  468. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  469. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  470. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  471. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  472. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  473. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  474. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  475. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  476. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  477. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  478. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  479. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  480. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  481. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  482. package/dist/v2/__tests__/labels-merge.test.js +23 -27
  483. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  484. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  485. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  486. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  487. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  488. package/dist/v2/__tests__/rowActions.test.js +186 -0
  489. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  490. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  491. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  493. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  494. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  495. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  496. package/dist/v2/components/Accordion.js +60 -82
  497. package/dist/v2/components/Accordion.js.map +1 -1
  498. package/dist/v2/components/ActionStrip.js +40 -52
  499. package/dist/v2/components/ActionStrip.js.map +1 -1
  500. package/dist/v2/components/Banner.js +42 -41
  501. package/dist/v2/components/Banner.js.map +1 -1
  502. package/dist/v2/components/Busy.js +22 -27
  503. package/dist/v2/components/Busy.js.map +1 -1
  504. package/dist/v2/components/Button.js +39 -50
  505. package/dist/v2/components/Button.js.map +1 -1
  506. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  507. package/dist/v2/components/CategoryTag.js +49 -32
  508. package/dist/v2/components/CategoryTag.js.map +1 -1
  509. package/dist/v2/components/Checkbox.js +39 -45
  510. package/dist/v2/components/Checkbox.js.map +1 -1
  511. package/dist/v2/components/Chip.js +29 -42
  512. package/dist/v2/components/Chip.js.map +1 -1
  513. package/dist/v2/components/Combobox.js +122 -144
  514. package/dist/v2/components/Combobox.js.map +1 -1
  515. package/dist/v2/components/CommandPalette.js +138 -225
  516. package/dist/v2/components/CommandPalette.js.map +1 -1
  517. package/dist/v2/components/ConfirmDialog.js +46 -56
  518. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  519. package/dist/v2/components/DatePicker.js +81 -86
  520. package/dist/v2/components/DatePicker.js.map +1 -1
  521. package/dist/v2/components/DateRangePicker.js +77 -87
  522. package/dist/v2/components/DateRangePicker.js.map +1 -1
  523. package/dist/v2/components/DateTimePicker.js +84 -91
  524. package/dist/v2/components/DateTimePicker.js.map +1 -1
  525. package/dist/v2/components/Drawer.d.ts.map +1 -1
  526. package/dist/v2/components/Drawer.js +93 -88
  527. package/dist/v2/components/Drawer.js.map +1 -1
  528. package/dist/v2/components/Dropzone.js +150 -196
  529. package/dist/v2/components/Dropzone.js.map +1 -1
  530. package/dist/v2/components/EmptyState.js +18 -20
  531. package/dist/v2/components/EmptyState.js.map +1 -1
  532. package/dist/v2/components/FavoriteToggle.js +28 -39
  533. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  534. package/dist/v2/components/Field.d.ts +62 -4
  535. package/dist/v2/components/Field.d.ts.map +1 -1
  536. package/dist/v2/components/Field.js +169 -70
  537. package/dist/v2/components/Field.js.map +1 -1
  538. package/dist/v2/components/FieldError.js +18 -21
  539. package/dist/v2/components/FieldError.js.map +1 -1
  540. package/dist/v2/components/FieldHelp.js +40 -60
  541. package/dist/v2/components/FieldHelp.js.map +1 -1
  542. package/dist/v2/components/FileCard.js +27 -31
  543. package/dist/v2/components/FileCard.js.map +1 -1
  544. package/dist/v2/components/FilterTab.js +30 -38
  545. package/dist/v2/components/FilterTab.js.map +1 -1
  546. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  547. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  548. package/dist/v2/components/ForbiddenPage.js +37 -17
  549. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  550. package/dist/v2/components/FormGrid.js +53 -59
  551. package/dist/v2/components/FormGrid.js.map +1 -1
  552. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  553. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  554. package/dist/v2/components/FormikDisplay.js +108 -33
  555. package/dist/v2/components/FormikDisplay.js.map +1 -1
  556. package/dist/v2/components/Input.d.ts +40 -0
  557. package/dist/v2/components/Input.d.ts.map +1 -1
  558. package/dist/v2/components/Input.js +81 -41
  559. package/dist/v2/components/Input.js.map +1 -1
  560. package/dist/v2/components/KPICard.js +57 -67
  561. package/dist/v2/components/KPICard.js.map +1 -1
  562. package/dist/v2/components/KPIStrip.js +16 -22
  563. package/dist/v2/components/KPIStrip.js.map +1 -1
  564. package/dist/v2/components/KV.js +25 -31
  565. package/dist/v2/components/KV.js.map +1 -1
  566. package/dist/v2/components/KVGrid.js +19 -26
  567. package/dist/v2/components/KVGrid.js.map +1 -1
  568. package/dist/v2/components/Layout.js +91 -120
  569. package/dist/v2/components/Layout.js.map +1 -1
  570. package/dist/v2/components/MobileRowCard.js +79 -91
  571. package/dist/v2/components/MobileRowCard.js.map +1 -1
  572. package/dist/v2/components/Modal.js +61 -69
  573. package/dist/v2/components/Modal.js.map +1 -1
  574. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  575. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  576. package/dist/v2/components/NetworkErrorPage.js +38 -21
  577. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  578. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  579. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  580. package/dist/v2/components/NotFoundPage.js +37 -18
  581. package/dist/v2/components/NotFoundPage.js.map +1 -1
  582. package/dist/v2/components/NumberInput.js +88 -118
  583. package/dist/v2/components/NumberInput.js.map +1 -1
  584. package/dist/v2/components/OverflowMenu.js +38 -56
  585. package/dist/v2/components/OverflowMenu.js.map +1 -1
  586. package/dist/v2/components/PdfViewer.js +34 -45
  587. package/dist/v2/components/PdfViewer.js.map +1 -1
  588. package/dist/v2/components/ProgressBar.js +42 -49
  589. package/dist/v2/components/ProgressBar.js.map +1 -1
  590. package/dist/v2/components/Radio.js +59 -67
  591. package/dist/v2/components/Radio.js.map +1 -1
  592. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  593. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  594. package/dist/v2/components/SectionHeader.js +34 -41
  595. package/dist/v2/components/SectionHeader.js.map +1 -1
  596. package/dist/v2/components/Segmented.js +69 -93
  597. package/dist/v2/components/Segmented.js.map +1 -1
  598. package/dist/v2/components/Select.d.ts +26 -2
  599. package/dist/v2/components/Select.d.ts.map +1 -1
  600. package/dist/v2/components/Select.js +120 -155
  601. package/dist/v2/components/Select.js.map +1 -1
  602. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  603. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  604. package/dist/v2/components/ServerErrorPage.js +37 -20
  605. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  606. package/dist/v2/components/Skeleton.js +86 -100
  607. package/dist/v2/components/Skeleton.js.map +1 -1
  608. package/dist/v2/components/SkipLink.js +9 -12
  609. package/dist/v2/components/SkipLink.js.map +1 -1
  610. package/dist/v2/components/Spinner.js +16 -25
  611. package/dist/v2/components/Spinner.js.map +1 -1
  612. package/dist/v2/components/Status.js +18 -29
  613. package/dist/v2/components/Status.js.map +1 -1
  614. package/dist/v2/components/Stepper.js +80 -82
  615. package/dist/v2/components/Stepper.js.map +1 -1
  616. package/dist/v2/components/Surface.js +34 -49
  617. package/dist/v2/components/Surface.js.map +1 -1
  618. package/dist/v2/components/Switch.js +29 -37
  619. package/dist/v2/components/Switch.js.map +1 -1
  620. package/dist/v2/components/TabPanel.d.ts +17 -0
  621. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  622. package/dist/v2/components/TabPanel.js +90 -0
  623. package/dist/v2/components/TabPanel.js.map +1 -0
  624. package/dist/v2/components/Tabs.d.ts +25 -0
  625. package/dist/v2/components/Tabs.d.ts.map +1 -1
  626. package/dist/v2/components/Tabs.js +53 -29
  627. package/dist/v2/components/Tabs.js.map +1 -1
  628. package/dist/v2/components/TelInput.js +80 -115
  629. package/dist/v2/components/TelInput.js.map +1 -1
  630. package/dist/v2/components/Textarea.js +26 -35
  631. package/dist/v2/components/Textarea.js.map +1 -1
  632. package/dist/v2/components/TimePicker.js +62 -74
  633. package/dist/v2/components/TimePicker.js.map +1 -1
  634. package/dist/v2/components/Toast.js +119 -174
  635. package/dist/v2/components/Toast.js.map +1 -1
  636. package/dist/v2/components/Tooltip.js +23 -38
  637. package/dist/v2/components/Tooltip.js.map +1 -1
  638. package/dist/v2/components/_ErrorPageBody.js +15 -16
  639. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  640. package/dist/v2/components/_pickerShared.js +5 -5
  641. package/dist/v2/components/_pickerShared.js.map +1 -1
  642. package/dist/v2/components/index.d.ts +40 -1
  643. package/dist/v2/components/index.d.ts.map +1 -1
  644. package/dist/v2/components/index.js +153 -136
  645. package/dist/v2/components/index.js.map +1 -1
  646. package/dist/v2/hooks/index.d.ts +65 -0
  647. package/dist/v2/hooks/index.d.ts.map +1 -1
  648. package/dist/v2/hooks/index.js +63 -24
  649. package/dist/v2/hooks/index.js.map +1 -1
  650. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  651. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  652. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  653. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  654. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  655. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  656. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  657. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  658. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  659. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  660. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  661. package/dist/v2/hooks/useDensity.js +14 -18
  662. package/dist/v2/hooks/useDensity.js.map +1 -1
  663. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  664. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  665. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  666. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  667. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  668. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  669. package/dist/v2/hooks/useFocusTrap.js +20 -24
  670. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  671. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  672. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  673. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  674. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  675. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  676. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  677. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  678. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  679. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  680. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  681. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  682. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  683. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  684. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  685. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  687. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  688. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  689. package/dist/v2/hooks/useSortedRows.js +4 -6
  690. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  691. package/dist/v2/hooks/useTabLoading.js +7 -22
  692. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  693. package/dist/v2/index.js +143 -145
  694. package/dist/v2/index.js.map +1 -1
  695. package/dist/v2/modalContext.js +2 -2
  696. package/dist/v2/modalContext.js.map +1 -1
  697. package/dist/v2/models/favorite.d.ts +8 -9
  698. package/dist/v2/models/favorite.d.ts.map +1 -1
  699. package/dist/v2/models/favorite.js.map +1 -1
  700. package/dist/v2/models/index.js +4 -4
  701. package/dist/v2/models/index.js.map +1 -1
  702. package/dist/v2/models/personalization.d.ts +44 -48
  703. package/dist/v2/models/personalization.d.ts.map +1 -1
  704. package/dist/v2/models/personalization.js.map +1 -1
  705. package/dist/v2/models/referentiel.d.ts +32 -50
  706. package/dist/v2/models/referentiel.d.ts.map +1 -1
  707. package/dist/v2/models/referentiel.js.map +1 -1
  708. package/dist/v2/models/savedFilter.d.ts +8 -17
  709. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  710. package/dist/v2/models/savedFilter.js.map +1 -1
  711. package/dist/v2/patterns/ActionBar.js +152 -187
  712. package/dist/v2/patterns/ActionBar.js.map +1 -1
  713. package/dist/v2/patterns/AppMain.d.ts +109 -0
  714. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  715. package/dist/v2/patterns/AppMain.js +115 -0
  716. package/dist/v2/patterns/AppMain.js.map +1 -0
  717. package/dist/v2/patterns/BulkActionBar.js +40 -42
  718. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  719. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  720. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  721. package/dist/v2/patterns/ChartFigure.js +159 -0
  722. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  723. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  724. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  725. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  726. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  727. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  728. package/dist/v2/patterns/DataGrid.js +262 -297
  729. package/dist/v2/patterns/DataGrid.js.map +1 -1
  730. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  731. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  733. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  734. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  735. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  736. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  737. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  738. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  739. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  740. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  741. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  742. package/dist/v2/patterns/DetailSplit.js +116 -0
  743. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  744. package/dist/v2/patterns/FavoriteColumn.js +22 -23
  745. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  746. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  747. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  748. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  749. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  750. package/dist/v2/patterns/FilterTabBar.js +120 -0
  751. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  752. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  753. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  754. package/dist/v2/patterns/FormPageShell.js +53 -50
  755. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  756. package/dist/v2/patterns/FormSection.d.ts +8 -3
  757. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  758. package/dist/v2/patterns/FormSection.js +44 -51
  759. package/dist/v2/patterns/FormSection.js.map +1 -1
  760. package/dist/v2/patterns/FormikCheckbox.js +36 -45
  761. package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
  762. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  763. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  765. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  766. package/dist/v2/patterns/FormikCombobox.js +55 -72
  767. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  768. package/dist/v2/patterns/FormikDatePicker.js +50 -64
  769. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  770. package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
  771. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
  772. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  773. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  774. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  775. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  776. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  777. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  778. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  779. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikFile.js +99 -83
  781. package/dist/v2/patterns/FormikFile.js.map +1 -1
  782. package/dist/v2/patterns/FormikInput.js +45 -58
  783. package/dist/v2/patterns/FormikInput.js.map +1 -1
  784. package/dist/v2/patterns/FormikRadioGroup.js +45 -56
  785. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
  786. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  787. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  788. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  789. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  790. package/dist/v2/patterns/FormikSelect.js +70 -92
  791. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  792. package/dist/v2/patterns/FormikTextarea.js +35 -51
  793. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  794. package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
  795. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  796. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  797. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  798. package/dist/v2/patterns/PageContent.js +17 -20
  799. package/dist/v2/patterns/PageContent.js.map +1 -1
  800. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  801. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  802. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  803. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  804. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  805. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/ReferentielField.js +347 -327
  807. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
  809. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
  810. package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
  811. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
  812. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  813. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  814. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  815. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  816. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  817. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  818. package/dist/v2/patterns/SortableHeader.js +35 -57
  819. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  820. package/dist/v2/patterns/Tour.js +121 -142
  821. package/dist/v2/patterns/Tour.js.map +1 -1
  822. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  823. package/dist/v2/patterns/_dataGridShared.js +131 -147
  824. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  825. package/dist/v2/patterns/_pickerSerialisation.js +9 -10
  826. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
  827. package/dist/v2/patterns/_sort.js +17 -33
  828. package/dist/v2/patterns/_sort.js.map +1 -1
  829. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  830. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  831. package/dist/v2/patterns/_useColumnResize.js +80 -99
  832. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  833. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  834. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  835. package/dist/v2/patterns/filterCriteria.js +110 -0
  836. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  837. package/dist/v2/patterns/index.d.ts +160 -0
  838. package/dist/v2/patterns/index.d.ts.map +1 -1
  839. package/dist/v2/patterns/index.js +157 -79
  840. package/dist/v2/patterns/index.js.map +1 -1
  841. package/dist/v2/patterns/rowActions.d.ts +150 -0
  842. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  843. package/dist/v2/patterns/rowActions.js +232 -0
  844. package/dist/v2/patterns/rowActions.js.map +1 -0
  845. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  846. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  847. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  848. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  849. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  850. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  851. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  852. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  853. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  854. package/dist/v2/personalization/adapters/index.js +5 -5
  855. package/dist/v2/personalization/adapters/index.js.map +1 -1
  856. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  857. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  858. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  859. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  860. package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
  861. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  862. package/dist/v2/personalization/capabilities/index.js +12 -12
  863. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  864. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  865. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  866. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  867. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  868. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  869. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  870. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  871. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  872. package/dist/v2/personalization/index.d.ts +16 -0
  873. package/dist/v2/personalization/index.d.ts.map +1 -1
  874. package/dist/v2/personalization/index.js +30 -23
  875. package/dist/v2/personalization/index.js.map +1 -1
  876. package/dist/v2/personalization/personalizationContext.js +10 -12
  877. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  878. package/dist/v2/personalization/schema.js +8 -9
  879. package/dist/v2/personalization/schema.js.map +1 -1
  880. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  881. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  882. package/dist/v2/referentiel/index.js +11 -13
  883. package/dist/v2/referentiel/index.js.map +1 -1
  884. package/dist/v2/referentiel/types.d.ts +105 -0
  885. package/dist/v2/referentiel/types.d.ts.map +1 -0
  886. package/dist/v2/referentiel/types.js +6 -0
  887. package/dist/v2/referentiel/types.js.map +1 -0
  888. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  889. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  890. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  891. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  892. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  893. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  894. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  895. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  896. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  897. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  898. package/dist/v2/theme/_brand.js +12 -26
  899. package/dist/v2/theme/_brand.js.map +1 -1
  900. package/dist/v2/theme/_brandSecondary.js +12 -26
  901. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  902. package/dist/v2/theme/createPortnetTheme.js +41 -49
  903. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  904. package/dist/v2/theme/cssVariables.d.ts +3 -3
  905. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  906. package/dist/v2/theme/cssVariables.js +65 -70
  907. package/dist/v2/theme/cssVariables.js.map +1 -1
  908. package/dist/v2/theme/index.js +10 -10
  909. package/dist/v2/theme/index.js.map +1 -1
  910. package/dist/v2/tokens/breakpoints.js +16 -16
  911. package/dist/v2/tokens/breakpoints.js.map +1 -1
  912. package/dist/v2/tokens/chart.d.ts +103 -0
  913. package/dist/v2/tokens/chart.d.ts.map +1 -0
  914. package/dist/v2/tokens/chart.js +270 -0
  915. package/dist/v2/tokens/chart.js.map +1 -0
  916. package/dist/v2/tokens/colors.js +24 -24
  917. package/dist/v2/tokens/colors.js.map +1 -1
  918. package/dist/v2/tokens/density.d.ts +104 -0
  919. package/dist/v2/tokens/density.d.ts.map +1 -1
  920. package/dist/v2/tokens/density.js +67 -12
  921. package/dist/v2/tokens/density.js.map +1 -1
  922. package/dist/v2/tokens/index.d.ts +50 -1
  923. package/dist/v2/tokens/index.d.ts.map +1 -1
  924. package/dist/v2/tokens/index.js +116 -68
  925. package/dist/v2/tokens/index.js.map +1 -1
  926. package/dist/v2/tokens/motion.js +16 -22
  927. package/dist/v2/tokens/motion.js.map +1 -1
  928. package/dist/v2/tokens/radius.js +3 -3
  929. package/dist/v2/tokens/radius.js.map +1 -1
  930. package/dist/v2/tokens/shadows.js +8 -8
  931. package/dist/v2/tokens/shadows.js.map +1 -1
  932. package/dist/v2/tokens/spacing.js +4 -4
  933. package/dist/v2/tokens/spacing.js.map +1 -1
  934. package/dist/v2/tokens/state.js +3 -3
  935. package/dist/v2/tokens/state.js.map +1 -1
  936. package/dist/v2/tokens/statusPalette.js +21 -23
  937. package/dist/v2/tokens/statusPalette.js.map +1 -1
  938. package/dist/v2/tokens/tokens.json +6 -1
  939. package/dist/v2/tokens/typography.js +15 -15
  940. package/dist/v2/tokens/typography.js.map +1 -1
  941. package/dist/v2/tokens/zIndex.js +3 -3
  942. package/dist/v2/tokens/zIndex.js.map +1 -1
  943. package/dist/v2/types/datagrid.d.ts +9 -1
  944. package/dist/v2/types/datagrid.d.ts.map +1 -1
  945. package/dist/v2/types/datagrid.js.map +1 -1
  946. package/dist/v2/types/index.js +2 -2
  947. package/dist/v2/types/index.js.map +1 -1
  948. package/dist/v2/utils/apiError.js +16 -37
  949. package/dist/v2/utils/apiError.js.map +1 -1
  950. package/dist/v2/utils/contrast.js +31 -32
  951. package/dist/v2/utils/contrast.js.map +1 -1
  952. package/dist/v2/utils/cx.js +7 -27
  953. package/dist/v2/utils/cx.js.map +1 -1
  954. package/dist/v2/utils/fileDownload.js +25 -28
  955. package/dist/v2/utils/fileDownload.js.map +1 -1
  956. package/dist/v2/utils/fileValidation.d.ts +116 -0
  957. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  958. package/dist/v2/utils/fileValidation.js +220 -0
  959. package/dist/v2/utils/fileValidation.js.map +1 -0
  960. package/dist/v2/utils/fmtDate.d.ts +103 -0
  961. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  962. package/dist/v2/utils/fmtDate.js +119 -0
  963. package/dist/v2/utils/fmtDate.js.map +1 -0
  964. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  965. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  966. package/dist/v2/utils/fmtMoney.js +9 -11
  967. package/dist/v2/utils/fmtMoney.js.map +1 -1
  968. package/dist/v2/utils/formikErrors.d.ts +67 -0
  969. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  970. package/dist/v2/utils/formikErrors.js +85 -0
  971. package/dist/v2/utils/formikErrors.js.map +1 -0
  972. package/dist/v2/utils/index.d.ts +5 -0
  973. package/dist/v2/utils/index.d.ts.map +1 -1
  974. package/dist/v2/utils/index.js +67 -18
  975. package/dist/v2/utils/index.js.map +1 -1
  976. package/dist/v2/utils/mergeLabels.js +9 -14
  977. package/dist/v2/utils/mergeLabels.js.map +1 -1
  978. package/dist/v2/utils/networkStatus.js +14 -14
  979. package/dist/v2/utils/networkStatus.js.map +1 -1
  980. package/package.json +26 -9
@@ -1,12 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- var _excluded = ["checked", "onChange", "label", "description", "disabled", "size", "labelPlacement", "sx", "aria-label"];
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
1
  import * as React from "react";
11
2
  import MuiSwitch from "@mui/material/Switch";
12
3
  import FormControlLabel from "@mui/material/FormControlLabel";
@@ -32,25 +23,24 @@ import Box from "@mui/material/Box";
32
23
  * <Switch checked={v} onChange={...} aria-label="Activer le mode sombre" />
33
24
  */
34
25
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
35
- var Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {
36
- var checked = _ref.checked,
37
- onChange = _ref.onChange,
38
- label = _ref.label,
39
- description = _ref.description,
40
- disabled = _ref.disabled,
41
- _ref$size = _ref.size,
42
- size = _ref$size === void 0 ? "md" : _ref$size,
43
- _ref$labelPlacement = _ref.labelPlacement,
44
- labelPlacement = _ref$labelPlacement === void 0 ? "end" : _ref$labelPlacement,
45
- sx = _ref.sx,
46
- ariaLabel = _ref["aria-label"],
47
- rest = _objectWithoutProperties(_ref, _excluded);
48
- var descId = React.useId();
26
+ const Switch = /*#__PURE__*/React.forwardRef(function Switch({
27
+ checked,
28
+ onChange,
29
+ label,
30
+ description,
31
+ disabled,
32
+ size = "md",
33
+ labelPlacement = "end",
34
+ sx,
35
+ "aria-label": ariaLabel,
36
+ ...rest
37
+ }, ref) {
38
+ const descId = React.useId();
49
39
  if (process.env["NODE_ENV"] !== "production" && !label && !ariaLabel) {
50
40
  // eslint-disable-next-line no-console
51
41
  console.warn("[@portnet/ui v2] <Switch> without `label` requires `aria-label` for screen readers.");
52
42
  }
53
- var sw = /*#__PURE__*/_jsx(MuiSwitch, _objectSpread({
43
+ const sw = /*#__PURE__*/_jsx(MuiSwitch, {
54
44
  ref: ref,
55
45
  checked: !!checked,
56
46
  onChange: onChange,
@@ -66,7 +56,7 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {
66
56
  "aria-describedby": description ? descId : undefined
67
57
  }
68
58
  },
69
- sx: _objectSpread({
59
+ sx: {
70
60
  "& .MuiSwitch-thumb": {
71
61
  boxShadow: "var(--shadow-xs)"
72
62
  },
@@ -83,11 +73,13 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {
83
73
  // accent automatically retune the Switch focus state too.
84
74
  "& .MuiSwitch-switchBase.Mui-focusVisible .MuiSwitch-thumb": {
85
75
  boxShadow: "var(--shadow-focus)"
86
- }
87
- }, sx)
88
- }, rest));
76
+ },
77
+ ...sx
78
+ },
79
+ ...rest
80
+ });
89
81
  if (!label && !description) return sw;
90
- var labelNode = /*#__PURE__*/_jsxs(Box, {
82
+ const labelNode = /*#__PURE__*/_jsxs(Box, {
91
83
  sx: {
92
84
  display: "flex",
93
85
  flexDirection: "column",
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","names":["React","MuiSwitch","FormControlLabel","Box","jsx","_jsx","jsxs","_jsxs","Switch","forwardRef","_ref","ref","checked","onChange","label","description","disabled","_ref$size","size","_ref$labelPlacement","labelPlacement","sx","ariaLabel","rest","_objectWithoutProperties","_excluded","descId","useId","process","env","console","warn","sw","_objectSpread","slotProps","input","undefined","boxShadow","backgroundColor","opacity","labelNode","display","flexDirection","paddingY","children","component","fontSize","fontWeight","color","id","lineHeight","control","margin","gap","alignItems"],"sources":["../../../../src/lib/v2/components/Switch.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiSwitch from \"@mui/material/Switch\";\r\nimport type { SwitchProps as MuiSwitchProps } from \"@mui/material/Switch\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\n/**\r\n * Switch - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Switch / Toggle\". Binary on/off control with\r\n * IMMEDIATE effect. Use Checkbox instead for deferred choices that\r\n * take effect on form submission.\r\n *\r\n * <Switch\r\n * checked={notifications}\r\n * onChange={e => setNotifications(e.target.checked)}\r\n * label=\"Notifications par e-mail\"\r\n * description=\"Recevoir un e-mail à chaque nouvelle décision.\"\r\n * />\r\n *\r\n * Without a label (use only inside table cells / inline toggles where\r\n * the surrounding context provides the label):\r\n *\r\n * <Switch checked={v} onChange={...} aria-label=\"Activer le mode sombre\" />\r\n */\r\nexport interface SwitchProps extends Omit<MuiSwitchProps, \"size\"> {\r\n label?: React.ReactNode | undefined;\r\n description?: React.ReactNode | undefined;\r\n size?: \"sm\" | \"md\" | undefined;\r\n labelPlacement?: \"end\" | \"start\" | undefined;\r\n}\r\n\r\nconst Switch = React.forwardRef<React.ComponentRef<typeof MuiSwitch>, SwitchProps>(function Switch(\r\n {\r\n checked,\r\n onChange,\r\n label,\r\n description,\r\n disabled,\r\n size = \"md\",\r\n labelPlacement = \"end\",\r\n sx,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n const descId = React.useId();\r\n\r\n if (process.env[\"NODE_ENV\"] !== \"production\" && !label && !ariaLabel) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] <Switch> without `label` requires `aria-label` for screen readers.\",\r\n );\r\n }\r\n\r\n const sw = (\r\n <MuiSwitch\r\n ref={ref}\r\n checked={!!checked}\r\n onChange={onChange}\r\n disabled={disabled}\r\n size={size === \"sm\" ? \"small\" : \"medium\"}\r\n slotProps={{\r\n // MUI v9: the input slot bag forwards directly to the\r\n // internal <input type=\"checkbox\" role=\"switch\"/> element.\r\n // Was `inputProps={...}` at the Switch top level — deprecated\r\n // in v6, removed in v9.\r\n input: {\r\n \"aria-label\": ariaLabel,\r\n \"aria-describedby\": description ? descId : undefined,\r\n },\r\n }}\r\n sx={{\r\n \"& .MuiSwitch-thumb\": { boxShadow: \"var(--shadow-xs)\" },\r\n \"& .MuiSwitch-track\": {\r\n backgroundColor: \"var(--border-strong)\",\r\n opacity: 1,\r\n },\r\n \"& .Mui-checked + .MuiSwitch-track\": {\r\n backgroundColor: \"var(--accent) !important\",\r\n opacity: \"1 !important\",\r\n },\r\n // R-AI.1 - reuse the canonical focus halo token (Batch 1\r\n // shadows.focus → --shadow-focus). Hosts retuning the brand\r\n // accent automatically retune the Switch focus state too.\r\n \"& .MuiSwitch-switchBase.Mui-focusVisible .MuiSwitch-thumb\": {\r\n boxShadow: \"var(--shadow-focus)\",\r\n },\r\n ...sx,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n\r\n if (!label && !description) return sw;\r\n\r\n const labelNode = (\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", paddingY: 0.25 }}>\r\n {label && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg)\",\r\n }}\r\n >\r\n {label}\r\n </Box>\r\n )}\r\n {description && (\r\n <Box\r\n id={descId}\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n }}\r\n >\r\n {description}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n\r\n return (\r\n <FormControlLabel\r\n control={sw}\r\n label={labelNode}\r\n labelPlacement={labelPlacement}\r\n disabled={disabled}\r\n sx={{\r\n margin: 0,\r\n gap: 1,\r\n alignItems: description ? \"flex-start\" : \"center\",\r\n }}\r\n />\r\n );\r\n});\r\n\r\nexport default Switch;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Switch.js","names":["React","MuiSwitch","FormControlLabel","Box","jsx","_jsx","jsxs","_jsxs","Switch","forwardRef","checked","onChange","label","description","disabled","size","labelPlacement","sx","ariaLabel","rest","ref","descId","useId","process","env","console","warn","sw","slotProps","input","undefined","boxShadow","backgroundColor","opacity","labelNode","display","flexDirection","paddingY","children","component","fontSize","fontWeight","color","id","lineHeight","control","margin","gap","alignItems"],"sources":["../../../../src/lib/v2/components/Switch.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiSwitch from \"@mui/material/Switch\";\r\nimport type { SwitchProps as MuiSwitchProps } from \"@mui/material/Switch\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\n/**\r\n * Switch - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Switch / Toggle\". Binary on/off control with\r\n * IMMEDIATE effect. Use Checkbox instead for deferred choices that\r\n * take effect on form submission.\r\n *\r\n * <Switch\r\n * checked={notifications}\r\n * onChange={e => setNotifications(e.target.checked)}\r\n * label=\"Notifications par e-mail\"\r\n * description=\"Recevoir un e-mail à chaque nouvelle décision.\"\r\n * />\r\n *\r\n * Without a label (use only inside table cells / inline toggles where\r\n * the surrounding context provides the label):\r\n *\r\n * <Switch checked={v} onChange={...} aria-label=\"Activer le mode sombre\" />\r\n */\r\nexport interface SwitchProps extends Omit<MuiSwitchProps, \"size\"> {\r\n label?: React.ReactNode | undefined;\r\n description?: React.ReactNode | undefined;\r\n size?: \"sm\" | \"md\" | undefined;\r\n labelPlacement?: \"end\" | \"start\" | undefined;\r\n}\r\n\r\nconst Switch = React.forwardRef<React.ComponentRef<typeof MuiSwitch>, SwitchProps>(function Switch(\r\n {\r\n checked,\r\n onChange,\r\n label,\r\n description,\r\n disabled,\r\n size = \"md\",\r\n labelPlacement = \"end\",\r\n sx,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n const descId = React.useId();\r\n\r\n if (process.env[\"NODE_ENV\"] !== \"production\" && !label && !ariaLabel) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] <Switch> without `label` requires `aria-label` for screen readers.\",\r\n );\r\n }\r\n\r\n const sw = (\r\n <MuiSwitch\r\n ref={ref}\r\n checked={!!checked}\r\n onChange={onChange}\r\n disabled={disabled}\r\n size={size === \"sm\" ? \"small\" : \"medium\"}\r\n slotProps={{\r\n // MUI v9: the input slot bag forwards directly to the\r\n // internal <input type=\"checkbox\" role=\"switch\"/> element.\r\n // Was `inputProps={...}` at the Switch top level — deprecated\r\n // in v6, removed in v9.\r\n input: {\r\n \"aria-label\": ariaLabel,\r\n \"aria-describedby\": description ? descId : undefined,\r\n },\r\n }}\r\n sx={{\r\n \"& .MuiSwitch-thumb\": { boxShadow: \"var(--shadow-xs)\" },\r\n \"& .MuiSwitch-track\": {\r\n backgroundColor: \"var(--border-strong)\",\r\n opacity: 1,\r\n },\r\n \"& .Mui-checked + .MuiSwitch-track\": {\r\n backgroundColor: \"var(--accent) !important\",\r\n opacity: \"1 !important\",\r\n },\r\n // R-AI.1 - reuse the canonical focus halo token (Batch 1\r\n // shadows.focus → --shadow-focus). Hosts retuning the brand\r\n // accent automatically retune the Switch focus state too.\r\n \"& .MuiSwitch-switchBase.Mui-focusVisible .MuiSwitch-thumb\": {\r\n boxShadow: \"var(--shadow-focus)\",\r\n },\r\n ...sx,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n\r\n if (!label && !description) return sw;\r\n\r\n const labelNode = (\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", paddingY: 0.25 }}>\r\n {label && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg)\",\r\n }}\r\n >\r\n {label}\r\n </Box>\r\n )}\r\n {description && (\r\n <Box\r\n id={descId}\r\n component=\"span\"\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n }}\r\n >\r\n {description}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n\r\n return (\r\n <FormControlLabel\r\n control={sw}\r\n label={labelNode}\r\n labelPlacement={labelPlacement}\r\n disabled={disabled}\r\n sx={{\r\n margin: 0,\r\n gap: 1,\r\n alignItems: description ? \"flex-start\" : \"center\",\r\n }}\r\n />\r\n );\r\n});\r\n\r\nexport default Switch;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ import * as React from "react";
2
+ import Box from "@mui/material/Box";
3
+ import { tabDomId, tabPanelDomId } from "./Tabs";
4
+
5
+ /**
6
+ * TabPanel — Portnet UI v2
7
+ *
8
+ * The other half of `Tabs` (capability gap G-46).
9
+ *
10
+ * ─────────────────────────────────────────────────────────────────────────────
11
+ * WHY THIS BELONGS IN THE LIBRARY
12
+ *
13
+ * `Tabs` emits HALF of the R-Ar.6 contract: every tab carries its own `id` and
14
+ * an `aria-controls` pointing at `pui-panel-<id>`. The element that must carry
15
+ * that id — with `role="tabpanel"` and an `aria-labelledby` back to the tab —
16
+ * was left entirely to the host, and the library shipped nothing for it.
17
+ *
18
+ * So the id format was PRIVATE knowledge every host had to re-spell as a
19
+ * literal. A typo there is invisible: the markup stays valid and the tab simply
20
+ * advertises a controlled element that does not exist. A BROKEN `aria-controls`
21
+ * is worse than none — assistive technology offers the user a relationship it
22
+ * then cannot follow.
23
+ *
24
+ * Raised from `addm-fe` (Area 5), whose consultation page rendered its panels
25
+ * as bare `{tab === "x" && <…/>}` conditionals: both tabs pointed at nothing,
26
+ * and the content had no role and no accessible name. That module wrote its own
27
+ * `TabPanel` by reading the id convention out of `Tabs.tsx` — which is the
28
+ * proof that the knowledge was required and unpublished.
29
+ * ─────────────────────────────────────────────────────────────────────────────
30
+ *
31
+ * MOUNTING IS THE HOST'S DECISION, deliberately. This component does not take
32
+ * the active tab value and does not hide itself: a host that mounts panels
33
+ * conditionally (`{tab === "x" && <TabPanel …/>}`) keeps a light DOM, while one
34
+ * that needs to preserve panel state across switches renders them all and hides
35
+ * the inactive ones itself. Owning that choice here would force the second
36
+ * behaviour on everyone, and a `hidden` panel still in the DOM changes what a
37
+ * screen reader enumerates.
38
+ *
39
+ * `focusable` — APG requires a tabpanel to be focusable when it contains NO
40
+ * focusable element, so a keyboard user can reach the content after arrowing
41
+ * along the tablist. A panel of read-only `KV` text is exactly that case, and
42
+ * it is the common one on a consultation page, hence the default. The APG also
43
+ * permits applying it uniformly, which is why this is a boolean rather than
44
+ * something the host must reason about per panel.
45
+ *
46
+ * Usage:
47
+ *
48
+ * <Tabs value={tab} onChange={setTab} items={TABS} aria-label="Sections" />
49
+ *
50
+ * {tab === "infos" && (
51
+ * <TabPanel tabId="infos">
52
+ * <KVGrid>…</KVGrid>
53
+ * </TabPanel>
54
+ * )}
55
+ */
56
+ import { jsx as _jsx } from "react/jsx-runtime";
57
+ const FOCUS_SX = Object.freeze({
58
+ "&:focus-visible": {
59
+ outline: "2px solid var(--accent)",
60
+ outlineOffset: "var(--pui-outline-offset)"
61
+ }
62
+ });
63
+ function TabPanel({
64
+ tabId,
65
+ children,
66
+ focusable = true,
67
+ sx
68
+ }) {
69
+ return /*#__PURE__*/_jsx(Box, {
70
+ role: "tabpanel",
71
+ id: tabPanelDomId(tabId),
72
+ "aria-labelledby": tabDomId(tabId),
73
+ ...(focusable ? {
74
+ tabIndex: 0
75
+ } : {}),
76
+ sx: {
77
+ ...(focusable ? FOCUS_SX : {}),
78
+ ...sx
79
+ },
80
+ children: children
81
+ });
82
+ }
83
+ export default TabPanel;
84
+ //# sourceMappingURL=TabPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabPanel.js","names":["React","Box","tabDomId","tabPanelDomId","jsx","_jsx","FOCUS_SX","Object","freeze","outline","outlineOffset","TabPanel","tabId","children","focusable","sx","role","id","tabIndex"],"sources":["../../../../src/lib/v2/components/TabPanel.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\n\r\nimport { tabDomId, tabPanelDomId } from \"./Tabs\";\r\n\r\n/**\r\n * TabPanel — Portnet UI v2\r\n *\r\n * The other half of `Tabs` (capability gap G-46).\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY\r\n *\r\n * `Tabs` emits HALF of the R-Ar.6 contract: every tab carries its own `id` and\r\n * an `aria-controls` pointing at `pui-panel-<id>`. The element that must carry\r\n * that id — with `role=\"tabpanel\"` and an `aria-labelledby` back to the tab —\r\n * was left entirely to the host, and the library shipped nothing for it.\r\n *\r\n * So the id format was PRIVATE knowledge every host had to re-spell as a\r\n * literal. A typo there is invisible: the markup stays valid and the tab simply\r\n * advertises a controlled element that does not exist. A BROKEN `aria-controls`\r\n * is worse than none — assistive technology offers the user a relationship it\r\n * then cannot follow.\r\n *\r\n * Raised from `addm-fe` (Area 5), whose consultation page rendered its panels\r\n * as bare `{tab === \"x\" && <…/>}` conditionals: both tabs pointed at nothing,\r\n * and the content had no role and no accessible name. That module wrote its own\r\n * `TabPanel` by reading the id convention out of `Tabs.tsx` — which is the\r\n * proof that the knowledge was required and unpublished.\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * MOUNTING IS THE HOST'S DECISION, deliberately. This component does not take\r\n * the active tab value and does not hide itself: a host that mounts panels\r\n * conditionally (`{tab === \"x\" && <TabPanel …/>}`) keeps a light DOM, while one\r\n * that needs to preserve panel state across switches renders them all and hides\r\n * the inactive ones itself. Owning that choice here would force the second\r\n * behaviour on everyone, and a `hidden` panel still in the DOM changes what a\r\n * screen reader enumerates.\r\n *\r\n * `focusable` — APG requires a tabpanel to be focusable when it contains NO\r\n * focusable element, so a keyboard user can reach the content after arrowing\r\n * along the tablist. A panel of read-only `KV` text is exactly that case, and\r\n * it is the common one on a consultation page, hence the default. The APG also\r\n * permits applying it uniformly, which is why this is a boolean rather than\r\n * something the host must reason about per panel.\r\n *\r\n * Usage:\r\n *\r\n * <Tabs value={tab} onChange={setTab} items={TABS} aria-label=\"Sections\" />\r\n *\r\n * {tab === \"infos\" && (\r\n * <TabPanel tabId=\"infos\">\r\n * <KVGrid>…</KVGrid>\r\n * </TabPanel>\r\n * )}\r\n */\r\n\r\nconst FOCUS_SX = Object.freeze({\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\nexport interface TabPanelProps {\r\n /**\r\n * The `id` of the `TabItem` this panel belongs to — the same string passed to\r\n * `Tabs.items`, NOT a DOM id. The DOM ids are derived here so the two halves\r\n * of the contract cannot disagree.\r\n */\r\n tabId: string;\r\n children?: React.ReactNode | undefined;\r\n /** @default true — see the APG note in the file header. */\r\n focusable?: boolean | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nfunction TabPanel({ tabId, children, focusable = true, sx }: TabPanelProps) {\r\n return (\r\n <Box\r\n role=\"tabpanel\"\r\n id={tabPanelDomId(tabId)}\r\n aria-labelledby={tabDomId(tabId)}\r\n {...(focusable ? { tabIndex: 0 } : {})}\r\n sx={{\r\n ...(focusable ? FOCUS_SX : {}),\r\n ...(sx as SystemStyleObject<Theme>),\r\n }}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default TabPanel;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,GAAG,MAAM,mBAAmB;AAInC,SAASC,QAAQ,EAAEC,aAAa,QAAQ,QAAQ;;AAEhD;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;AAlDA,SAAAC,GAAA,IAAAC,IAAA;AAoDA,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAAC;EAC7B,iBAAiB,EAAE;IACjBC,OAAO,EAAE,yBAAyB;IAClCC,aAAa,EAAE;EACjB;AACF,CAA0B,CAAC;AAe3B,SAASC,QAAQA,CAAC;EAAEC,KAAK;EAAEC,QAAQ;EAAEC,SAAS,GAAG,IAAI;EAAEC;AAAkB,CAAC,EAAE;EAC1E,oBACEV,IAAA,CAACJ,GAAG;IACFe,IAAI,EAAC,UAAU;IACfC,EAAE,EAAEd,aAAa,CAACS,KAAK,CAAE;IACzB,mBAAiBV,QAAQ,CAACU,KAAK,CAAE;IAAA,IAC5BE,SAAS,GAAG;MAAEI,QAAQ,EAAE;IAAE,CAAC,GAAG,CAAC,CAAC;IACrCH,EAAE,EAAE;MACF,IAAID,SAAS,GAAGR,QAAQ,GAAG,CAAC,CAAC,CAAC;MAC9B,GAAIS;IACN,CAAE;IAAAF,QAAA,EAEDA;EAAQ,CACN,CAAC;AAEV;AAEA,eAAeF,QAAQ","ignoreList":[]}
@@ -36,10 +36,36 @@ import Box from "@mui/material/Box";
36
36
  * }]}
37
37
  */
38
38
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
39
+ /**
40
+ * DOM id of a tab, and of the panel it controls.
41
+ *
42
+ * ─── POURQUOI CES DEUX FONCTIONS SONT EXPORTÉES (gap G-46) ─────────────
43
+ *
44
+ * `Tabs` émet la MOITIÉ du contrat R-Ar.6 : chaque onglet porte son `id` et un
45
+ * `aria-controls` vers `pui-panel-<id>`. L'autre moitié — le panneau qui porte
46
+ * ce même id, `role="tabpanel"` et `aria-labelledby` — appartient à l'hôte, et
47
+ * la library ne la fournissait pas.
48
+ *
49
+ * Le format des ids était donc une connaissance PRIVÉE que chaque hôte devait
50
+ * redupliquer en chaîne littérale. Une faute de frappe y est invisible : le
51
+ * balisage reste valide, l'onglet annonce simplement un élément contrôlé qui
52
+ * n'existe pas — et un `aria-controls` cassé est PIRE que son absence, puisque
53
+ * la technologie d'assistance propose à l'utilisateur une relation qu'elle ne
54
+ * peut ensuite pas suivre.
55
+ *
56
+ * Relevé depuis `addm-fe` (Area 5), où `ConsultDemande` rendait ses panneaux en
57
+ * `{tab === "x" && <…/>}` nus : les deux onglets pointaient dans le vide, sans
58
+ * `role` ni nom accessible sur le contenu. Le module avait écrit son propre
59
+ * `TabPanel` en relisant la convention dans CE fichier — preuve que la
60
+ * connaissance était requise et non publiée.
61
+ */
62
+ export const tabDomId = id => `pui-tab-${id}`;
63
+ export const tabPanelDomId = id => `pui-panel-${id}`;
64
+
39
65
  // Default count announcement. Kept FR for back-compat; consumers
40
66
  // localise per item via the `countLabel` slot.
41
67
  function defaultCountLabel(count) {
42
- return "".concat(count, " \xE9l\xE9ments");
68
+ return `${count} éléments`;
43
69
  }
44
70
 
45
71
  /* ── Hoisted static sx (D5) ─────────────────────────────────────────────
@@ -50,7 +76,7 @@ function defaultCountLabel(count) {
50
76
  // MUI v9: shape forwarded via slotProps.indicator (was TabIndicatorProps
51
77
  // in v5/v6/v7, deprecated v6, removed v9). The content { sx: {...} } is
52
78
  // unchanged — it's the same {sx} that the indicator slot consumes.
53
- var TAB_INDICATOR_PROPS = Object.freeze({
79
+ const TAB_INDICATOR_PROPS = Object.freeze({
54
80
  // Indicator thickness (2 px) is a visual constant, not a spacing value.
55
81
  // Charter §03 Tabs specifies 2 px underline.
56
82
  sx: {
@@ -58,7 +84,7 @@ var TAB_INDICATOR_PROPS = Object.freeze({
58
84
  height: 2
59
85
  }
60
86
  });
61
- var TABS_SX = Object.freeze({
87
+ const TABS_SX = Object.freeze({
62
88
  borderBottom: "1px solid var(--border)",
63
89
  // Tabs use the secondary-nav 40 px row height (charter §03 Tabs).
64
90
  // Below the 44 px tactile minimum; the underline indicator and the
@@ -85,12 +111,12 @@ var TABS_SX = Object.freeze({
85
111
  }
86
112
  }
87
113
  });
88
- var TAB_LABEL_INNER_SX = Object.freeze({
114
+ const TAB_LABEL_INNER_SX = Object.freeze({
89
115
  display: "inline-flex",
90
116
  alignItems: "center",
91
117
  gap: "var(--s-2)"
92
118
  });
93
- var COUNT_BADGE_SX = Object.freeze({
119
+ const COUNT_BADGE_SX = Object.freeze({
94
120
  fontSize: "var(--text-xs)",
95
121
  fontWeight: "var(--fw-semibold)",
96
122
  padding: "var(--s-1) var(--s-2)",
@@ -103,18 +129,16 @@ var COUNT_BADGE_SX = Object.freeze({
103
129
  // MUI v9: slotProps wrapper for indicator. Hoisted alongside the rest of
104
130
  // the static-sx block so emotion / React skip re-allocation on every
105
131
  // render. The shape is { indicator: TAB_INDICATOR_PROPS }.
106
- var TABS_SLOT_PROPS = Object.freeze({
132
+ const TABS_SLOT_PROPS = Object.freeze({
107
133
  indicator: TAB_INDICATOR_PROPS
108
134
  });
109
- function Tabs(_ref) {
110
- var value = _ref.value,
111
- onChange = _ref.onChange,
112
- items = _ref.items,
113
- _ref$ariaLabel = _ref["aria-label"],
114
- ariaLabel = _ref$ariaLabel === void 0 ? "Sections" : _ref$ariaLabel;
115
- var handle = function handle(_e, v) {
116
- return onChange === null || onChange === void 0 ? void 0 : onChange(v);
117
- };
135
+ function Tabs({
136
+ value,
137
+ onChange,
138
+ items,
139
+ "aria-label": ariaLabel = "Sections"
140
+ }) {
141
+ const handle = (_e, v) => onChange?.(v);
118
142
  return /*#__PURE__*/_jsx(MuiTabs, {
119
143
  value: value,
120
144
  onChange: handle,
@@ -123,12 +147,12 @@ function Tabs(_ref) {
123
147
  scrollButtons: false,
124
148
  slotProps: TABS_SLOT_PROPS,
125
149
  sx: TABS_SX,
126
- children: items.map(function (t) {
127
- var countAria = t.count != null ? typeof t.countLabel === "function" ? t.countLabel(t.count) : t.countLabel != null ? t.countLabel : defaultCountLabel(t.count) : undefined;
150
+ children: items.map(t => {
151
+ const countAria = t.count != null ? typeof t.countLabel === "function" ? t.countLabel(t.count) : t.countLabel != null ? t.countLabel : defaultCountLabel(t.count) : undefined;
128
152
  return /*#__PURE__*/_jsx(MuiTab, {
129
153
  value: t.id,
130
- id: "pui-tab-".concat(t.id),
131
- "aria-controls": "pui-panel-".concat(t.id),
154
+ id: tabDomId(t.id),
155
+ "aria-controls": tabPanelDomId(t.id),
132
156
  icon: t.icon,
133
157
  iconPosition: "start",
134
158
  label: /*#__PURE__*/_jsxs(Box, {
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","names":["React","MuiTabs","MuiTab","Box","jsx","_jsx","jsxs","_jsxs","defaultCountLabel","count","concat","TAB_INDICATOR_PROPS","Object","freeze","sx","backgroundColor","height","TABS_SX","borderBottom","minHeight","textTransform","fontSize","fontWeight","color","padding","outline","outlineOffset","borderRadius","TAB_LABEL_INNER_SX","display","alignItems","gap","COUNT_BADGE_SX","background","lineHeight","TABS_SLOT_PROPS","indicator","Tabs","_ref","value","onChange","items","_ref$ariaLabel","ariaLabel","handle","_e","v","variant","scrollButtons","slotProps","children","map","t","countAria","countLabel","undefined","id","icon","iconPosition","label","component"],"sources":["../../../../src/lib/v2/components/Tabs.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiTabs from \"@mui/material/Tabs\";\r\nimport MuiTab from \"@mui/material/Tab\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * Tabs - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Tabs\".\r\n *\r\n * 2-7 onglets max ; underline accent ; role=\"tablist\" ;\r\n * ←→ keyboard nav ; persists in URL via the host (?tab=…).\r\n *\r\n * R-Ar.6 - role=\"tablist\" / role=\"tab\" / aria-selected / aria-controls.\r\n *\r\n * <Tabs\r\n * value={tab}\r\n * onChange={setTab}\r\n * items={[\r\n * { id: \"overview\", label: \"Vue d'ensemble\" },\r\n * { id: \"history\", label: \"Historique\", count: 12 },\r\n * { id: \"files\", label: \"Pièces jointes\" },\r\n * ]}\r\n * aria-label=\"Sections du dossier\"\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * - `aria-label` is consumer-controlled (default \"Sections\").\r\n * - Per-item numeric counts announce \"${count} éléments\" by default.\r\n * Override per item with `countLabel` (string or fn(count)):\r\n * items={[{\r\n * id: \"history\",\r\n * label: t(\"tabs.history\"),\r\n * count: 12,\r\n * countLabel: (n) => t(\"tabs.history.count\", { count: n }),\r\n * }]}\r\n */\r\n\r\nexport interface TabItem {\r\n id: string;\r\n label: React.ReactNode;\r\n icon?: string | React.ReactElement | undefined;\r\n count?: number | undefined;\r\n countLabel?: string | ((count: number) => string) | undefined;\r\n}\r\n\r\nexport interface TabsProps {\r\n value?: string | undefined;\r\n onChange?: ((value: string) => void) | undefined;\r\n items: TabItem[];\r\n \"aria-label\"?: string | undefined;\r\n}\r\n\r\n// Default count announcement. Kept FR for back-compat; consumers\r\n// localise per item via the `countLabel` slot.\r\nfunction defaultCountLabel(count: number): string {\r\n return `${count} éléments`;\r\n}\r\n\r\n/* ── Hoisted static sx (D5) ─────────────────────────────────────────────\r\n * Frozen at module load. Each Tabs render reuses these references; emotion\r\n * skips serialization + cache lookup on identity.\r\n */\r\n\r\n// MUI v9: shape forwarded via slotProps.indicator (was TabIndicatorProps\r\n// in v5/v6/v7, deprecated v6, removed v9). The content { sx: {...} } is\r\n// unchanged — it's the same {sx} that the indicator slot consumes.\r\nconst TAB_INDICATOR_PROPS = Object.freeze({\r\n // Indicator thickness (2 px) is a visual constant, not a spacing value.\r\n // Charter §03 Tabs specifies 2 px underline.\r\n sx: { backgroundColor: \"var(--accent)\", height: 2 },\r\n});\r\n\r\nconst TABS_SX = Object.freeze({\r\n borderBottom: \"1px solid var(--border)\",\r\n // Tabs use the secondary-nav 40 px row height (charter §03 Tabs).\r\n // Below the 44 px tactile minimum; the underline indicator and the\r\n // row's full clickable area together carry the affordance.\r\n minHeight: 40,\r\n \"& .MuiTab-root\": {\r\n minHeight: 40,\r\n textTransform: \"none\",\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg-muted)\",\r\n padding: \"var(--s-2) var(--s-4)\",\r\n \"&.Mui-selected\": { color: \"var(--accent)\" },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n // B4 — inset focus ring via tokenised offset (Batch 11). Visual\r\n // choice for tabs so the ring doesn't extend past the tablist\r\n // border. Flows through --pui-outline-offset-inset alongside\r\n // DataGrid row focus.\r\n outlineOffset: \"var(--pui-outline-offset-inset)\",\r\n borderRadius: \"var(--r-sm)\",\r\n },\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TAB_LABEL_INNER_SX = Object.freeze({\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst COUNT_BADGE_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n padding: \"var(--s-1) var(--s-2)\",\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--bg-subtle)\",\r\n color: \"var(--fg-muted)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n});\r\n\r\n// MUI v9: slotProps wrapper for indicator. Hoisted alongside the rest of\r\n// the static-sx block so emotion / React skip re-allocation on every\r\n// render. The shape is { indicator: TAB_INDICATOR_PROPS }.\r\nconst TABS_SLOT_PROPS = Object.freeze({\r\n indicator: TAB_INDICATOR_PROPS,\r\n});\r\n\r\nfunction Tabs({ value, onChange, items, \"aria-label\": ariaLabel = \"Sections\" }: TabsProps) {\r\n const handle = (_e: React.SyntheticEvent, v: string) => onChange?.(v);\r\n return (\r\n <MuiTabs\r\n value={value}\r\n onChange={handle}\r\n aria-label={ariaLabel}\r\n variant=\"scrollable\"\r\n scrollButtons={false}\r\n slotProps={TABS_SLOT_PROPS}\r\n sx={TABS_SX}\r\n >\r\n {items.map((t) => {\r\n const countAria = t.count != null\r\n ? (typeof t.countLabel === \"function\"\r\n ? t.countLabel(t.count)\r\n : t.countLabel != null\r\n ? t.countLabel\r\n : defaultCountLabel(t.count))\r\n : undefined;\r\n\r\n return (\r\n <MuiTab\r\n key={t.id}\r\n value={t.id}\r\n id={`pui-tab-${t.id}`}\r\n aria-controls={`pui-panel-${t.id}`}\r\n icon={t.icon}\r\n iconPosition=\"start\"\r\n label={\r\n <Box sx={TAB_LABEL_INNER_SX}>\r\n <span>{t.label}</span>\r\n {t.count != null && (\r\n <Box\r\n component=\"span\"\r\n aria-label={countAria}\r\n sx={COUNT_BADGE_SX}\r\n >\r\n {t.count}\r\n </Box>\r\n )}\r\n </Box>\r\n }\r\n />\r\n );\r\n })}\r\n </MuiTabs>\r\n );\r\n}\r\n\r\nexport default Tabs;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Tabs.js","names":["React","MuiTabs","MuiTab","Box","jsx","_jsx","jsxs","_jsxs","tabDomId","id","tabPanelDomId","defaultCountLabel","count","TAB_INDICATOR_PROPS","Object","freeze","sx","backgroundColor","height","TABS_SX","borderBottom","minHeight","textTransform","fontSize","fontWeight","color","padding","outline","outlineOffset","borderRadius","TAB_LABEL_INNER_SX","display","alignItems","gap","COUNT_BADGE_SX","background","lineHeight","TABS_SLOT_PROPS","indicator","Tabs","value","onChange","items","ariaLabel","handle","_e","v","variant","scrollButtons","slotProps","children","map","t","countAria","countLabel","undefined","icon","iconPosition","label","component"],"sources":["../../../../src/lib/v2/components/Tabs.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiTabs from \"@mui/material/Tabs\";\r\nimport MuiTab from \"@mui/material/Tab\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * Tabs - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Tabs\".\r\n *\r\n * 2-7 onglets max ; underline accent ; role=\"tablist\" ;\r\n * ←→ keyboard nav ; persists in URL via the host (?tab=…).\r\n *\r\n * R-Ar.6 - role=\"tablist\" / role=\"tab\" / aria-selected / aria-controls.\r\n *\r\n * <Tabs\r\n * value={tab}\r\n * onChange={setTab}\r\n * items={[\r\n * { id: \"overview\", label: \"Vue d'ensemble\" },\r\n * { id: \"history\", label: \"Historique\", count: 12 },\r\n * { id: \"files\", label: \"Pièces jointes\" },\r\n * ]}\r\n * aria-label=\"Sections du dossier\"\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * - `aria-label` is consumer-controlled (default \"Sections\").\r\n * - Per-item numeric counts announce \"${count} éléments\" by default.\r\n * Override per item with `countLabel` (string or fn(count)):\r\n * items={[{\r\n * id: \"history\",\r\n * label: t(\"tabs.history\"),\r\n * count: 12,\r\n * countLabel: (n) => t(\"tabs.history.count\", { count: n }),\r\n * }]}\r\n */\r\n\r\nexport interface TabItem {\r\n id: string;\r\n label: React.ReactNode;\r\n icon?: string | React.ReactElement | undefined;\r\n count?: number | undefined;\r\n countLabel?: string | ((count: number) => string) | undefined;\r\n}\r\n\r\nexport interface TabsProps {\r\n value?: string | undefined;\r\n onChange?: ((value: string) => void) | undefined;\r\n items: TabItem[];\r\n \"aria-label\"?: string | undefined;\r\n}\r\n\r\n/**\r\n * DOM id of a tab, and of the panel it controls.\r\n *\r\n * ─── POURQUOI CES DEUX FONCTIONS SONT EXPORTÉES (gap G-46) ─────────────\r\n *\r\n * `Tabs` émet la MOITIÉ du contrat R-Ar.6 : chaque onglet porte son `id` et un\r\n * `aria-controls` vers `pui-panel-<id>`. L'autre moitié — le panneau qui porte\r\n * ce même id, `role=\"tabpanel\"` et `aria-labelledby` — appartient à l'hôte, et\r\n * la library ne la fournissait pas.\r\n *\r\n * Le format des ids était donc une connaissance PRIVÉE que chaque hôte devait\r\n * redupliquer en chaîne littérale. Une faute de frappe y est invisible : le\r\n * balisage reste valide, l'onglet annonce simplement un élément contrôlé qui\r\n * n'existe pas — et un `aria-controls` cassé est PIRE que son absence, puisque\r\n * la technologie d'assistance propose à l'utilisateur une relation qu'elle ne\r\n * peut ensuite pas suivre.\r\n *\r\n * Relevé depuis `addm-fe` (Area 5), où `ConsultDemande` rendait ses panneaux en\r\n * `{tab === \"x\" && <…/>}` nus : les deux onglets pointaient dans le vide, sans\r\n * `role` ni nom accessible sur le contenu. Le module avait écrit son propre\r\n * `TabPanel` en relisant la convention dans CE fichier — preuve que la\r\n * connaissance était requise et non publiée.\r\n */\r\nexport const tabDomId = (id: string): string => `pui-tab-${id}`;\r\nexport const tabPanelDomId = (id: string): string => `pui-panel-${id}`;\r\n\r\n// Default count announcement. Kept FR for back-compat; consumers\r\n// localise per item via the `countLabel` slot.\r\nfunction defaultCountLabel(count: number): string {\r\n return `${count} éléments`;\r\n}\r\n\r\n/* ── Hoisted static sx (D5) ─────────────────────────────────────────────\r\n * Frozen at module load. Each Tabs render reuses these references; emotion\r\n * skips serialization + cache lookup on identity.\r\n */\r\n\r\n// MUI v9: shape forwarded via slotProps.indicator (was TabIndicatorProps\r\n// in v5/v6/v7, deprecated v6, removed v9). The content { sx: {...} } is\r\n// unchanged — it's the same {sx} that the indicator slot consumes.\r\nconst TAB_INDICATOR_PROPS = Object.freeze({\r\n // Indicator thickness (2 px) is a visual constant, not a spacing value.\r\n // Charter §03 Tabs specifies 2 px underline.\r\n sx: { backgroundColor: \"var(--accent)\", height: 2 },\r\n});\r\n\r\nconst TABS_SX = Object.freeze({\r\n borderBottom: \"1px solid var(--border)\",\r\n // Tabs use the secondary-nav 40 px row height (charter §03 Tabs).\r\n // Below the 44 px tactile minimum; the underline indicator and the\r\n // row's full clickable area together carry the affordance.\r\n minHeight: 40,\r\n \"& .MuiTab-root\": {\r\n minHeight: 40,\r\n textTransform: \"none\",\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg-muted)\",\r\n padding: \"var(--s-2) var(--s-4)\",\r\n \"&.Mui-selected\": { color: \"var(--accent)\" },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n // B4 — inset focus ring via tokenised offset (Batch 11). Visual\r\n // choice for tabs so the ring doesn't extend past the tablist\r\n // border. Flows through --pui-outline-offset-inset alongside\r\n // DataGrid row focus.\r\n outlineOffset: \"var(--pui-outline-offset-inset)\",\r\n borderRadius: \"var(--r-sm)\",\r\n },\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TAB_LABEL_INNER_SX = Object.freeze({\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst COUNT_BADGE_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n padding: \"var(--s-1) var(--s-2)\",\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--bg-subtle)\",\r\n color: \"var(--fg-muted)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n});\r\n\r\n// MUI v9: slotProps wrapper for indicator. Hoisted alongside the rest of\r\n// the static-sx block so emotion / React skip re-allocation on every\r\n// render. The shape is { indicator: TAB_INDICATOR_PROPS }.\r\nconst TABS_SLOT_PROPS = Object.freeze({\r\n indicator: TAB_INDICATOR_PROPS,\r\n});\r\n\r\nfunction Tabs({ value, onChange, items, \"aria-label\": ariaLabel = \"Sections\" }: TabsProps) {\r\n const handle = (_e: React.SyntheticEvent, v: string) => onChange?.(v);\r\n return (\r\n <MuiTabs\r\n value={value}\r\n onChange={handle}\r\n aria-label={ariaLabel}\r\n variant=\"scrollable\"\r\n scrollButtons={false}\r\n slotProps={TABS_SLOT_PROPS}\r\n sx={TABS_SX}\r\n >\r\n {items.map((t) => {\r\n const countAria = t.count != null\r\n ? (typeof t.countLabel === \"function\"\r\n ? t.countLabel(t.count)\r\n : t.countLabel != null\r\n ? t.countLabel\r\n : defaultCountLabel(t.count))\r\n : undefined;\r\n\r\n return (\r\n <MuiTab\r\n key={t.id}\r\n value={t.id}\r\n id={tabDomId(t.id)}\r\n aria-controls={tabPanelDomId(t.id)}\r\n icon={t.icon}\r\n iconPosition=\"start\"\r\n label={\r\n <Box sx={TAB_LABEL_INNER_SX}>\r\n <span>{t.label}</span>\r\n {t.count != null && (\r\n <Box\r\n component=\"span\"\r\n aria-label={countAria}\r\n sx={COUNT_BADGE_SX}\r\n >\r\n {t.count}\r\n </Box>\r\n )}\r\n </Box>\r\n }\r\n />\r\n );\r\n })}\r\n </MuiTabs>\r\n );\r\n}\r\n\r\nexport default Tabs;\r\n"],"mappings":"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","ignoreList":[]}