@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
@@ -3,21 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
9
  var _OverflowMenu = _interopRequireDefault(require("./OverflowMenu"));
10
10
  var _KV = _interopRequireDefault(require("./KV"));
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
16
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
20
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /**
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ /**
21
15
  * MobileRowCard - Portnet UI v2
22
16
  *
23
17
  * Canonical card layout for the DataGrid mobile card view (R1 mobile,
@@ -117,14 +111,13 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
117
111
  * etc.) and passing nodes lets them keep their existing chip type
118
112
  * without translating to a generic schema. We just lay them out
119
113
  * in a wrapping row.
120
- */
121
- var CARD_INNER_SX = Object.freeze({
114
+ */const CARD_INNER_SX = Object.freeze({
122
115
  display: "flex",
123
116
  flexDirection: "column",
124
117
  gap: "var(--s-2)",
125
118
  padding: "var(--s-3)"
126
119
  });
127
- var HEADER_SX = Object.freeze({
120
+ const HEADER_SX = Object.freeze({
128
121
  display: "flex",
129
122
  alignItems: "flex-start",
130
123
  justifyContent: "space-between",
@@ -134,19 +127,19 @@ var HEADER_SX = Object.freeze({
134
127
  /* Groups `leading` + title on the left of the header so the kebab keeps its
135
128
  * space-between position. `minWidth: 0` is what lets the title's ellipsis
136
129
  * actually engage inside a flex child. */
137
- var HEADER_MAIN_SX = Object.freeze({
130
+ const HEADER_MAIN_SX = Object.freeze({
138
131
  display: "flex",
139
132
  alignItems: "center",
140
133
  gap: "var(--s-2)",
141
134
  minWidth: 0,
142
135
  flex: 1
143
136
  });
144
- var LEADING_SX = Object.freeze({
137
+ const LEADING_SX = Object.freeze({
145
138
  display: "inline-flex",
146
139
  alignItems: "center",
147
140
  flexShrink: 0
148
141
  });
149
- var TITLE_BASE_SX = Object.freeze({
142
+ const TITLE_BASE_SX = Object.freeze({
150
143
  fontWeight: "var(--fw-semibold)",
151
144
  fontSize: "var(--text-sm)",
152
145
  color: "var(--fg)",
@@ -156,23 +149,24 @@ var TITLE_BASE_SX = Object.freeze({
156
149
  textOverflow: "ellipsis",
157
150
  whiteSpace: "nowrap"
158
151
  });
159
- var TITLE_MONO_SX = Object.freeze(_objectSpread(_objectSpread({}, TITLE_BASE_SX), {}, {
152
+ const TITLE_MONO_SX = Object.freeze({
153
+ ...TITLE_BASE_SX,
160
154
  fontFamily: "var(--font-mono)"
161
- }));
162
- var SUBTITLE_SX = Object.freeze({
155
+ });
156
+ const SUBTITLE_SX = Object.freeze({
163
157
  fontSize: "var(--text-sm)",
164
158
  color: "var(--fg-muted)",
165
159
  overflow: "hidden",
166
160
  textOverflow: "ellipsis",
167
161
  whiteSpace: "nowrap"
168
162
  });
169
- var CHIPS_SX = Object.freeze({
163
+ const CHIPS_SX = Object.freeze({
170
164
  display: "flex",
171
165
  alignItems: "center",
172
166
  gap: "var(--s-1)",
173
167
  flexWrap: "wrap"
174
168
  });
175
- var META_SX = Object.freeze({
169
+ const META_SX = Object.freeze({
176
170
  fontSize: "var(--text-xs)",
177
171
  color: "var(--fg-subtle)"
178
172
  });
@@ -181,7 +175,7 @@ var META_SX = Object.freeze({
181
175
  * a single column would be more readable, but 320px is the Charter's narrowest
182
176
  * supported breakpoint (§07.2 xs) and two columns still fit there. Matches the
183
177
  * MOBILE_CARD_KV_SX both modules converged on independently. */
184
- var KV_GRID_SX = Object.freeze({
178
+ const KV_GRID_SX = Object.freeze({
185
179
  display: "grid",
186
180
  gridTemplateColumns: "1fr 1fr",
187
181
  gap: "var(--s-2)"
@@ -190,7 +184,7 @@ var KV_GRID_SX = Object.freeze({
190
184
  /* Right cluster of the header row: [trailing] then the kebab. One shared
191
185
  * wrapper so a card can carry both a visible action and an overflow menu, and
192
186
  * so propagation is stopped once for the whole interactive cluster. */
193
- var HEADER_END_SX = Object.freeze({
187
+ const HEADER_END_SX = Object.freeze({
194
188
  display: "inline-flex",
195
189
  alignItems: "center",
196
190
  gap: "var(--s-1)",
@@ -199,70 +193,66 @@ var HEADER_END_SX = Object.freeze({
199
193
 
200
194
  /** One label/value pair in the card's `kv` grid. Mirrors v2.KV's own props. */
201
195
 
202
- function MobileRowCard(_ref) {
203
- var leading = _ref.leading,
204
- trailing = _ref.trailing,
205
- title = _ref.title,
206
- _ref$titleMono = _ref.titleMono,
207
- titleMono = _ref$titleMono === void 0 ? false : _ref$titleMono,
208
- subtitle = _ref.subtitle,
209
- chips = _ref.chips,
210
- kv = _ref.kv,
211
- meta = _ref.meta,
212
- actions = _ref.actions,
213
- actionsAriaLabel = _ref.actionsAriaLabel;
196
+ function MobileRowCard({
197
+ leading,
198
+ trailing,
199
+ title,
200
+ titleMono = false,
201
+ subtitle,
202
+ chips,
203
+ kv,
204
+ meta,
205
+ actions,
206
+ /* No default — see the prop's doc comment. Forwarded only when the host
207
+ * supplies one, so OverflowMenu's own default applies otherwise. */
208
+ actionsAriaLabel
209
+ }) {
214
210
  // Filter out divider entries (OverflowMenu separator marks) and
215
211
  // null/undefined actions so the kebab only renders when there is
216
212
  // at least one real action available.
217
- var visibleActions = React.useMemo(function () {
213
+ const visibleActions = React.useMemo(() => {
218
214
  if (!Array.isArray(actions)) return [];
219
- return actions.filter(function (a) {
220
- return a && !a.divider;
221
- });
215
+ return actions.filter(a => a && !a.divider);
222
216
  }, [actions]);
223
- var visibleChips = React.useMemo(function () {
217
+ const visibleChips = React.useMemo(() => {
224
218
  if (!Array.isArray(chips)) return [];
225
219
  return chips.filter(Boolean);
226
220
  }, [chips]);
227
- var metaParts = React.useMemo(function () {
221
+ const metaParts = React.useMemo(() => {
228
222
  if (!Array.isArray(meta)) return [];
229
- return meta.filter(function (p) {
230
- return p != null && p !== "";
231
- });
223
+ return meta.filter(p => p != null && p !== "");
232
224
  }, [meta]);
233
225
 
234
226
  /* Only `label` is required — a pair with an empty value is kept on purpose so
235
227
  * KV renders its "—" placeholder and the grid keeps its shape across rows.
236
228
  * Entries missing a label are dropped: KV would emit an empty eyebrow and an
237
229
  * aria-labelledby pointing at nothing. */
238
- var kvPairs = React.useMemo(function () {
230
+ const kvPairs = React.useMemo(() => {
239
231
  if (!Array.isArray(kv)) return [];
240
- return kv.filter(function (p) {
241
- return p != null && p.label != null && p.label !== "";
242
- });
232
+ return kv.filter(p => p != null && p.label != null && p.label !== "");
243
233
  }, [kv]);
244
- var hasActions = visibleActions.length > 0;
245
- var hasTitle = title != null && title !== "";
246
- var hasLeading = leading != null && leading !== "";
247
- var hasTrailing = trailing != null && trailing !== "";
248
- var hasHeader = hasTitle || hasActions || hasLeading || hasTrailing;
249
- var hasSubtitle = subtitle != null && subtitle !== "";
234
+ const hasActions = visibleActions.length > 0;
235
+ const hasTitle = title != null && title !== "";
236
+ const hasLeading = leading != null && leading !== "";
237
+ const hasTrailing = trailing != null && trailing !== "";
238
+ const hasHeader = hasTitle || hasActions || hasLeading || hasTrailing;
239
+ const hasSubtitle = subtitle != null && subtitle !== "";
250
240
 
251
241
  // Title attribute (native hover tooltip) is set only when the value
252
242
  // is a string — wrapping a React node yields a "[object Object]"
253
243
  // tooltip which is worse than no tooltip.
254
- var titleAttr = typeof title === "string" ? title : undefined;
255
- var subtitleAttr = typeof subtitle === "string" ? subtitle : undefined;
256
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
244
+ const titleAttr = typeof title === "string" ? title : undefined;
245
+ const subtitleAttr = typeof subtitle === "string" ? subtitle : undefined;
246
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
257
247
  sx: CARD_INNER_SX,
258
- children: [hasHeader && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
248
+ children: [hasHeader && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
259
249
  sx: HEADER_SX,
260
- children: [(hasLeading || hasTitle) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
250
+ children: [(hasLeading || hasTitle) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box.default, {
261
251
  sx: HEADER_MAIN_SX,
262
- children: [hasLeading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
252
+ children: [hasLeading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
263
253
  sx: LEADING_SX,
264
254
  children: leading
265
- }), hasTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
255
+ }), hasTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
266
256
  sx: titleMono ? TITLE_MONO_SX : TITLE_BASE_SX,
267
257
  title: titleAttr,
268
258
  children: title
@@ -273,49 +263,47 @@ function MobileRowCard(_ref) {
273
263
  // mobile card wrapper). Stop propagation on the whole
274
264
  // interactive cluster so firing a visible action, or opening
275
265
  // the kebab, doesn't also fire onRowClick.
276
- (0, _jsxRuntime.jsxs)(_Box["default"], {
266
+ (0, _jsxRuntime.jsxs)(_Box.default, {
277
267
  sx: HEADER_END_SX,
278
- onClick: function onClick(e) {
279
- return e.stopPropagation();
280
- },
281
- onKeyDown: function onKeyDown(e) {
282
- return e.stopPropagation();
283
- },
284
- children: [hasTrailing && trailing, hasActions && /*#__PURE__*/(0, _jsxRuntime.jsx)(_OverflowMenu["default"], _objectSpread(_objectSpread({}, actionsAriaLabel !== undefined ? {
285
- ariaLabel: actionsAriaLabel
286
- } : {}), actions !== undefined ? {
287
- actions: actions
288
- } : {}))]
268
+ onClick: e => e.stopPropagation(),
269
+ onKeyDown: e => e.stopPropagation(),
270
+ children: [hasTrailing && trailing, hasActions && /*#__PURE__*/(0, _jsxRuntime.jsx)(_OverflowMenu.default, {
271
+ ...(actionsAriaLabel !== undefined ? {
272
+ ariaLabel: actionsAriaLabel
273
+ } : {}),
274
+ ...(actions !== undefined ? {
275
+ actions
276
+ } : {})
277
+ })]
289
278
  })]
290
- }), hasSubtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
279
+ }), hasSubtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
291
280
  sx: SUBTITLE_SX,
292
281
  title: subtitleAttr,
293
282
  children: subtitle
294
- }), visibleChips.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
283
+ }), visibleChips.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
295
284
  sx: CHIPS_SX,
296
- children: visibleChips.map(function (c, i) {
297
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
298
- children: c
299
- }, i);
300
- })
301
- }), kvPairs.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
285
+ children: visibleChips.map((c, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
286
+ children: c
287
+ }, i))
288
+ }), kvPairs.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
302
289
  sx: KV_GRID_SX,
303
- children: kvPairs.map(function (pair, i) {
304
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_KV["default"], _objectSpread(_objectSpread(_objectSpread({
305
- label: pair.label
306
- }, pair.value !== undefined ? {
290
+ children: kvPairs.map((pair, i) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_KV.default, {
291
+ label: pair.label,
292
+ ...(pair.value !== undefined ? {
307
293
  value: pair.value
308
- } : {}), pair.mono !== undefined ? {
294
+ } : {}),
295
+ ...(pair.mono !== undefined ? {
309
296
  mono: pair.mono
310
- } : {}), pair.fallback !== undefined ? {
297
+ } : {}),
298
+ ...(pair.fallback !== undefined ? {
311
299
  fallback: pair.fallback
312
- } : {}), i);
313
- })
314
- }), metaParts.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
300
+ } : {})
301
+ }, i))
302
+ }), metaParts.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
315
303
  sx: META_SX,
316
304
  children: metaParts.join(" · ")
317
305
  })]
318
306
  });
319
307
  }
320
- var _default = exports["default"] = MobileRowCard;
308
+ var _default = exports.default = MobileRowCard;
321
309
  //# sourceMappingURL=MobileRowCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobileRowCard.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_OverflowMenu","_KV","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","CARD_INNER_SX","freeze","display","flexDirection","gap","padding","HEADER_SX","alignItems","justifyContent","HEADER_MAIN_SX","minWidth","flex","LEADING_SX","flexShrink","TITLE_BASE_SX","fontWeight","fontSize","color","overflow","textOverflow","whiteSpace","TITLE_MONO_SX","fontFamily","SUBTITLE_SX","CHIPS_SX","flexWrap","META_SX","KV_GRID_SX","gridTemplateColumns","HEADER_END_SX","MobileRowCard","_ref","leading","trailing","title","_ref$titleMono","titleMono","subtitle","chips","kv","meta","actions","actionsAriaLabel","visibleActions","useMemo","Array","isArray","a","divider","visibleChips","Boolean","metaParts","p","kvPairs","label","hasActions","hasTitle","hasLeading","hasTrailing","hasHeader","hasSubtitle","titleAttr","subtitleAttr","jsxs","sx","children","jsx","onClick","e","stopPropagation","onKeyDown","ariaLabel","map","c","Fragment","pair","mono","fallback","join","_default","exports"],"sources":["../../../src/lib/v2/components/MobileRowCard.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport OverflowMenu from \"./OverflowMenu\";\r\nimport type { OverflowMenuAction } from \"./OverflowMenu\";\r\nimport KV from \"./KV\";\r\n\r\n/**\r\n * MobileRowCard - Portnet UI v2\r\n *\r\n * Canonical card layout for the DataGrid mobile card view (R1 mobile,\r\n * lib commit \"feat(DataGrid): R1 mobile - opt-in card view\"). Used\r\n * inside DataGrid's renderMobileCard prop to centralise the visual\r\n * rhythm across modules.\r\n *\r\n * <DataGrid\r\n * renderMobileCard={(row) => (\r\n * <MobileRowCard\r\n * title={row.reference}\r\n * titleMono\r\n * subtitle={row.importer?.description}\r\n * chips={[\r\n * <StatutAutorisationChip code={row.statutAutorisation} />,\r\n * <StatutUtilisationChip code={row.statutUtilisation} />,\r\n * ]}\r\n * meta={[\r\n * `Émise ${formatDate(row.dateIssue)}`,\r\n * `Fin ${formatDate(row.dateFinValidite)}`,\r\n * ]}\r\n * actions={buildRowActions(row)}\r\n * actionsAriaLabel={`Actions pour ${row.reference}`}\r\n * />\r\n * )}\r\n * ...\r\n * />\r\n *\r\n * Layout (top to bottom, each line conditional on its prop):\r\n * 1. Header row: [leading] + title (truncate, optional mono) + [trailing] + OverflowMenu kebab\r\n * 2. Subtitle line: muted, single-line truncate\r\n * 3. Chips row: wrapping flexbox for status chips\r\n * 4. KV grid: two-column label/value pairs (see `kv`)\r\n * 5. Meta line: secondary scalars joined with \" · \"\r\n *\r\n * All props are optional; the component renders only the lines\r\n * that have content, with no empty placeholder boxes.\r\n *\r\n * `kv` vs `meta` — pick by whether the reader needs the label.\r\n * meta → self-evident scalars, joined label-less: \"12/05/2026 · 3 pièces\"\r\n * kv → values that are meaningless unaccompanied (\"SOFRANE SA\",\r\n * \"Casablanca\", \"Tissus\") — rendered as a 2-column grid of v2.KV\r\n *\r\n * `kv` exists because every listing in ms-dfd-fe and ms-ti-fe independently\r\n * built header + labelled-KV-grid cards with a local MOBILE_CARD_KV_SX,\r\n * bypassing this component entirely — nine sites across two modules. `meta`\r\n * could not absorb them: joining five labelled pairs into one \" · \" string\r\n * loses the labels, and on a phone those labels are what make the values\r\n * interpretable (Nielsen #6, recognition over recall). Each pair renders\r\n * through v2.KV, so label/value stay paired for screen readers via\r\n * aria-labelledby, and empty values fall back to KV's own \"—\" rather than each\r\n * host writing `?? \"-\"`.\r\n *\r\n * <MobileRowCard\r\n * leading={<FavoriteToggle ... />}\r\n * title={row.num} titleMono\r\n * chips={[<Status kind={...} label={row.etat} />]}\r\n * kv={[\r\n * { label: \"Catégorie\", value: row.categorie },\r\n * { label: \"Importateur\", value: row.importateur },\r\n * { label: \"Référence\", value: row.ref, mono: true },\r\n * ]}\r\n * />\r\n *\r\n * `leading` — a slot BEFORE the title, inside the header row, vertically\r\n * centred against it and never shrinking. Added for the listing favourite\r\n * star, which hosts previously could not place inside the card and therefore\r\n * hand-rolled the whole card layout instead:\r\n *\r\n * <MobileRowCard\r\n * leading={<FavoriteToggle pressed={isFavorite} size=\"sm\" onChange={...} />}\r\n * title={row.reference}\r\n * titleMono\r\n * />\r\n *\r\n * PROPAGATION — deliberate asymmetry with the kebab. The kebab wrapper stops\r\n * click/keydown itself, because opening a menu must never also fire the card's\r\n * onRowClick. `leading` does NOT: a decorative leading node (icon, avatar)\r\n * should still open the row like the rest of the card, and silently swallowing\r\n * that would be the more surprising default. Interactive leading content is\r\n * therefore responsible for stopping propagation in its own handlers — exactly\r\n * as DataGrid's own FavoriteCell does. Get this wrong and a tap both toggles\r\n * the star and opens the drawer.\r\n *\r\n * Charter §02.3 — spacing: --s-2 gap between lines, --s-3 padding.\r\n * Charter §02.2 — typography:\r\n * - title: text-sm semibold (text-mono variant if titleMono)\r\n * - subtitle: text-sm fg-muted\r\n * - meta: text-xs fg-subtle\r\n * Charter §05 — a11y: kebab has its own aria-label; the card-level\r\n * click wiring (role=button, tabIndex, Enter/Space) is owned by\r\n * DataGrid's mobile card wrapper. This component just renders the\r\n * contents.\r\n *\r\n * Why chips are NODES (not objects):\r\n * Hosts have specialised chip components (StatutAutorisationChip\r\n * etc.) and passing nodes lets them keep their existing chip type\r\n * without translating to a generic schema. We just lay them out\r\n * in a wrapping row.\r\n */\r\n\r\nconst CARD_INNER_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-3)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst HEADER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* Groups `leading` + title on the left of the header so the kebab keeps its\r\n * space-between position. `minWidth: 0` is what lets the title's ellipsis\r\n * actually engage inside a flex child. */\r\nconst HEADER_MAIN_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n minWidth: 0,\r\n flex: 1,\r\n} satisfies SxProps<Theme>);\r\n\r\nconst LEADING_SX = Object.freeze({\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n flexShrink: 0,\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TITLE_BASE_SX = Object.freeze({\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg)\",\r\n minWidth: 0,\r\n flex: 1,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TITLE_MONO_SX = Object.freeze({\r\n ...TITLE_BASE_SX,\r\n fontFamily: \"var(--font-mono)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst SUBTITLE_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst CHIPS_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n flexWrap: \"wrap\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst META_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n});\r\n\r\n/* Two columns at every phone width. Deliberately not responsive: below ~320px\r\n * a single column would be more readable, but 320px is the Charter's narrowest\r\n * supported breakpoint (§07.2 xs) and two columns still fit there. Matches the\r\n * MOBILE_CARD_KV_SX both modules converged on independently. */\r\nconst KV_GRID_SX = Object.freeze({\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* Right cluster of the header row: [trailing] then the kebab. One shared\r\n * wrapper so a card can carry both a visible action and an overflow menu, and\r\n * so propagation is stopped once for the whole interactive cluster. */\r\nconst HEADER_END_SX = Object.freeze({\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n flexShrink: 0,\r\n} satisfies SxProps<Theme>);\r\n\r\n/** One label/value pair in the card's `kv` grid. Mirrors v2.KV's own props. */\r\nexport interface MobileRowCardKV {\r\n label: React.ReactNode;\r\n value?: React.ReactNode | undefined;\r\n /** Tabular-nums monospace — for references, IDs, amounts. */\r\n mono?: boolean | undefined;\r\n /** Overrides KV's default \"—\" when the value is null/undefined/\"\". */\r\n fallback?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface MobileRowCardProps {\r\n /** Slot before the title (favourite toggle, icon, avatar). Interactive\r\n * content must stop propagation itself — see the propagation note above. */\r\n leading?: React.ReactNode | undefined;\r\n /**\r\n * Slot at the END of the header row — the VISIBLE counterpart of `actions`.\r\n *\r\n * `actions` collapses into a kebab, which is right for a listing's secondary\r\n * verbs and wrong when the action IS the point of the row: a picker modal's\r\n * \"Choisir\" button is the only way to select a row on a phone, and burying it\r\n * behind \"…\" turns one tap into two. Six sites across ms-dfd-fe and ms-ti-fe\r\n * hand-rolled the entire card layout rather than accept that, which is what\r\n * this slot exists to end.\r\n *\r\n * Renders before the kebab; both may be present.\r\n *\r\n * PROPAGATION — unlike `leading`, `trailing` shares the kebab's wrapper and\r\n * therefore DOES stop click/keydown. Its declared purpose is interactive\r\n * actions, and a tap that both fires the action and opens the row is the more\r\n * damaging default. Decorative content belongs in `leading`.\r\n */\r\n trailing?: React.ReactNode | undefined;\r\n title?: React.ReactNode | undefined;\r\n titleMono?: boolean | undefined;\r\n subtitle?: React.ReactNode | undefined;\r\n chips?: React.ReactNode[] | undefined;\r\n /** Labelled pairs rendered as a 2-column v2.KV grid. See `kv` vs `meta`. */\r\n kv?: MobileRowCardKV[] | undefined;\r\n meta?: React.ReactNode[] | undefined;\r\n actions?: OverflowMenuAction[] | undefined;\r\n /**\r\n * Accessible name for the kebab trigger.\r\n *\r\n * NO DEFAULT ON PURPOSE. This used to default to the literal \"Actions\",\r\n * which was then passed to OverflowMenu's `ariaLabel` — and `ariaLabel`\r\n * WINS over `labels.trigger`, so the card silently overrode the design\r\n * system's own canonical trigger name (\"Plus d'actions\", OverflowMenu\r\n * DEFAULT_LABELS). Result: every kebab in the fleet announced « Plus\r\n * d'actions » except the ones inside a mobile row card, which announced the\r\n * vaguer « Actions » — an inter-module naming inconsistency (Charter P2 /\r\n * R-2.4 : « un même concept = un même libellé partout »).\r\n *\r\n * Leaving it undefined lets OverflowMenu apply its own default. Hosts\r\n * SHOULD still pass a contextual name (« Actions pour 2025-IM-0042 »), which\r\n * is strictly better than either default for screen-reader users scanning a\r\n * list of cards.\r\n */\r\n actionsAriaLabel?: string | undefined;\r\n}\r\n\r\nfunction MobileRowCard({\r\n leading,\r\n trailing,\r\n title,\r\n titleMono = false,\r\n subtitle,\r\n chips,\r\n kv,\r\n meta,\r\n actions,\r\n /* No default — see the prop's doc comment. Forwarded only when the host\r\n * supplies one, so OverflowMenu's own default applies otherwise. */\r\n actionsAriaLabel,\r\n}: MobileRowCardProps) {\r\n // Filter out divider entries (OverflowMenu separator marks) and\r\n // null/undefined actions so the kebab only renders when there is\r\n // at least one real action available.\r\n const visibleActions = React.useMemo(() => {\r\n if (!Array.isArray(actions)) return [];\r\n return actions.filter((a) => a && !a.divider);\r\n }, [actions]);\r\n\r\n const visibleChips = React.useMemo(() => {\r\n if (!Array.isArray(chips)) return [];\r\n return chips.filter(Boolean);\r\n }, [chips]);\r\n\r\n const metaParts = React.useMemo(() => {\r\n if (!Array.isArray(meta)) return [];\r\n return meta.filter((p) => p != null && p !== \"\");\r\n }, [meta]);\r\n\r\n /* Only `label` is required — a pair with an empty value is kept on purpose so\r\n * KV renders its \"—\" placeholder and the grid keeps its shape across rows.\r\n * Entries missing a label are dropped: KV would emit an empty eyebrow and an\r\n * aria-labelledby pointing at nothing. */\r\n const kvPairs = React.useMemo(() => {\r\n if (!Array.isArray(kv)) return [];\r\n return kv.filter((p) => p != null && p.label != null && p.label !== \"\");\r\n }, [kv]);\r\n\r\n const hasActions = visibleActions.length > 0;\r\n const hasTitle = title != null && title !== \"\";\r\n const hasLeading = leading != null && leading !== \"\";\r\n const hasTrailing = trailing != null && trailing !== \"\";\r\n const hasHeader = hasTitle || hasActions || hasLeading || hasTrailing;\r\n const hasSubtitle = subtitle != null && subtitle !== \"\";\r\n\r\n // Title attribute (native hover tooltip) is set only when the value\r\n // is a string — wrapping a React node yields a \"[object Object]\"\r\n // tooltip which is worse than no tooltip.\r\n const titleAttr = typeof title === \"string\" ? title : undefined;\r\n const subtitleAttr =\r\n typeof subtitle === \"string\" ? subtitle : undefined;\r\n\r\n return (\r\n <Box sx={CARD_INNER_SX}>\r\n {hasHeader && (\r\n <Box sx={HEADER_SX}>\r\n {(hasLeading || hasTitle) && (\r\n <Box sx={HEADER_MAIN_SX}>\r\n {hasLeading && <Box sx={LEADING_SX}>{leading}</Box>}\r\n {hasTitle && (\r\n <Box\r\n sx={titleMono ? TITLE_MONO_SX : TITLE_BASE_SX}\r\n title={titleAttr}\r\n >\r\n {title}\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {(hasTrailing || hasActions) && (\r\n // The card itself is the click target (wired by DataGrid's\r\n // mobile card wrapper). Stop propagation on the whole\r\n // interactive cluster so firing a visible action, or opening\r\n // the kebab, doesn't also fire onRowClick.\r\n <Box\r\n sx={HEADER_END_SX}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={(e) => e.stopPropagation()}\r\n >\r\n {hasTrailing && trailing}\r\n {hasActions && (\r\n <OverflowMenu\r\n {...(actionsAriaLabel !== undefined ? { ariaLabel: actionsAriaLabel } : {})}\r\n {...(actions !== undefined ? { actions } : {})}\r\n />\r\n )}\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {hasSubtitle && (\r\n <Box sx={SUBTITLE_SX} title={subtitleAttr}>\r\n {subtitle}\r\n </Box>\r\n )}\r\n {visibleChips.length > 0 && (\r\n <Box sx={CHIPS_SX}>\r\n {visibleChips.map((c, i) => (\r\n <React.Fragment key={i}>{c}</React.Fragment>\r\n ))}\r\n </Box>\r\n )}\r\n {kvPairs.length > 0 && (\r\n <Box sx={KV_GRID_SX}>\r\n {kvPairs.map((pair, i) => (\r\n <KV\r\n key={i}\r\n label={pair.label}\r\n {...(pair.value !== undefined ? { value: pair.value } : {})}\r\n {...(pair.mono !== undefined ? { mono: pair.mono } : {})}\r\n {...(pair.fallback !== undefined ? { fallback: pair.fallback } : {})}\r\n />\r\n ))}\r\n </Box>\r\n )}\r\n {metaParts.length > 0 && (\r\n <Box sx={META_SX}>{metaParts.join(\" · \")}</Box>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default MobileRowCard;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MobileRowCard.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_OverflowMenu","_KV","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CARD_INNER_SX","freeze","display","flexDirection","gap","padding","HEADER_SX","alignItems","justifyContent","HEADER_MAIN_SX","minWidth","flex","LEADING_SX","flexShrink","TITLE_BASE_SX","fontWeight","fontSize","color","overflow","textOverflow","whiteSpace","TITLE_MONO_SX","fontFamily","SUBTITLE_SX","CHIPS_SX","flexWrap","META_SX","KV_GRID_SX","gridTemplateColumns","HEADER_END_SX","MobileRowCard","leading","trailing","title","titleMono","subtitle","chips","kv","meta","actions","actionsAriaLabel","visibleActions","useMemo","Array","isArray","filter","a","divider","visibleChips","Boolean","metaParts","p","kvPairs","label","hasActions","length","hasTitle","hasLeading","hasTrailing","hasHeader","hasSubtitle","titleAttr","undefined","subtitleAttr","jsxs","sx","children","jsx","onClick","stopPropagation","onKeyDown","ariaLabel","map","c","Fragment","pair","value","mono","fallback","join","_default","exports"],"sources":["../../../src/lib/v2/components/MobileRowCard.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport OverflowMenu from \"./OverflowMenu\";\r\nimport type { OverflowMenuAction } from \"./OverflowMenu\";\r\nimport KV from \"./KV\";\r\n\r\n/**\r\n * MobileRowCard - Portnet UI v2\r\n *\r\n * Canonical card layout for the DataGrid mobile card view (R1 mobile,\r\n * lib commit \"feat(DataGrid): R1 mobile - opt-in card view\"). Used\r\n * inside DataGrid's renderMobileCard prop to centralise the visual\r\n * rhythm across modules.\r\n *\r\n * <DataGrid\r\n * renderMobileCard={(row) => (\r\n * <MobileRowCard\r\n * title={row.reference}\r\n * titleMono\r\n * subtitle={row.importer?.description}\r\n * chips={[\r\n * <StatutAutorisationChip code={row.statutAutorisation} />,\r\n * <StatutUtilisationChip code={row.statutUtilisation} />,\r\n * ]}\r\n * meta={[\r\n * `Émise ${formatDate(row.dateIssue)}`,\r\n * `Fin ${formatDate(row.dateFinValidite)}`,\r\n * ]}\r\n * actions={buildRowActions(row)}\r\n * actionsAriaLabel={`Actions pour ${row.reference}`}\r\n * />\r\n * )}\r\n * ...\r\n * />\r\n *\r\n * Layout (top to bottom, each line conditional on its prop):\r\n * 1. Header row: [leading] + title (truncate, optional mono) + [trailing] + OverflowMenu kebab\r\n * 2. Subtitle line: muted, single-line truncate\r\n * 3. Chips row: wrapping flexbox for status chips\r\n * 4. KV grid: two-column label/value pairs (see `kv`)\r\n * 5. Meta line: secondary scalars joined with \" · \"\r\n *\r\n * All props are optional; the component renders only the lines\r\n * that have content, with no empty placeholder boxes.\r\n *\r\n * `kv` vs `meta` — pick by whether the reader needs the label.\r\n * meta → self-evident scalars, joined label-less: \"12/05/2026 · 3 pièces\"\r\n * kv → values that are meaningless unaccompanied (\"SOFRANE SA\",\r\n * \"Casablanca\", \"Tissus\") — rendered as a 2-column grid of v2.KV\r\n *\r\n * `kv` exists because every listing in ms-dfd-fe and ms-ti-fe independently\r\n * built header + labelled-KV-grid cards with a local MOBILE_CARD_KV_SX,\r\n * bypassing this component entirely — nine sites across two modules. `meta`\r\n * could not absorb them: joining five labelled pairs into one \" · \" string\r\n * loses the labels, and on a phone those labels are what make the values\r\n * interpretable (Nielsen #6, recognition over recall). Each pair renders\r\n * through v2.KV, so label/value stay paired for screen readers via\r\n * aria-labelledby, and empty values fall back to KV's own \"—\" rather than each\r\n * host writing `?? \"-\"`.\r\n *\r\n * <MobileRowCard\r\n * leading={<FavoriteToggle ... />}\r\n * title={row.num} titleMono\r\n * chips={[<Status kind={...} label={row.etat} />]}\r\n * kv={[\r\n * { label: \"Catégorie\", value: row.categorie },\r\n * { label: \"Importateur\", value: row.importateur },\r\n * { label: \"Référence\", value: row.ref, mono: true },\r\n * ]}\r\n * />\r\n *\r\n * `leading` — a slot BEFORE the title, inside the header row, vertically\r\n * centred against it and never shrinking. Added for the listing favourite\r\n * star, which hosts previously could not place inside the card and therefore\r\n * hand-rolled the whole card layout instead:\r\n *\r\n * <MobileRowCard\r\n * leading={<FavoriteToggle pressed={isFavorite} size=\"sm\" onChange={...} />}\r\n * title={row.reference}\r\n * titleMono\r\n * />\r\n *\r\n * PROPAGATION — deliberate asymmetry with the kebab. The kebab wrapper stops\r\n * click/keydown itself, because opening a menu must never also fire the card's\r\n * onRowClick. `leading` does NOT: a decorative leading node (icon, avatar)\r\n * should still open the row like the rest of the card, and silently swallowing\r\n * that would be the more surprising default. Interactive leading content is\r\n * therefore responsible for stopping propagation in its own handlers — exactly\r\n * as DataGrid's own FavoriteCell does. Get this wrong and a tap both toggles\r\n * the star and opens the drawer.\r\n *\r\n * Charter §02.3 — spacing: --s-2 gap between lines, --s-3 padding.\r\n * Charter §02.2 — typography:\r\n * - title: text-sm semibold (text-mono variant if titleMono)\r\n * - subtitle: text-sm fg-muted\r\n * - meta: text-xs fg-subtle\r\n * Charter §05 — a11y: kebab has its own aria-label; the card-level\r\n * click wiring (role=button, tabIndex, Enter/Space) is owned by\r\n * DataGrid's mobile card wrapper. This component just renders the\r\n * contents.\r\n *\r\n * Why chips are NODES (not objects):\r\n * Hosts have specialised chip components (StatutAutorisationChip\r\n * etc.) and passing nodes lets them keep their existing chip type\r\n * without translating to a generic schema. We just lay them out\r\n * in a wrapping row.\r\n */\r\n\r\nconst CARD_INNER_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-3)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst HEADER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* Groups `leading` + title on the left of the header so the kebab keeps its\r\n * space-between position. `minWidth: 0` is what lets the title's ellipsis\r\n * actually engage inside a flex child. */\r\nconst HEADER_MAIN_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n minWidth: 0,\r\n flex: 1,\r\n} satisfies SxProps<Theme>);\r\n\r\nconst LEADING_SX = Object.freeze({\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n flexShrink: 0,\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TITLE_BASE_SX = Object.freeze({\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg)\",\r\n minWidth: 0,\r\n flex: 1,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TITLE_MONO_SX = Object.freeze({\r\n ...TITLE_BASE_SX,\r\n fontFamily: \"var(--font-mono)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst SUBTITLE_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst CHIPS_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n flexWrap: \"wrap\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst META_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n});\r\n\r\n/* Two columns at every phone width. Deliberately not responsive: below ~320px\r\n * a single column would be more readable, but 320px is the Charter's narrowest\r\n * supported breakpoint (§07.2 xs) and two columns still fit there. Matches the\r\n * MOBILE_CARD_KV_SX both modules converged on independently. */\r\nconst KV_GRID_SX = Object.freeze({\r\n display: \"grid\",\r\n gridTemplateColumns: \"1fr 1fr\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* Right cluster of the header row: [trailing] then the kebab. One shared\r\n * wrapper so a card can carry both a visible action and an overflow menu, and\r\n * so propagation is stopped once for the whole interactive cluster. */\r\nconst HEADER_END_SX = Object.freeze({\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-1)\",\r\n flexShrink: 0,\r\n} satisfies SxProps<Theme>);\r\n\r\n/** One label/value pair in the card's `kv` grid. Mirrors v2.KV's own props. */\r\nexport interface MobileRowCardKV {\r\n label: React.ReactNode;\r\n value?: React.ReactNode | undefined;\r\n /** Tabular-nums monospace — for references, IDs, amounts. */\r\n mono?: boolean | undefined;\r\n /** Overrides KV's default \"—\" when the value is null/undefined/\"\". */\r\n fallback?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface MobileRowCardProps {\r\n /** Slot before the title (favourite toggle, icon, avatar). Interactive\r\n * content must stop propagation itself — see the propagation note above. */\r\n leading?: React.ReactNode | undefined;\r\n /**\r\n * Slot at the END of the header row — the VISIBLE counterpart of `actions`.\r\n *\r\n * `actions` collapses into a kebab, which is right for a listing's secondary\r\n * verbs and wrong when the action IS the point of the row: a picker modal's\r\n * \"Choisir\" button is the only way to select a row on a phone, and burying it\r\n * behind \"…\" turns one tap into two. Six sites across ms-dfd-fe and ms-ti-fe\r\n * hand-rolled the entire card layout rather than accept that, which is what\r\n * this slot exists to end.\r\n *\r\n * Renders before the kebab; both may be present.\r\n *\r\n * PROPAGATION — unlike `leading`, `trailing` shares the kebab's wrapper and\r\n * therefore DOES stop click/keydown. Its declared purpose is interactive\r\n * actions, and a tap that both fires the action and opens the row is the more\r\n * damaging default. Decorative content belongs in `leading`.\r\n */\r\n trailing?: React.ReactNode | undefined;\r\n title?: React.ReactNode | undefined;\r\n titleMono?: boolean | undefined;\r\n subtitle?: React.ReactNode | undefined;\r\n chips?: React.ReactNode[] | undefined;\r\n /** Labelled pairs rendered as a 2-column v2.KV grid. See `kv` vs `meta`. */\r\n kv?: MobileRowCardKV[] | undefined;\r\n meta?: React.ReactNode[] | undefined;\r\n actions?: OverflowMenuAction[] | undefined;\r\n /**\r\n * Accessible name for the kebab trigger.\r\n *\r\n * NO DEFAULT ON PURPOSE. This used to default to the literal \"Actions\",\r\n * which was then passed to OverflowMenu's `ariaLabel` — and `ariaLabel`\r\n * WINS over `labels.trigger`, so the card silently overrode the design\r\n * system's own canonical trigger name (\"Plus d'actions\", OverflowMenu\r\n * DEFAULT_LABELS). Result: every kebab in the fleet announced « Plus\r\n * d'actions » except the ones inside a mobile row card, which announced the\r\n * vaguer « Actions » — an inter-module naming inconsistency (Charter P2 /\r\n * R-2.4 : « un même concept = un même libellé partout »).\r\n *\r\n * Leaving it undefined lets OverflowMenu apply its own default. Hosts\r\n * SHOULD still pass a contextual name (« Actions pour 2025-IM-0042 »), which\r\n * is strictly better than either default for screen-reader users scanning a\r\n * list of cards.\r\n */\r\n actionsAriaLabel?: string | undefined;\r\n}\r\n\r\nfunction MobileRowCard({\r\n leading,\r\n trailing,\r\n title,\r\n titleMono = false,\r\n subtitle,\r\n chips,\r\n kv,\r\n meta,\r\n actions,\r\n /* No default — see the prop's doc comment. Forwarded only when the host\r\n * supplies one, so OverflowMenu's own default applies otherwise. */\r\n actionsAriaLabel,\r\n}: MobileRowCardProps) {\r\n // Filter out divider entries (OverflowMenu separator marks) and\r\n // null/undefined actions so the kebab only renders when there is\r\n // at least one real action available.\r\n const visibleActions = React.useMemo(() => {\r\n if (!Array.isArray(actions)) return [];\r\n return actions.filter((a) => a && !a.divider);\r\n }, [actions]);\r\n\r\n const visibleChips = React.useMemo(() => {\r\n if (!Array.isArray(chips)) return [];\r\n return chips.filter(Boolean);\r\n }, [chips]);\r\n\r\n const metaParts = React.useMemo(() => {\r\n if (!Array.isArray(meta)) return [];\r\n return meta.filter((p) => p != null && p !== \"\");\r\n }, [meta]);\r\n\r\n /* Only `label` is required — a pair with an empty value is kept on purpose so\r\n * KV renders its \"—\" placeholder and the grid keeps its shape across rows.\r\n * Entries missing a label are dropped: KV would emit an empty eyebrow and an\r\n * aria-labelledby pointing at nothing. */\r\n const kvPairs = React.useMemo(() => {\r\n if (!Array.isArray(kv)) return [];\r\n return kv.filter((p) => p != null && p.label != null && p.label !== \"\");\r\n }, [kv]);\r\n\r\n const hasActions = visibleActions.length > 0;\r\n const hasTitle = title != null && title !== \"\";\r\n const hasLeading = leading != null && leading !== \"\";\r\n const hasTrailing = trailing != null && trailing !== \"\";\r\n const hasHeader = hasTitle || hasActions || hasLeading || hasTrailing;\r\n const hasSubtitle = subtitle != null && subtitle !== \"\";\r\n\r\n // Title attribute (native hover tooltip) is set only when the value\r\n // is a string — wrapping a React node yields a \"[object Object]\"\r\n // tooltip which is worse than no tooltip.\r\n const titleAttr = typeof title === \"string\" ? title : undefined;\r\n const subtitleAttr =\r\n typeof subtitle === \"string\" ? subtitle : undefined;\r\n\r\n return (\r\n <Box sx={CARD_INNER_SX}>\r\n {hasHeader && (\r\n <Box sx={HEADER_SX}>\r\n {(hasLeading || hasTitle) && (\r\n <Box sx={HEADER_MAIN_SX}>\r\n {hasLeading && <Box sx={LEADING_SX}>{leading}</Box>}\r\n {hasTitle && (\r\n <Box\r\n sx={titleMono ? TITLE_MONO_SX : TITLE_BASE_SX}\r\n title={titleAttr}\r\n >\r\n {title}\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {(hasTrailing || hasActions) && (\r\n // The card itself is the click target (wired by DataGrid's\r\n // mobile card wrapper). Stop propagation on the whole\r\n // interactive cluster so firing a visible action, or opening\r\n // the kebab, doesn't also fire onRowClick.\r\n <Box\r\n sx={HEADER_END_SX}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={(e) => e.stopPropagation()}\r\n >\r\n {hasTrailing && trailing}\r\n {hasActions && (\r\n <OverflowMenu\r\n {...(actionsAriaLabel !== undefined ? { ariaLabel: actionsAriaLabel } : {})}\r\n {...(actions !== undefined ? { actions } : {})}\r\n />\r\n )}\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {hasSubtitle && (\r\n <Box sx={SUBTITLE_SX} title={subtitleAttr}>\r\n {subtitle}\r\n </Box>\r\n )}\r\n {visibleChips.length > 0 && (\r\n <Box sx={CHIPS_SX}>\r\n {visibleChips.map((c, i) => (\r\n <React.Fragment key={i}>{c}</React.Fragment>\r\n ))}\r\n </Box>\r\n )}\r\n {kvPairs.length > 0 && (\r\n <Box sx={KV_GRID_SX}>\r\n {kvPairs.map((pair, i) => (\r\n <KV\r\n key={i}\r\n label={pair.label}\r\n {...(pair.value !== undefined ? { value: pair.value } : {})}\r\n {...(pair.mono !== undefined ? { mono: pair.mono } : {})}\r\n {...(pair.fallback !== undefined ? { fallback: pair.fallback } : {})}\r\n />\r\n ))}\r\n </Box>\r\n )}\r\n {metaParts.length > 0 && (\r\n <Box sx={META_SX}>{metaParts.join(\" · \")}</Box>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default MobileRowCard;\r\n"],"mappings":"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","ignoreList":[]}