@portnet/ui 6.0.2 → 6.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (980) hide show
  1. package/CHANGELOG.md +652 -0
  2. package/dist/esm/index.js +72 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
  5. package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
  7. package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
  9. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
  11. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FieldError.test.js +71 -38
  13. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  14. package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
  15. package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/FieldWidth.test.js +11 -11
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -1
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -17
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +87 -179
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +32 -44
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  24. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
  25. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +118 -199
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -42
  29. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  30. package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
  31. package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
  33. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  34. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
  35. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  36. package/dist/esm/v2/__tests__/apiError.test.js +50 -69
  37. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
  38. package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
  39. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
  40. package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
  41. package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
  42. package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
  43. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
  44. package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
  45. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
  46. package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
  47. package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
  48. package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
  49. package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
  50. package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
  51. package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
  52. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
  53. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  54. package/dist/esm/v2/__tests__/labels-merge.test.js +17 -21
  55. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  56. package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
  57. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
  58. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
  59. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  60. package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
  61. package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
  62. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
  63. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  64. package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
  65. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
  66. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
  67. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  68. package/dist/esm/v2/components/Accordion.js +48 -70
  69. package/dist/esm/v2/components/Accordion.js.map +1 -1
  70. package/dist/esm/v2/components/ActionStrip.js +31 -43
  71. package/dist/esm/v2/components/ActionStrip.js.map +1 -1
  72. package/dist/esm/v2/components/Banner.js +25 -22
  73. package/dist/esm/v2/components/Banner.js.map +1 -1
  74. package/dist/esm/v2/components/Busy.js +14 -19
  75. package/dist/esm/v2/components/Busy.js.map +1 -1
  76. package/dist/esm/v2/components/Button.js +34 -45
  77. package/dist/esm/v2/components/Button.js.map +1 -1
  78. package/dist/esm/v2/components/CategoryTag.js +44 -27
  79. package/dist/esm/v2/components/CategoryTag.js.map +1 -1
  80. package/dist/esm/v2/components/Checkbox.js +32 -38
  81. package/dist/esm/v2/components/Checkbox.js.map +1 -1
  82. package/dist/esm/v2/components/Chip.js +23 -36
  83. package/dist/esm/v2/components/Chip.js.map +1 -1
  84. package/dist/esm/v2/components/Combobox.js +112 -136
  85. package/dist/esm/v2/components/Combobox.js.map +1 -1
  86. package/dist/esm/v2/components/CommandPalette.js +113 -198
  87. package/dist/esm/v2/components/CommandPalette.js.map +1 -1
  88. package/dist/esm/v2/components/ConfirmDialog.js +36 -45
  89. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
  90. package/dist/esm/v2/components/DatePicker.js +78 -81
  91. package/dist/esm/v2/components/DatePicker.js.map +1 -1
  92. package/dist/esm/v2/components/DateRangePicker.js +63 -74
  93. package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
  94. package/dist/esm/v2/components/DateTimePicker.js +81 -86
  95. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  96. package/dist/esm/v2/components/Drawer.js +71 -65
  97. package/dist/esm/v2/components/Drawer.js.map +1 -1
  98. package/dist/esm/v2/components/Dropzone.js +130 -177
  99. package/dist/esm/v2/components/Dropzone.js.map +1 -1
  100. package/dist/esm/v2/components/EmptyState.js +9 -9
  101. package/dist/esm/v2/components/EmptyState.js.map +1 -1
  102. package/dist/esm/v2/components/FavoriteToggle.js +24 -33
  103. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
  104. package/dist/esm/v2/components/Field.js +155 -59
  105. package/dist/esm/v2/components/Field.js.map +1 -1
  106. package/dist/esm/v2/components/FieldError.js +9 -13
  107. package/dist/esm/v2/components/FieldError.js.map +1 -1
  108. package/dist/esm/v2/components/FieldHelp.js +28 -49
  109. package/dist/esm/v2/components/FieldHelp.js.map +1 -1
  110. package/dist/esm/v2/components/FileCard.js +14 -19
  111. package/dist/esm/v2/components/FileCard.js.map +1 -1
  112. package/dist/esm/v2/components/FilterTab.js +22 -31
  113. package/dist/esm/v2/components/FilterTab.js.map +1 -1
  114. package/dist/esm/v2/components/ForbiddenPage.js +28 -8
  115. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
  116. package/dist/esm/v2/components/FormGrid.js +48 -54
  117. package/dist/esm/v2/components/FormGrid.js.map +1 -1
  118. package/dist/esm/v2/components/FormikDisplay.js +98 -24
  119. package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
  120. package/dist/esm/v2/components/Input.js +75 -34
  121. package/dist/esm/v2/components/Input.js.map +1 -1
  122. package/dist/esm/v2/components/KPICard.js +42 -51
  123. package/dist/esm/v2/components/KPICard.js.map +1 -1
  124. package/dist/esm/v2/components/KPIStrip.js +9 -15
  125. package/dist/esm/v2/components/KPIStrip.js.map +1 -1
  126. package/dist/esm/v2/components/KV.js +16 -23
  127. package/dist/esm/v2/components/KV.js.map +1 -1
  128. package/dist/esm/v2/components/KVGrid.js +15 -23
  129. package/dist/esm/v2/components/KVGrid.js.map +1 -1
  130. package/dist/esm/v2/components/Layout.js +81 -117
  131. package/dist/esm/v2/components/Layout.js.map +1 -1
  132. package/dist/esm/v2/components/MobileRowCard.js +64 -75
  133. package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
  134. package/dist/esm/v2/components/Modal.js +44 -53
  135. package/dist/esm/v2/components/Modal.js.map +1 -1
  136. package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
  137. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
  138. package/dist/esm/v2/components/NotFoundPage.js +28 -9
  139. package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
  140. package/dist/esm/v2/components/NumberInput.js +77 -107
  141. package/dist/esm/v2/components/NumberInput.js.map +1 -1
  142. package/dist/esm/v2/components/OverflowMenu.js +24 -42
  143. package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
  144. package/dist/esm/v2/components/PdfViewer.js +24 -33
  145. package/dist/esm/v2/components/PdfViewer.js.map +1 -1
  146. package/dist/esm/v2/components/ProgressBar.js +28 -36
  147. package/dist/esm/v2/components/ProgressBar.js.map +1 -1
  148. package/dist/esm/v2/components/Radio.js +49 -57
  149. package/dist/esm/v2/components/Radio.js.map +1 -1
  150. package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
  151. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
  152. package/dist/esm/v2/components/SectionHeader.js +24 -31
  153. package/dist/esm/v2/components/SectionHeader.js.map +1 -1
  154. package/dist/esm/v2/components/Segmented.js +59 -84
  155. package/dist/esm/v2/components/Segmented.js.map +1 -1
  156. package/dist/esm/v2/components/Select.js +100 -138
  157. package/dist/esm/v2/components/Select.js.map +1 -1
  158. package/dist/esm/v2/components/ServerErrorPage.js +27 -10
  159. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
  160. package/dist/esm/v2/components/Skeleton.js +81 -96
  161. package/dist/esm/v2/components/Skeleton.js.map +1 -1
  162. package/dist/esm/v2/components/SkipLink.js +6 -7
  163. package/dist/esm/v2/components/SkipLink.js.map +1 -1
  164. package/dist/esm/v2/components/Spinner.js +13 -22
  165. package/dist/esm/v2/components/Spinner.js.map +1 -1
  166. package/dist/esm/v2/components/Status.js +14 -25
  167. package/dist/esm/v2/components/Status.js.map +1 -1
  168. package/dist/esm/v2/components/Stepper.js +68 -71
  169. package/dist/esm/v2/components/Stepper.js.map +1 -1
  170. package/dist/esm/v2/components/Surface.js +25 -44
  171. package/dist/esm/v2/components/Surface.js.map +1 -1
  172. package/dist/esm/v2/components/Switch.js +21 -29
  173. package/dist/esm/v2/components/Switch.js.map +1 -1
  174. package/dist/esm/v2/components/TabPanel.js +84 -0
  175. package/dist/esm/v2/components/TabPanel.js.map +1 -0
  176. package/dist/esm/v2/components/Tabs.js +43 -19
  177. package/dist/esm/v2/components/Tabs.js.map +1 -1
  178. package/dist/esm/v2/components/TelInput.js +75 -108
  179. package/dist/esm/v2/components/TelInput.js.map +1 -1
  180. package/dist/esm/v2/components/Textarea.js +21 -30
  181. package/dist/esm/v2/components/Textarea.js.map +1 -1
  182. package/dist/esm/v2/components/TimePicker.js +59 -69
  183. package/dist/esm/v2/components/TimePicker.js.map +1 -1
  184. package/dist/esm/v2/components/Toast.js +109 -163
  185. package/dist/esm/v2/components/Toast.js.map +1 -1
  186. package/dist/esm/v2/components/Tooltip.js +18 -31
  187. package/dist/esm/v2/components/Tooltip.js.map +1 -1
  188. package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
  189. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
  190. package/dist/esm/v2/components/_pickerShared.js +2 -2
  191. package/dist/esm/v2/components/_pickerShared.js.map +1 -1
  192. package/dist/esm/v2/components/index.js +37 -0
  193. package/dist/esm/v2/components/index.js.map +1 -1
  194. package/dist/esm/v2/hooks/index.js +62 -0
  195. package/dist/esm/v2/hooks/index.js.map +1 -1
  196. package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
  197. package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
  198. package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
  199. package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
  200. package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
  201. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
  202. package/dist/esm/v2/hooks/useDensity.js +13 -17
  203. package/dist/esm/v2/hooks/useDensity.js.map +1 -1
  204. package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
  205. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
  206. package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
  207. package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  208. package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
  209. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
  210. package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
  211. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
  212. package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
  213. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
  214. package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
  215. package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  216. package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
  217. package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  218. package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
  219. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
  220. package/dist/esm/v2/hooks/useSortedRows.js +3 -5
  221. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
  222. package/dist/esm/v2/hooks/useTabLoading.js +6 -21
  223. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
  224. package/dist/esm/v2/index.js +2 -3
  225. package/dist/esm/v2/index.js.map +1 -1
  226. package/dist/esm/v2/modalContext.js +2 -2
  227. package/dist/esm/v2/modalContext.js.map +1 -1
  228. package/dist/esm/v2/models/favorite.js.map +1 -1
  229. package/dist/esm/v2/models/personalization.js.map +1 -1
  230. package/dist/esm/v2/models/referentiel.js.map +1 -1
  231. package/dist/esm/v2/models/savedFilter.js.map +1 -1
  232. package/dist/esm/v2/patterns/ActionBar.js +115 -159
  233. package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
  234. package/dist/esm/v2/patterns/AppMain.js +108 -0
  235. package/dist/esm/v2/patterns/AppMain.js.map +1 -0
  236. package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
  237. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
  238. package/dist/esm/v2/patterns/ChartFigure.js +151 -0
  239. package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
  240. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
  241. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  242. package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
  243. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
  244. package/dist/esm/v2/patterns/DataGrid.js +221 -255
  245. package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
  246. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
  247. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  248. package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
  249. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
  250. package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
  251. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
  252. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
  253. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  254. package/dist/esm/v2/patterns/DetailSplit.js +108 -0
  255. package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
  256. package/dist/esm/v2/patterns/FavoriteColumn.js +15 -17
  257. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  258. package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
  259. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
  260. package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
  261. package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
  262. package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
  263. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
  264. package/dist/esm/v2/patterns/FormPageShell.js +43 -41
  265. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
  266. package/dist/esm/v2/patterns/FormSection.js +30 -38
  267. package/dist/esm/v2/patterns/FormSection.js.map +1 -1
  268. package/dist/esm/v2/patterns/FormikCheckbox.js +29 -39
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -1
  270. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
  271. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  272. package/dist/esm/v2/patterns/FormikCombobox.js +51 -69
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +44 -58
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +44 -58
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -1
  278. package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
  279. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
  280. package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
  281. package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
  282. package/dist/esm/v2/patterns/FormikFile.js +94 -78
  283. package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
  284. package/dist/esm/v2/patterns/FormikInput.js +40 -53
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +39 -51
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -1
  288. package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
  289. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
  290. package/dist/esm/v2/patterns/FormikSelect.js +64 -87
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -46
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +53 -71
  295. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  296. package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
  297. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
  298. package/dist/esm/v2/patterns/PageContent.js +10 -14
  299. package/dist/esm/v2/patterns/PageContent.js.map +1 -1
  300. package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
  301. package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
  302. package/dist/esm/v2/patterns/ReferentielField.js +327 -312
  303. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
  304. package/dist/esm/v2/patterns/RowFavoriteToggle.js +27 -22
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -1
  306. package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
  307. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
  308. package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
  309. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
  310. package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
  311. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
  312. package/dist/esm/v2/patterns/SortableHeader.js +22 -45
  313. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
  314. package/dist/esm/v2/patterns/Tour.js +94 -120
  315. package/dist/esm/v2/patterns/Tour.js.map +1 -1
  316. package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
  317. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
  318. package/dist/esm/v2/patterns/_pickerSerialisation.js +6 -8
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -1
  320. package/dist/esm/v2/patterns/_sort.js +17 -33
  321. package/dist/esm/v2/patterns/_sort.js.map +1 -1
  322. package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
  323. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
  324. package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
  325. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
  326. package/dist/esm/v2/patterns/filterCriteria.js +102 -0
  327. package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
  328. package/dist/esm/v2/patterns/index.js +152 -0
  329. package/dist/esm/v2/patterns/index.js.map +1 -1
  330. package/dist/esm/v2/patterns/rowActions.js +223 -0
  331. package/dist/esm/v2/patterns/rowActions.js.map +1 -0
  332. package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
  333. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
  334. package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
  335. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
  336. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
  337. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  338. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
  339. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  340. package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
  341. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
  342. package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
  343. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
  344. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +28 -34
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  346. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  347. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  348. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  349. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  350. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  351. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  352. package/dist/esm/v2/personalization/index.js +17 -0
  353. package/dist/esm/v2/personalization/index.js.map +1 -1
  354. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  355. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  356. package/dist/esm/v2/personalization/schema.js +8 -9
  357. package/dist/esm/v2/personalization/schema.js.map +1 -1
  358. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  359. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  360. package/dist/esm/v2/referentiel/types.js +2 -0
  361. package/dist/esm/v2/referentiel/types.js.map +1 -0
  362. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  363. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  364. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  365. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  367. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  368. package/dist/esm/v2/theme/_brand.js +8 -24
  369. package/dist/esm/v2/theme/_brand.js.map +1 -1
  370. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  371. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  372. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  373. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  374. package/dist/esm/v2/theme/cssVariables.js +62 -69
  375. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  376. package/dist/esm/v2/theme/index.js +5 -5
  377. package/dist/esm/v2/theme/index.js.map +1 -1
  378. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  379. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  380. package/dist/esm/v2/tokens/chart.js +261 -0
  381. package/dist/esm/v2/tokens/chart.js.map +1 -0
  382. package/dist/esm/v2/tokens/colors.js +22 -22
  383. package/dist/esm/v2/tokens/colors.js.map +1 -1
  384. package/dist/esm/v2/tokens/density.js +62 -7
  385. package/dist/esm/v2/tokens/density.js.map +1 -1
  386. package/dist/esm/v2/tokens/index.js +49 -34
  387. package/dist/esm/v2/tokens/index.js.map +1 -1
  388. package/dist/esm/v2/tokens/motion.js +12 -20
  389. package/dist/esm/v2/tokens/motion.js.map +1 -1
  390. package/dist/esm/v2/tokens/radius.js +1 -1
  391. package/dist/esm/v2/tokens/radius.js.map +1 -1
  392. package/dist/esm/v2/tokens/shadows.js +6 -6
  393. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  394. package/dist/esm/v2/tokens/spacing.js +2 -2
  395. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  396. package/dist/esm/v2/tokens/state.js +1 -1
  397. package/dist/esm/v2/tokens/state.js.map +1 -1
  398. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  399. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  400. package/dist/esm/v2/tokens/tokens.json +6 -1
  401. package/dist/esm/v2/tokens/typography.js +13 -13
  402. package/dist/esm/v2/tokens/typography.js.map +1 -1
  403. package/dist/esm/v2/tokens/zIndex.js +1 -1
  404. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  405. package/dist/esm/v2/types/datagrid.js.map +1 -1
  406. package/dist/esm/v2/utils/apiError.js +16 -37
  407. package/dist/esm/v2/utils/apiError.js.map +1 -1
  408. package/dist/esm/v2/utils/contrast.js +31 -32
  409. package/dist/esm/v2/utils/contrast.js.map +1 -1
  410. package/dist/esm/v2/utils/cx.js +5 -25
  411. package/dist/esm/v2/utils/cx.js.map +1 -1
  412. package/dist/esm/v2/utils/fileDownload.js +23 -26
  413. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  414. package/dist/esm/v2/utils/fileValidation.js +209 -0
  415. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  416. package/dist/esm/v2/utils/fmtDate.js +111 -0
  417. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  419. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  420. package/dist/esm/v2/utils/formikErrors.js +78 -0
  421. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  422. package/dist/esm/v2/utils/index.js +35 -2
  423. package/dist/esm/v2/utils/index.js.map +1 -1
  424. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  425. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  426. package/dist/esm/v2/utils/networkStatus.js +12 -12
  427. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  428. package/dist/index.d.ts +7 -1
  429. package/dist/index.d.ts.map +1 -1
  430. package/dist/index.js +110 -49
  431. package/dist/index.js.map +1 -1
  432. package/dist/v2/__tests__/AppMain.test.js +133 -0
  433. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  434. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  435. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  436. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  437. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  438. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  439. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  440. package/dist/v2/__tests__/FieldError.test.js +82 -49
  441. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  442. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  443. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  444. package/dist/v2/__tests__/FieldWidth.test.js +23 -25
  445. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -1
  446. package/dist/v2/__tests__/FileCard.test.js +29 -28
  447. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  448. package/dist/v2/__tests__/FormikCheckbox.test.js +90 -183
  449. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikDateTimePicker.test.js +38 -48
  451. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -1
  452. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  453. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikRadioGroup.test.js +123 -204
  455. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -1
  456. package/dist/v2/__tests__/MobileRowCard.test.js +63 -61
  457. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  458. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  459. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  460. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  461. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  462. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  463. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  464. package/dist/v2/__tests__/apiError.test.js +50 -69
  465. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  466. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  467. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  468. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  469. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  470. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  471. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  472. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  473. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  474. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  475. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  476. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  477. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  478. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  479. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  480. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  481. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  482. package/dist/v2/__tests__/labels-merge.test.js +23 -27
  483. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  484. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  485. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  486. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  487. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  488. package/dist/v2/__tests__/rowActions.test.js +186 -0
  489. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  490. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  491. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  493. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  494. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  495. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  496. package/dist/v2/components/Accordion.js +60 -82
  497. package/dist/v2/components/Accordion.js.map +1 -1
  498. package/dist/v2/components/ActionStrip.js +40 -52
  499. package/dist/v2/components/ActionStrip.js.map +1 -1
  500. package/dist/v2/components/Banner.js +42 -41
  501. package/dist/v2/components/Banner.js.map +1 -1
  502. package/dist/v2/components/Busy.js +22 -27
  503. package/dist/v2/components/Busy.js.map +1 -1
  504. package/dist/v2/components/Button.js +39 -50
  505. package/dist/v2/components/Button.js.map +1 -1
  506. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  507. package/dist/v2/components/CategoryTag.js +49 -32
  508. package/dist/v2/components/CategoryTag.js.map +1 -1
  509. package/dist/v2/components/Checkbox.js +39 -45
  510. package/dist/v2/components/Checkbox.js.map +1 -1
  511. package/dist/v2/components/Chip.js +29 -42
  512. package/dist/v2/components/Chip.js.map +1 -1
  513. package/dist/v2/components/Combobox.js +122 -144
  514. package/dist/v2/components/Combobox.js.map +1 -1
  515. package/dist/v2/components/CommandPalette.js +138 -225
  516. package/dist/v2/components/CommandPalette.js.map +1 -1
  517. package/dist/v2/components/ConfirmDialog.js +46 -56
  518. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  519. package/dist/v2/components/DatePicker.js +81 -86
  520. package/dist/v2/components/DatePicker.js.map +1 -1
  521. package/dist/v2/components/DateRangePicker.js +77 -87
  522. package/dist/v2/components/DateRangePicker.js.map +1 -1
  523. package/dist/v2/components/DateTimePicker.js +84 -91
  524. package/dist/v2/components/DateTimePicker.js.map +1 -1
  525. package/dist/v2/components/Drawer.d.ts.map +1 -1
  526. package/dist/v2/components/Drawer.js +93 -88
  527. package/dist/v2/components/Drawer.js.map +1 -1
  528. package/dist/v2/components/Dropzone.js +150 -196
  529. package/dist/v2/components/Dropzone.js.map +1 -1
  530. package/dist/v2/components/EmptyState.js +18 -20
  531. package/dist/v2/components/EmptyState.js.map +1 -1
  532. package/dist/v2/components/FavoriteToggle.js +28 -39
  533. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  534. package/dist/v2/components/Field.d.ts +62 -4
  535. package/dist/v2/components/Field.d.ts.map +1 -1
  536. package/dist/v2/components/Field.js +169 -70
  537. package/dist/v2/components/Field.js.map +1 -1
  538. package/dist/v2/components/FieldError.js +18 -21
  539. package/dist/v2/components/FieldError.js.map +1 -1
  540. package/dist/v2/components/FieldHelp.js +40 -60
  541. package/dist/v2/components/FieldHelp.js.map +1 -1
  542. package/dist/v2/components/FileCard.js +27 -31
  543. package/dist/v2/components/FileCard.js.map +1 -1
  544. package/dist/v2/components/FilterTab.js +30 -38
  545. package/dist/v2/components/FilterTab.js.map +1 -1
  546. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  547. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  548. package/dist/v2/components/ForbiddenPage.js +37 -17
  549. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  550. package/dist/v2/components/FormGrid.js +53 -59
  551. package/dist/v2/components/FormGrid.js.map +1 -1
  552. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  553. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  554. package/dist/v2/components/FormikDisplay.js +108 -33
  555. package/dist/v2/components/FormikDisplay.js.map +1 -1
  556. package/dist/v2/components/Input.d.ts +40 -0
  557. package/dist/v2/components/Input.d.ts.map +1 -1
  558. package/dist/v2/components/Input.js +81 -41
  559. package/dist/v2/components/Input.js.map +1 -1
  560. package/dist/v2/components/KPICard.js +57 -67
  561. package/dist/v2/components/KPICard.js.map +1 -1
  562. package/dist/v2/components/KPIStrip.js +16 -22
  563. package/dist/v2/components/KPIStrip.js.map +1 -1
  564. package/dist/v2/components/KV.js +25 -31
  565. package/dist/v2/components/KV.js.map +1 -1
  566. package/dist/v2/components/KVGrid.js +19 -26
  567. package/dist/v2/components/KVGrid.js.map +1 -1
  568. package/dist/v2/components/Layout.js +91 -120
  569. package/dist/v2/components/Layout.js.map +1 -1
  570. package/dist/v2/components/MobileRowCard.js +79 -91
  571. package/dist/v2/components/MobileRowCard.js.map +1 -1
  572. package/dist/v2/components/Modal.js +61 -69
  573. package/dist/v2/components/Modal.js.map +1 -1
  574. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  575. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  576. package/dist/v2/components/NetworkErrorPage.js +38 -21
  577. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  578. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  579. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  580. package/dist/v2/components/NotFoundPage.js +37 -18
  581. package/dist/v2/components/NotFoundPage.js.map +1 -1
  582. package/dist/v2/components/NumberInput.js +88 -118
  583. package/dist/v2/components/NumberInput.js.map +1 -1
  584. package/dist/v2/components/OverflowMenu.js +38 -56
  585. package/dist/v2/components/OverflowMenu.js.map +1 -1
  586. package/dist/v2/components/PdfViewer.js +34 -45
  587. package/dist/v2/components/PdfViewer.js.map +1 -1
  588. package/dist/v2/components/ProgressBar.js +42 -49
  589. package/dist/v2/components/ProgressBar.js.map +1 -1
  590. package/dist/v2/components/Radio.js +59 -67
  591. package/dist/v2/components/Radio.js.map +1 -1
  592. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  593. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  594. package/dist/v2/components/SectionHeader.js +34 -41
  595. package/dist/v2/components/SectionHeader.js.map +1 -1
  596. package/dist/v2/components/Segmented.js +69 -93
  597. package/dist/v2/components/Segmented.js.map +1 -1
  598. package/dist/v2/components/Select.d.ts +26 -2
  599. package/dist/v2/components/Select.d.ts.map +1 -1
  600. package/dist/v2/components/Select.js +120 -155
  601. package/dist/v2/components/Select.js.map +1 -1
  602. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  603. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  604. package/dist/v2/components/ServerErrorPage.js +37 -20
  605. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  606. package/dist/v2/components/Skeleton.js +86 -100
  607. package/dist/v2/components/Skeleton.js.map +1 -1
  608. package/dist/v2/components/SkipLink.js +9 -12
  609. package/dist/v2/components/SkipLink.js.map +1 -1
  610. package/dist/v2/components/Spinner.js +16 -25
  611. package/dist/v2/components/Spinner.js.map +1 -1
  612. package/dist/v2/components/Status.js +18 -29
  613. package/dist/v2/components/Status.js.map +1 -1
  614. package/dist/v2/components/Stepper.js +80 -82
  615. package/dist/v2/components/Stepper.js.map +1 -1
  616. package/dist/v2/components/Surface.js +34 -49
  617. package/dist/v2/components/Surface.js.map +1 -1
  618. package/dist/v2/components/Switch.js +29 -37
  619. package/dist/v2/components/Switch.js.map +1 -1
  620. package/dist/v2/components/TabPanel.d.ts +17 -0
  621. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  622. package/dist/v2/components/TabPanel.js +90 -0
  623. package/dist/v2/components/TabPanel.js.map +1 -0
  624. package/dist/v2/components/Tabs.d.ts +25 -0
  625. package/dist/v2/components/Tabs.d.ts.map +1 -1
  626. package/dist/v2/components/Tabs.js +53 -29
  627. package/dist/v2/components/Tabs.js.map +1 -1
  628. package/dist/v2/components/TelInput.js +80 -115
  629. package/dist/v2/components/TelInput.js.map +1 -1
  630. package/dist/v2/components/Textarea.js +26 -35
  631. package/dist/v2/components/Textarea.js.map +1 -1
  632. package/dist/v2/components/TimePicker.js +62 -74
  633. package/dist/v2/components/TimePicker.js.map +1 -1
  634. package/dist/v2/components/Toast.js +119 -174
  635. package/dist/v2/components/Toast.js.map +1 -1
  636. package/dist/v2/components/Tooltip.js +23 -38
  637. package/dist/v2/components/Tooltip.js.map +1 -1
  638. package/dist/v2/components/_ErrorPageBody.js +15 -16
  639. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  640. package/dist/v2/components/_pickerShared.js +5 -5
  641. package/dist/v2/components/_pickerShared.js.map +1 -1
  642. package/dist/v2/components/index.d.ts +40 -1
  643. package/dist/v2/components/index.d.ts.map +1 -1
  644. package/dist/v2/components/index.js +153 -136
  645. package/dist/v2/components/index.js.map +1 -1
  646. package/dist/v2/hooks/index.d.ts +65 -0
  647. package/dist/v2/hooks/index.d.ts.map +1 -1
  648. package/dist/v2/hooks/index.js +63 -24
  649. package/dist/v2/hooks/index.js.map +1 -1
  650. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  651. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  652. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  653. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  654. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  655. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  656. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  657. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  658. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  659. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  660. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  661. package/dist/v2/hooks/useDensity.js +14 -18
  662. package/dist/v2/hooks/useDensity.js.map +1 -1
  663. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  664. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  665. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  666. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  667. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  668. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  669. package/dist/v2/hooks/useFocusTrap.js +20 -24
  670. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  671. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  672. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  673. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  674. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  675. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  676. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  677. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  678. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  679. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  680. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  681. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  682. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  683. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  684. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  685. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  687. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  688. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  689. package/dist/v2/hooks/useSortedRows.js +4 -6
  690. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  691. package/dist/v2/hooks/useTabLoading.js +7 -22
  692. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  693. package/dist/v2/index.js +143 -145
  694. package/dist/v2/index.js.map +1 -1
  695. package/dist/v2/modalContext.js +2 -2
  696. package/dist/v2/modalContext.js.map +1 -1
  697. package/dist/v2/models/favorite.d.ts +8 -9
  698. package/dist/v2/models/favorite.d.ts.map +1 -1
  699. package/dist/v2/models/favorite.js.map +1 -1
  700. package/dist/v2/models/index.js +4 -4
  701. package/dist/v2/models/index.js.map +1 -1
  702. package/dist/v2/models/personalization.d.ts +44 -48
  703. package/dist/v2/models/personalization.d.ts.map +1 -1
  704. package/dist/v2/models/personalization.js.map +1 -1
  705. package/dist/v2/models/referentiel.d.ts +32 -50
  706. package/dist/v2/models/referentiel.d.ts.map +1 -1
  707. package/dist/v2/models/referentiel.js.map +1 -1
  708. package/dist/v2/models/savedFilter.d.ts +8 -17
  709. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  710. package/dist/v2/models/savedFilter.js.map +1 -1
  711. package/dist/v2/patterns/ActionBar.js +152 -187
  712. package/dist/v2/patterns/ActionBar.js.map +1 -1
  713. package/dist/v2/patterns/AppMain.d.ts +109 -0
  714. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  715. package/dist/v2/patterns/AppMain.js +115 -0
  716. package/dist/v2/patterns/AppMain.js.map +1 -0
  717. package/dist/v2/patterns/BulkActionBar.js +40 -42
  718. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  719. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  720. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  721. package/dist/v2/patterns/ChartFigure.js +159 -0
  722. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  723. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  724. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  725. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  726. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  727. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  728. package/dist/v2/patterns/DataGrid.js +262 -297
  729. package/dist/v2/patterns/DataGrid.js.map +1 -1
  730. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  731. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  733. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  734. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  735. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  736. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  737. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  738. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  739. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  740. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  741. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  742. package/dist/v2/patterns/DetailSplit.js +116 -0
  743. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  744. package/dist/v2/patterns/FavoriteColumn.js +22 -23
  745. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  746. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  747. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  748. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  749. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  750. package/dist/v2/patterns/FilterTabBar.js +120 -0
  751. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  752. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  753. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  754. package/dist/v2/patterns/FormPageShell.js +53 -50
  755. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  756. package/dist/v2/patterns/FormSection.d.ts +8 -3
  757. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  758. package/dist/v2/patterns/FormSection.js +44 -51
  759. package/dist/v2/patterns/FormSection.js.map +1 -1
  760. package/dist/v2/patterns/FormikCheckbox.js +36 -45
  761. package/dist/v2/patterns/FormikCheckbox.js.map +1 -1
  762. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  763. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  765. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  766. package/dist/v2/patterns/FormikCombobox.js +55 -72
  767. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  768. package/dist/v2/patterns/FormikDatePicker.js +50 -64
  769. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  770. package/dist/v2/patterns/FormikDateTimePicker.js +50 -64
  771. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -1
  772. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  773. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  774. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  775. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  776. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  777. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  778. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  779. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikFile.js +99 -83
  781. package/dist/v2/patterns/FormikFile.js.map +1 -1
  782. package/dist/v2/patterns/FormikInput.js +45 -58
  783. package/dist/v2/patterns/FormikInput.js.map +1 -1
  784. package/dist/v2/patterns/FormikRadioGroup.js +45 -56
  785. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -1
  786. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  787. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  788. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  789. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  790. package/dist/v2/patterns/FormikSelect.js +70 -92
  791. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  792. package/dist/v2/patterns/FormikTextarea.js +35 -51
  793. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  794. package/dist/v2/patterns/KeyboardShortcutsHelp.js +60 -80
  795. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  796. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  797. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  798. package/dist/v2/patterns/PageContent.js +17 -20
  799. package/dist/v2/patterns/PageContent.js.map +1 -1
  800. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  801. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  802. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  803. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  804. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  805. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/ReferentielField.js +347 -327
  807. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/RowFavoriteToggle.d.ts +6 -0
  809. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -1
  810. package/dist/v2/patterns/RowFavoriteToggle.js +38 -30
  811. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -1
  812. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  813. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  814. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  815. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  816. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  817. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  818. package/dist/v2/patterns/SortableHeader.js +35 -57
  819. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  820. package/dist/v2/patterns/Tour.js +121 -142
  821. package/dist/v2/patterns/Tour.js.map +1 -1
  822. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  823. package/dist/v2/patterns/_dataGridShared.js +131 -147
  824. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  825. package/dist/v2/patterns/_pickerSerialisation.js +9 -10
  826. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -1
  827. package/dist/v2/patterns/_sort.js +17 -33
  828. package/dist/v2/patterns/_sort.js.map +1 -1
  829. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  830. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  831. package/dist/v2/patterns/_useColumnResize.js +80 -99
  832. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  833. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  834. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  835. package/dist/v2/patterns/filterCriteria.js +110 -0
  836. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  837. package/dist/v2/patterns/index.d.ts +160 -0
  838. package/dist/v2/patterns/index.d.ts.map +1 -1
  839. package/dist/v2/patterns/index.js +157 -79
  840. package/dist/v2/patterns/index.js.map +1 -1
  841. package/dist/v2/patterns/rowActions.d.ts +150 -0
  842. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  843. package/dist/v2/patterns/rowActions.js +232 -0
  844. package/dist/v2/patterns/rowActions.js.map +1 -0
  845. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  846. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  847. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  848. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  849. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  850. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  851. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  852. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  853. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  854. package/dist/v2/personalization/adapters/index.js +5 -5
  855. package/dist/v2/personalization/adapters/index.js.map +1 -1
  856. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  857. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  858. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  859. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  860. package/dist/v2/personalization/capabilities/gridPreferences.js +31 -36
  861. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -1
  862. package/dist/v2/personalization/capabilities/index.js +12 -12
  863. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  864. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  865. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  866. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  867. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  868. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  869. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  870. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  871. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  872. package/dist/v2/personalization/index.d.ts +16 -0
  873. package/dist/v2/personalization/index.d.ts.map +1 -1
  874. package/dist/v2/personalization/index.js +30 -23
  875. package/dist/v2/personalization/index.js.map +1 -1
  876. package/dist/v2/personalization/personalizationContext.js +10 -12
  877. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  878. package/dist/v2/personalization/schema.js +8 -9
  879. package/dist/v2/personalization/schema.js.map +1 -1
  880. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  881. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  882. package/dist/v2/referentiel/index.js +11 -13
  883. package/dist/v2/referentiel/index.js.map +1 -1
  884. package/dist/v2/referentiel/types.d.ts +105 -0
  885. package/dist/v2/referentiel/types.d.ts.map +1 -0
  886. package/dist/v2/referentiel/types.js +6 -0
  887. package/dist/v2/referentiel/types.js.map +1 -0
  888. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  889. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  890. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  891. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  892. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  893. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  894. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  895. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  896. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  897. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  898. package/dist/v2/theme/_brand.js +12 -26
  899. package/dist/v2/theme/_brand.js.map +1 -1
  900. package/dist/v2/theme/_brandSecondary.js +12 -26
  901. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  902. package/dist/v2/theme/createPortnetTheme.js +41 -49
  903. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  904. package/dist/v2/theme/cssVariables.d.ts +3 -3
  905. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  906. package/dist/v2/theme/cssVariables.js +65 -70
  907. package/dist/v2/theme/cssVariables.js.map +1 -1
  908. package/dist/v2/theme/index.js +10 -10
  909. package/dist/v2/theme/index.js.map +1 -1
  910. package/dist/v2/tokens/breakpoints.js +16 -16
  911. package/dist/v2/tokens/breakpoints.js.map +1 -1
  912. package/dist/v2/tokens/chart.d.ts +103 -0
  913. package/dist/v2/tokens/chart.d.ts.map +1 -0
  914. package/dist/v2/tokens/chart.js +270 -0
  915. package/dist/v2/tokens/chart.js.map +1 -0
  916. package/dist/v2/tokens/colors.js +24 -24
  917. package/dist/v2/tokens/colors.js.map +1 -1
  918. package/dist/v2/tokens/density.d.ts +104 -0
  919. package/dist/v2/tokens/density.d.ts.map +1 -1
  920. package/dist/v2/tokens/density.js +67 -12
  921. package/dist/v2/tokens/density.js.map +1 -1
  922. package/dist/v2/tokens/index.d.ts +50 -1
  923. package/dist/v2/tokens/index.d.ts.map +1 -1
  924. package/dist/v2/tokens/index.js +116 -68
  925. package/dist/v2/tokens/index.js.map +1 -1
  926. package/dist/v2/tokens/motion.js +16 -22
  927. package/dist/v2/tokens/motion.js.map +1 -1
  928. package/dist/v2/tokens/radius.js +3 -3
  929. package/dist/v2/tokens/radius.js.map +1 -1
  930. package/dist/v2/tokens/shadows.js +8 -8
  931. package/dist/v2/tokens/shadows.js.map +1 -1
  932. package/dist/v2/tokens/spacing.js +4 -4
  933. package/dist/v2/tokens/spacing.js.map +1 -1
  934. package/dist/v2/tokens/state.js +3 -3
  935. package/dist/v2/tokens/state.js.map +1 -1
  936. package/dist/v2/tokens/statusPalette.js +21 -23
  937. package/dist/v2/tokens/statusPalette.js.map +1 -1
  938. package/dist/v2/tokens/tokens.json +6 -1
  939. package/dist/v2/tokens/typography.js +15 -15
  940. package/dist/v2/tokens/typography.js.map +1 -1
  941. package/dist/v2/tokens/zIndex.js +3 -3
  942. package/dist/v2/tokens/zIndex.js.map +1 -1
  943. package/dist/v2/types/datagrid.d.ts +9 -1
  944. package/dist/v2/types/datagrid.d.ts.map +1 -1
  945. package/dist/v2/types/datagrid.js.map +1 -1
  946. package/dist/v2/types/index.js +2 -2
  947. package/dist/v2/types/index.js.map +1 -1
  948. package/dist/v2/utils/apiError.js +16 -37
  949. package/dist/v2/utils/apiError.js.map +1 -1
  950. package/dist/v2/utils/contrast.js +31 -32
  951. package/dist/v2/utils/contrast.js.map +1 -1
  952. package/dist/v2/utils/cx.js +7 -27
  953. package/dist/v2/utils/cx.js.map +1 -1
  954. package/dist/v2/utils/fileDownload.js +25 -28
  955. package/dist/v2/utils/fileDownload.js.map +1 -1
  956. package/dist/v2/utils/fileValidation.d.ts +116 -0
  957. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  958. package/dist/v2/utils/fileValidation.js +220 -0
  959. package/dist/v2/utils/fileValidation.js.map +1 -0
  960. package/dist/v2/utils/fmtDate.d.ts +103 -0
  961. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  962. package/dist/v2/utils/fmtDate.js +119 -0
  963. package/dist/v2/utils/fmtDate.js.map +1 -0
  964. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  965. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  966. package/dist/v2/utils/fmtMoney.js +9 -11
  967. package/dist/v2/utils/fmtMoney.js.map +1 -1
  968. package/dist/v2/utils/formikErrors.d.ts +67 -0
  969. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  970. package/dist/v2/utils/formikErrors.js +85 -0
  971. package/dist/v2/utils/formikErrors.js.map +1 -0
  972. package/dist/v2/utils/index.d.ts +5 -0
  973. package/dist/v2/utils/index.d.ts.map +1 -1
  974. package/dist/v2/utils/index.js +67 -18
  975. package/dist/v2/utils/index.js.map +1 -1
  976. package/dist/v2/utils/mergeLabels.js +9 -14
  977. package/dist/v2/utils/mergeLabels.js.map +1 -1
  978. package/dist/v2/utils/networkStatus.js +14 -14
  979. package/dist/v2/utils/networkStatus.js.map +1 -1
  980. package/package.json +26 -9
@@ -1,20 +1,3 @@
1
- var _excluded = ["as", "sx", "style", "className", "children"],
2
- _excluded2 = ["direction", "gap", "align", "justify", "wrap", "sx", "children"];
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
11
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
15
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
16
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
- 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); }
18
1
  import * as React from "react";
19
2
  import { mq, BREAKPOINT_KEYS } from "../tokens";
20
3
 
@@ -73,18 +56,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
73
56
  * never emits a media query. Sourced from the canonical breakpoints
74
57
  * token (tokens/breakpoints.js) so the order can't drift from the scale
75
58
  * wired into the MUI theme. */
76
- var BP_ORDER = BREAKPOINT_KEYS;
59
+ const BP_ORDER = BREAKPOINT_KEYS;
77
60
  function isPlainObject(v) {
78
- return v != null && _typeof(v) === "object" && !Array.isArray(v);
61
+ return v != null && typeof v === "object" && !Array.isArray(v);
79
62
  }
80
63
  function isBreakpointObject(v) {
81
64
  if (!isPlainObject(v)) return false;
82
65
  // Treat as responsive only if EVERY key is a known breakpoint name.
83
66
  // Avoids misreading a nested style object as a breakpoint map.
84
- var keys = Object.keys(v);
85
- return keys.length > 0 && keys.every(function (k) {
86
- return BP_ORDER.includes(k);
87
- });
67
+ const keys = Object.keys(v);
68
+ return keys.length > 0 && keys.every(k => BP_ORDER.includes(k));
88
69
  }
89
70
 
90
71
  /**
@@ -113,49 +94,37 @@ function resolveSx(sx) {
113
94
 
114
95
  // Content-addressed signature. Derived ONCE from the sx so the class
115
96
  // and every generated var name are stable across renders/instances.
116
- var sig = Math.abs(hashString(JSON.stringify(sx))).toString(36);
97
+ const sig = Math.abs(hashString(JSON.stringify(sx))).toString(36);
117
98
 
118
99
  // inlineStyle is the returned CSSProperties; styleWrite is the same
119
100
  // object viewed as a keyed record so dynamic string keys can be written
120
101
  // (CSSProperties has no string index signature, so the view needs a
121
102
  // cast — the two are the SAME object at runtime).
122
- var inlineStyle = {};
123
- var styleWrite = inlineStyle;
103
+ const inlineStyle = {};
104
+ const styleWrite = inlineStyle;
124
105
  /* Per-breakpoint declaration buckets, e.g. byBp.md === "--pui-rsp-<sig>-0:row;" */
125
- var byBp = {
106
+ const byBp = {
126
107
  xs: "",
127
108
  sm: "",
128
109
  md: "",
129
110
  lg: "",
130
111
  xl: ""
131
112
  };
132
- var hasResponsive = false;
133
- var varSeq = 0;
134
- for (var _i = 0, _Object$entries = Object.entries(sx); _i < _Object$entries.length; _i++) {
135
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
136
- prop = _Object$entries$_i[0],
137
- value = _Object$entries$_i[1];
113
+ let hasResponsive = false;
114
+ let varSeq = 0;
115
+ for (const [prop, value] of Object.entries(sx)) {
138
116
  if (isBreakpointObject(value)) {
139
117
  hasResponsive = true;
140
118
  // Stable, signature-scoped var name (local index, not a global
141
119
  // counter). Only ever declared inside `.${className}`, so the name
142
120
  // is effectively scoped to elements carrying that class.
143
- var varName = "--pui-rsp-".concat(sig, "-").concat(varSeq++);
144
- styleWrite[prop] = "var(".concat(varName, ")");
145
- var _iterator = _createForOfIteratorHelper(BP_ORDER),
146
- _step;
147
- try {
148
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
149
- var bp = _step.value;
150
- var bpVal = value[bp];
151
- if (bpVal != null) {
152
- byBp[bp] += "".concat(varName, ":").concat(bpVal, ";");
153
- }
121
+ const varName = `--pui-rsp-${sig}-${varSeq++}`;
122
+ styleWrite[prop] = `var(${varName})`;
123
+ for (const bp of BP_ORDER) {
124
+ const bpVal = value[bp];
125
+ if (bpVal != null) {
126
+ byBp[bp] += `${varName}:${bpVal};`;
154
127
  }
155
- } catch (err) {
156
- _iterator.e(err);
157
- } finally {
158
- _iterator.f();
159
128
  }
160
129
  } else {
161
130
  styleWrite[prop] = value;
@@ -163,34 +132,25 @@ function resolveSx(sx) {
163
132
  }
164
133
  if (!hasResponsive) {
165
134
  return {
166
- inlineStyle: inlineStyle,
135
+ inlineStyle,
167
136
  css: "",
168
137
  className: undefined
169
138
  };
170
139
  }
171
- var className = "pui-rsp-".concat(sig);
172
- var css = "";
140
+ const className = `pui-rsp-${sig}`;
141
+ let css = "";
173
142
  // xs = base (no media query), then ascending min-width queries built
174
143
  // by the shared mq.up() helper (single breakpoint→media-query engine).
175
- if (byBp.xs) css += ".".concat(className, "{").concat(byBp.xs, "}");
176
- var _iterator2 = _createForOfIteratorHelper(["sm", "md", "lg", "xl"]),
177
- _step2;
178
- try {
179
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
180
- var _bp = _step2.value;
181
- if (byBp[_bp]) {
182
- css += "".concat(mq.up(_bp), "{.").concat(className, "{").concat(byBp[_bp], "}}");
183
- }
144
+ if (byBp.xs) css += `.${className}{${byBp.xs}}`;
145
+ for (const bp of ["sm", "md", "lg", "xl"]) {
146
+ if (byBp[bp]) {
147
+ css += `${mq.up(bp)}{.${className}{${byBp[bp]}}}`;
184
148
  }
185
- } catch (err) {
186
- _iterator2.e(err);
187
- } finally {
188
- _iterator2.f();
189
149
  }
190
150
  return {
191
- inlineStyle: inlineStyle,
192
- css: css,
193
- className: className
151
+ inlineStyle,
152
+ css,
153
+ className
194
154
  };
195
155
  }
196
156
 
@@ -198,8 +158,8 @@ function resolveSx(sx) {
198
158
  * Used to content-address identical sx signatures so their generated
199
159
  * class + <style> rule de-duplicate in the DOM. */
200
160
  function hashString(str) {
201
- var h = 5381;
202
- for (var i = 0; i < str.length; i++) {
161
+ let h = 5381;
162
+ for (let i = 0; i < str.length; i++) {
203
163
  h = h * 33 ^ str.charCodeAt(i);
204
164
  }
205
165
  return h | 0;
@@ -209,11 +169,11 @@ function hashString(str) {
209
169
  * unique className. Idempotent: a second Box with the same sx signature
210
170
  * reuses the existing <style>. */
211
171
  function useResponsiveStyleInjection(css, className) {
212
- React.useInsertionEffect(function () {
172
+ React.useInsertionEffect(() => {
213
173
  if (!css || !className || typeof document === "undefined") return undefined;
214
- var id = "pui-rsp-style-".concat(className);
174
+ const id = `pui-rsp-style-${className}`;
215
175
  if (document.getElementById(id)) return undefined;
216
- var el = document.createElement("style");
176
+ const el = document.createElement("style");
217
177
  el.id = id;
218
178
  el.textContent = css;
219
179
  document.head.appendChild(el);
@@ -224,61 +184,65 @@ function useResponsiveStyleInjection(css, className) {
224
184
  return undefined;
225
185
  }, [css, className]);
226
186
  }
227
- export var Box = /*#__PURE__*/React.forwardRef(function Box(_ref, ref) {
228
- var _ref$as = _ref.as,
229
- Component = _ref$as === void 0 ? "div" : _ref$as,
230
- sx = _ref.sx,
231
- style = _ref.style,
232
- className = _ref.className,
233
- children = _ref.children,
234
- rest = _objectWithoutProperties(_ref, _excluded);
235
- var _React$useMemo = React.useMemo(function () {
236
- return resolveSx(sx);
237
- }, [sx]),
238
- inlineStyle = _React$useMemo.inlineStyle,
239
- css = _React$useMemo.css,
240
- rspClass = _React$useMemo.className;
187
+ export const Box = /*#__PURE__*/React.forwardRef(function Box({
188
+ as: Component = "div",
189
+ sx,
190
+ style,
191
+ className,
192
+ children,
193
+ ...rest
194
+ }, ref) {
195
+ const {
196
+ inlineStyle,
197
+ css,
198
+ className: rspClass
199
+ } = React.useMemo(() => resolveSx(sx), [sx]);
241
200
  useResponsiveStyleInjection(css, rspClass);
242
201
 
243
202
  /* Merge sx-derived inline style + explicit style — style wins. */
244
- var merged = inlineStyle && style ? _objectSpread(_objectSpread({}, inlineStyle), style) : inlineStyle ? inlineStyle : style ? style : undefined;
245
- var mergedClass = [className, rspClass].filter(Boolean).join(" ") || undefined;
246
- return /*#__PURE__*/_jsx(Component, _objectSpread(_objectSpread({
203
+ const merged = inlineStyle && style ? {
204
+ ...inlineStyle,
205
+ ...style
206
+ } : inlineStyle ? inlineStyle : style ? style : undefined;
207
+ const mergedClass = [className, rspClass].filter(Boolean).join(" ") || undefined;
208
+ return /*#__PURE__*/_jsx(Component, {
247
209
  ref: ref,
248
210
  style: merged,
249
- className: mergedClass
250
- }, rest), {}, {
211
+ className: mergedClass,
212
+ ...rest,
251
213
  children: children
252
- }));
214
+ });
253
215
  });
254
- export var Stack = /*#__PURE__*/React.forwardRef(function Stack(_ref2, ref) {
255
- var _ref2$direction = _ref2.direction,
256
- direction = _ref2$direction === void 0 ? "column" : _ref2$direction,
257
- _ref2$gap = _ref2.gap,
258
- gap = _ref2$gap === void 0 ? "var(--s-3)" : _ref2$gap,
259
- align = _ref2.align,
260
- justify = _ref2.justify,
261
- _ref2$wrap = _ref2.wrap,
262
- wrap = _ref2$wrap === void 0 ? false : _ref2$wrap,
263
- sx = _ref2.sx,
264
- children = _ref2.children,
265
- rest = _objectWithoutProperties(_ref2, _excluded2);
266
- var layoutSx = _objectSpread(_objectSpread(_objectSpread(_objectSpread({
216
+ export const Stack = /*#__PURE__*/React.forwardRef(function Stack({
217
+ direction = "column",
218
+ gap = "var(--s-3)",
219
+ align,
220
+ justify,
221
+ wrap = false,
222
+ sx,
223
+ children,
224
+ ...rest
225
+ }, ref) {
226
+ const layoutSx = {
267
227
  display: "flex",
268
228
  flexDirection: direction,
269
- gap: gap
270
- }, align ? {
271
- alignItems: align
272
- } : null), justify ? {
273
- justifyContent: justify
274
- } : null), wrap ? {
275
- flexWrap: "wrap"
276
- } : null), sx);
277
- return /*#__PURE__*/_jsx(Box, _objectSpread(_objectSpread({
229
+ gap,
230
+ ...(align ? {
231
+ alignItems: align
232
+ } : null),
233
+ ...(justify ? {
234
+ justifyContent: justify
235
+ } : null),
236
+ ...(wrap ? {
237
+ flexWrap: "wrap"
238
+ } : null),
239
+ ...sx
240
+ };
241
+ return /*#__PURE__*/_jsx(Box, {
278
242
  ref: ref,
279
- sx: layoutSx
280
- }, rest), {}, {
243
+ sx: layoutSx,
244
+ ...rest,
281
245
  children: children
282
- }));
246
+ });
283
247
  });
284
248
  //# sourceMappingURL=Layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.js","names":["React","mq","BREAKPOINT_KEYS","jsx","_jsx","BP_ORDER","isPlainObject","v","_typeof","Array","isArray","isBreakpointObject","keys","Object","length","every","k","includes","resolveSx","sx","inlineStyle","undefined","css","className","sig","Math","abs","hashString","JSON","stringify","toString","styleWrite","byBp","xs","sm","md","lg","xl","hasResponsive","varSeq","_i","_Object$entries","entries","_Object$entries$_i","_slicedToArray","prop","value","varName","concat","_iterator","_createForOfIteratorHelper","_step","s","n","done","bp","bpVal","err","e","f","_iterator2","_step2","up","str","h","i","charCodeAt","useResponsiveStyleInjection","useInsertionEffect","document","id","getElementById","el","createElement","textContent","head","appendChild","Box","forwardRef","_ref","ref","_ref$as","as","Component","style","children","rest","_objectWithoutProperties","_excluded","_React$useMemo","useMemo","rspClass","merged","_objectSpread","mergedClass","filter","Boolean","join","Stack","_ref2","_ref2$direction","direction","_ref2$gap","gap","align","justify","_ref2$wrap","wrap","_excluded2","layoutSx","display","flexDirection","alignItems","justifyContent","flexWrap"],"sources":["../../../../src/lib/v2/components/Layout.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { mq, BREAKPOINT_KEYS } from \"../tokens\";\r\nimport type { Breakpoint } from \"../types/common\";\r\n\r\n/**\r\n * v2.Box / v2.Stack — token-driven layout primitives.\r\n *\r\n * These render through the inline `style` attribute and stay theme-free\r\n * (no MUI theme runtime, no emotion). Tokens flow through CSS variables\r\n * on :root, exactly as before.\r\n *\r\n * Responsive escape hatch (R-RS.4)\r\n * --------------------------------\r\n * Historically `sx` accepted ONLY plain CSS-property values; a\r\n * breakpoint object (`{ xs, sm, md, lg, xl }`) was silently dropped to\r\n * \"[object Object]\" because inline styles can't carry media queries.\r\n * Modules that needed responsive variation were pushed into bespoke,\r\n * per-module CSS files — which fragments the breakpoint contract and\r\n * violates centralisation.\r\n *\r\n * `sx` now ALSO accepts breakpoint objects on any property, resolved\r\n * against the DESIGN-SYSTEM breakpoint TOKENS (tokens/breakpoints.js),\r\n * the same scale wired into the MUI theme. The mechanism is the standard\r\n * \"CSS variable swapped by media query\" technique, kept entirely inside\r\n * the lib so consumers never hand-write a media query:\r\n *\r\n * <Box sx={{ flexDirection: { xs: \"column\", md: \"row\" }, gap: \"var(--s-3)\" }} />\r\n *\r\n * → a generated scoped class sets, for that element only:\r\n * --pui-rsp-<sig>-0: column; (base, mobile-first)\r\n * ${mq.up(\"md\")} { --pui-rsp-<sig>-0: row } (md token)\r\n * and the inline style references flexDirection: var(--pui-rsp-<sig>-0).\r\n *\r\n * `xs` is treated as the base (min-width 0). sm/md/lg/xl emit\r\n * min-width media queries at the token values via mq.up(), so the\r\n * generated queries are byte-identical to theme.breakpoints.up().\r\n *\r\n * The generated class + variable names are CONTENT-ADDRESSED (derived\r\n * from a hash of the sx), so an identical sx signature always produces\r\n * the identical class and the identical <style> rule — injected once and\r\n * shared by every instance and every re-render. (A volatile counter here\r\n * would mint a fresh class + <style> on each render of an inline-sx Box,\r\n * leaking <style> tags into <head> without bound.)\r\n *\r\n * Precedence: `style` (explicit escape hatch) still overrides `sx`.\r\n *\r\n * <Box as=\"section\" sx={{ display: \"flex\" }} style={{ background: \"var(--surface)\" }} className=\"x\" />\r\n */\r\n\r\n/** A single CSS value, or a per-breakpoint map of CSS values (responsive). */\r\ntype SxValue =\r\n | string\r\n | number\r\n | Partial<Record<Breakpoint, string | number | undefined>>;\r\n\r\n/** Token-driven inline style; each property is a value or a responsive map. */\r\ntype Sx = { [property: string]: SxValue };\r\n\r\n/** Result of splitting an sx into inline style + generated responsive CSS. */\r\ntype ResolvedSx = {\r\n inlineStyle: React.CSSProperties | undefined;\r\n css: string;\r\n className: string | undefined;\r\n};\r\n\r\n/* Token breakpoint keys, ascending. xs is the mobile-first base and\r\n * never emits a media query. Sourced from the canonical breakpoints\r\n * token (tokens/breakpoints.js) so the order can't drift from the scale\r\n * wired into the MUI theme. */\r\nconst BP_ORDER = BREAKPOINT_KEYS;\r\n\r\nfunction isPlainObject(v: unknown): boolean {\r\n return v != null && typeof v === \"object\" && !Array.isArray(v);\r\n}\r\n\r\nfunction isBreakpointObject(\r\n v: unknown,\r\n): v is Partial<Record<Breakpoint, string | number | undefined>> {\r\n if (!isPlainObject(v)) return false;\r\n // Treat as responsive only if EVERY key is a known breakpoint name.\r\n // Avoids misreading a nested style object as a breakpoint map.\r\n const keys = Object.keys(v as Record<string, unknown>);\r\n return keys.length > 0 && keys.every((k) => (BP_ORDER as readonly string[]).includes(k));\r\n}\r\n\r\n/**\r\n * Split an sx object into:\r\n * - inlineStyle : plain props written directly (responsive props point\r\n * at a generated CSS variable)\r\n * - css : a scoped stylesheet string (or \"\" when nothing is\r\n * responsive)\r\n * - className : the generated scope class (or undefined)\r\n *\r\n * The className and the generated variable names are both derived from a\r\n * single content hash of the sx, so the result is STABLE across renders\r\n * and identical across instances that share the same sx — which is what\r\n * makes the <style> injection idempotent (see useResponsiveStyleInjection).\r\n *\r\n * Returns a stable result for a given sx via useMemo at the call site.\r\n */\r\nfunction resolveSx(sx: Sx | undefined): ResolvedSx {\r\n if (sx == null || !isPlainObject(sx)) {\r\n return { inlineStyle: undefined, css: \"\", className: undefined };\r\n }\r\n\r\n // Content-addressed signature. Derived ONCE from the sx so the class\r\n // and every generated var name are stable across renders/instances.\r\n const sig = Math.abs(hashString(JSON.stringify(sx))).toString(36);\r\n\r\n // inlineStyle is the returned CSSProperties; styleWrite is the same\r\n // object viewed as a keyed record so dynamic string keys can be written\r\n // (CSSProperties has no string index signature, so the view needs a\r\n // cast — the two are the SAME object at runtime).\r\n const inlineStyle: React.CSSProperties = {};\r\n const styleWrite = inlineStyle as unknown as Record<string, string | number | undefined>;\r\n /* Per-breakpoint declaration buckets, e.g. byBp.md === \"--pui-rsp-<sig>-0:row;\" */\r\n const byBp: Record<Breakpoint, string> = { xs: \"\", sm: \"\", md: \"\", lg: \"\", xl: \"\" };\r\n let hasResponsive = false;\r\n let varSeq = 0;\r\n\r\n for (const [prop, value] of Object.entries(sx)) {\r\n if (isBreakpointObject(value)) {\r\n hasResponsive = true;\r\n // Stable, signature-scoped var name (local index, not a global\r\n // counter). Only ever declared inside `.${className}`, so the name\r\n // is effectively scoped to elements carrying that class.\r\n const varName = `--pui-rsp-${sig}-${varSeq++}`;\r\n styleWrite[prop] = `var(${varName})`;\r\n for (const bp of BP_ORDER) {\r\n const bpVal = value[bp];\r\n if (bpVal != null) {\r\n byBp[bp] += `${varName}:${bpVal};`;\r\n }\r\n }\r\n } else {\r\n styleWrite[prop] = value;\r\n }\r\n }\r\n\r\n if (!hasResponsive) {\r\n return { inlineStyle, css: \"\", className: undefined };\r\n }\r\n\r\n const className = `pui-rsp-${sig}`;\r\n\r\n let css = \"\";\r\n // xs = base (no media query), then ascending min-width queries built\r\n // by the shared mq.up() helper (single breakpoint→media-query engine).\r\n if (byBp.xs) css += `.${className}{${byBp.xs}}`;\r\n for (const bp of [\"sm\", \"md\", \"lg\", \"xl\"] as const) {\r\n if (byBp[bp]) {\r\n css += `${mq.up(bp)}{.${className}{${byBp[bp]}}}`;\r\n }\r\n }\r\n\r\n return { inlineStyle, css, className };\r\n}\r\n\r\n/* Small, stable, dependency-free string hash (djb2) for class naming.\r\n * Used to content-address identical sx signatures so their generated\r\n * class + <style> rule de-duplicate in the DOM. */\r\nfunction hashString(str: string): number {\r\n let h = 5381;\r\n for (let i = 0; i < str.length; i++) {\r\n h = (h * 33) ^ str.charCodeAt(i);\r\n }\r\n return h | 0;\r\n}\r\n\r\n/* Injects the generated stylesheet for a responsive sx exactly once per\r\n * unique className. Idempotent: a second Box with the same sx signature\r\n * reuses the existing <style>. */\r\nfunction useResponsiveStyleInjection(css: string, className: string | undefined): void {\r\n React.useInsertionEffect(() => {\r\n if (!css || !className || typeof document === \"undefined\") return undefined;\r\n const id = `pui-rsp-style-${className}`;\r\n if (document.getElementById(id)) return undefined;\r\n const el = document.createElement(\"style\");\r\n el.id = id;\r\n el.textContent = css;\r\n document.head.appendChild(el);\r\n // Not removed on unmount: the rule is keyed by content hash and may\r\n // be shared by sibling instances; leaving it is cheap and avoids a\r\n // flash if the same sx remounts. The set is bounded by the number of\r\n // DISTINCT responsive sx signatures in the app, not instances.\r\n return undefined;\r\n }, [css, className]);\r\n}\r\n\r\nexport interface BoxProps extends React.HTMLAttributes<HTMLElement> {\r\n /** Element or component to render. @default \"div\" */\r\n as?: React.ElementType | undefined;\r\n /**\r\n * Token-driven inline style. Each property may be a plain CSS value or a\r\n * responsive breakpoint map (`{ xs, sm, md, lg, xl }`) resolved against the\r\n * design-system breakpoint tokens. `style` still overrides `sx`.\r\n */\r\n sx?: Sx | undefined;\r\n}\r\n\r\nexport const Box = React.forwardRef<HTMLElement, BoxProps>(function Box(\r\n { as: Component = \"div\", sx, style, className, children, ...rest },\r\n ref,\r\n) {\r\n const { inlineStyle, css, className: rspClass } = React.useMemo(\r\n () => resolveSx(sx),\r\n [sx],\r\n );\r\n useResponsiveStyleInjection(css, rspClass);\r\n\r\n /* Merge sx-derived inline style + explicit style — style wins. */\r\n const merged =\r\n inlineStyle && style ? { ...inlineStyle, ...style } :\r\n inlineStyle ? inlineStyle :\r\n style ? style :\r\n undefined;\r\n\r\n const mergedClass = [className, rspClass].filter(Boolean).join(\" \") || undefined;\r\n\r\n return (\r\n <Component ref={ref} style={merged} className={mergedClass} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n});\r\n\r\nexport interface StackProps extends BoxProps {\r\n /** Flex direction. @default \"column\" */\r\n direction?: React.CSSProperties[\"flexDirection\"] | undefined;\r\n /** Gap between children (any CSS length or spacing var). @default \"var(--s-3)\" */\r\n gap?: string | number | undefined;\r\n /** align-items. */\r\n align?: React.CSSProperties[\"alignItems\"] | undefined;\r\n /** justify-content. */\r\n justify?: React.CSSProperties[\"justifyContent\"] | undefined;\r\n /** Set flex-wrap: wrap. @default false */\r\n wrap?: boolean | undefined;\r\n}\r\n\r\nexport const Stack = React.forwardRef<HTMLElement, StackProps>(function Stack(\r\n {\r\n direction = \"column\",\r\n gap = \"var(--s-3)\",\r\n align,\r\n justify,\r\n wrap = false,\r\n sx,\r\n children,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n const layoutSx: Sx = {\r\n display: \"flex\",\r\n flexDirection: direction,\r\n gap,\r\n ...(align ? { alignItems: align } : null),\r\n ...(justify ? { justifyContent: justify } : null),\r\n ...(wrap ? { flexWrap: \"wrap\" } : null),\r\n ...sx,\r\n };\r\n\r\n return (\r\n <Box ref={ref} sx={layoutSx} {...rest}>\r\n {children}\r\n </Box>\r\n );\r\n});\r\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,EAAE,EAAEC,eAAe,QAAQ,WAAW;;AAG/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAMA;;AAGA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAOA;AACA;AACA;AACA;AACA,IAAMC,QAAQ,GAAGH,eAAe;AAEhC,SAASI,aAAaA,CAACC,CAAU,EAAW;EAC1C,OAAOA,CAAC,IAAI,IAAI,IAAIC,OAAA,CAAOD,CAAC,MAAK,QAAQ,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC;AAChE;AAEA,SAASI,kBAAkBA,CACzBJ,CAAU,EACqD;EAC/D,IAAI,CAACD,aAAa,CAACC,CAAC,CAAC,EAAE,OAAO,KAAK;EACnC;EACA;EACA,IAAMK,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACL,CAA4B,CAAC;EACtD,OAAOK,IAAI,CAACE,MAAM,GAAG,CAAC,IAAIF,IAAI,CAACG,KAAK,CAAC,UAACC,CAAC;IAAA,OAAMX,QAAQ,CAAuBY,QAAQ,CAACD,CAAC,CAAC;EAAA,EAAC;AAC1F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,SAASA,CAACC,EAAkB,EAAc;EACjD,IAAIA,EAAE,IAAI,IAAI,IAAI,CAACb,aAAa,CAACa,EAAE,CAAC,EAAE;IACpC,OAAO;MAAEC,WAAW,EAAEC,SAAS;MAAEC,GAAG,EAAE,EAAE;MAAEC,SAAS,EAAEF;IAAU,CAAC;EAClE;;EAEA;EACA;EACA,IAAMG,GAAG,GAAGC,IAAI,CAACC,GAAG,CAACC,UAAU,CAACC,IAAI,CAACC,SAAS,CAACV,EAAE,CAAC,CAAC,CAAC,CAACW,QAAQ,CAAC,EAAE,CAAC;;EAEjE;EACA;EACA;EACA;EACA,IAAMV,WAAgC,GAAG,CAAC,CAAC;EAC3C,IAAMW,UAAU,GAAGX,WAAqE;EACxF;EACA,IAAMY,IAAgC,GAAG;IAAEC,EAAE,EAAE,EAAE;IAAEC,EAAE,EAAE,EAAE;IAAEC,EAAE,EAAE,EAAE;IAAEC,EAAE,EAAE,EAAE;IAAEC,EAAE,EAAE;EAAG,CAAC;EACnF,IAAIC,aAAa,GAAG,KAAK;EACzB,IAAIC,MAAM,GAAG,CAAC;EAEd,SAAAC,EAAA,MAAAC,eAAA,GAA4B5B,MAAM,CAAC6B,OAAO,CAACvB,EAAE,CAAC,EAAAqB,EAAA,GAAAC,eAAA,CAAA3B,MAAA,EAAA0B,EAAA,IAAE;IAA3C,IAAAG,kBAAA,GAAAC,cAAA,CAAAH,eAAA,CAAAD,EAAA;MAAOK,IAAI,GAAAF,kBAAA;MAAEG,KAAK,GAAAH,kBAAA;IACrB,IAAIhC,kBAAkB,CAACmC,KAAK,CAAC,EAAE;MAC7BR,aAAa,GAAG,IAAI;MACpB;MACA;MACA;MACA,IAAMS,OAAO,gBAAAC,MAAA,CAAgBxB,GAAG,OAAAwB,MAAA,CAAIT,MAAM,EAAE,CAAE;MAC9CR,UAAU,CAACc,IAAI,CAAC,UAAAG,MAAA,CAAUD,OAAO,MAAG;MAAC,IAAAE,SAAA,GAAAC,0BAAA,CACpB7C,QAAQ;QAAA8C,KAAA;MAAA;QAAzB,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAA2B;UAAA,IAAhBC,EAAE,GAAAJ,KAAA,CAAAL,KAAA;UACX,IAAMU,KAAK,GAAGV,KAAK,CAACS,EAAE,CAAC;UACvB,IAAIC,KAAK,IAAI,IAAI,EAAE;YACjBxB,IAAI,CAACuB,EAAE,CAAC,OAAAP,MAAA,CAAOD,OAAO,OAAAC,MAAA,CAAIQ,KAAK,MAAG;UACpC;QACF;MAAC,SAAAC,GAAA;QAAAR,SAAA,CAAAS,CAAA,CAAAD,GAAA;MAAA;QAAAR,SAAA,CAAAU,CAAA;MAAA;IACH,CAAC,MAAM;MACL5B,UAAU,CAACc,IAAI,CAAC,GAAGC,KAAK;IAC1B;EACF;EAEA,IAAI,CAACR,aAAa,EAAE;IAClB,OAAO;MAAElB,WAAW,EAAXA,WAAW;MAAEE,GAAG,EAAE,EAAE;MAAEC,SAAS,EAAEF;IAAU,CAAC;EACvD;EAEA,IAAME,SAAS,cAAAyB,MAAA,CAAcxB,GAAG,CAAE;EAElC,IAAIF,GAAG,GAAG,EAAE;EACZ;EACA;EACA,IAAIU,IAAI,CAACC,EAAE,EAAEX,GAAG,QAAA0B,MAAA,CAAQzB,SAAS,OAAAyB,MAAA,CAAIhB,IAAI,CAACC,EAAE,MAAG;EAAC,IAAA2B,UAAA,GAAAV,0BAAA,CAC/B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAAAW,MAAA;EAAA;IAAzC,KAAAD,UAAA,CAAAR,CAAA,MAAAS,MAAA,GAAAD,UAAA,CAAAP,CAAA,IAAAC,IAAA,GAAoD;MAAA,IAAzCC,GAAE,GAAAM,MAAA,CAAAf,KAAA;MACX,IAAId,IAAI,CAACuB,GAAE,CAAC,EAAE;QACZjC,GAAG,OAAA0B,MAAA,CAAO/C,EAAE,CAAC6D,EAAE,CAACP,GAAE,CAAC,QAAAP,MAAA,CAAKzB,SAAS,OAAAyB,MAAA,CAAIhB,IAAI,CAACuB,GAAE,CAAC,OAAI;MACnD;IACF;EAAC,SAAAE,GAAA;IAAAG,UAAA,CAAAF,CAAA,CAAAD,GAAA;EAAA;IAAAG,UAAA,CAAAD,CAAA;EAAA;EAED,OAAO;IAAEvC,WAAW,EAAXA,WAAW;IAAEE,GAAG,EAAHA,GAAG;IAAEC,SAAS,EAATA;EAAU,CAAC;AACxC;;AAEA;AACA;AACA;AACA,SAASI,UAAUA,CAACoC,GAAW,EAAU;EACvC,IAAIC,CAAC,GAAG,IAAI;EACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,GAAG,CAACjD,MAAM,EAAEmD,CAAC,EAAE,EAAE;IACnCD,CAAC,GAAIA,CAAC,GAAG,EAAE,GAAID,GAAG,CAACG,UAAU,CAACD,CAAC,CAAC;EAClC;EACA,OAAOD,CAAC,GAAG,CAAC;AACd;;AAEA;AACA;AACA;AACA,SAASG,2BAA2BA,CAAC7C,GAAW,EAAEC,SAA6B,EAAQ;EACrFvB,KAAK,CAACoE,kBAAkB,CAAC,YAAM;IAC7B,IAAI,CAAC9C,GAAG,IAAI,CAACC,SAAS,IAAI,OAAO8C,QAAQ,KAAK,WAAW,EAAE,OAAOhD,SAAS;IAC3E,IAAMiD,EAAE,oBAAAtB,MAAA,CAAoBzB,SAAS,CAAE;IACvC,IAAI8C,QAAQ,CAACE,cAAc,CAACD,EAAE,CAAC,EAAE,OAAOjD,SAAS;IACjD,IAAMmD,EAAE,GAAGH,QAAQ,CAACI,aAAa,CAAC,OAAO,CAAC;IAC1CD,EAAE,CAACF,EAAE,GAAGA,EAAE;IACVE,EAAE,CAACE,WAAW,GAAGpD,GAAG;IACpB+C,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACJ,EAAE,CAAC;IAC7B;IACA;IACA;IACA;IACA,OAAOnD,SAAS;EAClB,CAAC,EAAE,CAACC,GAAG,EAAEC,SAAS,CAAC,CAAC;AACtB;AAaA,OAAO,IAAMsD,GAAG,gBAAG7E,KAAK,CAAC8E,UAAU,CAAwB,SAASD,GAAGA,CAAAE,IAAA,EAErEC,GAAG,EACH;EAAA,IAAAC,OAAA,GAAAF,IAAA,CAFEG,EAAE;IAAEC,SAAS,GAAAF,OAAA,cAAG,KAAK,GAAAA,OAAA;IAAE9D,EAAE,GAAA4D,IAAA,CAAF5D,EAAE;IAAEiE,KAAK,GAAAL,IAAA,CAALK,KAAK;IAAE7D,SAAS,GAAAwD,IAAA,CAATxD,SAAS;IAAE8D,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAKC,IAAI,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA;EAGhE,IAAAC,cAAA,GAAkDzF,KAAK,CAAC0F,OAAO,CAC7D;MAAA,OAAMxE,SAAS,CAACC,EAAE,CAAC;IAAA,GACnB,CAACA,EAAE,CACL,CAAC;IAHOC,WAAW,GAAAqE,cAAA,CAAXrE,WAAW;IAAEE,GAAG,GAAAmE,cAAA,CAAHnE,GAAG;IAAaqE,QAAQ,GAAAF,cAAA,CAAnBlE,SAAS;EAInC4C,2BAA2B,CAAC7C,GAAG,EAAEqE,QAAQ,CAAC;;EAE1C;EACA,IAAMC,MAAM,GACVxE,WAAW,IAAIgE,KAAK,GAAAS,aAAA,CAAAA,aAAA,KAAQzE,WAAW,GAAKgE,KAAK,IACjDhE,WAAW,GAAGA,WAAW,GACzBgE,KAAK,GAAGA,KAAK,GACb/D,SAAS;EAEX,IAAMyE,WAAW,GAAG,CAACvE,SAAS,EAAEoE,QAAQ,CAAC,CAACI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,IAAI5E,SAAS;EAEhF,oBACEjB,IAAA,CAAC+E,SAAS,EAAAU,aAAA,CAAAA,aAAA;IAACb,GAAG,EAAEA,GAAI;IAACI,KAAK,EAAEQ,MAAO;IAACrE,SAAS,EAAEuE;EAAY,GAAKR,IAAI;IAAAD,QAAA,EACjEA;EAAQ,EACA,CAAC;AAEhB,CAAC,CAAC;AAeF,OAAO,IAAMa,KAAK,gBAAGlG,KAAK,CAAC8E,UAAU,CAA0B,SAASoB,KAAKA,CAAAC,KAAA,EAW3EnB,GAAG,EACH;EAAA,IAAAoB,eAAA,GAAAD,KAAA,CAVEE,SAAS;IAATA,SAAS,GAAAD,eAAA,cAAG,QAAQ,GAAAA,eAAA;IAAAE,SAAA,GAAAH,KAAA,CACpBI,GAAG;IAAHA,GAAG,GAAAD,SAAA,cAAG,YAAY,GAAAA,SAAA;IAClBE,KAAK,GAAAL,KAAA,CAALK,KAAK;IACLC,OAAO,GAAAN,KAAA,CAAPM,OAAO;IAAAC,UAAA,GAAAP,KAAA,CACPQ,IAAI;IAAJA,IAAI,GAAAD,UAAA,cAAG,KAAK,GAAAA,UAAA;IACZvF,EAAE,GAAAgF,KAAA,CAAFhF,EAAE;IACFkE,QAAQ,GAAAc,KAAA,CAARd,QAAQ;IACLC,IAAI,GAAAC,wBAAA,CAAAY,KAAA,EAAAS,UAAA;EAIT,IAAMC,QAAY,GAAAhB,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA;IAChBiB,OAAO,EAAE,MAAM;IACfC,aAAa,EAAEV,SAAS;IACxBE,GAAG,EAAHA;EAAG,GACCC,KAAK,GAAM;IAAEQ,UAAU,EAAMR;EAAQ,CAAC,GAAG,IAAI,GAC7CC,OAAO,GAAI;IAAEQ,cAAc,EAAER;EAAQ,CAAC,GAAG,IAAI,GAC7CE,IAAI,GAAO;IAAEO,QAAQ,EAAE;EAAO,CAAC,GAAU,IAAI,GAC9C/F,EAAE,CACN;EAED,oBACEf,IAAA,CAACyE,GAAG,EAAAgB,aAAA,CAAAA,aAAA;IAACb,GAAG,EAAEA,GAAI;IAAC7D,EAAE,EAAE0F;EAAS,GAAKvB,IAAI;IAAAD,QAAA,EAClCA;EAAQ,EACN,CAAC;AAEV,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Layout.js","names":["React","mq","BREAKPOINT_KEYS","jsx","_jsx","BP_ORDER","isPlainObject","v","Array","isArray","isBreakpointObject","keys","Object","length","every","k","includes","resolveSx","sx","inlineStyle","undefined","css","className","sig","Math","abs","hashString","JSON","stringify","toString","styleWrite","byBp","xs","sm","md","lg","xl","hasResponsive","varSeq","prop","value","entries","varName","bp","bpVal","up","str","h","i","charCodeAt","useResponsiveStyleInjection","useInsertionEffect","document","id","getElementById","el","createElement","textContent","head","appendChild","Box","forwardRef","as","Component","style","children","rest","ref","rspClass","useMemo","merged","mergedClass","filter","Boolean","join","Stack","direction","gap","align","justify","wrap","layoutSx","display","flexDirection","alignItems","justifyContent","flexWrap"],"sources":["../../../../src/lib/v2/components/Layout.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { mq, BREAKPOINT_KEYS } from \"../tokens\";\r\nimport type { Breakpoint } from \"../types/common\";\r\n\r\n/**\r\n * v2.Box / v2.Stack — token-driven layout primitives.\r\n *\r\n * These render through the inline `style` attribute and stay theme-free\r\n * (no MUI theme runtime, no emotion). Tokens flow through CSS variables\r\n * on :root, exactly as before.\r\n *\r\n * Responsive escape hatch (R-RS.4)\r\n * --------------------------------\r\n * Historically `sx` accepted ONLY plain CSS-property values; a\r\n * breakpoint object (`{ xs, sm, md, lg, xl }`) was silently dropped to\r\n * \"[object Object]\" because inline styles can't carry media queries.\r\n * Modules that needed responsive variation were pushed into bespoke,\r\n * per-module CSS files — which fragments the breakpoint contract and\r\n * violates centralisation.\r\n *\r\n * `sx` now ALSO accepts breakpoint objects on any property, resolved\r\n * against the DESIGN-SYSTEM breakpoint TOKENS (tokens/breakpoints.js),\r\n * the same scale wired into the MUI theme. The mechanism is the standard\r\n * \"CSS variable swapped by media query\" technique, kept entirely inside\r\n * the lib so consumers never hand-write a media query:\r\n *\r\n * <Box sx={{ flexDirection: { xs: \"column\", md: \"row\" }, gap: \"var(--s-3)\" }} />\r\n *\r\n * → a generated scoped class sets, for that element only:\r\n * --pui-rsp-<sig>-0: column; (base, mobile-first)\r\n * ${mq.up(\"md\")} { --pui-rsp-<sig>-0: row } (md token)\r\n * and the inline style references flexDirection: var(--pui-rsp-<sig>-0).\r\n *\r\n * `xs` is treated as the base (min-width 0). sm/md/lg/xl emit\r\n * min-width media queries at the token values via mq.up(), so the\r\n * generated queries are byte-identical to theme.breakpoints.up().\r\n *\r\n * The generated class + variable names are CONTENT-ADDRESSED (derived\r\n * from a hash of the sx), so an identical sx signature always produces\r\n * the identical class and the identical <style> rule — injected once and\r\n * shared by every instance and every re-render. (A volatile counter here\r\n * would mint a fresh class + <style> on each render of an inline-sx Box,\r\n * leaking <style> tags into <head> without bound.)\r\n *\r\n * Precedence: `style` (explicit escape hatch) still overrides `sx`.\r\n *\r\n * <Box as=\"section\" sx={{ display: \"flex\" }} style={{ background: \"var(--surface)\" }} className=\"x\" />\r\n */\r\n\r\n/** A single CSS value, or a per-breakpoint map of CSS values (responsive). */\r\ntype SxValue =\r\n | string\r\n | number\r\n | Partial<Record<Breakpoint, string | number | undefined>>;\r\n\r\n/** Token-driven inline style; each property is a value or a responsive map. */\r\ntype Sx = { [property: string]: SxValue };\r\n\r\n/** Result of splitting an sx into inline style + generated responsive CSS. */\r\ntype ResolvedSx = {\r\n inlineStyle: React.CSSProperties | undefined;\r\n css: string;\r\n className: string | undefined;\r\n};\r\n\r\n/* Token breakpoint keys, ascending. xs is the mobile-first base and\r\n * never emits a media query. Sourced from the canonical breakpoints\r\n * token (tokens/breakpoints.js) so the order can't drift from the scale\r\n * wired into the MUI theme. */\r\nconst BP_ORDER = BREAKPOINT_KEYS;\r\n\r\nfunction isPlainObject(v: unknown): boolean {\r\n return v != null && typeof v === \"object\" && !Array.isArray(v);\r\n}\r\n\r\nfunction isBreakpointObject(\r\n v: unknown,\r\n): v is Partial<Record<Breakpoint, string | number | undefined>> {\r\n if (!isPlainObject(v)) return false;\r\n // Treat as responsive only if EVERY key is a known breakpoint name.\r\n // Avoids misreading a nested style object as a breakpoint map.\r\n const keys = Object.keys(v as Record<string, unknown>);\r\n return keys.length > 0 && keys.every((k) => (BP_ORDER as readonly string[]).includes(k));\r\n}\r\n\r\n/**\r\n * Split an sx object into:\r\n * - inlineStyle : plain props written directly (responsive props point\r\n * at a generated CSS variable)\r\n * - css : a scoped stylesheet string (or \"\" when nothing is\r\n * responsive)\r\n * - className : the generated scope class (or undefined)\r\n *\r\n * The className and the generated variable names are both derived from a\r\n * single content hash of the sx, so the result is STABLE across renders\r\n * and identical across instances that share the same sx — which is what\r\n * makes the <style> injection idempotent (see useResponsiveStyleInjection).\r\n *\r\n * Returns a stable result for a given sx via useMemo at the call site.\r\n */\r\nfunction resolveSx(sx: Sx | undefined): ResolvedSx {\r\n if (sx == null || !isPlainObject(sx)) {\r\n return { inlineStyle: undefined, css: \"\", className: undefined };\r\n }\r\n\r\n // Content-addressed signature. Derived ONCE from the sx so the class\r\n // and every generated var name are stable across renders/instances.\r\n const sig = Math.abs(hashString(JSON.stringify(sx))).toString(36);\r\n\r\n // inlineStyle is the returned CSSProperties; styleWrite is the same\r\n // object viewed as a keyed record so dynamic string keys can be written\r\n // (CSSProperties has no string index signature, so the view needs a\r\n // cast — the two are the SAME object at runtime).\r\n const inlineStyle: React.CSSProperties = {};\r\n const styleWrite = inlineStyle as unknown as Record<string, string | number | undefined>;\r\n /* Per-breakpoint declaration buckets, e.g. byBp.md === \"--pui-rsp-<sig>-0:row;\" */\r\n const byBp: Record<Breakpoint, string> = { xs: \"\", sm: \"\", md: \"\", lg: \"\", xl: \"\" };\r\n let hasResponsive = false;\r\n let varSeq = 0;\r\n\r\n for (const [prop, value] of Object.entries(sx)) {\r\n if (isBreakpointObject(value)) {\r\n hasResponsive = true;\r\n // Stable, signature-scoped var name (local index, not a global\r\n // counter). Only ever declared inside `.${className}`, so the name\r\n // is effectively scoped to elements carrying that class.\r\n const varName = `--pui-rsp-${sig}-${varSeq++}`;\r\n styleWrite[prop] = `var(${varName})`;\r\n for (const bp of BP_ORDER) {\r\n const bpVal = value[bp];\r\n if (bpVal != null) {\r\n byBp[bp] += `${varName}:${bpVal};`;\r\n }\r\n }\r\n } else {\r\n styleWrite[prop] = value;\r\n }\r\n }\r\n\r\n if (!hasResponsive) {\r\n return { inlineStyle, css: \"\", className: undefined };\r\n }\r\n\r\n const className = `pui-rsp-${sig}`;\r\n\r\n let css = \"\";\r\n // xs = base (no media query), then ascending min-width queries built\r\n // by the shared mq.up() helper (single breakpoint→media-query engine).\r\n if (byBp.xs) css += `.${className}{${byBp.xs}}`;\r\n for (const bp of [\"sm\", \"md\", \"lg\", \"xl\"] as const) {\r\n if (byBp[bp]) {\r\n css += `${mq.up(bp)}{.${className}{${byBp[bp]}}}`;\r\n }\r\n }\r\n\r\n return { inlineStyle, css, className };\r\n}\r\n\r\n/* Small, stable, dependency-free string hash (djb2) for class naming.\r\n * Used to content-address identical sx signatures so their generated\r\n * class + <style> rule de-duplicate in the DOM. */\r\nfunction hashString(str: string): number {\r\n let h = 5381;\r\n for (let i = 0; i < str.length; i++) {\r\n h = (h * 33) ^ str.charCodeAt(i);\r\n }\r\n return h | 0;\r\n}\r\n\r\n/* Injects the generated stylesheet for a responsive sx exactly once per\r\n * unique className. Idempotent: a second Box with the same sx signature\r\n * reuses the existing <style>. */\r\nfunction useResponsiveStyleInjection(css: string, className: string | undefined): void {\r\n React.useInsertionEffect(() => {\r\n if (!css || !className || typeof document === \"undefined\") return undefined;\r\n const id = `pui-rsp-style-${className}`;\r\n if (document.getElementById(id)) return undefined;\r\n const el = document.createElement(\"style\");\r\n el.id = id;\r\n el.textContent = css;\r\n document.head.appendChild(el);\r\n // Not removed on unmount: the rule is keyed by content hash and may\r\n // be shared by sibling instances; leaving it is cheap and avoids a\r\n // flash if the same sx remounts. The set is bounded by the number of\r\n // DISTINCT responsive sx signatures in the app, not instances.\r\n return undefined;\r\n }, [css, className]);\r\n}\r\n\r\nexport interface BoxProps extends React.HTMLAttributes<HTMLElement> {\r\n /** Element or component to render. @default \"div\" */\r\n as?: React.ElementType | undefined;\r\n /**\r\n * Token-driven inline style. Each property may be a plain CSS value or a\r\n * responsive breakpoint map (`{ xs, sm, md, lg, xl }`) resolved against the\r\n * design-system breakpoint tokens. `style` still overrides `sx`.\r\n */\r\n sx?: Sx | undefined;\r\n}\r\n\r\nexport const Box = React.forwardRef<HTMLElement, BoxProps>(function Box(\r\n { as: Component = \"div\", sx, style, className, children, ...rest },\r\n ref,\r\n) {\r\n const { inlineStyle, css, className: rspClass } = React.useMemo(\r\n () => resolveSx(sx),\r\n [sx],\r\n );\r\n useResponsiveStyleInjection(css, rspClass);\r\n\r\n /* Merge sx-derived inline style + explicit style — style wins. */\r\n const merged =\r\n inlineStyle && style ? { ...inlineStyle, ...style } :\r\n inlineStyle ? inlineStyle :\r\n style ? style :\r\n undefined;\r\n\r\n const mergedClass = [className, rspClass].filter(Boolean).join(\" \") || undefined;\r\n\r\n return (\r\n <Component ref={ref} style={merged} className={mergedClass} {...rest}>\r\n {children}\r\n </Component>\r\n );\r\n});\r\n\r\nexport interface StackProps extends BoxProps {\r\n /** Flex direction. @default \"column\" */\r\n direction?: React.CSSProperties[\"flexDirection\"] | undefined;\r\n /** Gap between children (any CSS length or spacing var). @default \"var(--s-3)\" */\r\n gap?: string | number | undefined;\r\n /** align-items. */\r\n align?: React.CSSProperties[\"alignItems\"] | undefined;\r\n /** justify-content. */\r\n justify?: React.CSSProperties[\"justifyContent\"] | undefined;\r\n /** Set flex-wrap: wrap. @default false */\r\n wrap?: boolean | undefined;\r\n}\r\n\r\nexport const Stack = React.forwardRef<HTMLElement, StackProps>(function Stack(\r\n {\r\n direction = \"column\",\r\n gap = \"var(--s-3)\",\r\n align,\r\n justify,\r\n wrap = false,\r\n sx,\r\n children,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n const layoutSx: Sx = {\r\n display: \"flex\",\r\n flexDirection: direction,\r\n gap,\r\n ...(align ? { alignItems: align } : null),\r\n ...(justify ? { justifyContent: justify } : null),\r\n ...(wrap ? { flexWrap: \"wrap\" } : null),\r\n ...sx,\r\n };\r\n\r\n return (\r\n <Box ref={ref} sx={layoutSx} {...rest}>\r\n {children}\r\n </Box>\r\n );\r\n});\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
1
  import * as React from "react";
8
2
  import Box from "@mui/material/Box";
9
3
  import OverflowMenu from "./OverflowMenu";
@@ -111,13 +105,13 @@ import KV from "./KV";
111
105
  * in a wrapping row.
112
106
  */
113
107
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
114
- var CARD_INNER_SX = Object.freeze({
108
+ const CARD_INNER_SX = Object.freeze({
115
109
  display: "flex",
116
110
  flexDirection: "column",
117
111
  gap: "var(--s-2)",
118
112
  padding: "var(--s-3)"
119
113
  });
120
- var HEADER_SX = Object.freeze({
114
+ const HEADER_SX = Object.freeze({
121
115
  display: "flex",
122
116
  alignItems: "flex-start",
123
117
  justifyContent: "space-between",
@@ -127,19 +121,19 @@ var HEADER_SX = Object.freeze({
127
121
  /* Groups `leading` + title on the left of the header so the kebab keeps its
128
122
  * space-between position. `minWidth: 0` is what lets the title's ellipsis
129
123
  * actually engage inside a flex child. */
130
- var HEADER_MAIN_SX = Object.freeze({
124
+ const HEADER_MAIN_SX = Object.freeze({
131
125
  display: "flex",
132
126
  alignItems: "center",
133
127
  gap: "var(--s-2)",
134
128
  minWidth: 0,
135
129
  flex: 1
136
130
  });
137
- var LEADING_SX = Object.freeze({
131
+ const LEADING_SX = Object.freeze({
138
132
  display: "inline-flex",
139
133
  alignItems: "center",
140
134
  flexShrink: 0
141
135
  });
142
- var TITLE_BASE_SX = Object.freeze({
136
+ const TITLE_BASE_SX = Object.freeze({
143
137
  fontWeight: "var(--fw-semibold)",
144
138
  fontSize: "var(--text-sm)",
145
139
  color: "var(--fg)",
@@ -149,23 +143,24 @@ var TITLE_BASE_SX = Object.freeze({
149
143
  textOverflow: "ellipsis",
150
144
  whiteSpace: "nowrap"
151
145
  });
152
- var TITLE_MONO_SX = Object.freeze(_objectSpread(_objectSpread({}, TITLE_BASE_SX), {}, {
146
+ const TITLE_MONO_SX = Object.freeze({
147
+ ...TITLE_BASE_SX,
153
148
  fontFamily: "var(--font-mono)"
154
- }));
155
- var SUBTITLE_SX = Object.freeze({
149
+ });
150
+ const SUBTITLE_SX = Object.freeze({
156
151
  fontSize: "var(--text-sm)",
157
152
  color: "var(--fg-muted)",
158
153
  overflow: "hidden",
159
154
  textOverflow: "ellipsis",
160
155
  whiteSpace: "nowrap"
161
156
  });
162
- var CHIPS_SX = Object.freeze({
157
+ const CHIPS_SX = Object.freeze({
163
158
  display: "flex",
164
159
  alignItems: "center",
165
160
  gap: "var(--s-1)",
166
161
  flexWrap: "wrap"
167
162
  });
168
- var META_SX = Object.freeze({
163
+ const META_SX = Object.freeze({
169
164
  fontSize: "var(--text-xs)",
170
165
  color: "var(--fg-subtle)"
171
166
  });
@@ -174,7 +169,7 @@ var META_SX = Object.freeze({
174
169
  * a single column would be more readable, but 320px is the Charter's narrowest
175
170
  * supported breakpoint (§07.2 xs) and two columns still fit there. Matches the
176
171
  * MOBILE_CARD_KV_SX both modules converged on independently. */
177
- var KV_GRID_SX = Object.freeze({
172
+ const KV_GRID_SX = Object.freeze({
178
173
  display: "grid",
179
174
  gridTemplateColumns: "1fr 1fr",
180
175
  gap: "var(--s-2)"
@@ -183,7 +178,7 @@ var KV_GRID_SX = Object.freeze({
183
178
  /* Right cluster of the header row: [trailing] then the kebab. One shared
184
179
  * wrapper so a card can carry both a visible action and an overflow menu, and
185
180
  * so propagation is stopped once for the whole interactive cluster. */
186
- var HEADER_END_SX = Object.freeze({
181
+ const HEADER_END_SX = Object.freeze({
187
182
  display: "inline-flex",
188
183
  alignItems: "center",
189
184
  gap: "var(--s-1)",
@@ -192,60 +187,56 @@ var HEADER_END_SX = Object.freeze({
192
187
 
193
188
  /** One label/value pair in the card's `kv` grid. Mirrors v2.KV's own props. */
194
189
 
195
- function MobileRowCard(_ref) {
196
- var leading = _ref.leading,
197
- trailing = _ref.trailing,
198
- title = _ref.title,
199
- _ref$titleMono = _ref.titleMono,
200
- titleMono = _ref$titleMono === void 0 ? false : _ref$titleMono,
201
- subtitle = _ref.subtitle,
202
- chips = _ref.chips,
203
- kv = _ref.kv,
204
- meta = _ref.meta,
205
- actions = _ref.actions,
206
- actionsAriaLabel = _ref.actionsAriaLabel;
190
+ function MobileRowCard({
191
+ leading,
192
+ trailing,
193
+ title,
194
+ titleMono = false,
195
+ subtitle,
196
+ chips,
197
+ kv,
198
+ meta,
199
+ actions,
200
+ /* No default — see the prop's doc comment. Forwarded only when the host
201
+ * supplies one, so OverflowMenu's own default applies otherwise. */
202
+ actionsAriaLabel
203
+ }) {
207
204
  // Filter out divider entries (OverflowMenu separator marks) and
208
205
  // null/undefined actions so the kebab only renders when there is
209
206
  // at least one real action available.
210
- var visibleActions = React.useMemo(function () {
207
+ const visibleActions = React.useMemo(() => {
211
208
  if (!Array.isArray(actions)) return [];
212
- return actions.filter(function (a) {
213
- return a && !a.divider;
214
- });
209
+ return actions.filter(a => a && !a.divider);
215
210
  }, [actions]);
216
- var visibleChips = React.useMemo(function () {
211
+ const visibleChips = React.useMemo(() => {
217
212
  if (!Array.isArray(chips)) return [];
218
213
  return chips.filter(Boolean);
219
214
  }, [chips]);
220
- var metaParts = React.useMemo(function () {
215
+ const metaParts = React.useMemo(() => {
221
216
  if (!Array.isArray(meta)) return [];
222
- return meta.filter(function (p) {
223
- return p != null && p !== "";
224
- });
217
+ return meta.filter(p => p != null && p !== "");
225
218
  }, [meta]);
226
219
 
227
220
  /* Only `label` is required — a pair with an empty value is kept on purpose so
228
221
  * KV renders its "—" placeholder and the grid keeps its shape across rows.
229
222
  * Entries missing a label are dropped: KV would emit an empty eyebrow and an
230
223
  * aria-labelledby pointing at nothing. */
231
- var kvPairs = React.useMemo(function () {
224
+ const kvPairs = React.useMemo(() => {
232
225
  if (!Array.isArray(kv)) return [];
233
- return kv.filter(function (p) {
234
- return p != null && p.label != null && p.label !== "";
235
- });
226
+ return kv.filter(p => p != null && p.label != null && p.label !== "");
236
227
  }, [kv]);
237
- var hasActions = visibleActions.length > 0;
238
- var hasTitle = title != null && title !== "";
239
- var hasLeading = leading != null && leading !== "";
240
- var hasTrailing = trailing != null && trailing !== "";
241
- var hasHeader = hasTitle || hasActions || hasLeading || hasTrailing;
242
- var hasSubtitle = subtitle != null && subtitle !== "";
228
+ const hasActions = visibleActions.length > 0;
229
+ const hasTitle = title != null && title !== "";
230
+ const hasLeading = leading != null && leading !== "";
231
+ const hasTrailing = trailing != null && trailing !== "";
232
+ const hasHeader = hasTitle || hasActions || hasLeading || hasTrailing;
233
+ const hasSubtitle = subtitle != null && subtitle !== "";
243
234
 
244
235
  // Title attribute (native hover tooltip) is set only when the value
245
236
  // is a string — wrapping a React node yields a "[object Object]"
246
237
  // tooltip which is worse than no tooltip.
247
- var titleAttr = typeof title === "string" ? title : undefined;
248
- var subtitleAttr = typeof subtitle === "string" ? subtitle : undefined;
238
+ const titleAttr = typeof title === "string" ? title : undefined;
239
+ const subtitleAttr = typeof subtitle === "string" ? subtitle : undefined;
249
240
  return /*#__PURE__*/_jsxs(Box, {
250
241
  sx: CARD_INNER_SX,
251
242
  children: [hasHeader && /*#__PURE__*/_jsxs(Box, {
@@ -268,17 +259,16 @@ function MobileRowCard(_ref) {
268
259
  // the kebab, doesn't also fire onRowClick.
269
260
  _jsxs(Box, {
270
261
  sx: HEADER_END_SX,
271
- onClick: function onClick(e) {
272
- return e.stopPropagation();
273
- },
274
- onKeyDown: function onKeyDown(e) {
275
- return e.stopPropagation();
276
- },
277
- children: [hasTrailing && trailing, hasActions && /*#__PURE__*/_jsx(OverflowMenu, _objectSpread(_objectSpread({}, actionsAriaLabel !== undefined ? {
278
- ariaLabel: actionsAriaLabel
279
- } : {}), actions !== undefined ? {
280
- actions: actions
281
- } : {}))]
262
+ onClick: e => e.stopPropagation(),
263
+ onKeyDown: e => e.stopPropagation(),
264
+ children: [hasTrailing && trailing, hasActions && /*#__PURE__*/_jsx(OverflowMenu, {
265
+ ...(actionsAriaLabel !== undefined ? {
266
+ ariaLabel: actionsAriaLabel
267
+ } : {}),
268
+ ...(actions !== undefined ? {
269
+ actions
270
+ } : {})
271
+ })]
282
272
  })]
283
273
  }), hasSubtitle && /*#__PURE__*/_jsx(Box, {
284
274
  sx: SUBTITLE_SX,
@@ -286,24 +276,23 @@ function MobileRowCard(_ref) {
286
276
  children: subtitle
287
277
  }), visibleChips.length > 0 && /*#__PURE__*/_jsx(Box, {
288
278
  sx: CHIPS_SX,
289
- children: visibleChips.map(function (c, i) {
290
- return /*#__PURE__*/_jsx(React.Fragment, {
291
- children: c
292
- }, i);
293
- })
279
+ children: visibleChips.map((c, i) => /*#__PURE__*/_jsx(React.Fragment, {
280
+ children: c
281
+ }, i))
294
282
  }), kvPairs.length > 0 && /*#__PURE__*/_jsx(Box, {
295
283
  sx: KV_GRID_SX,
296
- children: kvPairs.map(function (pair, i) {
297
- return /*#__PURE__*/_jsx(KV, _objectSpread(_objectSpread(_objectSpread({
298
- label: pair.label
299
- }, pair.value !== undefined ? {
284
+ children: kvPairs.map((pair, i) => /*#__PURE__*/_jsx(KV, {
285
+ label: pair.label,
286
+ ...(pair.value !== undefined ? {
300
287
  value: pair.value
301
- } : {}), pair.mono !== undefined ? {
288
+ } : {}),
289
+ ...(pair.mono !== undefined ? {
302
290
  mono: pair.mono
303
- } : {}), pair.fallback !== undefined ? {
291
+ } : {}),
292
+ ...(pair.fallback !== undefined ? {
304
293
  fallback: pair.fallback
305
- } : {}), i);
306
- })
294
+ } : {})
295
+ }, i))
307
296
  }), metaParts.length > 0 && /*#__PURE__*/_jsx(Box, {
308
297
  sx: META_SX,
309
298
  children: metaParts.join(" · ")