@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,9 +1,3 @@
1
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
- 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."); }
3
- 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); }
4
- 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; }
5
- 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; } }
6
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
1
  import * as React from "react";
8
2
  import Box from "@mui/material/Box";
9
3
  import Popover from "@mui/material/Popover";
@@ -50,14 +44,12 @@ import { mergeLabels } from "../utils/mergeLabels";
50
44
  * component.
51
45
  */
52
46
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
53
- var DEFAULT_LABELS = Object.freeze({
47
+ const DEFAULT_LABELS = Object.freeze({
54
48
  button: "Colonnes",
55
49
  title: "Afficher les colonnes",
56
50
  showAll: "Tout afficher",
57
51
  hideAll: "Tout masquer",
58
- countSuffix: function countSuffix(n) {
59
- return "".concat(n, " masqu\xE9e").concat(n > 1 ? "s" : "");
60
- }
52
+ countSuffix: n => `${n} masquée${n > 1 ? "s" : ""}`
61
53
  });
62
54
 
63
55
  /* SET-1 — Best-effort plain-text extraction from a column header node, used to
@@ -78,14 +70,14 @@ export function extractHeaderText(node) {
78
70
 
79
71
  /* ── Hoisted sx (D5) ──────────────────────────────────────────────── */
80
72
 
81
- var POPOVER_PAPER_SX = Object.freeze({
73
+ const POPOVER_PAPER_SX = Object.freeze({
82
74
  // Match the rest of the v2 surface — soft radius, subtle border,
83
75
  // shadow consistent with Drawer / Modal.
84
76
  borderRadius: "var(--r-lg)",
85
77
  boxShadow: "var(--shadow-md)",
86
78
  border: "1px solid var(--border)"
87
79
  });
88
- var POPOVER_BODY_SX = Object.freeze({
80
+ const POPOVER_BODY_SX = Object.freeze({
89
81
  padding: "var(--s-3) var(--s-4)",
90
82
  minWidth: 240,
91
83
  maxHeight: 360,
@@ -94,7 +86,7 @@ var POPOVER_BODY_SX = Object.freeze({
94
86
  flexDirection: "column",
95
87
  gap: "var(--s-1)"
96
88
  });
97
- var POPOVER_TITLE_SX = Object.freeze({
89
+ const POPOVER_TITLE_SX = Object.freeze({
98
90
  fontSize: "var(--text-xs)",
99
91
  fontWeight: "var(--fw-semibold)",
100
92
  color: "var(--fg-muted)",
@@ -104,7 +96,7 @@ var POPOVER_TITLE_SX = Object.freeze({
104
96
  borderBottom: "1px solid var(--border)",
105
97
  marginBottom: "var(--s-2)"
106
98
  });
107
- var POPOVER_FOOTER_SX = Object.freeze({
99
+ const POPOVER_FOOTER_SX = Object.freeze({
108
100
  display: "flex",
109
101
  justifyContent: "space-between",
110
102
  gap: "var(--s-2)",
@@ -112,7 +104,7 @@ var POPOVER_FOOTER_SX = Object.freeze({
112
104
  marginTop: "var(--s-2)",
113
105
  borderTop: "1px solid var(--border)"
114
106
  });
115
- var CHECKBOX_LABEL_SX = Object.freeze({
107
+ const CHECKBOX_LABEL_SX = Object.freeze({
116
108
  // Override MUI default 16px which is too generous for compact
117
109
  // popover lists. Keeps each row at the ~32px touch-friendly
118
110
  // minimum without padding.
@@ -123,7 +115,7 @@ var CHECKBOX_LABEL_SX = Object.freeze({
123
115
  color: "var(--fg)"
124
116
  }
125
117
  });
126
- var BADGE_SX = Object.freeze({
118
+ const BADGE_SX = Object.freeze({
127
119
  marginInlineStart: "var(--s-1)",
128
120
  background: "var(--accent)",
129
121
  color: "var(--accent-fg)",
@@ -133,88 +125,64 @@ var BADGE_SX = Object.freeze({
133
125
  fontWeight: "var(--fw-semibold)",
134
126
  lineHeight: 1.4
135
127
  });
136
- function ColumnsToggle(_ref) {
137
- var columns = _ref.columns,
138
- hiddenColumns = _ref.hiddenColumns,
139
- onHiddenColumnsChange = _ref.onHiddenColumnsChange,
140
- labels = _ref.labels;
141
- var L = mergeLabels(DEFAULT_LABELS, labels);
142
- var _React$useState = React.useState(null),
143
- _React$useState2 = _slicedToArray(_React$useState, 2),
144
- anchor = _React$useState2[0],
145
- setAnchor = _React$useState2[1];
128
+ function ColumnsToggle({
129
+ columns,
130
+ hiddenColumns,
131
+ onHiddenColumnsChange,
132
+ labels
133
+ }) {
134
+ const L = mergeLabels(DEFAULT_LABELS, labels);
135
+ const [anchor, setAnchor] = React.useState(null);
146
136
 
147
137
  // Normalise hiddenColumns to a Set for the predicate work below.
148
138
  // Same contract as DataGrid — accepts Set or Array. Memoised so
149
139
  // the popover body doesn't recompute checkbox states on unrelated
150
140
  // renders.
151
- var hiddenSet = React.useMemo(function () {
152
- return hiddenColumns instanceof Set ? hiddenColumns : new Set(hiddenColumns || []);
153
- }, [hiddenColumns]);
141
+ const hiddenSet = React.useMemo(() => hiddenColumns instanceof Set ? hiddenColumns : new Set(hiddenColumns || []), [hiddenColumns]);
154
142
 
155
143
  // Toggleable subset — the only columns this UI exposes. System-
156
144
  // pinned columns (col.toggleable === false) are absent from the
157
145
  // popover entirely. Memoised because columns is often passed
158
146
  // inline by hosts (defensive against per-render reference churn).
159
- var toggleableColumns = React.useMemo(function () {
160
- return columns.filter(function (c) {
161
- return c.toggleable !== false;
162
- });
163
- }, [columns]);
147
+ const toggleableColumns = React.useMemo(() => columns.filter(c => c.toggleable !== false), [columns]);
164
148
 
165
149
  // Count of currently-hidden columns AMONG the toggleable set
166
150
  // (defensive: a host that pre-hides a column then flips its
167
151
  // toggleable flag to false shouldn't see a stale count).
168
- var hiddenCount = React.useMemo(function () {
169
- return toggleableColumns.filter(function (c) {
170
- return hiddenSet.has(c.key);
171
- }).length;
172
- }, [toggleableColumns, hiddenSet]);
173
- var open = Boolean(anchor);
174
- var handleOpen = function handleOpen(e) {
175
- return setAnchor(e.currentTarget);
176
- };
177
- var handleClose = function handleClose() {
178
- return setAnchor(null);
179
- };
152
+ const hiddenCount = React.useMemo(() => toggleableColumns.filter(c => hiddenSet.has(c.key)).length, [toggleableColumns, hiddenSet]);
153
+ const open = Boolean(anchor);
154
+ const handleOpen = e => setAnchor(e.currentTarget);
155
+ const handleClose = () => setAnchor(null);
180
156
 
181
157
  // Single column toggle — checkbox represents visibility, so
182
158
  // CHECKED means "remove from hiddenSet" (= show).
183
- var toggleColumn = function toggleColumn(key) {
184
- var next = new Set(hiddenSet);
185
- if (next.has(key)) next["delete"](key);else next.add(key);
159
+ const toggleColumn = key => {
160
+ const next = new Set(hiddenSet);
161
+ if (next.has(key)) next.delete(key);else next.add(key);
186
162
  onHiddenColumnsChange(next);
187
163
  };
188
- var showAll = function showAll() {
189
- return onHiddenColumnsChange(new Set());
190
- };
191
- var hideAll = function hideAll() {
192
- return onHiddenColumnsChange(new Set(toggleableColumns.map(function (c) {
193
- return c.key;
194
- })));
195
- };
164
+ const showAll = () => onHiddenColumnsChange(new Set());
165
+ const hideAll = () => onHiddenColumnsChange(new Set(toggleableColumns.map(c => c.key)));
196
166
 
197
167
  // ARIA label for the trigger — includes the hidden count so
198
168
  // screen readers announce state without relying on the
199
169
  // decorative badge digit. e.g. "Colonnes, 2 masquées".
200
- var triggerAriaLabel = hiddenCount > 0 ? "".concat(L.button, ", ").concat(L.countSuffix(hiddenCount)) : L.button;
170
+ const triggerAriaLabel = hiddenCount > 0 ? `${L.button}, ${L.countSuffix(hiddenCount)}` : L.button;
201
171
 
202
172
  // MUI v9: slot bag for Popover paper. Carries the dialog ARIA
203
173
  // contract (role + aria-label) — host-customisable via labels.title.
204
174
  // Memoised so the slotProps reference stays stable when L.title
205
175
  // is unchanged.
206
- var popoverSlotProps = React.useMemo(function () {
207
- return {
208
- paper: {
209
- sx: POPOVER_PAPER_SX,
210
- // Dialog role so screen readers treat the popover as a
211
- // discrete UI region rather than just a tooltip-like
212
- // overlay.
213
- role: "dialog",
214
- "aria-label": L.title
215
- }
216
- };
217
- }, [L.title]);
176
+ const popoverSlotProps = React.useMemo(() => ({
177
+ paper: {
178
+ sx: POPOVER_PAPER_SX,
179
+ // Dialog role so screen readers treat the popover as a
180
+ // discrete UI region rather than just a tooltip-like
181
+ // overlay.
182
+ role: "dialog",
183
+ "aria-label": L.title
184
+ }
185
+ }), [L.title]);
218
186
  return /*#__PURE__*/_jsxs(_Fragment, {
219
187
  children: [/*#__PURE__*/_jsxs(Button, {
220
188
  variant: "ghost",
@@ -252,20 +220,18 @@ function ColumnsToggle(_ref) {
252
220
  component: "div",
253
221
  sx: POPOVER_TITLE_SX,
254
222
  children: L.title
255
- }), toggleableColumns.map(function (col) {
256
- var isVisible = !hiddenSet.has(col.key);
223
+ }), toggleableColumns.map(col => {
224
+ const isVisible = !hiddenSet.has(col.key);
257
225
  // SET-1 — accessible name = the header's visible text so it matches
258
226
  // the rendered label (WCAG 2.5.3). Only icon-only headers (no text)
259
227
  // fall back to the raw key. The visual label still renders col.header.
260
- var headerText = extractHeaderText(col.header).trim();
261
- var labelText = headerText || col.key;
228
+ const headerText = extractHeaderText(col.header).trim();
229
+ const labelText = headerText || col.key;
262
230
  return /*#__PURE__*/_jsx(FormControlLabel, {
263
231
  control: /*#__PURE__*/_jsx(Checkbox, {
264
232
  size: "small",
265
233
  checked: isVisible,
266
- onChange: function onChange() {
267
- return toggleColumn(col.key);
268
- },
234
+ onChange: () => toggleColumn(col.key),
269
235
  slotProps: {
270
236
  input: {
271
237
  "aria-label": labelText
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnsToggle.js","names":["React","Box","Popover","Checkbox","FormControlLabel","ViewColumnIcon","Button","mergeLabels","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_LABELS","Object","freeze","button","title","showAll","hideAll","countSuffix","n","concat","extractHeaderText","node","String","Array","isArray","map","join","trim","isValidElement","props","children","POPOVER_PAPER_SX","borderRadius","boxShadow","border","POPOVER_BODY_SX","padding","minWidth","maxHeight","overflowY","display","flexDirection","gap","POPOVER_TITLE_SX","fontSize","fontWeight","color","textTransform","letterSpacing","paddingBottom","borderBottom","marginBottom","POPOVER_FOOTER_SX","justifyContent","paddingTop","marginTop","borderTop","CHECKBOX_LABEL_SX","marginLeft","marginRight","BADGE_SX","marginInlineStart","background","lineHeight","ColumnsToggle","_ref","columns","hiddenColumns","onHiddenColumnsChange","labels","L","_React$useState","useState","_React$useState2","_slicedToArray","anchor","setAnchor","hiddenSet","useMemo","Set","toggleableColumns","filter","c","toggleable","hiddenCount","has","key","length","open","Boolean","handleOpen","e","currentTarget","handleClose","toggleColumn","next","add","triggerAriaLabel","popoverSlotProps","paper","sx","role","variant","size","type","icon","onClick","component","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","slotProps","col","isVisible","headerText","header","labelText","control","checked","onChange","input","label","disabled"],"sources":["../../../../src/lib/v2/patterns/ColumnsToggle.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Popover from \"@mui/material/Popover\";\r\nimport Checkbox from \"@mui/material/Checkbox\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport ViewColumnIcon from \"@mui/icons-material/ViewColumn\";\r\nimport Button from \"../components/Button\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { DataGridColumn } from \"../types/datagrid\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * ColumnsToggle - Portnet UI v2 (pattern)\r\n *\r\n * Companion affordance for DataGrid's `hiddenColumns` prop. Renders\r\n * a small toolbar button that opens a popover containing one\r\n * checkbox per toggleable column. Toggling a checkbox emits the\r\n * new hiddenColumns Set up to the host.\r\n *\r\n * <ColumnsToggle\r\n * columns={cols}\r\n * hiddenColumns={hiddenSet}\r\n * onHiddenColumnsChange={setHiddenSet}\r\n * labels={{\r\n * button: \"Colonnes\",\r\n * title: \"Afficher les colonnes\",\r\n * showAll: \"Tout afficher\",\r\n * hideAll: \"Tout masquer\",\r\n * countSuffix: (n) => `${n} masquée${n > 1 ? \"s\" : \"\"}`,\r\n * }}\r\n * />\r\n *\r\n * The host owns the columns schema, the hiddenColumns state, and\r\n * the change callback. The component is pure presentation — its\r\n * only internal state is the popover's anchor element.\r\n *\r\n * Mental model: checkbox represents VISIBILITY (checked = visible,\r\n * not in hiddenSet) — avoids the double-negative trap of \"checked\r\n * means hidden\". Matches what users expect from \"show columns\" UIs.\r\n *\r\n * `col.toggleable: false` on a column excludes it from the popover\r\n * entirely — useful for identity columns or system-pinned columns\r\n * that should not be user-hideable. The DataGrid itself doesn't\r\n * read this flag (it filters strictly based on hiddenColumns);\r\n * the flag is a contract between the host's schema and this\r\n * component.\r\n */\r\n\r\nexport interface ColumnsToggleLabels {\r\n button?: string | undefined;\r\n title?: string | undefined;\r\n showAll?: string | undefined;\r\n hideAll?: string | undefined;\r\n countSuffix?: ((n: number) => string) | undefined;\r\n}\r\n\r\nexport interface ColumnsToggleProps {\r\n columns: ReadonlyArray<Pick<DataGridColumn<unknown>, \"key\" | \"header\" | \"toggleable\">>;\r\n hiddenColumns?: Set<string> | string[] | undefined;\r\n onHiddenColumnsChange: (hidden: Set<string>) => void;\r\n labels?: ColumnsToggleLabels | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n button: \"Colonnes\",\r\n title: \"Afficher les colonnes\",\r\n showAll: \"Tout afficher\",\r\n hideAll: \"Tout masquer\",\r\n countSuffix: (n: number) => `${n} masquée${n > 1 ? \"s\" : \"\"}`,\r\n});\r\n\r\n/* SET-1 — Best-effort plain-text extraction from a column header node, used to\r\n * build the visibility checkbox's accessible name. A JSX header (icon + text)\r\n * would otherwise fall back to the machine `col.key`, making the accessible\r\n * name diverge from the visible label (WCAG 2.5.3, label in name). Same shape\r\n * as the Chip/Tooltip text extractors; returns \"\" for icon-only headers.\r\n * Exported so DataGridSettingsMenu reuses the identical logic (DGS-1). */\r\nexport function extractHeaderText(node: React.ReactNode): string {\r\n if (node == null || node === false) return \"\";\r\n if (typeof node === \"string\" || typeof node === \"number\") return String(node);\r\n if (Array.isArray(node)) return node.map(extractHeaderText).join(\" \").trim();\r\n if (React.isValidElement(node)) {\r\n return extractHeaderText((node.props as { children?: React.ReactNode }).children);\r\n }\r\n return \"\";\r\n}\r\n\r\n/* ── Hoisted sx (D5) ──────────────────────────────────────────────── */\r\n\r\nconst POPOVER_PAPER_SX = Object.freeze({\r\n // Match the rest of the v2 surface — soft radius, subtle border,\r\n // shadow consistent with Drawer / Modal.\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-md)\",\r\n border: \"1px solid var(--border)\",\r\n});\r\n\r\nconst POPOVER_BODY_SX = Object.freeze({\r\n padding: \"var(--s-3) var(--s-4)\",\r\n minWidth: 240,\r\n maxHeight: 360,\r\n overflowY: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-1)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst POPOVER_TITLE_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg-muted)\",\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0.04em\",\r\n paddingBottom: \"var(--s-2)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n marginBottom: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst POPOVER_FOOTER_SX = Object.freeze({\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n paddingTop: \"var(--s-2)\",\r\n marginTop: \"var(--s-2)\",\r\n borderTop: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst CHECKBOX_LABEL_SX = Object.freeze({\r\n // Override MUI default 16px which is too generous for compact\r\n // popover lists. Keeps each row at the ~32px touch-friendly\r\n // minimum without padding.\r\n marginLeft: 0,\r\n marginRight: 0,\r\n \"& .MuiFormControlLabel-label\": {\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg)\",\r\n },\r\n});\r\n\r\nconst BADGE_SX = Object.freeze({\r\n marginInlineStart: \"var(--s-1)\",\r\n background: \"var(--accent)\",\r\n color: \"var(--accent-fg)\",\r\n borderRadius: \"var(--r-full)\",\r\n padding: \"1px 6px\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n lineHeight: 1.4,\r\n});\r\n\r\nfunction ColumnsToggle({\r\n columns,\r\n hiddenColumns,\r\n onHiddenColumnsChange,\r\n labels,\r\n}: ColumnsToggleProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const [anchor, setAnchor] = React.useState<HTMLElement | null>(null);\r\n\r\n // Normalise hiddenColumns to a Set for the predicate work below.\r\n // Same contract as DataGrid — accepts Set or Array. Memoised so\r\n // the popover body doesn't recompute checkbox states on unrelated\r\n // renders.\r\n const hiddenSet = React.useMemo(\r\n () =>\r\n hiddenColumns instanceof Set\r\n ? hiddenColumns\r\n : new Set(hiddenColumns || []),\r\n [hiddenColumns]\r\n );\r\n\r\n // Toggleable subset — the only columns this UI exposes. System-\r\n // pinned columns (col.toggleable === false) are absent from the\r\n // popover entirely. Memoised because columns is often passed\r\n // inline by hosts (defensive against per-render reference churn).\r\n const toggleableColumns = React.useMemo(\r\n () => columns.filter((c) => c.toggleable !== false),\r\n [columns]\r\n );\r\n\r\n // Count of currently-hidden columns AMONG the toggleable set\r\n // (defensive: a host that pre-hides a column then flips its\r\n // toggleable flag to false shouldn't see a stale count).\r\n const hiddenCount = React.useMemo(\r\n () => toggleableColumns.filter((c) => hiddenSet.has(c.key)).length,\r\n [toggleableColumns, hiddenSet]\r\n );\r\n\r\n const open = Boolean(anchor);\r\n\r\n const handleOpen = (e: React.MouseEvent<HTMLButtonElement>) => setAnchor(e.currentTarget);\r\n const handleClose = () => setAnchor(null);\r\n\r\n // Single column toggle — checkbox represents visibility, so\r\n // CHECKED means \"remove from hiddenSet\" (= show).\r\n const toggleColumn = (key: string) => {\r\n const next = new Set(hiddenSet);\r\n if (next.has(key)) next.delete(key);\r\n else next.add(key);\r\n onHiddenColumnsChange(next);\r\n };\r\n\r\n const showAll = () => onHiddenColumnsChange(new Set<string>());\r\n const hideAll = () =>\r\n onHiddenColumnsChange(new Set(toggleableColumns.map((c) => c.key)));\r\n\r\n // ARIA label for the trigger — includes the hidden count so\r\n // screen readers announce state without relying on the\r\n // decorative badge digit. e.g. \"Colonnes, 2 masquées\".\r\n const triggerAriaLabel =\r\n hiddenCount > 0 ? `${L.button}, ${L.countSuffix(hiddenCount)}` : L.button;\r\n\r\n // MUI v9: slot bag for Popover paper. Carries the dialog ARIA\r\n // contract (role + aria-label) — host-customisable via labels.title.\r\n // Memoised so the slotProps reference stays stable when L.title\r\n // is unchanged.\r\n const popoverSlotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n sx: POPOVER_PAPER_SX,\r\n // Dialog role so screen readers treat the popover as a\r\n // discrete UI region rather than just a tooltip-like\r\n // overlay.\r\n role: \"dialog\",\r\n \"aria-label\": L.title,\r\n },\r\n }),\r\n [L.title]\r\n );\r\n\r\n return (\r\n <>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n type=\"button\"\r\n icon={<ViewColumnIcon fontSize=\"small\" />}\r\n onClick={handleOpen}\r\n aria-label={triggerAriaLabel}\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={open}\r\n >\r\n {L.button}\r\n {hiddenCount > 0 && (\r\n <Box component=\"span\" sx={BADGE_SX} aria-hidden=\"true\">\r\n {hiddenCount}\r\n </Box>\r\n )}\r\n </Button>\r\n\r\n <Popover\r\n open={open}\r\n anchorEl={anchor}\r\n onClose={handleClose}\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\r\n slotProps={popoverSlotProps}\r\n >\r\n <Box sx={POPOVER_BODY_SX}>\r\n <Box component=\"div\" sx={POPOVER_TITLE_SX}>\r\n {L.title}\r\n </Box>\r\n\r\n {toggleableColumns.map((col) => {\r\n const isVisible = !hiddenSet.has(col.key);\r\n // SET-1 — accessible name = the header's visible text so it matches\r\n // the rendered label (WCAG 2.5.3). Only icon-only headers (no text)\r\n // fall back to the raw key. The visual label still renders col.header.\r\n const headerText = extractHeaderText(col.header).trim();\r\n const labelText = headerText || col.key;\r\n return (\r\n <FormControlLabel\r\n key={col.key}\r\n control={\r\n <Checkbox\r\n size=\"small\"\r\n checked={isVisible}\r\n onChange={() => toggleColumn(col.key)}\r\n slotProps={{\r\n input: { \"aria-label\": labelText },\r\n }}\r\n />\r\n }\r\n label={col.header}\r\n sx={CHECKBOX_LABEL_SX}\r\n />\r\n );\r\n })}\r\n\r\n <Box sx={POPOVER_FOOTER_SX}>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n type=\"button\"\r\n onClick={showAll}\r\n disabled={hiddenCount === 0}\r\n >\r\n {L.showAll}\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n type=\"button\"\r\n onClick={hideAll}\r\n disabled={hiddenCount === toggleableColumns.length}\r\n >\r\n {L.hideAll}\r\n </Button>\r\n </Box>\r\n </Box>\r\n </Popover>\r\n </>\r\n );\r\n}\r\n\r\nexport default ColumnsToggle;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ColumnsToggle.js","names":["React","Box","Popover","Checkbox","FormControlLabel","ViewColumnIcon","Button","mergeLabels","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_LABELS","Object","freeze","button","title","showAll","hideAll","countSuffix","n","extractHeaderText","node","String","Array","isArray","map","join","trim","isValidElement","props","children","POPOVER_PAPER_SX","borderRadius","boxShadow","border","POPOVER_BODY_SX","padding","minWidth","maxHeight","overflowY","display","flexDirection","gap","POPOVER_TITLE_SX","fontSize","fontWeight","color","textTransform","letterSpacing","paddingBottom","borderBottom","marginBottom","POPOVER_FOOTER_SX","justifyContent","paddingTop","marginTop","borderTop","CHECKBOX_LABEL_SX","marginLeft","marginRight","BADGE_SX","marginInlineStart","background","lineHeight","ColumnsToggle","columns","hiddenColumns","onHiddenColumnsChange","labels","L","anchor","setAnchor","useState","hiddenSet","useMemo","Set","toggleableColumns","filter","c","toggleable","hiddenCount","has","key","length","open","Boolean","handleOpen","e","currentTarget","handleClose","toggleColumn","next","delete","add","triggerAriaLabel","popoverSlotProps","paper","sx","role","variant","size","type","icon","onClick","component","anchorEl","onClose","anchorOrigin","vertical","horizontal","transformOrigin","slotProps","col","isVisible","headerText","header","labelText","control","checked","onChange","input","label","disabled"],"sources":["../../../../src/lib/v2/patterns/ColumnsToggle.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Popover from \"@mui/material/Popover\";\r\nimport Checkbox from \"@mui/material/Checkbox\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport ViewColumnIcon from \"@mui/icons-material/ViewColumn\";\r\nimport Button from \"../components/Button\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { DataGridColumn } from \"../types/datagrid\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * ColumnsToggle - Portnet UI v2 (pattern)\r\n *\r\n * Companion affordance for DataGrid's `hiddenColumns` prop. Renders\r\n * a small toolbar button that opens a popover containing one\r\n * checkbox per toggleable column. Toggling a checkbox emits the\r\n * new hiddenColumns Set up to the host.\r\n *\r\n * <ColumnsToggle\r\n * columns={cols}\r\n * hiddenColumns={hiddenSet}\r\n * onHiddenColumnsChange={setHiddenSet}\r\n * labels={{\r\n * button: \"Colonnes\",\r\n * title: \"Afficher les colonnes\",\r\n * showAll: \"Tout afficher\",\r\n * hideAll: \"Tout masquer\",\r\n * countSuffix: (n) => `${n} masquée${n > 1 ? \"s\" : \"\"}`,\r\n * }}\r\n * />\r\n *\r\n * The host owns the columns schema, the hiddenColumns state, and\r\n * the change callback. The component is pure presentation — its\r\n * only internal state is the popover's anchor element.\r\n *\r\n * Mental model: checkbox represents VISIBILITY (checked = visible,\r\n * not in hiddenSet) — avoids the double-negative trap of \"checked\r\n * means hidden\". Matches what users expect from \"show columns\" UIs.\r\n *\r\n * `col.toggleable: false` on a column excludes it from the popover\r\n * entirely — useful for identity columns or system-pinned columns\r\n * that should not be user-hideable. The DataGrid itself doesn't\r\n * read this flag (it filters strictly based on hiddenColumns);\r\n * the flag is a contract between the host's schema and this\r\n * component.\r\n */\r\n\r\nexport interface ColumnsToggleLabels {\r\n button?: string | undefined;\r\n title?: string | undefined;\r\n showAll?: string | undefined;\r\n hideAll?: string | undefined;\r\n countSuffix?: ((n: number) => string) | undefined;\r\n}\r\n\r\nexport interface ColumnsToggleProps {\r\n columns: ReadonlyArray<Pick<DataGridColumn<unknown>, \"key\" | \"header\" | \"toggleable\">>;\r\n hiddenColumns?: Set<string> | string[] | undefined;\r\n onHiddenColumnsChange: (hidden: Set<string>) => void;\r\n labels?: ColumnsToggleLabels | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n button: \"Colonnes\",\r\n title: \"Afficher les colonnes\",\r\n showAll: \"Tout afficher\",\r\n hideAll: \"Tout masquer\",\r\n countSuffix: (n: number) => `${n} masquée${n > 1 ? \"s\" : \"\"}`,\r\n});\r\n\r\n/* SET-1 — Best-effort plain-text extraction from a column header node, used to\r\n * build the visibility checkbox's accessible name. A JSX header (icon + text)\r\n * would otherwise fall back to the machine `col.key`, making the accessible\r\n * name diverge from the visible label (WCAG 2.5.3, label in name). Same shape\r\n * as the Chip/Tooltip text extractors; returns \"\" for icon-only headers.\r\n * Exported so DataGridSettingsMenu reuses the identical logic (DGS-1). */\r\nexport function extractHeaderText(node: React.ReactNode): string {\r\n if (node == null || node === false) return \"\";\r\n if (typeof node === \"string\" || typeof node === \"number\") return String(node);\r\n if (Array.isArray(node)) return node.map(extractHeaderText).join(\" \").trim();\r\n if (React.isValidElement(node)) {\r\n return extractHeaderText((node.props as { children?: React.ReactNode }).children);\r\n }\r\n return \"\";\r\n}\r\n\r\n/* ── Hoisted sx (D5) ──────────────────────────────────────────────── */\r\n\r\nconst POPOVER_PAPER_SX = Object.freeze({\r\n // Match the rest of the v2 surface — soft radius, subtle border,\r\n // shadow consistent with Drawer / Modal.\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-md)\",\r\n border: \"1px solid var(--border)\",\r\n});\r\n\r\nconst POPOVER_BODY_SX = Object.freeze({\r\n padding: \"var(--s-3) var(--s-4)\",\r\n minWidth: 240,\r\n maxHeight: 360,\r\n overflowY: \"auto\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-1)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst POPOVER_TITLE_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg-muted)\",\r\n textTransform: \"uppercase\",\r\n letterSpacing: \"0.04em\",\r\n paddingBottom: \"var(--s-2)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n marginBottom: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst POPOVER_FOOTER_SX = Object.freeze({\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n paddingTop: \"var(--s-2)\",\r\n marginTop: \"var(--s-2)\",\r\n borderTop: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst CHECKBOX_LABEL_SX = Object.freeze({\r\n // Override MUI default 16px which is too generous for compact\r\n // popover lists. Keeps each row at the ~32px touch-friendly\r\n // minimum without padding.\r\n marginLeft: 0,\r\n marginRight: 0,\r\n \"& .MuiFormControlLabel-label\": {\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg)\",\r\n },\r\n});\r\n\r\nconst BADGE_SX = Object.freeze({\r\n marginInlineStart: \"var(--s-1)\",\r\n background: \"var(--accent)\",\r\n color: \"var(--accent-fg)\",\r\n borderRadius: \"var(--r-full)\",\r\n padding: \"1px 6px\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n lineHeight: 1.4,\r\n});\r\n\r\nfunction ColumnsToggle({\r\n columns,\r\n hiddenColumns,\r\n onHiddenColumnsChange,\r\n labels,\r\n}: ColumnsToggleProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const [anchor, setAnchor] = React.useState<HTMLElement | null>(null);\r\n\r\n // Normalise hiddenColumns to a Set for the predicate work below.\r\n // Same contract as DataGrid — accepts Set or Array. Memoised so\r\n // the popover body doesn't recompute checkbox states on unrelated\r\n // renders.\r\n const hiddenSet = React.useMemo(\r\n () =>\r\n hiddenColumns instanceof Set\r\n ? hiddenColumns\r\n : new Set(hiddenColumns || []),\r\n [hiddenColumns]\r\n );\r\n\r\n // Toggleable subset — the only columns this UI exposes. System-\r\n // pinned columns (col.toggleable === false) are absent from the\r\n // popover entirely. Memoised because columns is often passed\r\n // inline by hosts (defensive against per-render reference churn).\r\n const toggleableColumns = React.useMemo(\r\n () => columns.filter((c) => c.toggleable !== false),\r\n [columns]\r\n );\r\n\r\n // Count of currently-hidden columns AMONG the toggleable set\r\n // (defensive: a host that pre-hides a column then flips its\r\n // toggleable flag to false shouldn't see a stale count).\r\n const hiddenCount = React.useMemo(\r\n () => toggleableColumns.filter((c) => hiddenSet.has(c.key)).length,\r\n [toggleableColumns, hiddenSet]\r\n );\r\n\r\n const open = Boolean(anchor);\r\n\r\n const handleOpen = (e: React.MouseEvent<HTMLButtonElement>) => setAnchor(e.currentTarget);\r\n const handleClose = () => setAnchor(null);\r\n\r\n // Single column toggle — checkbox represents visibility, so\r\n // CHECKED means \"remove from hiddenSet\" (= show).\r\n const toggleColumn = (key: string) => {\r\n const next = new Set(hiddenSet);\r\n if (next.has(key)) next.delete(key);\r\n else next.add(key);\r\n onHiddenColumnsChange(next);\r\n };\r\n\r\n const showAll = () => onHiddenColumnsChange(new Set<string>());\r\n const hideAll = () =>\r\n onHiddenColumnsChange(new Set(toggleableColumns.map((c) => c.key)));\r\n\r\n // ARIA label for the trigger — includes the hidden count so\r\n // screen readers announce state without relying on the\r\n // decorative badge digit. e.g. \"Colonnes, 2 masquées\".\r\n const triggerAriaLabel =\r\n hiddenCount > 0 ? `${L.button}, ${L.countSuffix(hiddenCount)}` : L.button;\r\n\r\n // MUI v9: slot bag for Popover paper. Carries the dialog ARIA\r\n // contract (role + aria-label) — host-customisable via labels.title.\r\n // Memoised so the slotProps reference stays stable when L.title\r\n // is unchanged.\r\n const popoverSlotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n sx: POPOVER_PAPER_SX,\r\n // Dialog role so screen readers treat the popover as a\r\n // discrete UI region rather than just a tooltip-like\r\n // overlay.\r\n role: \"dialog\",\r\n \"aria-label\": L.title,\r\n },\r\n }),\r\n [L.title]\r\n );\r\n\r\n return (\r\n <>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n type=\"button\"\r\n icon={<ViewColumnIcon fontSize=\"small\" />}\r\n onClick={handleOpen}\r\n aria-label={triggerAriaLabel}\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={open}\r\n >\r\n {L.button}\r\n {hiddenCount > 0 && (\r\n <Box component=\"span\" sx={BADGE_SX} aria-hidden=\"true\">\r\n {hiddenCount}\r\n </Box>\r\n )}\r\n </Button>\r\n\r\n <Popover\r\n open={open}\r\n anchorEl={anchor}\r\n onClose={handleClose}\r\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\r\n transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\r\n slotProps={popoverSlotProps}\r\n >\r\n <Box sx={POPOVER_BODY_SX}>\r\n <Box component=\"div\" sx={POPOVER_TITLE_SX}>\r\n {L.title}\r\n </Box>\r\n\r\n {toggleableColumns.map((col) => {\r\n const isVisible = !hiddenSet.has(col.key);\r\n // SET-1 — accessible name = the header's visible text so it matches\r\n // the rendered label (WCAG 2.5.3). Only icon-only headers (no text)\r\n // fall back to the raw key. The visual label still renders col.header.\r\n const headerText = extractHeaderText(col.header).trim();\r\n const labelText = headerText || col.key;\r\n return (\r\n <FormControlLabel\r\n key={col.key}\r\n control={\r\n <Checkbox\r\n size=\"small\"\r\n checked={isVisible}\r\n onChange={() => toggleColumn(col.key)}\r\n slotProps={{\r\n input: { \"aria-label\": labelText },\r\n }}\r\n />\r\n }\r\n label={col.header}\r\n sx={CHECKBOX_LABEL_SX}\r\n />\r\n );\r\n })}\r\n\r\n <Box sx={POPOVER_FOOTER_SX}>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n type=\"button\"\r\n onClick={showAll}\r\n disabled={hiddenCount === 0}\r\n >\r\n {L.showAll}\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n variant=\"ghost\"\r\n type=\"button\"\r\n onClick={hideAll}\r\n disabled={hiddenCount === toggleableColumns.length}\r\n >\r\n {L.hideAll}\r\n </Button>\r\n </Box>\r\n </Box>\r\n </Popover>\r\n </>\r\n );\r\n}\r\n\r\nexport default ColumnsToggle;\r\n"],"mappings":"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","ignoreList":[]}