@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
@@ -1 +1 @@
1
- {"version":3,"file":"useFocusTrap.test.js","names":["require","React","_interopRequireWildcard","_react2","_userEvent","_interopRequireDefault","_useFocusTrap","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_regeneratorRuntime","exports","Op","hasOwn","value","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","_objectSpread","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","realGetClientRects","Element","getClientRects","beforeAll","rect","x","y","top","left","right","bottom","width","height","toJSON","list","assign","item","_list$i","afterAll","Trapped","_ref","children","_ref$active","active","containerProps","ref","useRef","useFocusTrap","jsx","isFocused","el","expect","toHaveFocus","_unused","afterEach","cleanup","describe","test","_callee","_callee$","_context","render","jsxs","waitFor","screen","getByRole","_callee2","_callee2$","_context2","autoFocus","_callee3","_callee3$","_context3","not","toThrow","_callee4","_callee4$","_context4","userEvent","tab","_callee5","_callee5$","_context5","shift","_callee6","_callee6$","_context6","disabled","_callee7","_callee7$","_context7","NestedHarness","_ref9","innerActive","_callee8","_render","rerender","_callee8$","_context8","_callee9","_render2","outer1","outer2","_callee9$","_context9","toBe"],"sources":["../../../src/lib/v2/__tests__/useFocusTrap.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport * as React from \"react\";\r\nimport { render, waitFor, cleanup, screen } from \"@testing-library/react\";\r\nimport userEvent from \"@testing-library/user-event\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/* ── jsdom LAYOUT SHIM — REQUIRED, NOT A CONVENIENCE ────────────────────────\r\n *\r\n * Without this, EVERY test in this file fails at its first `waitFor`, with focus\r\n * sitting on <body>. The cause is not the hook:\r\n *\r\n * `useFocusTrap.isVisuallyFocusable` rejects an element whose\r\n * `getClientRects()` is empty — a cheap, correct test for `display:none` and\r\n * `visibility:hidden` in a real browser.\r\n *\r\n * jsdom PERFORMS NO LAYOUT. `getClientRects()` returns an empty list for every\r\n * element, always. So the filter discards all candidates, `getFocusable()`\r\n * returns `[]`, nothing is focused, and all eight assertions fail for one\r\n * reason that has nothing to do with focus management.\r\n *\r\n * This shim gives every element a non-zero rect so the visibility filter behaves\r\n * as it does in a browser. It does NOT weaken the tests: the hook's other\r\n * exclusions — `disabled`, `aria-disabled`, and the ancestor walk for `hidden` /\r\n * `aria-hidden` / `inert` — are all ATTRIBUTE-based, work correctly in jsdom, and\r\n * remain fully exercised (see the \"disabled / aria-hidden filtering\" block).\r\n *\r\n * ⚠ Diagnosed during the procuration-portnet-fe certification audit, where these\r\n * eight failures were initially suspected of being a real WCAG R-M.2 breach\r\n * across all consuming modules. They were not. Do NOT \"fix\" this by relaxing the\r\n * rect check in the hook — that check is what stops a trap focusing an invisible\r\n * control in production.\r\n *\r\n * Restored in `afterAll` so the patch cannot leak into other suites. */\r\nconst realGetClientRects = Element.prototype.getClientRects;\r\n\r\nbeforeAll(() => {\r\n Element.prototype.getClientRects = function getClientRects(this: Element) {\r\n const rect: DOMRect = {\r\n x: 0,\r\n y: 0,\r\n top: 0,\r\n left: 0,\r\n right: 10,\r\n bottom: 10,\r\n width: 10,\r\n height: 10,\r\n toJSON: () => ({}),\r\n };\r\n const list = [rect];\r\n return Object.assign(list, {\r\n item: (i: number): DOMRect | null => list[i] ?? null,\r\n }) as unknown as DOMRectList;\r\n };\r\n});\r\n\r\nafterAll(() => {\r\n Element.prototype.getClientRects = realGetClientRects;\r\n});\r\n\r\n/**\r\n * Smoke + contract tests for the Batch 3 useFocusTrap refactor.\r\n *\r\n * Test harness — a minimal trap container component. Defaults to\r\n * active=true so tests don't have to flip props.\r\n */\r\ntype ContainerProps = React.HTMLAttributes<HTMLDivElement> & {\r\n [key: `data-${string}`]: string;\r\n};\r\n\r\ninterface TrappedProps {\r\n children?: React.ReactNode;\r\n active?: boolean;\r\n containerProps?: ContainerProps;\r\n}\r\n\r\nfunction Trapped({\r\n children,\r\n active = true,\r\n containerProps,\r\n}: TrappedProps): React.JSX.Element {\r\n const ref = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(ref, active);\r\n return (\r\n <div ref={ref} {...containerProps}>\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Returns whether `el` currently has focus, without touching\r\n * document.activeElement directly (testing-library/no-node-access) —\r\n * delegates to jest-dom's toHaveFocus() matcher and converts its pass/fail\r\n * into a boolean so several candidates can be checked in a single\r\n * \"focus is on ONE of these\" assertion (see the \"outer trap resumes\" test).\r\n */\r\nfunction isFocused(el: HTMLElement): boolean {\r\n try {\r\n expect(el).toHaveFocus();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nafterEach(() => {\r\n cleanup();\r\n});\r\n\r\ndescribe(\"useFocusTrap — initial focus\", () => {\r\n test(\"focuses the first focusable element when activated\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"[autofocus] priority wins over the first focusable\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button autoFocus>Auto</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Auto\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"[data-autofocus] priority is honoured (alternative attribute)\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button data-autofocus>Marker</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Marker\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"does not crash when the trap container is empty\", () => {\r\n expect(() =>\r\n render(<Trapped containerProps={{ \"data-testid\": \"empty\" }} />)\r\n ).not.toThrow();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — Tab cycling\", () => {\r\n test(\"Tab cycles forward and wraps to the first element\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n <button>Third</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Second\" })).toHaveFocus();\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n\r\n // Wrap from last to first\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n test(\"Shift+Tab from the first wraps to the last\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab({ shift: true });\r\n expect(screen.getByRole(\"button\", { name: \"Last\" })).toHaveFocus();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — disabled / aria-hidden filtering\", () => {\r\n test(\"disabled buttons are skipped during cycling\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button disabled>Disabled</button>\r\n <button>Third</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n // Tab should jump from First → Third, skipping Disabled.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n });\r\n\r\n test(\"[aria-hidden=true] subtree is excluded from the cycle boundary\", async () => {\r\n /* WHY THE aria-hidden SUBTREE IS LAST, AND WHY THIS ASSERTS THE WRAP\r\n *\r\n * This test previously placed the aria-hidden subtree in the MIDDLE and\r\n * expected a single Tab to jump First → Third. It failed, and the hook was\r\n * not at fault: of the three attributes isVisuallyFocusable walks,\r\n * `hidden` and `inert` remove an element from the NATIVE tab order, but\r\n * `aria-hidden` does NOT — per spec it annotates the accessibility tree\r\n * only. useFocusTrap intercepts Tab at the cycle BOUNDARIES (first/last)\r\n * and defers mid-cycle moves to the browser, so a native Tab lands on the\r\n * aria-hidden button no matter what getFocusable() returned.\r\n *\r\n * A focusable control inside aria-hidden=\"true\" is a CONTENT defect (axe\r\n * `aria-hidden-focus`); use `inert` (or `hidden`) to take a subtree out of\r\n * interaction. What the filter genuinely guarantees is that such an element\r\n * is never treated as the cycle's first/last — so the trap never DELIVERS\r\n * focus into it. That is what is asserted here: with the subtree last,\r\n * `last` is still \"Third\", so Tab from Third wraps to First instead of\r\n * proceeding natively into \"Hidden\".\r\n *\r\n * Do NOT restore the mid-cycle form without also converting the hook to\r\n * intercept every Tab — see the boundary-scope note in useFocusTrap.ts. */\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Third</button>\r\n <div aria-hidden=\"true\">\r\n <button>Hidden</button>\r\n </div>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n\r\n // \"Third\" is the LAST focusable the trap recognises: the aria-hidden\r\n // button is filtered out, so Tab wraps rather than entering it.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — nested traps (Batch 3 stack contract)\", () => {\r\n /**\r\n * Nested-trap harness. Outer trap is always-active; inner trap is\r\n * controlled by `innerActive`. When the inner mounts, Tab cycles\r\n * inside it; when the inner unmounts, the outer trap resumes.\r\n */\r\n interface NestedHarnessProps {\r\n innerActive: boolean;\r\n }\r\n\r\n function NestedHarness({ innerActive }: NestedHarnessProps): React.JSX.Element {\r\n return (\r\n <Trapped>\r\n <button>Outer-1</button>\r\n <button>Outer-2</button>\r\n {innerActive && (\r\n <Trapped containerProps={{ \"data-testid\": \"inner\" }}>\r\n <button>Inner-A</button>\r\n <button>Inner-B</button>\r\n </Trapped>\r\n )}\r\n </Trapped>\r\n );\r\n }\r\n\r\n test(\"inner trap takes over Tab cycling when active\", async () => {\r\n const { rerender } = render(<NestedHarness innerActive={false} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Outer-1\" })).toHaveFocus();\r\n });\r\n\r\n // Mount the inner trap — it should grab focus and confine Tab.\r\n rerender(<NestedHarness innerActive={true} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Inner-B\" })).toHaveFocus();\r\n\r\n // Wrap inside the inner trap, NOT escape to Outer-2.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n test(\"outer trap resumes after inner unmounts\", async () => {\r\n const { rerender } = render(<NestedHarness innerActive={true} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n // Unmount inner. Outer trap should resume duty.\r\n rerender(<NestedHarness innerActive={false} />);\r\n\r\n // Tab inside the outer container — must stay inside, not leak to body.\r\n // (We don't assert the exact focused element after rerender because\r\n // restoration depends on whether the previously-focused element is\r\n // still mounted; we DO assert that focus lands on one of the outer\r\n // buttons — isFocused() catches both \"lost to body\" and \"landed\r\n // somewhere unexpected\" in one check, without reading\r\n // document.activeElement directly.)\r\n await userEvent.tab();\r\n const outer1 = screen.getByRole(\"button\", { name: \"Outer-1\" });\r\n const outer2 = screen.getByRole(\"button\", { name: \"Outer-2\" });\r\n expect(isFocused(outer1) || isFocused(outer2)).toBe(true);\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useFocusTrap.test.js","names":["require","React","_interopRequireWildcard","_react2","_userEvent","_interopRequireDefault","_useFocusTrap","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","realGetClientRects","Element","prototype","getClientRects","beforeAll","rect","x","y","top","left","right","bottom","width","height","toJSON","list","assign","item","afterAll","Trapped","children","active","containerProps","ref","useRef","useFocusTrap","jsx","isFocused","el","expect","toHaveFocus","afterEach","cleanup","describe","test","render","jsxs","waitFor","screen","getByRole","name","autoFocus","not","toThrow","userEvent","tab","shift","disabled","NestedHarness","innerActive","rerender","outer1","outer2","toBe"],"sources":["../../../src/lib/v2/__tests__/useFocusTrap.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport * as React from \"react\";\r\nimport { render, waitFor, cleanup, screen } from \"@testing-library/react\";\r\nimport userEvent from \"@testing-library/user-event\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/* ── jsdom LAYOUT SHIM — REQUIRED, NOT A CONVENIENCE ────────────────────────\r\n *\r\n * Without this, EVERY test in this file fails at its first `waitFor`, with focus\r\n * sitting on <body>. The cause is not the hook:\r\n *\r\n * `useFocusTrap.isVisuallyFocusable` rejects an element whose\r\n * `getClientRects()` is empty — a cheap, correct test for `display:none` and\r\n * `visibility:hidden` in a real browser.\r\n *\r\n * jsdom PERFORMS NO LAYOUT. `getClientRects()` returns an empty list for every\r\n * element, always. So the filter discards all candidates, `getFocusable()`\r\n * returns `[]`, nothing is focused, and all eight assertions fail for one\r\n * reason that has nothing to do with focus management.\r\n *\r\n * This shim gives every element a non-zero rect so the visibility filter behaves\r\n * as it does in a browser. It does NOT weaken the tests: the hook's other\r\n * exclusions — `disabled`, `aria-disabled`, and the ancestor walk for `hidden` /\r\n * `aria-hidden` / `inert` — are all ATTRIBUTE-based, work correctly in jsdom, and\r\n * remain fully exercised (see the \"disabled / aria-hidden filtering\" block).\r\n *\r\n * ⚠ Diagnosed during the procuration-portnet-fe certification audit, where these\r\n * eight failures were initially suspected of being a real WCAG R-M.2 breach\r\n * across all consuming modules. They were not. Do NOT \"fix\" this by relaxing the\r\n * rect check in the hook — that check is what stops a trap focusing an invisible\r\n * control in production.\r\n *\r\n * Restored in `afterAll` so the patch cannot leak into other suites. */\r\nconst realGetClientRects = Element.prototype.getClientRects;\r\n\r\nbeforeAll(() => {\r\n Element.prototype.getClientRects = function getClientRects(this: Element) {\r\n const rect: DOMRect = {\r\n x: 0,\r\n y: 0,\r\n top: 0,\r\n left: 0,\r\n right: 10,\r\n bottom: 10,\r\n width: 10,\r\n height: 10,\r\n toJSON: () => ({}),\r\n };\r\n const list = [rect];\r\n return Object.assign(list, {\r\n item: (i: number): DOMRect | null => list[i] ?? null,\r\n }) as unknown as DOMRectList;\r\n };\r\n});\r\n\r\nafterAll(() => {\r\n Element.prototype.getClientRects = realGetClientRects;\r\n});\r\n\r\n/**\r\n * Smoke + contract tests for the Batch 3 useFocusTrap refactor.\r\n *\r\n * Test harness — a minimal trap container component. Defaults to\r\n * active=true so tests don't have to flip props.\r\n */\r\ntype ContainerProps = React.HTMLAttributes<HTMLDivElement> & {\r\n [key: `data-${string}`]: string;\r\n};\r\n\r\ninterface TrappedProps {\r\n children?: React.ReactNode;\r\n active?: boolean;\r\n containerProps?: ContainerProps;\r\n}\r\n\r\nfunction Trapped({\r\n children,\r\n active = true,\r\n containerProps,\r\n}: TrappedProps): React.JSX.Element {\r\n const ref = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(ref, active);\r\n return (\r\n <div ref={ref} {...containerProps}>\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Returns whether `el` currently has focus, without touching\r\n * document.activeElement directly (testing-library/no-node-access) —\r\n * delegates to jest-dom's toHaveFocus() matcher and converts its pass/fail\r\n * into a boolean so several candidates can be checked in a single\r\n * \"focus is on ONE of these\" assertion (see the \"outer trap resumes\" test).\r\n */\r\nfunction isFocused(el: HTMLElement): boolean {\r\n try {\r\n expect(el).toHaveFocus();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nafterEach(() => {\r\n cleanup();\r\n});\r\n\r\ndescribe(\"useFocusTrap — initial focus\", () => {\r\n test(\"focuses the first focusable element when activated\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"[autofocus] priority wins over the first focusable\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button autoFocus>Auto</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Auto\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"[data-autofocus] priority is honoured (alternative attribute)\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button data-autofocus>Marker</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Marker\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"does not crash when the trap container is empty\", () => {\r\n expect(() =>\r\n render(<Trapped containerProps={{ \"data-testid\": \"empty\" }} />)\r\n ).not.toThrow();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — Tab cycling\", () => {\r\n test(\"Tab cycles forward and wraps to the first element\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n <button>Third</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Second\" })).toHaveFocus();\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n\r\n // Wrap from last to first\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n test(\"Shift+Tab from the first wraps to the last\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab({ shift: true });\r\n expect(screen.getByRole(\"button\", { name: \"Last\" })).toHaveFocus();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — disabled / aria-hidden filtering\", () => {\r\n test(\"disabled buttons are skipped during cycling\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button disabled>Disabled</button>\r\n <button>Third</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n // Tab should jump from First → Third, skipping Disabled.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n });\r\n\r\n test(\"[aria-hidden=true] subtree is excluded from the cycle boundary\", async () => {\r\n /* WHY THE aria-hidden SUBTREE IS LAST, AND WHY THIS ASSERTS THE WRAP\r\n *\r\n * This test previously placed the aria-hidden subtree in the MIDDLE and\r\n * expected a single Tab to jump First → Third. It failed, and the hook was\r\n * not at fault: of the three attributes isVisuallyFocusable walks,\r\n * `hidden` and `inert` remove an element from the NATIVE tab order, but\r\n * `aria-hidden` does NOT — per spec it annotates the accessibility tree\r\n * only. useFocusTrap intercepts Tab at the cycle BOUNDARIES (first/last)\r\n * and defers mid-cycle moves to the browser, so a native Tab lands on the\r\n * aria-hidden button no matter what getFocusable() returned.\r\n *\r\n * A focusable control inside aria-hidden=\"true\" is a CONTENT defect (axe\r\n * `aria-hidden-focus`); use `inert` (or `hidden`) to take a subtree out of\r\n * interaction. What the filter genuinely guarantees is that such an element\r\n * is never treated as the cycle's first/last — so the trap never DELIVERS\r\n * focus into it. That is what is asserted here: with the subtree last,\r\n * `last` is still \"Third\", so Tab from Third wraps to First instead of\r\n * proceeding natively into \"Hidden\".\r\n *\r\n * Do NOT restore the mid-cycle form without also converting the hook to\r\n * intercept every Tab — see the boundary-scope note in useFocusTrap.ts. */\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Third</button>\r\n <div aria-hidden=\"true\">\r\n <button>Hidden</button>\r\n </div>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n\r\n // \"Third\" is the LAST focusable the trap recognises: the aria-hidden\r\n // button is filtered out, so Tab wraps rather than entering it.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — nested traps (Batch 3 stack contract)\", () => {\r\n /**\r\n * Nested-trap harness. Outer trap is always-active; inner trap is\r\n * controlled by `innerActive`. When the inner mounts, Tab cycles\r\n * inside it; when the inner unmounts, the outer trap resumes.\r\n */\r\n interface NestedHarnessProps {\r\n innerActive: boolean;\r\n }\r\n\r\n function NestedHarness({ innerActive }: NestedHarnessProps): React.JSX.Element {\r\n return (\r\n <Trapped>\r\n <button>Outer-1</button>\r\n <button>Outer-2</button>\r\n {innerActive && (\r\n <Trapped containerProps={{ \"data-testid\": \"inner\" }}>\r\n <button>Inner-A</button>\r\n <button>Inner-B</button>\r\n </Trapped>\r\n )}\r\n </Trapped>\r\n );\r\n }\r\n\r\n test(\"inner trap takes over Tab cycling when active\", async () => {\r\n const { rerender } = render(<NestedHarness innerActive={false} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Outer-1\" })).toHaveFocus();\r\n });\r\n\r\n // Mount the inner trap — it should grab focus and confine Tab.\r\n rerender(<NestedHarness innerActive={true} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Inner-B\" })).toHaveFocus();\r\n\r\n // Wrap inside the inner trap, NOT escape to Outer-2.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n test(\"outer trap resumes after inner unmounts\", async () => {\r\n const { rerender } = render(<NestedHarness innerActive={true} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n // Unmount inner. Outer trap should resume duty.\r\n rerender(<NestedHarness innerActive={false} />);\r\n\r\n // Tab inside the outer container — must stay inside, not leak to body.\r\n // (We don't assert the exact focused element after rerender because\r\n // restoration depends on whether the previously-focused element is\r\n // still mounted; we DO assert that focus lands on one of the outer\r\n // buttons — isFocused() catches both \"lost to body\" and \"landed\r\n // somewhere unexpected\" in one check, without reading\r\n // document.activeElement directly.)\r\n await userEvent.tab();\r\n const outer1 = screen.getByRole(\"button\", { name: \"Outer-1\" });\r\n const outer2 = screen.getByRole(\"button\", { name: \"Outer-2\" });\r\n expect(isFocused(outer1) || isFocused(outer2)).toBe(true);\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ require("@testing-library/jest-dom");
4
+ var _react = require("@testing-library/react");
5
+ var _usePrefersReducedMotion = _interopRequireWildcard(require("../hooks/usePrefersReducedMotion"));
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
8
+ /* ── Why a hand-rolled MediaQueryList ───────────────────────────────────────
9
+ *
10
+ * jsdom implements `window.matchMedia`, but it does not EVALUATE the query: it
11
+ * answers `matches: false` for everything and never emits a `change` event. So
12
+ * jsdom can tell us the hook does not crash, and nothing else — not the value
13
+ * it reads, and above all not the subscription, which is the entire reason the
14
+ * hook exists (see its header: every host copy was a non-subscribing snapshot).
15
+ *
16
+ * The fake below is therefore the subject under test as much as the hook is: it
17
+ * records the query string, lets a test flip `matches`, and emits `change` the
18
+ * way a browser does. */
19
+
20
+ const createFakeMql = initial => {
21
+ const listeners = new Set();
22
+ const mql = {
23
+ media: "",
24
+ matches: initial,
25
+ listeners,
26
+ addEventListener: jest.fn((type, listener) => {
27
+ if (type === "change") listeners.add(listener);
28
+ }),
29
+ removeEventListener: jest.fn((type, listener) => {
30
+ if (type === "change") listeners.delete(listener);
31
+ }),
32
+ emit: next => {
33
+ mql.matches = next;
34
+ listeners.forEach(listener => listener({
35
+ matches: next
36
+ }));
37
+ }
38
+ };
39
+ return mql;
40
+ };
41
+ function Probe() {
42
+ const reduced = (0, _usePrefersReducedMotion.default)();
43
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
44
+ "data-testid": "value",
45
+ children: reduced ? "reduced" : "full"
46
+ });
47
+ }
48
+ const realMatchMedia = window.matchMedia;
49
+ afterEach(() => {
50
+ (0, _react.cleanup)();
51
+ Object.defineProperty(window, "matchMedia", {
52
+ configurable: true,
53
+ writable: true,
54
+ value: realMatchMedia
55
+ });
56
+ });
57
+ const installMatchMedia = mql => {
58
+ const impl = jest.fn(query => {
59
+ if (mql === null) throw new Error("matchMedia should not have been called");
60
+ mql.media = query;
61
+ return mql;
62
+ });
63
+ Object.defineProperty(window, "matchMedia", {
64
+ configurable: true,
65
+ writable: true,
66
+ value: impl
67
+ });
68
+ return impl;
69
+ };
70
+ describe("usePrefersReducedMotion", () => {
71
+ it("reads the preference on first render", () => {
72
+ const mql = createFakeMql(true);
73
+ installMatchMedia(mql);
74
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Probe, {}));
75
+ expect(_react.screen.getByTestId("value")).toHaveTextContent("reduced");
76
+ expect(mql.media).toBe(_usePrefersReducedMotion.PREFERS_REDUCED_MOTION_QUERY);
77
+ });
78
+ it("returns false when no preference is stated", () => {
79
+ installMatchMedia(createFakeMql(false));
80
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Probe, {}));
81
+ expect(_react.screen.getByTestId("value")).toHaveTextContent("full");
82
+ });
83
+
84
+ /* THE REGRESSION THIS FILE EXISTS FOR — R-7.5 is present tense. The helper
85
+ * this hook replaces read `matches` once during render, so a user enabling
86
+ * the preference mid-session kept every animation until an unrelated
87
+ * re-render. */
88
+ it("re-renders when the preference changes while mounted", () => {
89
+ const mql = createFakeMql(false);
90
+ installMatchMedia(mql);
91
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Probe, {}));
92
+ expect(_react.screen.getByTestId("value")).toHaveTextContent("full");
93
+ (0, _react.act)(() => mql.emit(true));
94
+ expect(_react.screen.getByTestId("value")).toHaveTextContent("reduced");
95
+ (0, _react.act)(() => mql.emit(false));
96
+ expect(_react.screen.getByTestId("value")).toHaveTextContent("full");
97
+ });
98
+ it("unsubscribes on unmount", () => {
99
+ const mql = createFakeMql(false);
100
+ installMatchMedia(mql);
101
+ const {
102
+ unmount
103
+ } = (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Probe, {}));
104
+ expect(mql.listeners.size).toBe(1);
105
+ unmount();
106
+ expect(mql.listeners.size).toBe(0);
107
+ expect(mql.removeEventListener).toHaveBeenCalled();
108
+ });
109
+
110
+ /* An environment without `matchMedia` must render, not throw: the hook is
111
+ * consumed by module code that also runs in tests and tooling where the
112
+ * method is absent. */
113
+ it("falls back to false when matchMedia is unavailable", () => {
114
+ Object.defineProperty(window, "matchMedia", {
115
+ configurable: true,
116
+ writable: true,
117
+ value: undefined
118
+ });
119
+ (0, _react.render)(/*#__PURE__*/(0, _jsxRuntime.jsx)(Probe, {}));
120
+ expect(_react.screen.getByTestId("value")).toHaveTextContent("full");
121
+ });
122
+ });
123
+ //# sourceMappingURL=usePrefersReducedMotion.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePrefersReducedMotion.test.js","names":["require","_react","_usePrefersReducedMotion","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","createFakeMql","initial","listeners","Set","mql","media","matches","addEventListener","jest","fn","type","listener","add","removeEventListener","delete","emit","next","forEach","Probe","reduced","usePrefersReducedMotion","jsx","children","realMatchMedia","window","matchMedia","afterEach","cleanup","configurable","writable","value","installMatchMedia","impl","query","Error","describe","it","render","expect","screen","getByTestId","toHaveTextContent","toBe","PREFERS_REDUCED_MOTION_QUERY","act","unmount","size","toHaveBeenCalled","undefined"],"sources":["../../../src/lib/v2/__tests__/usePrefersReducedMotion.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport { render, screen, act, cleanup } from \"@testing-library/react\";\r\nimport usePrefersReducedMotion, {\r\n PREFERS_REDUCED_MOTION_QUERY,\r\n} from \"../hooks/usePrefersReducedMotion\";\r\n\r\n/* ── Why a hand-rolled MediaQueryList ───────────────────────────────────────\r\n *\r\n * jsdom implements `window.matchMedia`, but it does not EVALUATE the query: it\r\n * answers `matches: false` for everything and never emits a `change` event. So\r\n * jsdom can tell us the hook does not crash, and nothing else — not the value\r\n * it reads, and above all not the subscription, which is the entire reason the\r\n * hook exists (see its header: every host copy was a non-subscribing snapshot).\r\n *\r\n * The fake below is therefore the subject under test as much as the hook is: it\r\n * records the query string, lets a test flip `matches`, and emits `change` the\r\n * way a browser does. */\r\ntype Listener = (event: MediaQueryListEvent) => void;\r\n\r\ninterface FakeMql {\r\n media: string;\r\n matches: boolean;\r\n listeners: Set<Listener>;\r\n addEventListener: jest.Mock;\r\n removeEventListener: jest.Mock;\r\n /** Flips the preference and notifies, as the platform would. */\r\n emit: (next: boolean) => void;\r\n}\r\n\r\nconst createFakeMql = (initial: boolean): FakeMql => {\r\n const listeners = new Set<Listener>();\r\n const mql: FakeMql = {\r\n media: \"\",\r\n matches: initial,\r\n listeners,\r\n addEventListener: jest.fn((type: string, listener: Listener) => {\r\n if (type === \"change\") listeners.add(listener);\r\n }),\r\n removeEventListener: jest.fn((type: string, listener: Listener) => {\r\n if (type === \"change\") listeners.delete(listener);\r\n }),\r\n emit: (next: boolean) => {\r\n mql.matches = next;\r\n listeners.forEach((listener) =>\r\n listener({ matches: next } as MediaQueryListEvent)\r\n );\r\n },\r\n };\r\n return mql;\r\n};\r\n\r\nfunction Probe() {\r\n const reduced = usePrefersReducedMotion();\r\n return <span data-testid=\"value\">{reduced ? \"reduced\" : \"full\"}</span>;\r\n}\r\n\r\nconst realMatchMedia = window.matchMedia;\r\n\r\nafterEach(() => {\r\n cleanup();\r\n Object.defineProperty(window, \"matchMedia\", {\r\n configurable: true,\r\n writable: true,\r\n value: realMatchMedia,\r\n });\r\n});\r\n\r\nconst installMatchMedia = (mql: FakeMql | null): jest.Mock => {\r\n const impl = jest.fn((query: string) => {\r\n if (mql === null) throw new Error(\"matchMedia should not have been called\");\r\n mql.media = query;\r\n return mql as unknown as MediaQueryList;\r\n });\r\n Object.defineProperty(window, \"matchMedia\", {\r\n configurable: true,\r\n writable: true,\r\n value: impl,\r\n });\r\n return impl;\r\n};\r\n\r\ndescribe(\"usePrefersReducedMotion\", () => {\r\n it(\"reads the preference on first render\", () => {\r\n const mql = createFakeMql(true);\r\n installMatchMedia(mql);\r\n\r\n render(<Probe />);\r\n\r\n expect(screen.getByTestId(\"value\")).toHaveTextContent(\"reduced\");\r\n expect(mql.media).toBe(PREFERS_REDUCED_MOTION_QUERY);\r\n });\r\n\r\n it(\"returns false when no preference is stated\", () => {\r\n installMatchMedia(createFakeMql(false));\r\n\r\n render(<Probe />);\r\n\r\n expect(screen.getByTestId(\"value\")).toHaveTextContent(\"full\");\r\n });\r\n\r\n /* THE REGRESSION THIS FILE EXISTS FOR — R-7.5 is present tense. The helper\r\n * this hook replaces read `matches` once during render, so a user enabling\r\n * the preference mid-session kept every animation until an unrelated\r\n * re-render. */\r\n it(\"re-renders when the preference changes while mounted\", () => {\r\n const mql = createFakeMql(false);\r\n installMatchMedia(mql);\r\n\r\n render(<Probe />);\r\n expect(screen.getByTestId(\"value\")).toHaveTextContent(\"full\");\r\n\r\n act(() => mql.emit(true));\r\n expect(screen.getByTestId(\"value\")).toHaveTextContent(\"reduced\");\r\n\r\n act(() => mql.emit(false));\r\n expect(screen.getByTestId(\"value\")).toHaveTextContent(\"full\");\r\n });\r\n\r\n it(\"unsubscribes on unmount\", () => {\r\n const mql = createFakeMql(false);\r\n installMatchMedia(mql);\r\n\r\n const { unmount } = render(<Probe />);\r\n expect(mql.listeners.size).toBe(1);\r\n\r\n unmount();\r\n expect(mql.listeners.size).toBe(0);\r\n expect(mql.removeEventListener).toHaveBeenCalled();\r\n });\r\n\r\n /* An environment without `matchMedia` must render, not throw: the hook is\r\n * consumed by module code that also runs in tests and tooling where the\r\n * method is absent. */\r\n it(\"falls back to false when matchMedia is unavailable\", () => {\r\n Object.defineProperty(window, \"matchMedia\", {\r\n configurable: true,\r\n writable: true,\r\n value: undefined,\r\n });\r\n\r\n render(<Probe />);\r\n\r\n expect(screen.getByTestId(\"value\")).toHaveTextContent(\"full\");\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,15 @@
1
1
  "use strict";
2
2
 
3
- 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); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports["default"] = void 0;
6
+ exports.default = void 0;
8
7
  var React = _interopRequireWildcard(require("react"));
9
8
  var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
10
9
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
11
10
  var _jsxRuntime = require("react/jsx-runtime");
12
- var _excluded = ["children", "defaultOpen", "open", "onChange", "mode", "sx"],
13
- _excluded2 = ["id", "title", "badge", "icon", "children", "sx"];
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
13
  /**
15
14
  * Accordion — Portnet UI v2
16
15
  *
@@ -45,71 +44,48 @@ var _excluded = ["children", "defaultOpen", "open", "onChange", "mode", "sx"],
45
44
  * "single" — only one item open at a time
46
45
  * (mutually-exclusive accordion)
47
46
  */
48
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
49
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
50
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
51
- 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; }
52
- 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; }
53
- 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; }
54
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
55
- 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); }
56
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
57
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
58
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
59
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
60
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
61
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
62
- 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; }
63
- 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; }
64
- var AccordionContext = /*#__PURE__*/React.createContext(null);
65
- function Accordion(_ref) {
66
- var children = _ref.children,
67
- defaultOpen = _ref.defaultOpen,
68
- open = _ref.open,
69
- onChange = _ref.onChange,
70
- _ref$mode = _ref.mode,
71
- mode = _ref$mode === void 0 ? "multiple" : _ref$mode,
72
- sx = _ref.sx,
73
- rest = _objectWithoutProperties(_ref, _excluded);
74
- var controlled = open !== undefined;
75
- var _React$useState = React.useState(function () {
76
- return new Set(defaultOpen || []);
77
- }),
78
- _React$useState2 = _slicedToArray(_React$useState, 2),
79
- internalOpen = _React$useState2[0],
80
- setInternalOpen = _React$useState2[1];
81
- var openSet = React.useMemo(function () {
82
- return controlled ? new Set(open) : internalOpen;
83
- }, [controlled, open, internalOpen]);
84
- var toggle = React.useCallback(function (id) {
85
- var next = new Set(openSet);
47
+
48
+ const AccordionContext = /*#__PURE__*/React.createContext(null);
49
+ function Accordion({
50
+ children,
51
+ defaultOpen,
52
+ open,
53
+ onChange,
54
+ mode = "multiple",
55
+ sx,
56
+ ...rest
57
+ }) {
58
+ const controlled = open !== undefined;
59
+ const [internalOpen, setInternalOpen] = React.useState(() => new Set(defaultOpen || []));
60
+ const openSet = React.useMemo(() => controlled ? new Set(open) : internalOpen, [controlled, open, internalOpen]);
61
+ const toggle = React.useCallback(id => {
62
+ const next = new Set(openSet);
86
63
  if (next.has(id)) {
87
- next["delete"](id);
64
+ next.delete(id);
88
65
  } else {
89
66
  if (mode === "single") next.clear();
90
67
  next.add(id);
91
68
  }
92
- var nextArr = Array.from(next);
69
+ const nextArr = Array.from(next);
93
70
  if (!controlled) setInternalOpen(next);
94
- onChange === null || onChange === void 0 ? void 0 : onChange(nextArr);
71
+ onChange?.(nextArr);
95
72
  }, [openSet, mode, controlled, onChange]);
96
- var ctx = React.useMemo(function () {
97
- return {
98
- openSet: openSet,
99
- toggle: toggle
100
- };
101
- }, [openSet, toggle]);
73
+ const ctx = React.useMemo(() => ({
74
+ openSet,
75
+ toggle
76
+ }), [openSet, toggle]);
102
77
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(AccordionContext.Provider, {
103
78
  value: ctx,
104
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], _objectSpread(_objectSpread({
105
- sx: _objectSpread({
79
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
80
+ sx: {
106
81
  display: "flex",
107
82
  flexDirection: "column",
108
- gap: "var(--s-2)"
109
- }, sx)
110
- }, rest), {}, {
83
+ gap: "var(--s-2)",
84
+ ...sx
85
+ },
86
+ ...rest,
111
87
  children: children
112
- }))
88
+ })
113
89
  });
114
90
  }
115
91
 
@@ -122,33 +98,34 @@ function Accordion(_ref) {
122
98
  // context state and is never meant to be re-parented or native-name-grouped,
123
99
  // so neither should be an externally settable prop.
124
100
 
125
- function AccordionItem(_ref2) {
126
- var id = _ref2.id,
127
- title = _ref2.title,
128
- badge = _ref2.badge,
129
- icon = _ref2.icon,
130
- children = _ref2.children,
131
- sx = _ref2.sx,
132
- rest = _objectWithoutProperties(_ref2, _excluded2);
133
- var ctx = React.useContext(AccordionContext);
101
+ function AccordionItem({
102
+ id,
103
+ title,
104
+ badge,
105
+ icon,
106
+ children,
107
+ sx,
108
+ ...rest
109
+ }) {
110
+ const ctx = React.useContext(AccordionContext);
134
111
  if (!ctx) {
135
112
  throw new Error("Accordion.Item must be rendered inside <Accordion>.");
136
113
  }
137
- var isOpen = ctx.openSet.has(id);
114
+ const isOpen = ctx.openSet.has(id);
138
115
 
139
116
  /* React's controlled <details>/open is fiddly — we use the native
140
117
  * element but intercept the click on the summary, preventing the
141
118
  * default toggle so our state stays the single source of truth. */
142
- var handleClick = function handleClick(e) {
119
+ const handleClick = e => {
143
120
  e.preventDefault();
144
121
  ctx.toggle(id);
145
122
  };
146
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], _objectSpread(_objectSpread({
123
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
147
124
  component: "details"
148
125
  // We re-render with the boolean so React/DOM stay in sync.
149
126
  ,
150
127
  open: isOpen || undefined,
151
- sx: _objectSpread({
128
+ sx: {
152
129
  border: "1px solid var(--border)",
153
130
  borderRadius: "var(--r-md)",
154
131
  background: "var(--surface)",
@@ -159,10 +136,11 @@ function AccordionItem(_ref2) {
159
136
  },
160
137
  "& > summary": {
161
138
  listStyle: "none"
162
- }
163
- }, sx)
164
- }, rest), {}, {
165
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
139
+ },
140
+ ...sx
141
+ },
142
+ ...rest,
143
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
166
144
  component: "summary",
167
145
  onClick: handleClick,
168
146
  sx: {
@@ -181,7 +159,7 @@ function AccordionItem(_ref2) {
181
159
  outlineOffset: "var(--pui-outline-offset)"
182
160
  }
183
161
  },
184
- children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
162
+ children: [icon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
185
163
  "aria-hidden": "true",
186
164
  sx: {
187
165
  color: "var(--fg-muted)",
@@ -191,13 +169,13 @@ function AccordionItem(_ref2) {
191
169
  }
192
170
  },
193
171
  children: icon
194
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
172
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
195
173
  sx: {
196
174
  flex: 1,
197
175
  minWidth: 0
198
176
  },
199
177
  children: title
200
- }), badge != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
178
+ }), badge != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
201
179
  sx: {
202
180
  fontSize: "var(--text-xs)",
203
181
  fontWeight: "var(--fw-medium)",
@@ -207,7 +185,7 @@ function AccordionItem(_ref2) {
207
185
  padding: "2px 8px"
208
186
  },
209
187
  children: badge
210
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
188
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
211
189
  "aria-hidden": "true",
212
190
  sx: {
213
191
  display: "inline-flex",
@@ -221,18 +199,18 @@ function AccordionItem(_ref2) {
221
199
  transition: "none"
222
200
  }
223
201
  },
224
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore["default"], {})
202
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ExpandMore.default, {})
225
203
  })]
226
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
204
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
227
205
  sx: {
228
206
  padding: "var(--s-2) var(--s-4) var(--s-4)",
229
207
  borderTop: "1px solid var(--border-subtle, var(--border))"
230
208
  },
231
209
  children: children
232
210
  })]
233
- }));
211
+ });
234
212
  }
235
- var _default = exports["default"] = Object.assign(Accordion, {
213
+ var _default = exports.default = Object.assign(Accordion, {
236
214
  Item: AccordionItem
237
215
  });
238
216
  //# sourceMappingURL=Accordion.js.map