@portnet/ui 6.0.1 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1011) hide show
  1. package/CHANGELOG.md +737 -0
  2. package/dist/esm/index.js +90 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
  5. package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
  7. package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
  9. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
  11. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FieldError.test.js +71 -39
  13. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  14. package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
  15. package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -18
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +173 -0
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +236 -0
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  24. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
  25. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +299 -0
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -43
  29. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  30. package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
  31. package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
  33. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  34. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
  35. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  36. package/dist/esm/v2/__tests__/apiError.test.js +50 -69
  37. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
  38. package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
  39. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
  40. package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
  41. package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
  42. package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
  43. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
  44. package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
  45. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
  46. package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
  47. package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
  48. package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
  49. package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
  50. package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
  51. package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
  52. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
  53. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  54. package/dist/esm/v2/__tests__/labels-merge.test.js +17 -22
  55. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  56. package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
  57. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
  58. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
  59. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  60. package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
  61. package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
  62. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
  63. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  64. package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
  65. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
  66. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
  67. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  68. package/dist/esm/v2/components/Accordion.js +48 -70
  69. package/dist/esm/v2/components/Accordion.js.map +1 -1
  70. package/dist/esm/v2/components/ActionStrip.js +31 -43
  71. package/dist/esm/v2/components/ActionStrip.js.map +1 -1
  72. package/dist/esm/v2/components/Banner.js +25 -22
  73. package/dist/esm/v2/components/Banner.js.map +1 -1
  74. package/dist/esm/v2/components/Busy.js +14 -19
  75. package/dist/esm/v2/components/Busy.js.map +1 -1
  76. package/dist/esm/v2/components/Button.js +34 -45
  77. package/dist/esm/v2/components/Button.js.map +1 -1
  78. package/dist/esm/v2/components/CategoryTag.js +44 -27
  79. package/dist/esm/v2/components/CategoryTag.js.map +1 -1
  80. package/dist/esm/v2/components/Checkbox.js +32 -38
  81. package/dist/esm/v2/components/Checkbox.js.map +1 -1
  82. package/dist/esm/v2/components/Chip.js +23 -36
  83. package/dist/esm/v2/components/Chip.js.map +1 -1
  84. package/dist/esm/v2/components/Combobox.js +112 -136
  85. package/dist/esm/v2/components/Combobox.js.map +1 -1
  86. package/dist/esm/v2/components/CommandPalette.js +113 -198
  87. package/dist/esm/v2/components/CommandPalette.js.map +1 -1
  88. package/dist/esm/v2/components/ConfirmDialog.js +36 -45
  89. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
  90. package/dist/esm/v2/components/DatePicker.js +78 -81
  91. package/dist/esm/v2/components/DatePicker.js.map +1 -1
  92. package/dist/esm/v2/components/DateRangePicker.js +63 -74
  93. package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
  94. package/dist/esm/v2/components/DateTimePicker.js +118 -90
  95. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  96. package/dist/esm/v2/components/Drawer.js +71 -65
  97. package/dist/esm/v2/components/Drawer.js.map +1 -1
  98. package/dist/esm/v2/components/Dropzone.js +130 -177
  99. package/dist/esm/v2/components/Dropzone.js.map +1 -1
  100. package/dist/esm/v2/components/EmptyState.js +9 -9
  101. package/dist/esm/v2/components/EmptyState.js.map +1 -1
  102. package/dist/esm/v2/components/FavoriteToggle.js +24 -33
  103. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
  104. package/dist/esm/v2/components/Field.js +210 -52
  105. package/dist/esm/v2/components/Field.js.map +1 -1
  106. package/dist/esm/v2/components/FieldError.js +9 -13
  107. package/dist/esm/v2/components/FieldError.js.map +1 -1
  108. package/dist/esm/v2/components/FieldHelp.js +28 -49
  109. package/dist/esm/v2/components/FieldHelp.js.map +1 -1
  110. package/dist/esm/v2/components/FileCard.js +14 -19
  111. package/dist/esm/v2/components/FileCard.js.map +1 -1
  112. package/dist/esm/v2/components/FilterTab.js +22 -31
  113. package/dist/esm/v2/components/FilterTab.js.map +1 -1
  114. package/dist/esm/v2/components/ForbiddenPage.js +28 -8
  115. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
  116. package/dist/esm/v2/components/FormGrid.js +48 -54
  117. package/dist/esm/v2/components/FormGrid.js.map +1 -1
  118. package/dist/esm/v2/components/FormikDisplay.js +98 -24
  119. package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
  120. package/dist/esm/v2/components/Input.js +75 -34
  121. package/dist/esm/v2/components/Input.js.map +1 -1
  122. package/dist/esm/v2/components/KPICard.js +42 -51
  123. package/dist/esm/v2/components/KPICard.js.map +1 -1
  124. package/dist/esm/v2/components/KPIStrip.js +9 -15
  125. package/dist/esm/v2/components/KPIStrip.js.map +1 -1
  126. package/dist/esm/v2/components/KV.js +16 -23
  127. package/dist/esm/v2/components/KV.js.map +1 -1
  128. package/dist/esm/v2/components/KVGrid.js +15 -23
  129. package/dist/esm/v2/components/KVGrid.js.map +1 -1
  130. package/dist/esm/v2/components/Layout.js +81 -117
  131. package/dist/esm/v2/components/Layout.js.map +1 -1
  132. package/dist/esm/v2/components/MobileRowCard.js +64 -75
  133. package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
  134. package/dist/esm/v2/components/Modal.js +44 -53
  135. package/dist/esm/v2/components/Modal.js.map +1 -1
  136. package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
  137. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
  138. package/dist/esm/v2/components/NotFoundPage.js +28 -9
  139. package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
  140. package/dist/esm/v2/components/NumberInput.js +77 -107
  141. package/dist/esm/v2/components/NumberInput.js.map +1 -1
  142. package/dist/esm/v2/components/OverflowMenu.js +24 -42
  143. package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
  144. package/dist/esm/v2/components/PdfViewer.js +24 -33
  145. package/dist/esm/v2/components/PdfViewer.js.map +1 -1
  146. package/dist/esm/v2/components/ProgressBar.js +28 -36
  147. package/dist/esm/v2/components/ProgressBar.js.map +1 -1
  148. package/dist/esm/v2/components/Radio.js +49 -57
  149. package/dist/esm/v2/components/Radio.js.map +1 -1
  150. package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
  151. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
  152. package/dist/esm/v2/components/SectionHeader.js +24 -31
  153. package/dist/esm/v2/components/SectionHeader.js.map +1 -1
  154. package/dist/esm/v2/components/Segmented.js +59 -84
  155. package/dist/esm/v2/components/Segmented.js.map +1 -1
  156. package/dist/esm/v2/components/Select.js +100 -138
  157. package/dist/esm/v2/components/Select.js.map +1 -1
  158. package/dist/esm/v2/components/ServerErrorPage.js +27 -10
  159. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
  160. package/dist/esm/v2/components/Skeleton.js +81 -96
  161. package/dist/esm/v2/components/Skeleton.js.map +1 -1
  162. package/dist/esm/v2/components/SkipLink.js +6 -7
  163. package/dist/esm/v2/components/SkipLink.js.map +1 -1
  164. package/dist/esm/v2/components/Spinner.js +13 -22
  165. package/dist/esm/v2/components/Spinner.js.map +1 -1
  166. package/dist/esm/v2/components/Status.js +14 -25
  167. package/dist/esm/v2/components/Status.js.map +1 -1
  168. package/dist/esm/v2/components/Stepper.js +68 -71
  169. package/dist/esm/v2/components/Stepper.js.map +1 -1
  170. package/dist/esm/v2/components/Surface.js +25 -44
  171. package/dist/esm/v2/components/Surface.js.map +1 -1
  172. package/dist/esm/v2/components/Switch.js +21 -29
  173. package/dist/esm/v2/components/Switch.js.map +1 -1
  174. package/dist/esm/v2/components/TabPanel.js +84 -0
  175. package/dist/esm/v2/components/TabPanel.js.map +1 -0
  176. package/dist/esm/v2/components/Tabs.js +43 -19
  177. package/dist/esm/v2/components/Tabs.js.map +1 -1
  178. package/dist/esm/v2/components/TelInput.js +75 -108
  179. package/dist/esm/v2/components/TelInput.js.map +1 -1
  180. package/dist/esm/v2/components/Textarea.js +21 -30
  181. package/dist/esm/v2/components/Textarea.js.map +1 -1
  182. package/dist/esm/v2/components/TimePicker.js +59 -69
  183. package/dist/esm/v2/components/TimePicker.js.map +1 -1
  184. package/dist/esm/v2/components/Toast.js +109 -163
  185. package/dist/esm/v2/components/Toast.js.map +1 -1
  186. package/dist/esm/v2/components/Tooltip.js +18 -31
  187. package/dist/esm/v2/components/Tooltip.js.map +1 -1
  188. package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
  189. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
  190. package/dist/esm/v2/components/_pickerShared.js +2 -2
  191. package/dist/esm/v2/components/_pickerShared.js.map +1 -1
  192. package/dist/esm/v2/components/index.js +64 -0
  193. package/dist/esm/v2/components/index.js.map +1 -1
  194. package/dist/esm/v2/hooks/index.js +62 -0
  195. package/dist/esm/v2/hooks/index.js.map +1 -1
  196. package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
  197. package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
  198. package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
  199. package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
  200. package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
  201. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
  202. package/dist/esm/v2/hooks/useDensity.js +13 -17
  203. package/dist/esm/v2/hooks/useDensity.js.map +1 -1
  204. package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
  205. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
  206. package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
  207. package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  208. package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
  209. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
  210. package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
  211. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
  212. package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
  213. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
  214. package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
  215. package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  216. package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
  217. package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  218. package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
  219. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
  220. package/dist/esm/v2/hooks/useSortedRows.js +3 -5
  221. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
  222. package/dist/esm/v2/hooks/useTabLoading.js +6 -21
  223. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
  224. package/dist/esm/v2/index.js +14 -4
  225. package/dist/esm/v2/index.js.map +1 -1
  226. package/dist/esm/v2/modalContext.js +2 -2
  227. package/dist/esm/v2/modalContext.js.map +1 -1
  228. package/dist/esm/v2/models/favorite.js.map +1 -1
  229. package/dist/esm/v2/models/personalization.js.map +1 -1
  230. package/dist/esm/v2/models/referentiel.js.map +1 -1
  231. package/dist/esm/v2/models/savedFilter.js.map +1 -1
  232. package/dist/esm/v2/patterns/ActionBar.js +115 -159
  233. package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
  234. package/dist/esm/v2/patterns/AppMain.js +108 -0
  235. package/dist/esm/v2/patterns/AppMain.js.map +1 -0
  236. package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
  237. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
  238. package/dist/esm/v2/patterns/ChartFigure.js +151 -0
  239. package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
  240. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
  241. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  242. package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
  243. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
  244. package/dist/esm/v2/patterns/DataGrid.js +221 -255
  245. package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
  246. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
  247. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  248. package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
  249. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
  250. package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
  251. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
  252. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
  253. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  254. package/dist/esm/v2/patterns/DetailSplit.js +108 -0
  255. package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
  256. package/dist/esm/v2/patterns/FavoriteColumn.js +26 -75
  257. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  258. package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
  259. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
  260. package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
  261. package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
  262. package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
  263. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
  264. package/dist/esm/v2/patterns/FormPageShell.js +43 -41
  265. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
  266. package/dist/esm/v2/patterns/FormSection.js +30 -38
  267. package/dist/esm/v2/patterns/FormSection.js.map +1 -1
  268. package/dist/esm/v2/patterns/FormikCheckbox.js +130 -0
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  270. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
  271. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  272. package/dist/esm/v2/patterns/FormikCombobox.js +51 -66
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +51 -99
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +136 -0
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  278. package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
  279. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
  280. package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
  281. package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
  282. package/dist/esm/v2/patterns/FormikFile.js +94 -78
  283. package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
  284. package/dist/esm/v2/patterns/FormikInput.js +40 -50
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +129 -0
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  288. package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
  289. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
  290. package/dist/esm/v2/patterns/FormikSelect.js +64 -84
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -43
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +64 -65
  295. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  296. package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
  297. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
  298. package/dist/esm/v2/patterns/PageContent.js +10 -14
  299. package/dist/esm/v2/patterns/PageContent.js.map +1 -1
  300. package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
  301. package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
  302. package/dist/esm/v2/patterns/ReferentielField.js +327 -312
  303. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
  304. package/dist/esm/v2/patterns/RowFavoriteToggle.js +127 -0
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  306. package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
  307. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
  308. package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
  309. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
  310. package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
  311. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
  312. package/dist/esm/v2/patterns/SortableHeader.js +22 -45
  313. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
  314. package/dist/esm/v2/patterns/Tour.js +94 -120
  315. package/dist/esm/v2/patterns/Tour.js.map +1 -1
  316. package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
  317. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
  318. package/dist/esm/v2/patterns/_pickerSerialisation.js +72 -0
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  320. package/dist/esm/v2/patterns/_sort.js +17 -33
  321. package/dist/esm/v2/patterns/_sort.js.map +1 -1
  322. package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
  323. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
  324. package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
  325. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
  326. package/dist/esm/v2/patterns/filterCriteria.js +102 -0
  327. package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
  328. package/dist/esm/v2/patterns/index.js +235 -0
  329. package/dist/esm/v2/patterns/index.js.map +1 -1
  330. package/dist/esm/v2/patterns/rowActions.js +223 -0
  331. package/dist/esm/v2/patterns/rowActions.js.map +1 -0
  332. package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
  333. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
  334. package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
  335. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
  336. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
  337. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  338. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
  339. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  340. package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
  341. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
  342. package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
  343. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
  344. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +203 -0
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  346. package/dist/esm/v2/personalization/capabilities/index.js +5 -0
  347. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
  348. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  349. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  350. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  351. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  352. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  353. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  354. package/dist/esm/v2/personalization/index.js +35 -0
  355. package/dist/esm/v2/personalization/index.js.map +1 -1
  356. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  357. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  358. package/dist/esm/v2/personalization/schema.js +8 -9
  359. package/dist/esm/v2/personalization/schema.js.map +1 -1
  360. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  361. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  362. package/dist/esm/v2/referentiel/types.js +2 -0
  363. package/dist/esm/v2/referentiel/types.js.map +1 -0
  364. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  365. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  367. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  368. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  369. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  370. package/dist/esm/v2/theme/_brand.js +8 -24
  371. package/dist/esm/v2/theme/_brand.js.map +1 -1
  372. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  373. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  374. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  375. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  376. package/dist/esm/v2/theme/cssVariables.js +62 -69
  377. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  378. package/dist/esm/v2/theme/index.js +5 -5
  379. package/dist/esm/v2/theme/index.js.map +1 -1
  380. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  381. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  382. package/dist/esm/v2/tokens/chart.js +261 -0
  383. package/dist/esm/v2/tokens/chart.js.map +1 -0
  384. package/dist/esm/v2/tokens/colors.js +22 -22
  385. package/dist/esm/v2/tokens/colors.js.map +1 -1
  386. package/dist/esm/v2/tokens/density.js +62 -7
  387. package/dist/esm/v2/tokens/density.js.map +1 -1
  388. package/dist/esm/v2/tokens/index.js +49 -34
  389. package/dist/esm/v2/tokens/index.js.map +1 -1
  390. package/dist/esm/v2/tokens/motion.js +12 -20
  391. package/dist/esm/v2/tokens/motion.js.map +1 -1
  392. package/dist/esm/v2/tokens/radius.js +1 -1
  393. package/dist/esm/v2/tokens/radius.js.map +1 -1
  394. package/dist/esm/v2/tokens/shadows.js +6 -6
  395. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  396. package/dist/esm/v2/tokens/spacing.js +2 -2
  397. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  398. package/dist/esm/v2/tokens/state.js +1 -1
  399. package/dist/esm/v2/tokens/state.js.map +1 -1
  400. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  401. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  402. package/dist/esm/v2/tokens/tokens.json +6 -1
  403. package/dist/esm/v2/tokens/typography.js +13 -13
  404. package/dist/esm/v2/tokens/typography.js.map +1 -1
  405. package/dist/esm/v2/tokens/zIndex.js +1 -1
  406. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  407. package/dist/esm/v2/types/datagrid.js.map +1 -1
  408. package/dist/esm/v2/utils/apiError.js +16 -37
  409. package/dist/esm/v2/utils/apiError.js.map +1 -1
  410. package/dist/esm/v2/utils/contrast.js +31 -32
  411. package/dist/esm/v2/utils/contrast.js.map +1 -1
  412. package/dist/esm/v2/utils/cx.js +5 -25
  413. package/dist/esm/v2/utils/cx.js.map +1 -1
  414. package/dist/esm/v2/utils/fileDownload.js +23 -26
  415. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  416. package/dist/esm/v2/utils/fileValidation.js +209 -0
  417. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtDate.js +111 -0
  419. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  420. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  421. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  422. package/dist/esm/v2/utils/formikErrors.js +78 -0
  423. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  424. package/dist/esm/v2/utils/index.js +35 -2
  425. package/dist/esm/v2/utils/index.js.map +1 -1
  426. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  427. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  428. package/dist/esm/v2/utils/networkStatus.js +12 -12
  429. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  430. package/dist/index.d.ts +9 -1
  431. package/dist/index.d.ts.map +1 -1
  432. package/dist/index.js +122 -47
  433. package/dist/index.js.map +1 -1
  434. package/dist/v2/__tests__/AppMain.test.js +133 -0
  435. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  436. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  437. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  438. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  439. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  440. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  441. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  442. package/dist/v2/__tests__/FieldError.test.js +98 -69
  443. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  444. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  445. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  446. package/dist/v2/__tests__/FieldWidth.test.js +148 -0
  447. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  448. package/dist/v2/__tests__/FileCard.test.js +45 -48
  449. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikCheckbox.test.js +175 -0
  451. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  452. package/dist/v2/__tests__/FormikDateTimePicker.test.js +237 -0
  453. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  455. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  456. package/dist/v2/__tests__/FormikRadioGroup.test.js +300 -0
  457. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  458. package/dist/v2/__tests__/MobileRowCard.test.js +100 -102
  459. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  460. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  461. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  462. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  463. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  464. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  465. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  466. package/dist/v2/__tests__/apiError.test.js +50 -69
  467. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  468. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  469. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  470. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  471. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  472. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  473. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  474. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  475. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  476. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  477. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  478. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  479. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  480. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  481. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  482. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  483. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  484. package/dist/v2/__tests__/labels-merge.test.js +38 -46
  485. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  486. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  487. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  488. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  489. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  490. package/dist/v2/__tests__/rowActions.test.js +186 -0
  491. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  493. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  494. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  495. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  496. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  497. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  498. package/dist/v2/components/Accordion.js +60 -82
  499. package/dist/v2/components/Accordion.js.map +1 -1
  500. package/dist/v2/components/ActionStrip.js +40 -52
  501. package/dist/v2/components/ActionStrip.js.map +1 -1
  502. package/dist/v2/components/Banner.js +42 -41
  503. package/dist/v2/components/Banner.js.map +1 -1
  504. package/dist/v2/components/Busy.js +22 -27
  505. package/dist/v2/components/Busy.js.map +1 -1
  506. package/dist/v2/components/Button.js +39 -50
  507. package/dist/v2/components/Button.js.map +1 -1
  508. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  509. package/dist/v2/components/CategoryTag.js +49 -32
  510. package/dist/v2/components/CategoryTag.js.map +1 -1
  511. package/dist/v2/components/Checkbox.js +39 -45
  512. package/dist/v2/components/Checkbox.js.map +1 -1
  513. package/dist/v2/components/Chip.js +29 -42
  514. package/dist/v2/components/Chip.js.map +1 -1
  515. package/dist/v2/components/Combobox.js +122 -144
  516. package/dist/v2/components/Combobox.js.map +1 -1
  517. package/dist/v2/components/CommandPalette.js +138 -225
  518. package/dist/v2/components/CommandPalette.js.map +1 -1
  519. package/dist/v2/components/ConfirmDialog.js +46 -56
  520. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  521. package/dist/v2/components/DatePicker.js +81 -86
  522. package/dist/v2/components/DatePicker.js.map +1 -1
  523. package/dist/v2/components/DateRangePicker.js +77 -87
  524. package/dist/v2/components/DateRangePicker.js.map +1 -1
  525. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  526. package/dist/v2/components/DateTimePicker.js +121 -95
  527. package/dist/v2/components/DateTimePicker.js.map +1 -1
  528. package/dist/v2/components/Drawer.d.ts.map +1 -1
  529. package/dist/v2/components/Drawer.js +93 -88
  530. package/dist/v2/components/Drawer.js.map +1 -1
  531. package/dist/v2/components/Dropzone.js +150 -196
  532. package/dist/v2/components/Dropzone.js.map +1 -1
  533. package/dist/v2/components/EmptyState.js +18 -20
  534. package/dist/v2/components/EmptyState.js.map +1 -1
  535. package/dist/v2/components/FavoriteToggle.js +28 -39
  536. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  537. package/dist/v2/components/Field.d.ts +121 -5
  538. package/dist/v2/components/Field.d.ts.map +1 -1
  539. package/dist/v2/components/Field.js +221 -62
  540. package/dist/v2/components/Field.js.map +1 -1
  541. package/dist/v2/components/FieldError.js +18 -21
  542. package/dist/v2/components/FieldError.js.map +1 -1
  543. package/dist/v2/components/FieldHelp.js +40 -60
  544. package/dist/v2/components/FieldHelp.js.map +1 -1
  545. package/dist/v2/components/FileCard.js +27 -31
  546. package/dist/v2/components/FileCard.js.map +1 -1
  547. package/dist/v2/components/FilterTab.js +30 -38
  548. package/dist/v2/components/FilterTab.js.map +1 -1
  549. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  550. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  551. package/dist/v2/components/ForbiddenPage.js +37 -17
  552. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  553. package/dist/v2/components/FormGrid.js +53 -59
  554. package/dist/v2/components/FormGrid.js.map +1 -1
  555. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  556. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  557. package/dist/v2/components/FormikDisplay.js +108 -33
  558. package/dist/v2/components/FormikDisplay.js.map +1 -1
  559. package/dist/v2/components/Input.d.ts +40 -0
  560. package/dist/v2/components/Input.d.ts.map +1 -1
  561. package/dist/v2/components/Input.js +81 -41
  562. package/dist/v2/components/Input.js.map +1 -1
  563. package/dist/v2/components/KPICard.js +57 -67
  564. package/dist/v2/components/KPICard.js.map +1 -1
  565. package/dist/v2/components/KPIStrip.js +16 -22
  566. package/dist/v2/components/KPIStrip.js.map +1 -1
  567. package/dist/v2/components/KV.js +25 -31
  568. package/dist/v2/components/KV.js.map +1 -1
  569. package/dist/v2/components/KVGrid.js +19 -26
  570. package/dist/v2/components/KVGrid.js.map +1 -1
  571. package/dist/v2/components/Layout.js +91 -120
  572. package/dist/v2/components/Layout.js.map +1 -1
  573. package/dist/v2/components/MobileRowCard.js +79 -91
  574. package/dist/v2/components/MobileRowCard.js.map +1 -1
  575. package/dist/v2/components/Modal.js +61 -69
  576. package/dist/v2/components/Modal.js.map +1 -1
  577. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  578. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  579. package/dist/v2/components/NetworkErrorPage.js +38 -21
  580. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  581. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  582. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  583. package/dist/v2/components/NotFoundPage.js +37 -18
  584. package/dist/v2/components/NotFoundPage.js.map +1 -1
  585. package/dist/v2/components/NumberInput.js +88 -118
  586. package/dist/v2/components/NumberInput.js.map +1 -1
  587. package/dist/v2/components/OverflowMenu.js +38 -56
  588. package/dist/v2/components/OverflowMenu.js.map +1 -1
  589. package/dist/v2/components/PdfViewer.js +34 -45
  590. package/dist/v2/components/PdfViewer.js.map +1 -1
  591. package/dist/v2/components/ProgressBar.js +42 -49
  592. package/dist/v2/components/ProgressBar.js.map +1 -1
  593. package/dist/v2/components/Radio.js +59 -67
  594. package/dist/v2/components/Radio.js.map +1 -1
  595. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  596. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  597. package/dist/v2/components/SectionHeader.js +34 -41
  598. package/dist/v2/components/SectionHeader.js.map +1 -1
  599. package/dist/v2/components/Segmented.js +69 -93
  600. package/dist/v2/components/Segmented.js.map +1 -1
  601. package/dist/v2/components/Select.d.ts +26 -2
  602. package/dist/v2/components/Select.d.ts.map +1 -1
  603. package/dist/v2/components/Select.js +120 -155
  604. package/dist/v2/components/Select.js.map +1 -1
  605. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  606. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  607. package/dist/v2/components/ServerErrorPage.js +37 -20
  608. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  609. package/dist/v2/components/Skeleton.js +86 -100
  610. package/dist/v2/components/Skeleton.js.map +1 -1
  611. package/dist/v2/components/SkipLink.js +9 -12
  612. package/dist/v2/components/SkipLink.js.map +1 -1
  613. package/dist/v2/components/Spinner.js +16 -25
  614. package/dist/v2/components/Spinner.js.map +1 -1
  615. package/dist/v2/components/Status.js +18 -29
  616. package/dist/v2/components/Status.js.map +1 -1
  617. package/dist/v2/components/Stepper.js +80 -82
  618. package/dist/v2/components/Stepper.js.map +1 -1
  619. package/dist/v2/components/Surface.js +34 -49
  620. package/dist/v2/components/Surface.js.map +1 -1
  621. package/dist/v2/components/Switch.js +29 -37
  622. package/dist/v2/components/Switch.js.map +1 -1
  623. package/dist/v2/components/TabPanel.d.ts +17 -0
  624. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  625. package/dist/v2/components/TabPanel.js +90 -0
  626. package/dist/v2/components/TabPanel.js.map +1 -0
  627. package/dist/v2/components/Tabs.d.ts +25 -0
  628. package/dist/v2/components/Tabs.d.ts.map +1 -1
  629. package/dist/v2/components/Tabs.js +53 -29
  630. package/dist/v2/components/Tabs.js.map +1 -1
  631. package/dist/v2/components/TelInput.js +80 -115
  632. package/dist/v2/components/TelInput.js.map +1 -1
  633. package/dist/v2/components/Textarea.js +26 -35
  634. package/dist/v2/components/Textarea.js.map +1 -1
  635. package/dist/v2/components/TimePicker.js +62 -74
  636. package/dist/v2/components/TimePicker.js.map +1 -1
  637. package/dist/v2/components/Toast.js +119 -174
  638. package/dist/v2/components/Toast.js.map +1 -1
  639. package/dist/v2/components/Tooltip.js +23 -38
  640. package/dist/v2/components/Tooltip.js.map +1 -1
  641. package/dist/v2/components/_ErrorPageBody.js +15 -16
  642. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  643. package/dist/v2/components/_pickerShared.js +5 -5
  644. package/dist/v2/components/_pickerShared.js.map +1 -1
  645. package/dist/v2/components/index.d.ts +67 -1
  646. package/dist/v2/components/index.d.ts.map +1 -1
  647. package/dist/v2/components/index.js +153 -136
  648. package/dist/v2/components/index.js.map +1 -1
  649. package/dist/v2/hooks/index.d.ts +65 -0
  650. package/dist/v2/hooks/index.d.ts.map +1 -1
  651. package/dist/v2/hooks/index.js +63 -24
  652. package/dist/v2/hooks/index.js.map +1 -1
  653. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  654. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  655. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  656. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  657. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  658. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  659. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  660. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  661. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  662. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  663. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  664. package/dist/v2/hooks/useDensity.js +14 -18
  665. package/dist/v2/hooks/useDensity.js.map +1 -1
  666. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  667. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  668. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  669. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  670. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  671. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  672. package/dist/v2/hooks/useFocusTrap.js +20 -24
  673. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  674. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  675. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  676. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  677. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  678. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  679. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  680. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  681. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  682. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  683. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  684. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  685. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  687. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  688. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  689. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  690. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  691. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  692. package/dist/v2/hooks/useSortedRows.js +4 -6
  693. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  694. package/dist/v2/hooks/useTabLoading.js +7 -22
  695. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  696. package/dist/v2/index.d.ts.map +1 -1
  697. package/dist/v2/index.js +143 -145
  698. package/dist/v2/index.js.map +1 -1
  699. package/dist/v2/modalContext.js +2 -2
  700. package/dist/v2/modalContext.js.map +1 -1
  701. package/dist/v2/models/favorite.d.ts +8 -9
  702. package/dist/v2/models/favorite.d.ts.map +1 -1
  703. package/dist/v2/models/favorite.js.map +1 -1
  704. package/dist/v2/models/index.js +4 -4
  705. package/dist/v2/models/index.js.map +1 -1
  706. package/dist/v2/models/personalization.d.ts +44 -48
  707. package/dist/v2/models/personalization.d.ts.map +1 -1
  708. package/dist/v2/models/personalization.js.map +1 -1
  709. package/dist/v2/models/referentiel.d.ts +32 -50
  710. package/dist/v2/models/referentiel.d.ts.map +1 -1
  711. package/dist/v2/models/referentiel.js.map +1 -1
  712. package/dist/v2/models/savedFilter.d.ts +8 -17
  713. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  714. package/dist/v2/models/savedFilter.js.map +1 -1
  715. package/dist/v2/patterns/ActionBar.js +152 -187
  716. package/dist/v2/patterns/ActionBar.js.map +1 -1
  717. package/dist/v2/patterns/AppMain.d.ts +109 -0
  718. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  719. package/dist/v2/patterns/AppMain.js +115 -0
  720. package/dist/v2/patterns/AppMain.js.map +1 -0
  721. package/dist/v2/patterns/BulkActionBar.js +40 -42
  722. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  723. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  724. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  725. package/dist/v2/patterns/ChartFigure.js +159 -0
  726. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  727. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  728. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  729. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  730. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  731. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGrid.js +262 -297
  733. package/dist/v2/patterns/DataGrid.js.map +1 -1
  734. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  735. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  736. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  737. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  738. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  739. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  740. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  741. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  742. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  743. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  744. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  745. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  746. package/dist/v2/patterns/DetailSplit.js +116 -0
  747. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  748. package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
  749. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  750. package/dist/v2/patterns/FavoriteColumn.js +32 -80
  751. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  752. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  753. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  754. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  755. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  756. package/dist/v2/patterns/FilterTabBar.js +120 -0
  757. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  758. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  759. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  760. package/dist/v2/patterns/FormPageShell.js +53 -50
  761. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  762. package/dist/v2/patterns/FormSection.d.ts +8 -3
  763. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormSection.js +44 -51
  765. package/dist/v2/patterns/FormSection.js.map +1 -1
  766. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  767. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  768. package/dist/v2/patterns/FormikCheckbox.js +138 -0
  769. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  770. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  771. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  772. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  773. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  774. package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
  775. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  776. package/dist/v2/patterns/FormikCombobox.js +55 -69
  777. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  778. package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
  779. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikDatePicker.js +59 -106
  781. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  782. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  783. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  784. package/dist/v2/patterns/FormikDateTimePicker.js +144 -0
  785. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  786. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  787. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  788. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  789. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  790. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  791. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  792. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  793. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  794. package/dist/v2/patterns/FormikFile.js +99 -83
  795. package/dist/v2/patterns/FormikFile.js.map +1 -1
  796. package/dist/v2/patterns/FormikInput.d.ts +11 -1
  797. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  798. package/dist/v2/patterns/FormikInput.js +45 -55
  799. package/dist/v2/patterns/FormikInput.js.map +1 -1
  800. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  801. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  802. package/dist/v2/patterns/FormikRadioGroup.js +137 -0
  803. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  804. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  805. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  807. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/FormikSelect.d.ts +9 -1
  809. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  810. package/dist/v2/patterns/FormikSelect.js +70 -89
  811. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  812. package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
  813. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  814. package/dist/v2/patterns/FormikTextarea.js +35 -48
  815. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  816. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
  817. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  818. package/dist/v2/patterns/KeyboardShortcutsHelp.js +71 -74
  819. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  820. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  821. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  822. package/dist/v2/patterns/PageContent.js +17 -20
  823. package/dist/v2/patterns/PageContent.js.map +1 -1
  824. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  825. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  826. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  827. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  828. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  829. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  830. package/dist/v2/patterns/ReferentielField.js +347 -327
  831. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  832. package/dist/v2/patterns/RowFavoriteToggle.d.ts +98 -0
  833. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  834. package/dist/v2/patterns/RowFavoriteToggle.js +135 -0
  835. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  836. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  837. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  838. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  839. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  840. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  841. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  842. package/dist/v2/patterns/SortableHeader.js +35 -57
  843. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  844. package/dist/v2/patterns/Tour.js +121 -142
  845. package/dist/v2/patterns/Tour.js.map +1 -1
  846. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  847. package/dist/v2/patterns/_dataGridShared.js +131 -147
  848. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  849. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  850. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  851. package/dist/v2/patterns/_pickerSerialisation.js +80 -0
  852. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  853. package/dist/v2/patterns/_sort.js +17 -33
  854. package/dist/v2/patterns/_sort.js.map +1 -1
  855. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  856. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  857. package/dist/v2/patterns/_useColumnResize.js +80 -99
  858. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  859. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  860. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  861. package/dist/v2/patterns/filterCriteria.js +110 -0
  862. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  863. package/dist/v2/patterns/index.d.ts +247 -0
  864. package/dist/v2/patterns/index.d.ts.map +1 -1
  865. package/dist/v2/patterns/index.js +182 -70
  866. package/dist/v2/patterns/index.js.map +1 -1
  867. package/dist/v2/patterns/rowActions.d.ts +150 -0
  868. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  869. package/dist/v2/patterns/rowActions.js +232 -0
  870. package/dist/v2/patterns/rowActions.js.map +1 -0
  871. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  872. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  873. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  874. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  875. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  876. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  877. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  878. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  879. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  880. package/dist/v2/personalization/adapters/index.js +5 -5
  881. package/dist/v2/personalization/adapters/index.js.map +1 -1
  882. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  883. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  884. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  885. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  886. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  887. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  888. package/dist/v2/personalization/capabilities/gridPreferences.js +210 -0
  889. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  890. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  891. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  892. package/dist/v2/personalization/capabilities/index.js +23 -10
  893. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  894. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  895. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  896. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  897. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  898. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  899. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  900. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  901. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  902. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  903. package/dist/v2/personalization/index.d.ts +34 -0
  904. package/dist/v2/personalization/index.d.ts.map +1 -1
  905. package/dist/v2/personalization/index.js +41 -21
  906. package/dist/v2/personalization/index.js.map +1 -1
  907. package/dist/v2/personalization/personalizationContext.js +10 -12
  908. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  909. package/dist/v2/personalization/schema.js +8 -9
  910. package/dist/v2/personalization/schema.js.map +1 -1
  911. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  912. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  913. package/dist/v2/referentiel/index.js +11 -13
  914. package/dist/v2/referentiel/index.js.map +1 -1
  915. package/dist/v2/referentiel/types.d.ts +105 -0
  916. package/dist/v2/referentiel/types.d.ts.map +1 -0
  917. package/dist/v2/referentiel/types.js +6 -0
  918. package/dist/v2/referentiel/types.js.map +1 -0
  919. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  920. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  921. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  922. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  923. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  924. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  925. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  926. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  927. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  928. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  929. package/dist/v2/theme/_brand.js +12 -26
  930. package/dist/v2/theme/_brand.js.map +1 -1
  931. package/dist/v2/theme/_brandSecondary.js +12 -26
  932. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  933. package/dist/v2/theme/createPortnetTheme.js +41 -49
  934. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  935. package/dist/v2/theme/cssVariables.d.ts +3 -3
  936. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  937. package/dist/v2/theme/cssVariables.js +65 -70
  938. package/dist/v2/theme/cssVariables.js.map +1 -1
  939. package/dist/v2/theme/index.js +10 -10
  940. package/dist/v2/theme/index.js.map +1 -1
  941. package/dist/v2/tokens/breakpoints.js +16 -16
  942. package/dist/v2/tokens/breakpoints.js.map +1 -1
  943. package/dist/v2/tokens/chart.d.ts +103 -0
  944. package/dist/v2/tokens/chart.d.ts.map +1 -0
  945. package/dist/v2/tokens/chart.js +270 -0
  946. package/dist/v2/tokens/chart.js.map +1 -0
  947. package/dist/v2/tokens/colors.js +24 -24
  948. package/dist/v2/tokens/colors.js.map +1 -1
  949. package/dist/v2/tokens/density.d.ts +104 -0
  950. package/dist/v2/tokens/density.d.ts.map +1 -1
  951. package/dist/v2/tokens/density.js +67 -12
  952. package/dist/v2/tokens/density.js.map +1 -1
  953. package/dist/v2/tokens/index.d.ts +50 -1
  954. package/dist/v2/tokens/index.d.ts.map +1 -1
  955. package/dist/v2/tokens/index.js +116 -68
  956. package/dist/v2/tokens/index.js.map +1 -1
  957. package/dist/v2/tokens/motion.js +16 -22
  958. package/dist/v2/tokens/motion.js.map +1 -1
  959. package/dist/v2/tokens/radius.js +3 -3
  960. package/dist/v2/tokens/radius.js.map +1 -1
  961. package/dist/v2/tokens/shadows.js +8 -8
  962. package/dist/v2/tokens/shadows.js.map +1 -1
  963. package/dist/v2/tokens/spacing.js +4 -4
  964. package/dist/v2/tokens/spacing.js.map +1 -1
  965. package/dist/v2/tokens/state.js +3 -3
  966. package/dist/v2/tokens/state.js.map +1 -1
  967. package/dist/v2/tokens/statusPalette.js +21 -23
  968. package/dist/v2/tokens/statusPalette.js.map +1 -1
  969. package/dist/v2/tokens/tokens.json +6 -1
  970. package/dist/v2/tokens/typography.js +15 -15
  971. package/dist/v2/tokens/typography.js.map +1 -1
  972. package/dist/v2/tokens/zIndex.js +3 -3
  973. package/dist/v2/tokens/zIndex.js.map +1 -1
  974. package/dist/v2/types/datagrid.d.ts +9 -1
  975. package/dist/v2/types/datagrid.d.ts.map +1 -1
  976. package/dist/v2/types/datagrid.js.map +1 -1
  977. package/dist/v2/types/index.js +2 -2
  978. package/dist/v2/types/index.js.map +1 -1
  979. package/dist/v2/utils/apiError.js +16 -37
  980. package/dist/v2/utils/apiError.js.map +1 -1
  981. package/dist/v2/utils/contrast.js +31 -32
  982. package/dist/v2/utils/contrast.js.map +1 -1
  983. package/dist/v2/utils/cx.js +7 -27
  984. package/dist/v2/utils/cx.js.map +1 -1
  985. package/dist/v2/utils/fileDownload.js +25 -28
  986. package/dist/v2/utils/fileDownload.js.map +1 -1
  987. package/dist/v2/utils/fileValidation.d.ts +116 -0
  988. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  989. package/dist/v2/utils/fileValidation.js +220 -0
  990. package/dist/v2/utils/fileValidation.js.map +1 -0
  991. package/dist/v2/utils/fmtDate.d.ts +103 -0
  992. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  993. package/dist/v2/utils/fmtDate.js +119 -0
  994. package/dist/v2/utils/fmtDate.js.map +1 -0
  995. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  996. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  997. package/dist/v2/utils/fmtMoney.js +9 -11
  998. package/dist/v2/utils/fmtMoney.js.map +1 -1
  999. package/dist/v2/utils/formikErrors.d.ts +67 -0
  1000. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  1001. package/dist/v2/utils/formikErrors.js +85 -0
  1002. package/dist/v2/utils/formikErrors.js.map +1 -0
  1003. package/dist/v2/utils/index.d.ts +5 -0
  1004. package/dist/v2/utils/index.d.ts.map +1 -1
  1005. package/dist/v2/utils/index.js +67 -18
  1006. package/dist/v2/utils/index.js.map +1 -1
  1007. package/dist/v2/utils/mergeLabels.js +9 -14
  1008. package/dist/v2/utils/mergeLabels.js.map +1 -1
  1009. package/dist/v2/utils/networkStatus.js +14 -14
  1010. package/dist/v2/utils/networkStatus.js.map +1 -1
  1011. package/package.json +26 -9
@@ -23,6 +23,10 @@
23
23
  * />
24
24
  * );
25
25
  * }
26
+ *
27
+ * Localisation (P-4): every visible string is overridable through
28
+ * `labels`, defaulting to French. The shape matches the other three
29
+ * error pages so one translation object can serve all of them.
26
30
  */
27
31
  import Box from "@mui/material/Box";
28
32
  import ArrowBack from "@mui/icons-material/ArrowBack";
@@ -30,16 +34,29 @@ import ErrorOutline from "@mui/icons-material/ErrorOutlined";
30
34
  import ActionBar from "../patterns/ActionBar";
31
35
  import Button from "./Button";
32
36
  import ErrorPageBody from "./_ErrorPageBody";
37
+ import { mergeLabels } from "../utils/mergeLabels";
33
38
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
34
- function ServerErrorPage(_ref) {
35
- var onBack = _ref.onBack,
36
- onHome = _ref.onHome,
37
- onRetry = _ref.onRetry;
39
+ const DEFAULT_LABELS = Object.freeze({
40
+ breadcrumbRoot: "Erreur",
41
+ breadcrumbCurrent: "Erreur serveur",
42
+ title: "Erreur serveur",
43
+ heading: "Le serveur a rencontré une erreur",
44
+ description: "Le service est momentanément indisponible. Réessayez dans quelques instants. Si le problème persiste, contactez le support en mentionnant le code 500.",
45
+ retry: "Réessayer",
46
+ home: "Retour à l'accueil"
47
+ });
48
+ function ServerErrorPage({
49
+ onBack,
50
+ onHome,
51
+ onRetry,
52
+ labels
53
+ }) {
54
+ const L = mergeLabels(DEFAULT_LABELS, labels);
38
55
  return /*#__PURE__*/_jsxs(_Fragment, {
39
56
  children: [/*#__PURE__*/_jsx(ActionBar, {
40
57
  back: onBack,
41
- breadcrumb: ["Erreur", "Erreur serveur"],
42
- title: "Erreur serveur"
58
+ breadcrumb: [L.breadcrumbRoot, L.breadcrumbCurrent],
59
+ title: L.title
43
60
  }), /*#__PURE__*/_jsx(ErrorPageBody, {
44
61
  icon: /*#__PURE__*/_jsx(ErrorOutline, {
45
62
  sx: {
@@ -48,8 +65,8 @@ function ServerErrorPage(_ref) {
48
65
  }
49
66
  }),
50
67
  code: "500",
51
- title: "Le serveur a rencontr\xE9 une erreur",
52
- description: "Le service est momentan\xE9ment indisponible. R\xE9essayez dans quelques instants. Si le probl\xE8me persiste, contactez le support en mentionnant le code 500."
68
+ title: L.heading,
69
+ description: L.description
53
70
  }), /*#__PURE__*/_jsxs(Box, {
54
71
  sx: {
55
72
  display: "flex",
@@ -60,12 +77,12 @@ function ServerErrorPage(_ref) {
60
77
  children: [onRetry ? /*#__PURE__*/_jsx(Button, {
61
78
  variant: "ghost",
62
79
  onClick: onRetry,
63
- children: "R\xE9essayer"
80
+ children: L.retry
64
81
  }) : null, /*#__PURE__*/_jsx(Button, {
65
82
  variant: "primary",
66
83
  icon: /*#__PURE__*/_jsx(ArrowBack, {}),
67
84
  onClick: onHome,
68
- children: "Retour \xE0 l'accueil"
85
+ children: L.home
69
86
  })]
70
87
  })]
71
88
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ServerErrorPage.js","names":["Box","ArrowBack","ErrorOutline","ActionBar","Button","ErrorPageBody","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ServerErrorPage","_ref","onBack","onHome","onRetry","children","back","breadcrumb","title","icon","sx","fontSize","color","code","description","display","justifyContent","gap","paddingBottom","variant","onClick"],"sources":["../../../../src/lib/v2/components/ServerErrorPage.tsx"],"sourcesContent":["/**\r\n * ServerErrorPage — Portnet UI v2 (component)\r\n *\r\n * Charter §07 · 500 / Erreur serveur.\r\n *\r\n * Adds an optional onRetry callback on top of the ForbiddenPage /\r\n * NotFoundPage contract. The retry button is only rendered when\r\n * onRetry is supplied — the lib deliberately avoids defaulting it\r\n * to window.location.reload() because that policy belongs to the\r\n * host (some hosts may prefer cache-clear, axios retry, backoff,\r\n * or a route-level revalidation).\r\n *\r\n * import { ServerErrorPage } from \"@portnet/ui/lib/v2\";\r\n * import { useNavigate } from \"react-router-dom\";\r\n *\r\n * function ServerErrorRoute() {\r\n * const navigate = useNavigate();\r\n * return (\r\n * <ServerErrorPage\r\n * onBack={() => navigate(-1)}\r\n * onHome={() => navigate(\"/\")}\r\n * onRetry={() => window.location.reload()}\r\n * />\r\n * );\r\n * }\r\n */\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport ErrorOutline from \"@mui/icons-material/ErrorOutlined\";\r\nimport ActionBar from \"../patterns/ActionBar\";\r\nimport Button from \"./Button\";\r\nimport ErrorPageBody from \"./_ErrorPageBody\";\r\n\r\nexport interface ServerErrorPageProps {\r\n /** Callback for the back button (top-bar arrow). */\r\n onBack: () => void;\r\n /** Callback for the primary \"Retour à l'accueil\" CTA. */\r\n onHome: () => void;\r\n /** Optional retry callback. When omitted, the Réessayer button is hidden. */\r\n onRetry?: (() => void) | undefined;\r\n}\r\n\r\nfunction ServerErrorPage({ onBack, onHome, onRetry }: ServerErrorPageProps) {\r\n return (\r\n <>\r\n <ActionBar\r\n back={onBack}\r\n breadcrumb={[\"Erreur\", \"Erreur serveur\"]}\r\n title=\"Erreur serveur\"\r\n />\r\n <ErrorPageBody\r\n icon={<ErrorOutline sx={{ fontSize: 64, color: \"var(--danger)\" }} />}\r\n code=\"500\"\r\n title=\"Le serveur a rencontré une erreur\"\r\n description=\"Le service est momentanément indisponible. Réessayez dans quelques instants. Si le problème persiste, contactez le support en mentionnant le code 500.\"\r\n />\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n gap: \"var(--s-3)\",\r\n paddingBottom: \"var(--s-7)\",\r\n }}\r\n >\r\n {onRetry ? (\r\n <Button variant=\"ghost\" onClick={onRetry}>\r\n Réessayer\r\n </Button>\r\n ) : null}\r\n <Button variant=\"primary\" icon={<ArrowBack />} onClick={onHome}>\r\n Retour à l'accueil\r\n </Button>\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nexport default ServerErrorPage;\r\n"],"mappings":"AAAA;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,OAAOA,GAAG,MAAM,mBAAmB;AACnC,OAAOC,SAAS,MAAM,+BAA+B;AACrD,OAAOC,YAAY,MAAM,mCAAmC;AAC5D,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,aAAa,MAAM,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAW7C,SAASC,eAAeA,CAAAC,IAAA,EAAoD;EAAA,IAAjDC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;EAChD,oBACEP,KAAA,CAAAE,SAAA;IAAAM,QAAA,gBACEV,IAAA,CAACJ,SAAS;MACRe,IAAI,EAAEJ,MAAO;MACbK,UAAU,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAE;MACzCC,KAAK,EAAC;IAAgB,CACvB,CAAC,eACFb,IAAA,CAACF,aAAa;MACZgB,IAAI,eAAEd,IAAA,CAACL,YAAY;QAACoB,EAAE,EAAE;UAAEC,QAAQ,EAAE,EAAE;UAAEC,KAAK,EAAE;QAAgB;MAAE,CAAE,CAAE;MACrEC,IAAI,EAAC,KAAK;MACVL,KAAK,EAAC,sCAAmC;MACzCM,WAAW,EAAC;IAAwJ,CACrK,CAAC,eACFjB,KAAA,CAACT,GAAG;MACFsB,EAAE,EAAE;QACFK,OAAO,EAAS,MAAM;QACtBC,cAAc,EAAE,QAAQ;QACxBC,GAAG,EAAa,YAAY;QAC5BC,aAAa,EAAG;MAClB,CAAE;MAAAb,QAAA,GAEDD,OAAO,gBACNT,IAAA,CAACH,MAAM;QAAC2B,OAAO,EAAC,OAAO;QAACC,OAAO,EAAEhB,OAAQ;QAAAC,QAAA,EAAC;MAE1C,CAAQ,CAAC,GACP,IAAI,eACRV,IAAA,CAACH,MAAM;QAAC2B,OAAO,EAAC,SAAS;QAACV,IAAI,eAAEd,IAAA,CAACN,SAAS,IAAE,CAAE;QAAC+B,OAAO,EAAEjB,MAAO;QAAAE,QAAA,EAAC;MAEhE,CAAQ,CAAC;IAAA,CACN,CAAC;EAAA,CACN,CAAC;AAEP;AAEA,eAAeL,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"ServerErrorPage.js","names":["Box","ArrowBack","ErrorOutline","ActionBar","Button","ErrorPageBody","mergeLabels","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_LABELS","Object","freeze","breadcrumbRoot","breadcrumbCurrent","title","heading","description","retry","home","ServerErrorPage","onBack","onHome","onRetry","labels","L","children","back","breadcrumb","icon","sx","fontSize","color","code","display","justifyContent","gap","paddingBottom","variant","onClick"],"sources":["../../../../src/lib/v2/components/ServerErrorPage.tsx"],"sourcesContent":["/**\r\n * ServerErrorPage — Portnet UI v2 (component)\r\n *\r\n * Charter §07 · 500 / Erreur serveur.\r\n *\r\n * Adds an optional onRetry callback on top of the ForbiddenPage /\r\n * NotFoundPage contract. The retry button is only rendered when\r\n * onRetry is supplied — the lib deliberately avoids defaulting it\r\n * to window.location.reload() because that policy belongs to the\r\n * host (some hosts may prefer cache-clear, axios retry, backoff,\r\n * or a route-level revalidation).\r\n *\r\n * import { ServerErrorPage } from \"@portnet/ui/lib/v2\";\r\n * import { useNavigate } from \"react-router-dom\";\r\n *\r\n * function ServerErrorRoute() {\r\n * const navigate = useNavigate();\r\n * return (\r\n * <ServerErrorPage\r\n * onBack={() => navigate(-1)}\r\n * onHome={() => navigate(\"/\")}\r\n * onRetry={() => window.location.reload()}\r\n * />\r\n * );\r\n * }\r\n *\r\n * Localisation (P-4): every visible string is overridable through\r\n * `labels`, defaulting to French. The shape matches the other three\r\n * error pages so one translation object can serve all of them.\r\n */\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport ErrorOutline from \"@mui/icons-material/ErrorOutlined\";\r\nimport ActionBar from \"../patterns/ActionBar\";\r\nimport Button from \"./Button\";\r\nimport ErrorPageBody from \"./_ErrorPageBody\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\nexport interface ServerErrorPageLabels {\r\n /** First breadcrumb crumb. */\r\n breadcrumbRoot?: string | undefined;\r\n /** Last breadcrumb crumb — aria-current=\"page\". */\r\n breadcrumbCurrent?: string | undefined;\r\n /** ActionBar heading (the page's <h1>). */\r\n title?: string | undefined;\r\n /** Descriptive sentence under the code ornament (the <h2>). */\r\n heading?: string | undefined;\r\n /**\r\n * Body paragraph.\r\n *\r\n * KEEP THE STATUS CODE IN THE TEXT when translating. The big \"500\"\r\n * ornament is aria-hidden (B4-EXT-1 — it used to be an <h1> that\r\n * collided with ActionBar's), so this sentence is the only access a\r\n * screen-reader user has to the number they would quote to support.\r\n * It reads as redundant next to the ornament and is not.\r\n */\r\n description?: string | undefined;\r\n /** Secondary retry label — only rendered when onRetry is supplied. */\r\n retry?: string | undefined;\r\n /** Primary CTA label. */\r\n home?: string | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n breadcrumbRoot: \"Erreur\",\r\n breadcrumbCurrent: \"Erreur serveur\",\r\n title: \"Erreur serveur\",\r\n heading: \"Le serveur a rencontré une erreur\",\r\n description:\r\n \"Le service est momentanément indisponible. Réessayez dans quelques instants. Si le problème persiste, contactez le support en mentionnant le code 500.\",\r\n retry: \"Réessayer\",\r\n home: \"Retour à l'accueil\",\r\n});\r\n\r\nexport interface ServerErrorPageProps {\r\n /** Callback for the back button (top-bar arrow). */\r\n onBack: () => void;\r\n /** Callback for the primary \"Retour à l'accueil\" CTA. */\r\n onHome: () => void;\r\n /** Optional retry callback. When omitted, the Réessayer button is hidden. */\r\n onRetry?: (() => void) | undefined;\r\n /** Overrides for the page's French defaults (P-4). */\r\n labels?: ServerErrorPageLabels | undefined;\r\n}\r\n\r\nfunction ServerErrorPage({ onBack, onHome, onRetry, labels }: ServerErrorPageProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n\r\n return (\r\n <>\r\n <ActionBar\r\n back={onBack}\r\n breadcrumb={[L.breadcrumbRoot, L.breadcrumbCurrent]}\r\n title={L.title}\r\n />\r\n <ErrorPageBody\r\n icon={<ErrorOutline sx={{ fontSize: 64, color: \"var(--danger)\" }} />}\r\n code=\"500\"\r\n title={L.heading}\r\n description={L.description}\r\n />\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n gap: \"var(--s-3)\",\r\n paddingBottom: \"var(--s-7)\",\r\n }}\r\n >\r\n {onRetry ? (\r\n <Button variant=\"ghost\" onClick={onRetry}>\r\n {L.retry}\r\n </Button>\r\n ) : null}\r\n <Button variant=\"primary\" icon={<ArrowBack />} onClick={onHome}>\r\n {L.home}\r\n </Button>\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nexport default ServerErrorPage;\r\n"],"mappings":"AAAA;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,OAAOA,GAAG,MAAM,mBAAmB;AACnC,OAAOC,SAAS,MAAM,+BAA+B;AACrD,OAAOC,YAAY,MAAM,mCAAmC;AAC5D,OAAOC,SAAS,MAAM,uBAAuB;AAC7C,OAAOC,MAAM,MAAM,UAAU;AAC7B,OAAOC,aAAa,MAAM,kBAAkB;AAC5C,SAASC,WAAW,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AA2BnD,MAAMC,cAAc,GAAGC,MAAM,CAACC,MAAM,CAAC;EACnCC,cAAc,EAAK,QAAQ;EAC3BC,iBAAiB,EAAE,gBAAgB;EACnCC,KAAK,EAAc,gBAAgB;EACnCC,OAAO,EAAY,mCAAmC;EACtDC,WAAW,EACT,wJAAwJ;EAC1JC,KAAK,EAAc,WAAW;EAC9BC,IAAI,EAAe;AACrB,CAAC,CAAC;AAaF,SAASC,eAAeA,CAAC;EAAEC,MAAM;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAA6B,CAAC,EAAE;EAClF,MAAMC,CAAC,GAAGtB,WAAW,CAACO,cAAc,EAAEc,MAAM,CAAC;EAE7C,oBACEjB,KAAA,CAAAE,SAAA;IAAAiB,QAAA,gBACErB,IAAA,CAACL,SAAS;MACR2B,IAAI,EAAEN,MAAO;MACbO,UAAU,EAAE,CAACH,CAAC,CAACZ,cAAc,EAAEY,CAAC,CAACX,iBAAiB,CAAE;MACpDC,KAAK,EAAEU,CAAC,CAACV;IAAM,CAChB,CAAC,eACFV,IAAA,CAACH,aAAa;MACZ2B,IAAI,eAAExB,IAAA,CAACN,YAAY;QAAC+B,EAAE,EAAE;UAAEC,QAAQ,EAAE,EAAE;UAAEC,KAAK,EAAE;QAAgB;MAAE,CAAE,CAAE;MACrEC,IAAI,EAAC,KAAK;MACVlB,KAAK,EAAEU,CAAC,CAACT,OAAQ;MACjBC,WAAW,EAAEQ,CAAC,CAACR;IAAY,CAC5B,CAAC,eACFV,KAAA,CAACV,GAAG;MACFiC,EAAE,EAAE;QACFI,OAAO,EAAS,MAAM;QACtBC,cAAc,EAAE,QAAQ;QACxBC,GAAG,EAAa,YAAY;QAC5BC,aAAa,EAAG;MAClB,CAAE;MAAAX,QAAA,GAEDH,OAAO,gBACNlB,IAAA,CAACJ,MAAM;QAACqC,OAAO,EAAC,OAAO;QAACC,OAAO,EAAEhB,OAAQ;QAAAG,QAAA,EACtCD,CAAC,CAACP;MAAK,CACF,CAAC,GACP,IAAI,eACRb,IAAA,CAACJ,MAAM;QAACqC,OAAO,EAAC,SAAS;QAACT,IAAI,eAAExB,IAAA,CAACP,SAAS,IAAE,CAAE;QAACyC,OAAO,EAAEjB,MAAO;QAAAI,QAAA,EAC5DD,CAAC,CAACN;MAAI,CACD,CAAC;IAAA,CACN,CAAC;EAAA,CACN,CAAC;AAEP;AAEA,eAAeC,eAAe","ignoreList":[]}
@@ -1,9 +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
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
1
  import * as React from "react";
8
2
  import { cx } from "../utils/cx";
9
3
 
@@ -32,23 +26,22 @@ import { cx } from "../utils/cx";
32
26
  * are aria-hidden placeholders that don't carry localisable strings.
33
27
  */
34
28
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
35
- export function Skeleton(_ref) {
36
- var _ref$width = _ref.width,
37
- width = _ref$width === void 0 ? "100%" : _ref$width,
38
- _ref$height = _ref.height,
39
- height = _ref$height === void 0 ? 14 : _ref$height,
40
- _ref$radius = _ref.radius,
41
- radius = _ref$radius === void 0 ? 6 : _ref$radius,
42
- style = _ref.style,
43
- className = _ref.className;
29
+ export function Skeleton({
30
+ width = "100%",
31
+ height = 14,
32
+ radius = 6,
33
+ style,
34
+ className
35
+ }) {
44
36
  return /*#__PURE__*/_jsx("span", {
45
37
  className: cx("pui-skeleton", className),
46
- style: _objectSpread({
38
+ style: {
47
39
  display: "block",
48
- width: width,
49
- height: height,
50
- borderRadius: radius
51
- }, style),
40
+ width,
41
+ height,
42
+ borderRadius: radius,
43
+ ...style
44
+ },
52
45
  "aria-hidden": "true"
53
46
  });
54
47
  }
@@ -79,14 +72,12 @@ export function SkeletonKPI() {
79
72
  })]
80
73
  });
81
74
  }
82
- export function SkeletonRow(_ref2) {
83
- var _ref2$cols = _ref2.cols,
84
- cols = _ref2$cols === void 0 ? 8 : _ref2$cols,
85
- _ref2$withCheckbox = _ref2.withCheckbox,
86
- withCheckbox = _ref2$withCheckbox === void 0 ? true : _ref2$withCheckbox,
87
- _ref2$withActions = _ref2.withActions,
88
- withActions = _ref2$withActions === void 0 ? true : _ref2$withActions;
89
- var widths = ["28%", "16%", "9%", "12%", "14%", "20%", "12%", "10%"];
75
+ export function SkeletonRow({
76
+ cols = 8,
77
+ withCheckbox = true,
78
+ withActions = true
79
+ }) {
80
+ const widths = ["28%", "16%", "9%", "12%", "14%", "20%", "12%", "10%"];
90
81
  return /*#__PURE__*/_jsxs("tr", {
91
82
  "aria-hidden": "true",
92
83
  style: {
@@ -103,17 +94,18 @@ export function SkeletonRow(_ref2) {
103
94
  })
104
95
  }), Array.from({
105
96
  length: cols
106
- }, function (_, i) {
107
- var w = widths[i % widths.length];
97
+ }, (_, i) => {
98
+ const w = widths[i % widths.length];
108
99
  return /*#__PURE__*/_jsx("td", {
109
100
  style: {
110
101
  padding: "var(--s-3) var(--s-4)"
111
102
  },
112
- children: /*#__PURE__*/_jsx(Skeleton, _objectSpread({
113
- height: 13
114
- }, w !== undefined ? {
115
- width: w
116
- } : {}))
103
+ children: /*#__PURE__*/_jsx(Skeleton, {
104
+ height: 13,
105
+ ...(w !== undefined ? {
106
+ width: w
107
+ } : {})
108
+ })
117
109
  }, i);
118
110
  }), withActions && /*#__PURE__*/_jsx("td", {})]
119
111
  });
@@ -147,31 +139,28 @@ export function SkeletonDetailHero() {
147
139
  paddingTop: "var(--s-4)",
148
140
  borderTop: "1px solid var(--border)"
149
141
  },
150
- children: [1, 2, 3].map(function (i) {
151
- return /*#__PURE__*/_jsxs("div", {
142
+ children: [1, 2, 3].map(i => /*#__PURE__*/_jsxs("div", {
143
+ style: {
144
+ flex: 1
145
+ },
146
+ children: [/*#__PURE__*/_jsx(Skeleton, {
147
+ width: "60%",
148
+ height: 10,
152
149
  style: {
153
- flex: 1
154
- },
155
- children: [/*#__PURE__*/_jsx(Skeleton, {
156
- width: "60%",
157
- height: 10,
158
- style: {
159
- marginBottom: "var(--s-2)"
160
- }
161
- }), /*#__PURE__*/_jsx(Skeleton, {
162
- width: "80%",
163
- height: 16
164
- })]
165
- }, i);
166
- })
150
+ marginBottom: "var(--s-2)"
151
+ }
152
+ }), /*#__PURE__*/_jsx(Skeleton, {
153
+ width: "80%",
154
+ height: 16
155
+ })]
156
+ }, i))
167
157
  })]
168
158
  });
169
159
  }
170
- export function SkeletonTabContent(_ref3) {
171
- var _ref3$rows = _ref3.rows,
172
- rows = _ref3$rows === void 0 ? 4 : _ref3$rows,
173
- _ref3$loadingLabel = _ref3.loadingLabel,
174
- loadingLabel = _ref3$loadingLabel === void 0 ? "Chargement du contenu…" : _ref3$loadingLabel;
160
+ export function SkeletonTabContent({
161
+ rows = 4,
162
+ loadingLabel = "Chargement du contenu…"
163
+ }) {
175
164
  return /*#__PURE__*/_jsxs("div", {
176
165
  "aria-busy": "true",
177
166
  "aria-label": loadingLabel,
@@ -189,25 +178,23 @@ export function SkeletonTabContent(_ref3) {
189
178
  }
190
179
  }), Array.from({
191
180
  length: rows
192
- }, function (_, i) {
193
- return /*#__PURE__*/_jsxs("div", {
194
- style: {
195
- display: "flex",
196
- gap: "var(--s-3)",
197
- alignItems: "center"
198
- },
199
- children: [/*#__PURE__*/_jsx(Skeleton, {
200
- width: "".concat(60 + i % 3 * 12, "%"),
201
- height: 13
202
- }), /*#__PURE__*/_jsx(Skeleton, {
203
- width: "15%",
204
- height: 13
205
- }), /*#__PURE__*/_jsx(Skeleton, {
206
- width: "10%",
207
- height: 13
208
- })]
209
- }, i);
210
- })]
181
+ }, (_, i) => /*#__PURE__*/_jsxs("div", {
182
+ style: {
183
+ display: "flex",
184
+ gap: "var(--s-3)",
185
+ alignItems: "center"
186
+ },
187
+ children: [/*#__PURE__*/_jsx(Skeleton, {
188
+ width: `${60 + i % 3 * 12}%`,
189
+ height: 13
190
+ }), /*#__PURE__*/_jsx(Skeleton, {
191
+ width: "15%",
192
+ height: 13
193
+ }), /*#__PURE__*/_jsx(Skeleton, {
194
+ width: "10%",
195
+ height: 13
196
+ })]
197
+ }, i))]
211
198
  });
212
199
  }
213
200
 
@@ -230,38 +217,36 @@ export function SkeletonTabContent(_ref3) {
230
217
  * region — it's typically used as a standalone loading surface, not
231
218
  * as a sub-element of a larger Skeleton composition.
232
219
  */
233
- var SKELETON_TEXT_DEFAULT_WIDTHS = [80, 60, 90, 70, 50];
234
- export function SkeletonText(_ref4) {
235
- var _ref4$lines = _ref4.lines,
236
- lines = _ref4$lines === void 0 ? 3 : _ref4$lines,
237
- widths = _ref4.widths,
238
- _ref4$height = _ref4.height,
239
- height = _ref4$height === void 0 ? 14 : _ref4$height,
240
- _ref4$gap = _ref4.gap,
241
- gap = _ref4$gap === void 0 ? "var(--s-3)" : _ref4$gap,
242
- _ref4$loadingLabel = _ref4.loadingLabel,
243
- loadingLabel = _ref4$loadingLabel === void 0 ? "Chargement…" : _ref4$loadingLabel;
244
- var safeLines = Math.max(1, Math.floor(lines));
245
- var pattern = Array.isArray(widths) && widths.length > 0 ? widths : SKELETON_TEXT_DEFAULT_WIDTHS;
220
+ const SKELETON_TEXT_DEFAULT_WIDTHS = [80, 60, 90, 70, 50];
221
+ export function SkeletonText({
222
+ lines = 3,
223
+ widths,
224
+ height = 14,
225
+ gap = "var(--s-3)",
226
+ loadingLabel = "Chargement…"
227
+ }) {
228
+ const safeLines = Math.max(1, Math.floor(lines));
229
+ const pattern = Array.isArray(widths) && widths.length > 0 ? widths : SKELETON_TEXT_DEFAULT_WIDTHS;
246
230
  return /*#__PURE__*/_jsx("div", {
247
231
  "aria-busy": "true",
248
232
  "aria-label": loadingLabel,
249
233
  style: {
250
234
  display: "flex",
251
235
  flexDirection: "column",
252
- gap: gap
236
+ gap
253
237
  },
254
238
  children: Array.from({
255
239
  length: safeLines
256
- }, function (_, i) {
257
- var raw = pattern[i % pattern.length];
258
- var w = typeof raw === "number" ? "".concat(raw, "%") : raw;
259
- return /*#__PURE__*/_jsx(Skeleton, _objectSpread(_objectSpread({}, w !== undefined ? {
260
- width: w
261
- } : {}), {}, {
240
+ }, (_, i) => {
241
+ const raw = pattern[i % pattern.length];
242
+ const w = typeof raw === "number" ? `${raw}%` : raw;
243
+ return /*#__PURE__*/_jsx(Skeleton, {
244
+ ...(w !== undefined ? {
245
+ width: w
246
+ } : {}),
262
247
  height: height,
263
248
  radius: 4
264
- }), i);
249
+ }, i);
265
250
  })
266
251
  });
267
252
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.js","names":["React","cx","jsx","_jsx","jsxs","_jsxs","Skeleton","_ref","_ref$width","width","_ref$height","height","_ref$radius","radius","style","className","_objectSpread","display","borderRadius","SkeletonKPI","padding","background","border","children","marginBottom","SkeletonRow","_ref2","_ref2$cols","cols","_ref2$withCheckbox","withCheckbox","_ref2$withActions","withActions","widths","borderBottom","Array","from","length","_","i","w","undefined","SkeletonDetailHero","gap","paddingTop","borderTop","map","flex","SkeletonTabContent","_ref3","_ref3$rows","rows","_ref3$loadingLabel","loadingLabel","flexDirection","alignItems","concat","SKELETON_TEXT_DEFAULT_WIDTHS","SkeletonText","_ref4","_ref4$lines","lines","_ref4$height","_ref4$gap","_ref4$loadingLabel","safeLines","Math","max","floor","pattern","isArray","raw"],"sources":["../../../../src/lib/v2/components/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cx } from \"../utils/cx\";\r\n\r\n/**\r\n * Skeleton - Portnet UI v2\r\n *\r\n * Charter §03 / §04.2.\r\n * R-Sk.1 - Affiché si chargement > 200 ms ; sinon ne rien afficher.\r\n * R-Sk.2 - Forme et nombre miment le contenu réel.\r\n * R-Sk.3 - aria-busy sur container, contenu skeleton aria-hidden.\r\n * R-Sk.4 - Animation supprimée si prefers-reduced-motion (handled in base.css).\r\n *\r\n * Primitive:\r\n * <Skeleton width=\"60%\" height={14} />\r\n *\r\n * Named compositions:\r\n * <SkeletonRow cols={6} />\r\n * <SkeletonKPI />\r\n * <SkeletonDetailHero />\r\n * <SkeletonTabContent rows={4} />\r\n * <SkeletonText lines={5} />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * SkeletonTabContent and SkeletonText surface a textual aria-busy\r\n * region; pass `loadingLabel` to localise. The other compositions\r\n * are aria-hidden placeholders that don't carry localisable strings.\r\n */\r\n\r\nexport interface SkeletonProps {\r\n width?: string | number | undefined;\r\n height?: string | number | undefined;\r\n radius?: number | undefined;\r\n style?: React.CSSProperties | undefined;\r\n className?: string | undefined;\r\n}\r\n\r\nexport function Skeleton({ width = \"100%\", height = 14, radius = 6, style, className }: SkeletonProps) {\r\n return (\r\n <span\r\n className={cx(\"pui-skeleton\", className)}\r\n style={{\r\n display: \"block\",\r\n width,\r\n height,\r\n borderRadius: radius,\r\n ...style,\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n );\r\n}\r\n\r\nexport function SkeletonKPI() {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n padding: \"var(--s-4) var(--s-5)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n <Skeleton width=\"55%\" height={11} style={{ marginBottom: \"var(--s-3)\" }} />\r\n <Skeleton width=\"38%\" height={28} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"72%\" height={11} />\r\n </div>\r\n );\r\n}\r\n\r\nexport interface SkeletonRowProps {\r\n cols?: number | undefined;\r\n withCheckbox?: boolean | undefined;\r\n withActions?: boolean | undefined;\r\n}\r\n\r\nexport function SkeletonRow({ cols = 8, withCheckbox = true, withActions = true }: SkeletonRowProps) {\r\n const widths = [\"28%\", \"16%\", \"9%\", \"12%\", \"14%\", \"20%\", \"12%\", \"10%\"];\r\n return (\r\n <tr aria-hidden=\"true\" style={{ borderBottom: \"1px solid var(--border)\" }}>\r\n {withCheckbox && (\r\n <td style={{ padding: \"var(--s-3) var(--s-4)\" }}>\r\n <Skeleton width={16} height={16} radius={4} />\r\n </td>\r\n )}\r\n {Array.from({ length: cols }, (_, i) => {\r\n const w = widths[i % widths.length];\r\n return (\r\n <td key={i} style={{ padding: \"var(--s-3) var(--s-4)\" }}>\r\n <Skeleton height={13} {...(w !== undefined ? { width: w } : {})} />\r\n </td>\r\n );\r\n })}\r\n {withActions && <td />}\r\n </tr>\r\n );\r\n}\r\n\r\nexport function SkeletonDetailHero() {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n padding: \"var(--s-5) var(--s-6)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n marginBottom: \"var(--s-4)\",\r\n }}\r\n >\r\n <Skeleton width=\"38%\" height={22} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"55%\" height={11} style={{ marginBottom: \"var(--s-4)\" }} />\r\n <div style={{ display: \"flex\", gap: \"var(--s-6)\", paddingTop: \"var(--s-4)\", borderTop: \"1px solid var(--border)\" }}>\r\n {[1, 2, 3].map((i) => (\r\n <div key={i} style={{ flex: 1 }}>\r\n <Skeleton width=\"60%\" height={10} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"80%\" height={16} />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport interface SkeletonTabContentProps {\r\n rows?: number | undefined;\r\n loadingLabel?: string | undefined;\r\n}\r\n\r\nexport function SkeletonTabContent({ rows = 4, loadingLabel = \"Chargement du contenu…\" }: SkeletonTabContentProps) {\r\n return (\r\n <div\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--s-3)\", padding: \"var(--s-2) 0\" }}\r\n >\r\n <Skeleton width=\"40%\" height={18} style={{ marginBottom: \"var(--s-1)\" }} />\r\n {Array.from({ length: rows }, (_, i) => (\r\n <div key={i} style={{ display: \"flex\", gap: \"var(--s-3)\", alignItems: \"center\" }}>\r\n <Skeleton width={`${60 + (i % 3) * 12}%`} height={13} />\r\n <Skeleton width=\"15%\" height={13} />\r\n <Skeleton width=\"10%\" height={13} />\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * SkeletonText — 5-line shimmer for narrow contexts (drawer body,\r\n * sub-skeleton inside a tab, narrow-column placeholder). Targets the\r\n * gap between SkeletonRow (table cells) and SkeletonDetailHero (full\r\n * page surface).\r\n *\r\n * API:\r\n * <SkeletonText lines={5} /> // varied widths\r\n * <SkeletonText lines={4} widths={[80, 60, 90, 50]} /> // explicit\r\n * <SkeletonText lines={5} height={16} loadingLabel=\"…\" />\r\n *\r\n * `widths` accepts numbers (treated as percentages) or strings\r\n * (passed through to the Skeleton primitive width prop).\r\n * If `widths` is shorter than `lines`, it cycles.\r\n *\r\n * Like SkeletonTabContent, this carries the labelled aria-busy\r\n * region — it's typically used as a standalone loading surface, not\r\n * as a sub-element of a larger Skeleton composition.\r\n */\r\nconst SKELETON_TEXT_DEFAULT_WIDTHS = [80, 60, 90, 70, 50];\r\n\r\nexport interface SkeletonTextProps {\r\n lines?: number | undefined;\r\n widths?: Array<string | number> | undefined;\r\n height?: string | number | undefined;\r\n gap?: string | undefined;\r\n loadingLabel?: string | undefined;\r\n}\r\n\r\nexport function SkeletonText({\r\n lines = 3,\r\n widths,\r\n height = 14,\r\n gap = \"var(--s-3)\",\r\n loadingLabel = \"Chargement…\",\r\n}: SkeletonTextProps) {\r\n const safeLines = Math.max(1, Math.floor(lines));\r\n const pattern =\r\n Array.isArray(widths) && widths.length > 0\r\n ? widths\r\n : SKELETON_TEXT_DEFAULT_WIDTHS;\r\n\r\n return (\r\n <div\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap,\r\n }}\r\n >\r\n {Array.from({ length: safeLines }, (_, i) => {\r\n const raw = pattern[i % pattern.length];\r\n const w = typeof raw === \"number\" ? `${raw}%` : raw;\r\n return (\r\n <Skeleton key={i} {...(w !== undefined ? { width: w } : {})} height={height} radius={4} />\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Skeleton;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Skeleton.js","names":["React","cx","jsx","_jsx","jsxs","_jsxs","Skeleton","width","height","radius","style","className","display","borderRadius","SkeletonKPI","padding","background","border","children","marginBottom","SkeletonRow","cols","withCheckbox","withActions","widths","borderBottom","Array","from","length","_","i","w","undefined","SkeletonDetailHero","gap","paddingTop","borderTop","map","flex","SkeletonTabContent","rows","loadingLabel","flexDirection","alignItems","SKELETON_TEXT_DEFAULT_WIDTHS","SkeletonText","lines","safeLines","Math","max","floor","pattern","isArray","raw"],"sources":["../../../../src/lib/v2/components/Skeleton.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { cx } from \"../utils/cx\";\r\n\r\n/**\r\n * Skeleton - Portnet UI v2\r\n *\r\n * Charter §03 / §04.2.\r\n * R-Sk.1 - Affiché si chargement > 200 ms ; sinon ne rien afficher.\r\n * R-Sk.2 - Forme et nombre miment le contenu réel.\r\n * R-Sk.3 - aria-busy sur container, contenu skeleton aria-hidden.\r\n * R-Sk.4 - Animation supprimée si prefers-reduced-motion (handled in base.css).\r\n *\r\n * Primitive:\r\n * <Skeleton width=\"60%\" height={14} />\r\n *\r\n * Named compositions:\r\n * <SkeletonRow cols={6} />\r\n * <SkeletonKPI />\r\n * <SkeletonDetailHero />\r\n * <SkeletonTabContent rows={4} />\r\n * <SkeletonText lines={5} />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * SkeletonTabContent and SkeletonText surface a textual aria-busy\r\n * region; pass `loadingLabel` to localise. The other compositions\r\n * are aria-hidden placeholders that don't carry localisable strings.\r\n */\r\n\r\nexport interface SkeletonProps {\r\n width?: string | number | undefined;\r\n height?: string | number | undefined;\r\n radius?: number | undefined;\r\n style?: React.CSSProperties | undefined;\r\n className?: string | undefined;\r\n}\r\n\r\nexport function Skeleton({ width = \"100%\", height = 14, radius = 6, style, className }: SkeletonProps) {\r\n return (\r\n <span\r\n className={cx(\"pui-skeleton\", className)}\r\n style={{\r\n display: \"block\",\r\n width,\r\n height,\r\n borderRadius: radius,\r\n ...style,\r\n }}\r\n aria-hidden=\"true\"\r\n />\r\n );\r\n}\r\n\r\nexport function SkeletonKPI() {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n padding: \"var(--s-4) var(--s-5)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n <Skeleton width=\"55%\" height={11} style={{ marginBottom: \"var(--s-3)\" }} />\r\n <Skeleton width=\"38%\" height={28} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"72%\" height={11} />\r\n </div>\r\n );\r\n}\r\n\r\nexport interface SkeletonRowProps {\r\n cols?: number | undefined;\r\n withCheckbox?: boolean | undefined;\r\n withActions?: boolean | undefined;\r\n}\r\n\r\nexport function SkeletonRow({ cols = 8, withCheckbox = true, withActions = true }: SkeletonRowProps) {\r\n const widths = [\"28%\", \"16%\", \"9%\", \"12%\", \"14%\", \"20%\", \"12%\", \"10%\"];\r\n return (\r\n <tr aria-hidden=\"true\" style={{ borderBottom: \"1px solid var(--border)\" }}>\r\n {withCheckbox && (\r\n <td style={{ padding: \"var(--s-3) var(--s-4)\" }}>\r\n <Skeleton width={16} height={16} radius={4} />\r\n </td>\r\n )}\r\n {Array.from({ length: cols }, (_, i) => {\r\n const w = widths[i % widths.length];\r\n return (\r\n <td key={i} style={{ padding: \"var(--s-3) var(--s-4)\" }}>\r\n <Skeleton height={13} {...(w !== undefined ? { width: w } : {})} />\r\n </td>\r\n );\r\n })}\r\n {withActions && <td />}\r\n </tr>\r\n );\r\n}\r\n\r\nexport function SkeletonDetailHero() {\r\n return (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n padding: \"var(--s-5) var(--s-6)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n marginBottom: \"var(--s-4)\",\r\n }}\r\n >\r\n <Skeleton width=\"38%\" height={22} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"55%\" height={11} style={{ marginBottom: \"var(--s-4)\" }} />\r\n <div style={{ display: \"flex\", gap: \"var(--s-6)\", paddingTop: \"var(--s-4)\", borderTop: \"1px solid var(--border)\" }}>\r\n {[1, 2, 3].map((i) => (\r\n <div key={i} style={{ flex: 1 }}>\r\n <Skeleton width=\"60%\" height={10} style={{ marginBottom: \"var(--s-2)\" }} />\r\n <Skeleton width=\"80%\" height={16} />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport interface SkeletonTabContentProps {\r\n rows?: number | undefined;\r\n loadingLabel?: string | undefined;\r\n}\r\n\r\nexport function SkeletonTabContent({ rows = 4, loadingLabel = \"Chargement du contenu…\" }: SkeletonTabContentProps) {\r\n return (\r\n <div\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n style={{ display: \"flex\", flexDirection: \"column\", gap: \"var(--s-3)\", padding: \"var(--s-2) 0\" }}\r\n >\r\n <Skeleton width=\"40%\" height={18} style={{ marginBottom: \"var(--s-1)\" }} />\r\n {Array.from({ length: rows }, (_, i) => (\r\n <div key={i} style={{ display: \"flex\", gap: \"var(--s-3)\", alignItems: \"center\" }}>\r\n <Skeleton width={`${60 + (i % 3) * 12}%`} height={13} />\r\n <Skeleton width=\"15%\" height={13} />\r\n <Skeleton width=\"10%\" height={13} />\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * SkeletonText — 5-line shimmer for narrow contexts (drawer body,\r\n * sub-skeleton inside a tab, narrow-column placeholder). Targets the\r\n * gap between SkeletonRow (table cells) and SkeletonDetailHero (full\r\n * page surface).\r\n *\r\n * API:\r\n * <SkeletonText lines={5} /> // varied widths\r\n * <SkeletonText lines={4} widths={[80, 60, 90, 50]} /> // explicit\r\n * <SkeletonText lines={5} height={16} loadingLabel=\"…\" />\r\n *\r\n * `widths` accepts numbers (treated as percentages) or strings\r\n * (passed through to the Skeleton primitive width prop).\r\n * If `widths` is shorter than `lines`, it cycles.\r\n *\r\n * Like SkeletonTabContent, this carries the labelled aria-busy\r\n * region — it's typically used as a standalone loading surface, not\r\n * as a sub-element of a larger Skeleton composition.\r\n */\r\nconst SKELETON_TEXT_DEFAULT_WIDTHS = [80, 60, 90, 70, 50];\r\n\r\nexport interface SkeletonTextProps {\r\n lines?: number | undefined;\r\n widths?: Array<string | number> | undefined;\r\n height?: string | number | undefined;\r\n gap?: string | undefined;\r\n loadingLabel?: string | undefined;\r\n}\r\n\r\nexport function SkeletonText({\r\n lines = 3,\r\n widths,\r\n height = 14,\r\n gap = \"var(--s-3)\",\r\n loadingLabel = \"Chargement…\",\r\n}: SkeletonTextProps) {\r\n const safeLines = Math.max(1, Math.floor(lines));\r\n const pattern =\r\n Array.isArray(widths) && widths.length > 0\r\n ? widths\r\n : SKELETON_TEXT_DEFAULT_WIDTHS;\r\n\r\n return (\r\n <div\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n style={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap,\r\n }}\r\n >\r\n {Array.from({ length: safeLines }, (_, i) => {\r\n const raw = pattern[i % pattern.length];\r\n const w = typeof raw === \"number\" ? `${raw}%` : raw;\r\n return (\r\n <Skeleton key={i} {...(w !== undefined ? { width: w } : {})} height={height} radius={4} />\r\n );\r\n })}\r\n </div>\r\n );\r\n}\r\n\r\nexport default Skeleton;\r\n"],"mappings":"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","ignoreList":[]}
@@ -23,14 +23,13 @@ import * as React from "react";
23
23
  * preserved (no preventDefault).
24
24
  */
25
25
  import { jsx as _jsx } from "react/jsx-runtime";
26
- function SkipLink(_ref) {
27
- var _ref$href = _ref.href,
28
- href = _ref$href === void 0 ? "#main-content" : _ref$href,
29
- _ref$label = _ref.label,
30
- label = _ref$label === void 0 ? "Aller au contenu principal" : _ref$label;
31
- var handleClick = React.useCallback(function () {
26
+ function SkipLink({
27
+ href = "#main-content",
28
+ label = "Aller au contenu principal"
29
+ }) {
30
+ const handleClick = React.useCallback(() => {
32
31
  if (typeof document === "undefined" || !href.startsWith("#")) return;
33
- var target = document.getElementById(href.slice(1));
32
+ const target = document.getElementById(href.slice(1));
34
33
  if (!target) return;
35
34
  // Bare in-page anchors don't reliably move focus into the target across
36
35
  // browsers; make it programmatically focusable (without joining the tab
@@ -1 +1 @@
1
- {"version":3,"file":"SkipLink.js","names":["React","jsx","_jsx","SkipLink","_ref","_ref$href","href","_ref$label","label","handleClick","useCallback","document","startsWith","target","getElementById","slice","hasAttribute","setAttribute","focus","className","onClick","children"],"sources":["../../../../src/lib/v2/components/SkipLink.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * SkipLink — Portnet UI v2\r\n *\r\n * WCAG 2.4.1 · Charter R-N.6.\r\n * Mount as the FIRST focusable element of the AppShell.\r\n *\r\n * <SkipLink href=\"#main-content\" />\r\n * …\r\n * <main id=\"main-content\">\r\n *\r\n * Visible-on-focus is handled by the `.pui-skip-link` class (base.css):\r\n * clipped off-screen but kept in the tab order, revealed on :focus /\r\n * :focus-visible.\r\n *\r\n * Focus movement (SL-1): a bare in-page anchor scrolls to the target and sets\r\n * the sequential-focus starting point in Chrome/Firefox/Edge, but Safari does\r\n * not move focus INTO the target unless it is focusable — so the next Tab may\r\n * not continue from the main region there. On activation we additionally focus\r\n * the target, adding tabIndex=-1 if the host didn't, so keyboard + screen-reader\r\n * users land in the region. The default anchor behaviour (scroll + hash) is\r\n * preserved (no preventDefault).\r\n */\r\n\r\nexport interface SkipLinkProps {\r\n href?: string | undefined;\r\n label?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction SkipLink({ href = \"#main-content\", label = \"Aller au contenu principal\" }: SkipLinkProps) {\r\n const handleClick = React.useCallback(() => {\r\n if (typeof document === \"undefined\" || !href.startsWith(\"#\")) return;\r\n const target = document.getElementById(href.slice(1));\r\n if (!target) return;\r\n // Bare in-page anchors don't reliably move focus into the target across\r\n // browsers; make it programmatically focusable (without joining the tab\r\n // order) and focus it. Default scroll + hash update are left intact.\r\n if (!target.hasAttribute(\"tabindex\")) target.setAttribute(\"tabindex\", \"-1\");\r\n target.focus();\r\n }, [href]);\r\n\r\n return (\r\n <a className=\"pui-skip-link\" href={href} onClick={handleClick}>\r\n {label}\r\n </a>\r\n );\r\n}\r\n\r\nexport default SkipLink;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AArBA,SAAAC,GAAA,IAAAC,IAAA;AA4BA,SAASC,QAAQA,CAAAC,IAAA,EAAkF;EAAA,IAAAC,SAAA,GAAAD,IAAA,CAA/EE,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,eAAe,GAAAA,SAAA;IAAAE,UAAA,GAAAH,IAAA,CAAEI,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,4BAA4B,GAAAA,UAAA;EAC9E,IAAME,WAAW,GAAGT,KAAK,CAACU,WAAW,CAAC,YAAM;IAC1C,IAAI,OAAOC,QAAQ,KAAK,WAAW,IAAI,CAACL,IAAI,CAACM,UAAU,CAAC,GAAG,CAAC,EAAE;IAC9D,IAAMC,MAAM,GAAGF,QAAQ,CAACG,cAAc,CAACR,IAAI,CAACS,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,CAACF,MAAM,EAAE;IACb;IACA;IACA;IACA,IAAI,CAACA,MAAM,CAACG,YAAY,CAAC,UAAU,CAAC,EAAEH,MAAM,CAACI,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;IAC3EJ,MAAM,CAACK,KAAK,CAAC,CAAC;EAChB,CAAC,EAAE,CAACZ,IAAI,CAAC,CAAC;EAEV,oBACEJ,IAAA;IAAGiB,SAAS,EAAC,eAAe;IAACb,IAAI,EAAEA,IAAK;IAACc,OAAO,EAAEX,WAAY;IAAAY,QAAA,EAC3Db;EAAK,CACL,CAAC;AAER;AAEA,eAAeL,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"SkipLink.js","names":["React","jsx","_jsx","SkipLink","href","label","handleClick","useCallback","document","startsWith","target","getElementById","slice","hasAttribute","setAttribute","focus","className","onClick","children"],"sources":["../../../../src/lib/v2/components/SkipLink.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * SkipLink — Portnet UI v2\r\n *\r\n * WCAG 2.4.1 · Charter R-N.6.\r\n * Mount as the FIRST focusable element of the AppShell.\r\n *\r\n * <SkipLink href=\"#main-content\" />\r\n * …\r\n * <main id=\"main-content\">\r\n *\r\n * Visible-on-focus is handled by the `.pui-skip-link` class (base.css):\r\n * clipped off-screen but kept in the tab order, revealed on :focus /\r\n * :focus-visible.\r\n *\r\n * Focus movement (SL-1): a bare in-page anchor scrolls to the target and sets\r\n * the sequential-focus starting point in Chrome/Firefox/Edge, but Safari does\r\n * not move focus INTO the target unless it is focusable — so the next Tab may\r\n * not continue from the main region there. On activation we additionally focus\r\n * the target, adding tabIndex=-1 if the host didn't, so keyboard + screen-reader\r\n * users land in the region. The default anchor behaviour (scroll + hash) is\r\n * preserved (no preventDefault).\r\n */\r\n\r\nexport interface SkipLinkProps {\r\n href?: string | undefined;\r\n label?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction SkipLink({ href = \"#main-content\", label = \"Aller au contenu principal\" }: SkipLinkProps) {\r\n const handleClick = React.useCallback(() => {\r\n if (typeof document === \"undefined\" || !href.startsWith(\"#\")) return;\r\n const target = document.getElementById(href.slice(1));\r\n if (!target) return;\r\n // Bare in-page anchors don't reliably move focus into the target across\r\n // browsers; make it programmatically focusable (without joining the tab\r\n // order) and focus it. Default scroll + hash update are left intact.\r\n if (!target.hasAttribute(\"tabindex\")) target.setAttribute(\"tabindex\", \"-1\");\r\n target.focus();\r\n }, [href]);\r\n\r\n return (\r\n <a className=\"pui-skip-link\" href={href} onClick={handleClick}>\r\n {label}\r\n </a>\r\n );\r\n}\r\n\r\nexport default SkipLink;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AArBA,SAAAC,GAAA,IAAAC,IAAA;AA4BA,SAASC,QAAQA,CAAC;EAAEC,IAAI,GAAG,eAAe;EAAEC,KAAK,GAAG;AAA4C,CAAC,EAAE;EACjG,MAAMC,WAAW,GAAGN,KAAK,CAACO,WAAW,CAAC,MAAM;IAC1C,IAAI,OAAOC,QAAQ,KAAK,WAAW,IAAI,CAACJ,IAAI,CAACK,UAAU,CAAC,GAAG,CAAC,EAAE;IAC9D,MAAMC,MAAM,GAAGF,QAAQ,CAACG,cAAc,CAACP,IAAI,CAACQ,KAAK,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,CAACF,MAAM,EAAE;IACb;IACA;IACA;IACA,IAAI,CAACA,MAAM,CAACG,YAAY,CAAC,UAAU,CAAC,EAAEH,MAAM,CAACI,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC;IAC3EJ,MAAM,CAACK,KAAK,CAAC,CAAC;EAChB,CAAC,EAAE,CAACX,IAAI,CAAC,CAAC;EAEV,oBACEF,IAAA;IAAGc,SAAS,EAAC,eAAe;IAACZ,IAAI,EAAEA,IAAK;IAACa,OAAO,EAAEX,WAAY;IAAAY,QAAA,EAC3Db;EAAK,CACL,CAAC;AAER;AAEA,eAAeF,QAAQ","ignoreList":[]}
@@ -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 = ["size", "className", "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
 
12
3
  /**
@@ -36,34 +27,34 @@ import * as React from "react";
36
27
  * users hear a meaningful cue.
37
28
  */
38
29
  import { jsx as _jsx } from "react/jsx-runtime";
39
- export default function Spinner(_ref) {
40
- var _ref$size = _ref.size,
41
- size = _ref$size === void 0 ? 14 : _ref$size,
42
- _ref$className = _ref.className,
43
- className = _ref$className === void 0 ? "" : _ref$className,
44
- label = _ref.label,
45
- rest = _objectWithoutProperties(_ref, _excluded);
30
+ export default function Spinner({
31
+ size = 14,
32
+ className = "",
33
+ label,
34
+ ...rest
35
+ }) {
46
36
  // When `label` is supplied, expose the SVG as an accessible image.
47
37
  // When omitted, default to decorative (aria-hidden).
48
- var a11y = label ? {
38
+ const a11y = label ? {
49
39
  role: "img",
50
40
  "aria-label": label
51
41
  } : {
52
42
  "aria-hidden": "true"
53
43
  };
54
- return /*#__PURE__*/_jsx("svg", _objectSpread(_objectSpread(_objectSpread({
55
- className: "pui-spinner ".concat(className),
44
+ return /*#__PURE__*/_jsx("svg", {
45
+ className: `pui-spinner ${className}`,
56
46
  width: size,
57
47
  height: size,
58
48
  viewBox: "0 0 24 24",
59
49
  fill: "none",
60
50
  stroke: "currentColor",
61
51
  strokeWidth: "2.5",
62
- strokeLinecap: "round"
63
- }, a11y), rest), {}, {
52
+ strokeLinecap: "round",
53
+ ...a11y,
54
+ ...rest,
64
55
  children: /*#__PURE__*/_jsx("path", {
65
56
  d: "M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83"
66
57
  })
67
- }));
58
+ });
68
59
  }
69
60
  //# sourceMappingURL=Spinner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.js","names":["React","jsx","_jsx","Spinner","_ref","_ref$size","size","_ref$className","className","label","rest","_objectWithoutProperties","_excluded","a11y","role","_objectSpread","concat","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","children","d"],"sources":["../../../../src/lib/v2/components/Spinner.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * Spinner - Portnet UI v2\r\n *\r\n * Inline loading indicator. Animation suppressed under\r\n * prefers-reduced-motion via base.css.\r\n *\r\n * Two usage modes:\r\n *\r\n * 1. DECORATIVE (inside <Button loading>, where the button itself\r\n * carries `aria-busy=\"true\"` and SR users hear \"<label>, busy\"):\r\n *\r\n * <Spinner size={14} />\r\n *\r\n * The spinner is hidden from AT (aria-hidden), avoiding\r\n * duplicate \"loading\" announcements on top of aria-busy.\r\n *\r\n * 2. STANDALONE (the spinner is the SOLE loading indicator on\r\n * screen — e.g. a section-level loading state without a\r\n * surrounding aria-busy container):\r\n *\r\n * <Spinner size={20} label=\"Chargement des documents…\" />\r\n *\r\n * Pass `label` to surface a localised message. The SVG is\r\n * exposed as role=\"img\" with the supplied aria-label, so SR\r\n * users hear a meaningful cue.\r\n */\r\ninterface SpinnerProps extends React.SVGAttributes<SVGSVGElement> {\r\n /** Pixel size (width & height). @default 14 */\r\n size?: number;\r\n /**\r\n * Accessible label. When provided, the SVG is exposed as role=\"img\"\r\n * with this aria-label (standalone loading indicator). When omitted,\r\n * the spinner is decorative (aria-hidden).\r\n */\r\n label?: string;\r\n}\r\n\r\nexport default function Spinner({ size = 14, className = \"\", label, ...rest }: SpinnerProps) {\r\n // When `label` is supplied, expose the SVG as an accessible image.\r\n // When omitted, default to decorative (aria-hidden).\r\n const a11y = label\r\n ? ({ role: \"img\", \"aria-label\": label } as const)\r\n : ({ \"aria-hidden\": \"true\" } as const);\r\n\r\n return (\r\n <svg\r\n className={`pui-spinner ${className}`}\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2.5\"\r\n strokeLinecap=\"round\"\r\n {...a11y}\r\n {...rest}\r\n >\r\n <path d=\"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83\" />\r\n </svg>\r\n );\r\n}\r\n"],"mappings":";;;;;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;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;AAzBA,SAAAC,GAAA,IAAAC,IAAA;AAqCA,eAAe,SAASC,OAAOA,CAAAC,IAAA,EAA8D;EAAA,IAAAC,SAAA,GAAAD,IAAA,CAA3DE,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,EAAE,GAAAA,SAAA;IAAAE,cAAA,GAAAH,IAAA,CAAEI,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,EAAE,GAAAA,cAAA;IAAEE,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAKC,IAAI,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;EACzE;EACA;EACA,IAAMC,IAAI,GAAGJ,KAAK,GACb;IAAEK,IAAI,EAAE,KAAK;IAAE,YAAY,EAAEL;EAAM,CAAC,GACpC;IAAE,aAAa,EAAE;EAAO,CAAW;EAExC,oBACEP,IAAA,QAAAa,aAAA,CAAAA,aAAA,CAAAA,aAAA;IACEP,SAAS,iBAAAQ,MAAA,CAAiBR,SAAS,CAAG;IACtCS,KAAK,EAAEX,IAAK;IACZY,MAAM,EAAEZ,IAAK;IACba,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC,MAAM;IACXC,MAAM,EAAC,cAAc;IACrBC,WAAW,EAAC,KAAK;IACjBC,aAAa,EAAC;EAAO,GACjBV,IAAI,GACJH,IAAI;IAAAc,QAAA,eAERtB,IAAA;MAAMuB,CAAC,EAAC;IAAoH,CAAE;EAAC,EAC5H,CAAC;AAEV","ignoreList":[]}
1
+ {"version":3,"file":"Spinner.js","names":["React","jsx","_jsx","Spinner","size","className","label","rest","a11y","role","width","height","viewBox","fill","stroke","strokeWidth","strokeLinecap","children","d"],"sources":["../../../../src/lib/v2/components/Spinner.tsx"],"sourcesContent":["import * as React from \"react\";\r\n\r\n/**\r\n * Spinner - Portnet UI v2\r\n *\r\n * Inline loading indicator. Animation suppressed under\r\n * prefers-reduced-motion via base.css.\r\n *\r\n * Two usage modes:\r\n *\r\n * 1. DECORATIVE (inside <Button loading>, where the button itself\r\n * carries `aria-busy=\"true\"` and SR users hear \"<label>, busy\"):\r\n *\r\n * <Spinner size={14} />\r\n *\r\n * The spinner is hidden from AT (aria-hidden), avoiding\r\n * duplicate \"loading\" announcements on top of aria-busy.\r\n *\r\n * 2. STANDALONE (the spinner is the SOLE loading indicator on\r\n * screen — e.g. a section-level loading state without a\r\n * surrounding aria-busy container):\r\n *\r\n * <Spinner size={20} label=\"Chargement des documents…\" />\r\n *\r\n * Pass `label` to surface a localised message. The SVG is\r\n * exposed as role=\"img\" with the supplied aria-label, so SR\r\n * users hear a meaningful cue.\r\n */\r\ninterface SpinnerProps extends React.SVGAttributes<SVGSVGElement> {\r\n /** Pixel size (width & height). @default 14 */\r\n size?: number;\r\n /**\r\n * Accessible label. When provided, the SVG is exposed as role=\"img\"\r\n * with this aria-label (standalone loading indicator). When omitted,\r\n * the spinner is decorative (aria-hidden).\r\n */\r\n label?: string;\r\n}\r\n\r\nexport default function Spinner({ size = 14, className = \"\", label, ...rest }: SpinnerProps) {\r\n // When `label` is supplied, expose the SVG as an accessible image.\r\n // When omitted, default to decorative (aria-hidden).\r\n const a11y = label\r\n ? ({ role: \"img\", \"aria-label\": label } as const)\r\n : ({ \"aria-hidden\": \"true\" } as const);\r\n\r\n return (\r\n <svg\r\n className={`pui-spinner ${className}`}\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2.5\"\r\n strokeLinecap=\"round\"\r\n {...a11y}\r\n {...rest}\r\n >\r\n <path d=\"M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83\" />\r\n </svg>\r\n );\r\n}\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;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;AAzBA,SAAAC,GAAA,IAAAC,IAAA;AAqCA,eAAe,SAASC,OAAOA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,SAAS,GAAG,EAAE;EAAEC,KAAK;EAAE,GAAGC;AAAmB,CAAC,EAAE;EAC3F;EACA;EACA,MAAMC,IAAI,GAAGF,KAAK,GACb;IAAEG,IAAI,EAAE,KAAK;IAAE,YAAY,EAAEH;EAAM,CAAC,GACpC;IAAE,aAAa,EAAE;EAAO,CAAW;EAExC,oBACEJ,IAAA;IACEG,SAAS,EAAE,eAAeA,SAAS,EAAG;IACtCK,KAAK,EAAEN,IAAK;IACZO,MAAM,EAAEP,IAAK;IACbQ,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC,MAAM;IACXC,MAAM,EAAC,cAAc;IACrBC,WAAW,EAAC,KAAK;IACjBC,aAAa,EAAC,OAAO;IAAA,GACjBR,IAAI;IAAA,GACJD,IAAI;IAAAU,QAAA,eAERf,IAAA;MAAMgB,CAAC,EAAC;IAAoH,CAAE;EAAC,CAC5H,CAAC;AAEV","ignoreList":[]}
@@ -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 = ["kind", "label", "labels", "className"];
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 { STATUS_KEYS, STATUS_LABELS_FR } from "../tokens/statusPalette";
12
3
 
@@ -42,23 +33,21 @@ import { STATUS_KEYS, STATUS_LABELS_FR } from "../tokens/statusPalette";
42
33
  * Forbidden: ad-hoc colours. Use Chip for filter pills, not Status.
43
34
  */
44
35
  import { jsx as _jsx } from "react/jsx-runtime";
45
- function Status(_ref) {
46
- var _ref2;
47
- var _ref$kind = _ref.kind,
48
- kind = _ref$kind === void 0 ? "neutral" : _ref$kind,
49
- label = _ref.label,
50
- labels = _ref.labels,
51
- _ref$className = _ref.className,
52
- className = _ref$className === void 0 ? "" : _ref$className,
53
- rest = _objectWithoutProperties(_ref, _excluded);
54
- var safe = STATUS_KEYS.includes(kind) ? kind : "neutral";
55
- var text = (_ref2 = label !== null && label !== void 0 ? label : labels && labels[safe]) !== null && _ref2 !== void 0 ? _ref2 : STATUS_LABELS_FR[safe];
56
- return /*#__PURE__*/_jsx("span", _objectSpread(_objectSpread({
57
- className: "pui-status ".concat(className).trim(),
58
- "data-kind": safe
59
- }, rest), {}, {
36
+ function Status({
37
+ kind = "neutral",
38
+ label,
39
+ labels,
40
+ className = "",
41
+ ...rest
42
+ }) {
43
+ const safe = STATUS_KEYS.includes(kind) ? kind : "neutral";
44
+ const text = label ?? (labels && labels[safe]) ?? STATUS_LABELS_FR[safe];
45
+ return /*#__PURE__*/_jsx("span", {
46
+ className: `pui-status ${className}`.trim(),
47
+ "data-kind": safe,
48
+ ...rest,
60
49
  children: text
61
- }));
50
+ });
62
51
  }
63
52
  export default Status;
64
53
  //# sourceMappingURL=Status.js.map