@portnet/ui 6.0.0 → 6.0.1

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 (748) hide show
  1. package/dist/esm/index.js +196 -0
  2. package/dist/esm/index.js.map +1 -0
  3. package/dist/esm/v2/__tests__/FieldError.test.js +160 -0
  4. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
  5. package/dist/esm/v2/__tests__/FileCard.test.js +144 -0
  6. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
  7. package/dist/esm/v2/__tests__/MobileRowCard.test.js +333 -0
  8. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
  9. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
  10. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  11. package/dist/esm/v2/__tests__/apiError.test.js +181 -0
  12. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
  13. package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
  14. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
  15. package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
  16. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
  17. package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
  18. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
  19. package/dist/esm/v2/__tests__/labels-merge.test.js +147 -0
  20. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
  21. package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
  22. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
  23. package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
  24. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
  25. package/dist/esm/v2/components/Accordion.js +230 -0
  26. package/dist/esm/v2/components/Accordion.js.map +1 -0
  27. package/dist/esm/v2/components/ActionStrip.js +146 -0
  28. package/dist/esm/v2/components/ActionStrip.js.map +1 -0
  29. package/dist/esm/v2/components/Banner.js +254 -0
  30. package/dist/esm/v2/components/Banner.js.map +1 -0
  31. package/dist/esm/v2/components/Busy.js +97 -0
  32. package/dist/esm/v2/components/Busy.js.map +1 -0
  33. package/dist/esm/v2/components/Button.js +114 -0
  34. package/dist/esm/v2/components/Button.js.map +1 -0
  35. package/dist/esm/v2/components/CategoryTag.js +81 -0
  36. package/dist/esm/v2/components/CategoryTag.js.map +1 -0
  37. package/dist/esm/v2/components/Checkbox.js +124 -0
  38. package/dist/esm/v2/components/Checkbox.js.map +1 -0
  39. package/dist/esm/v2/components/Chip.js +124 -0
  40. package/dist/esm/v2/components/Chip.js.map +1 -0
  41. package/dist/esm/v2/components/Combobox.js +394 -0
  42. package/dist/esm/v2/components/Combobox.js.map +1 -0
  43. package/dist/esm/v2/components/CommandPalette.js +660 -0
  44. package/dist/esm/v2/components/CommandPalette.js.map +1 -0
  45. package/dist/esm/v2/components/ConfirmDialog.js +144 -0
  46. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
  47. package/dist/esm/v2/components/DatePicker.js +200 -0
  48. package/dist/esm/v2/components/DatePicker.js.map +1 -0
  49. package/dist/esm/v2/components/DateRangePicker.js +289 -0
  50. package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
  51. package/dist/esm/v2/components/DateTimePicker.js +182 -0
  52. package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
  53. package/dist/esm/v2/components/Drawer.js +333 -0
  54. package/dist/esm/v2/components/Drawer.js.map +1 -0
  55. package/dist/esm/v2/components/Dropzone.js +540 -0
  56. package/dist/esm/v2/components/Dropzone.js.map +1 -0
  57. package/dist/esm/v2/components/EmptyState.js +102 -0
  58. package/dist/esm/v2/components/EmptyState.js.map +1 -0
  59. package/dist/esm/v2/components/FavoriteToggle.js +127 -0
  60. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
  61. package/dist/esm/v2/components/Field.js +197 -0
  62. package/dist/esm/v2/components/Field.js.map +1 -0
  63. package/dist/esm/v2/components/FieldError.js +124 -0
  64. package/dist/esm/v2/components/FieldError.js.map +1 -0
  65. package/dist/esm/v2/components/FieldHelp.js +202 -0
  66. package/dist/esm/v2/components/FieldHelp.js.map +1 -0
  67. package/dist/esm/v2/components/FileCard.js +162 -0
  68. package/dist/esm/v2/components/FileCard.js.map +1 -0
  69. package/dist/esm/v2/components/FilterTab.js +138 -0
  70. package/dist/esm/v2/components/FilterTab.js.map +1 -0
  71. package/dist/esm/v2/components/ForbiddenPage.js +74 -0
  72. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
  73. package/dist/esm/v2/components/FormGrid.js +179 -0
  74. package/dist/esm/v2/components/FormGrid.js.map +1 -0
  75. package/dist/esm/v2/components/FormikDisplay.js +118 -0
  76. package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
  77. package/dist/esm/v2/components/Input.js +107 -0
  78. package/dist/esm/v2/components/Input.js.map +1 -0
  79. package/dist/esm/v2/components/KPICard.js +237 -0
  80. package/dist/esm/v2/components/KPICard.js.map +1 -0
  81. package/dist/esm/v2/components/KPIStrip.js +84 -0
  82. package/dist/esm/v2/components/KPIStrip.js.map +1 -0
  83. package/dist/esm/v2/components/KV.js +75 -0
  84. package/dist/esm/v2/components/KV.js.map +1 -0
  85. package/dist/esm/v2/components/KVGrid.js +74 -0
  86. package/dist/esm/v2/components/KVGrid.js.map +1 -0
  87. package/dist/esm/v2/components/Layout.js +284 -0
  88. package/dist/esm/v2/components/Layout.js.map +1 -0
  89. package/dist/esm/v2/components/MobileRowCard.js +314 -0
  90. package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
  91. package/dist/esm/v2/components/Modal.js +276 -0
  92. package/dist/esm/v2/components/Modal.js.map +1 -0
  93. package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
  94. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
  95. package/dist/esm/v2/components/NotFoundPage.js +58 -0
  96. package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
  97. package/dist/esm/v2/components/NumberInput.js +309 -0
  98. package/dist/esm/v2/components/NumberInput.js.map +1 -0
  99. package/dist/esm/v2/components/OverflowMenu.js +184 -0
  100. package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
  101. package/dist/esm/v2/components/PdfViewer.js +122 -0
  102. package/dist/esm/v2/components/PdfViewer.js.map +1 -0
  103. package/dist/esm/v2/components/ProgressBar.js +202 -0
  104. package/dist/esm/v2/components/ProgressBar.js.map +1 -0
  105. package/dist/esm/v2/components/Radio.js +228 -0
  106. package/dist/esm/v2/components/Radio.js.map +1 -0
  107. package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
  108. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
  109. package/dist/esm/v2/components/SectionHeader.js +132 -0
  110. package/dist/esm/v2/components/SectionHeader.js.map +1 -0
  111. package/dist/esm/v2/components/Segmented.js +254 -0
  112. package/dist/esm/v2/components/Segmented.js.map +1 -0
  113. package/dist/esm/v2/components/Select.js +490 -0
  114. package/dist/esm/v2/components/Select.js.map +1 -0
  115. package/dist/esm/v2/components/ServerErrorPage.js +74 -0
  116. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
  117. package/dist/esm/v2/components/Skeleton.js +269 -0
  118. package/dist/esm/v2/components/Skeleton.js.map +1 -0
  119. package/dist/esm/v2/components/SkipLink.js +49 -0
  120. package/dist/esm/v2/components/SkipLink.js.map +1 -0
  121. package/dist/esm/v2/components/Spinner.js +69 -0
  122. package/dist/esm/v2/components/Spinner.js.map +1 -0
  123. package/dist/esm/v2/components/Status.js +64 -0
  124. package/dist/esm/v2/components/Status.js.map +1 -0
  125. package/dist/esm/v2/components/Stepper.js +432 -0
  126. package/dist/esm/v2/components/Stepper.js.map +1 -0
  127. package/dist/esm/v2/components/Surface.js +159 -0
  128. package/dist/esm/v2/components/Surface.js.map +1 -0
  129. package/dist/esm/v2/components/Switch.js +128 -0
  130. package/dist/esm/v2/components/Switch.js.map +1 -0
  131. package/dist/esm/v2/components/Tabs.js +150 -0
  132. package/dist/esm/v2/components/Tabs.js.map +1 -0
  133. package/dist/esm/v2/components/TelInput.js +274 -0
  134. package/dist/esm/v2/components/TelInput.js.map +1 -0
  135. package/dist/esm/v2/components/Textarea.js +72 -0
  136. package/dist/esm/v2/components/Textarea.js.map +1 -0
  137. package/dist/esm/v2/components/TimePicker.js +134 -0
  138. package/dist/esm/v2/components/TimePicker.js.map +1 -0
  139. package/dist/esm/v2/components/Toast.js +376 -0
  140. package/dist/esm/v2/components/Toast.js.map +1 -0
  141. package/dist/esm/v2/components/Tooltip.js +161 -0
  142. package/dist/esm/v2/components/Tooltip.js.map +1 -0
  143. package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
  144. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
  145. package/dist/esm/v2/components/_pickerShared.js +60 -0
  146. package/dist/esm/v2/components/_pickerShared.js.map +1 -0
  147. package/dist/esm/v2/components/index.js +244 -0
  148. package/dist/esm/v2/components/index.js.map +1 -0
  149. package/dist/esm/v2/hooks/index.js +10 -0
  150. package/dist/esm/v2/hooks/index.js.map +1 -0
  151. package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
  152. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
  153. package/dist/esm/v2/hooks/useDensity.js +119 -0
  154. package/dist/esm/v2/hooks/useDensity.js.map +1 -0
  155. package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
  156. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
  157. package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
  158. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
  159. package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
  160. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
  161. package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
  162. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
  163. package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
  164. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
  165. package/dist/esm/v2/hooks/useSortedRows.js +32 -0
  166. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
  167. package/dist/esm/v2/hooks/useTabLoading.js +79 -0
  168. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
  169. package/dist/esm/v2/index.js +121 -0
  170. package/dist/esm/v2/index.js.map +1 -0
  171. package/dist/esm/v2/modalContext.js +108 -0
  172. package/dist/esm/v2/modalContext.js.map +1 -0
  173. package/dist/esm/v2/models/favorite.js +2 -0
  174. package/dist/esm/v2/models/favorite.js.map +1 -0
  175. package/dist/esm/v2/models/index.js +12 -0
  176. package/dist/esm/v2/models/index.js.map +1 -0
  177. package/dist/esm/v2/models/personalization.js +2 -0
  178. package/dist/esm/v2/models/personalization.js.map +1 -0
  179. package/dist/esm/v2/models/referentiel.js +2 -0
  180. package/dist/esm/v2/models/referentiel.js.map +1 -0
  181. package/dist/esm/v2/models/savedFilter.js +2 -0
  182. package/dist/esm/v2/models/savedFilter.js.map +1 -0
  183. package/dist/esm/v2/patterns/ActionBar.js +603 -0
  184. package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
  185. package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
  186. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
  187. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
  188. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
  189. package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
  190. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
  191. package/dist/esm/v2/patterns/DataGrid.js +820 -0
  192. package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
  193. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
  194. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
  195. package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
  196. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
  197. package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
  198. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
  199. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
  200. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
  201. package/dist/esm/v2/patterns/FavoriteColumn.js +164 -0
  202. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
  203. package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
  204. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
  205. package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
  206. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
  207. package/dist/esm/v2/patterns/FormPageShell.js +126 -0
  208. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
  209. package/dist/esm/v2/patterns/FormSection.js +190 -0
  210. package/dist/esm/v2/patterns/FormSection.js.map +1 -0
  211. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
  212. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
  213. package/dist/esm/v2/patterns/FormikCombobox.js +115 -0
  214. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
  215. package/dist/esm/v2/patterns/FormikDatePicker.js +196 -0
  216. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
  217. package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
  218. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
  219. package/dist/esm/v2/patterns/FormikFile.js +148 -0
  220. package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
  221. package/dist/esm/v2/patterns/FormikInput.js +127 -0
  222. package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
  223. package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
  224. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
  225. package/dist/esm/v2/patterns/FormikSelect.js +159 -0
  226. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
  227. package/dist/esm/v2/patterns/FormikTextarea.js +76 -0
  228. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
  229. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +195 -0
  230. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
  231. package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
  232. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
  233. package/dist/esm/v2/patterns/PageContent.js +62 -0
  234. package/dist/esm/v2/patterns/PageContent.js.map +1 -0
  235. package/dist/esm/v2/patterns/ReferentielField.js +615 -0
  236. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
  237. package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
  238. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
  239. package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
  240. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
  241. package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
  242. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
  243. package/dist/esm/v2/patterns/SortableHeader.js +179 -0
  244. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
  245. package/dist/esm/v2/patterns/Tour.js +471 -0
  246. package/dist/esm/v2/patterns/Tour.js.map +1 -0
  247. package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
  248. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
  249. package/dist/esm/v2/patterns/_sort.js +112 -0
  250. package/dist/esm/v2/patterns/_sort.js.map +1 -0
  251. package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
  252. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
  253. package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
  254. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
  255. package/dist/esm/v2/patterns/index.js +95 -0
  256. package/dist/esm/v2/patterns/index.js.map +1 -0
  257. package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
  258. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
  259. package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
  260. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
  261. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
  262. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
  263. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
  264. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
  265. package/dist/esm/v2/personalization/adapters/index.js +11 -0
  266. package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
  267. package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
  268. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
  269. package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
  270. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
  271. package/dist/esm/v2/personalization/capabilities/index.js +17 -0
  272. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
  273. package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
  274. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
  275. package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
  276. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
  277. package/dist/esm/v2/personalization/index.js +46 -0
  278. package/dist/esm/v2/personalization/index.js.map +1 -0
  279. package/dist/esm/v2/personalization/personalizationContext.js +108 -0
  280. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
  281. package/dist/esm/v2/personalization/schema.js +92 -0
  282. package/dist/esm/v2/personalization/schema.js.map +1 -0
  283. package/dist/esm/v2/personalization/types.js +2 -0
  284. package/dist/esm/v2/personalization/types.js.map +1 -0
  285. package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
  286. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
  287. package/dist/esm/v2/referentiel/index.js +15 -0
  288. package/dist/esm/v2/referentiel/index.js.map +1 -0
  289. package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
  290. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
  291. package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
  292. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
  293. package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
  294. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
  295. package/dist/esm/v2/styles/base.css +425 -0
  296. package/dist/esm/v2/styles/css.d.ts +10 -0
  297. package/dist/esm/v2/styles/index.js +12 -0
  298. package/dist/esm/v2/styles/index.js.map +1 -0
  299. package/dist/esm/v2/theme/_brand.js +64 -0
  300. package/dist/esm/v2/theme/_brand.js.map +1 -0
  301. package/dist/esm/v2/theme/_brandSecondary.js +60 -0
  302. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
  303. package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
  304. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
  305. package/dist/esm/v2/theme/cssVariables.js +198 -0
  306. package/dist/esm/v2/theme/cssVariables.js.map +1 -0
  307. package/dist/esm/v2/theme/index.js +32 -0
  308. package/dist/esm/v2/theme/index.js.map +1 -0
  309. package/dist/esm/v2/tokens/breakpoints.js +106 -0
  310. package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
  311. package/dist/esm/v2/tokens/colors.js +219 -0
  312. package/dist/esm/v2/tokens/colors.js.map +1 -0
  313. package/dist/esm/v2/tokens/density.js +98 -0
  314. package/dist/esm/v2/tokens/density.js.map +1 -0
  315. package/dist/esm/v2/tokens/index.js +80 -0
  316. package/dist/esm/v2/tokens/index.js.map +1 -0
  317. package/dist/esm/v2/tokens/motion.js +88 -0
  318. package/dist/esm/v2/tokens/motion.js.map +1 -0
  319. package/dist/esm/v2/tokens/radius.js +22 -0
  320. package/dist/esm/v2/tokens/radius.js.map +1 -0
  321. package/dist/esm/v2/tokens/shadows.js +40 -0
  322. package/dist/esm/v2/tokens/shadows.js.map +1 -0
  323. package/dist/esm/v2/tokens/spacing.js +51 -0
  324. package/dist/esm/v2/tokens/spacing.js.map +1 -0
  325. package/dist/esm/v2/tokens/state.js +41 -0
  326. package/dist/esm/v2/tokens/state.js.map +1 -0
  327. package/dist/esm/v2/tokens/statusPalette.js +66 -0
  328. package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
  329. package/dist/esm/v2/tokens/tokens.json +153 -0
  330. package/dist/esm/v2/tokens/typography.js +149 -0
  331. package/dist/esm/v2/tokens/typography.js.map +1 -0
  332. package/dist/esm/v2/tokens/zIndex.js +44 -0
  333. package/dist/esm/v2/tokens/zIndex.js.map +1 -0
  334. package/dist/esm/v2/types/common.js +2 -0
  335. package/dist/esm/v2/types/common.js.map +1 -0
  336. package/dist/esm/v2/types/datagrid.js +2 -0
  337. package/dist/esm/v2/types/datagrid.js.map +1 -0
  338. package/dist/esm/v2/types/index.js +12 -0
  339. package/dist/esm/v2/types/index.js.map +1 -0
  340. package/dist/esm/v2/utils/apiError.js +281 -0
  341. package/dist/esm/v2/utils/apiError.js.map +1 -0
  342. package/dist/esm/v2/utils/contrast.js +157 -0
  343. package/dist/esm/v2/utils/contrast.js.map +1 -0
  344. package/dist/esm/v2/utils/cx.js +38 -0
  345. package/dist/esm/v2/utils/cx.js.map +1 -0
  346. package/dist/esm/v2/utils/fileDownload.js +226 -0
  347. package/dist/esm/v2/utils/fileDownload.js.map +1 -0
  348. package/dist/esm/v2/utils/fmtMoney.js +78 -0
  349. package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
  350. package/dist/esm/v2/utils/index.js +43 -0
  351. package/dist/esm/v2/utils/index.js.map +1 -0
  352. package/dist/esm/v2/utils/mergeLabels.js +86 -0
  353. package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
  354. package/dist/esm/v2/utils/networkStatus.js +114 -0
  355. package/dist/esm/v2/utils/networkStatus.js.map +1 -0
  356. package/dist/index.d.ts +3 -2
  357. package/dist/index.d.ts.map +1 -1
  358. package/dist/index.js +21 -0
  359. package/dist/index.js.map +1 -1
  360. package/dist/v2/__tests__/FieldError.test.js +164 -0
  361. package/dist/v2/__tests__/FieldError.test.js.map +1 -0
  362. package/dist/v2/__tests__/FileCard.test.js +148 -0
  363. package/dist/v2/__tests__/FileCard.test.js.map +1 -0
  364. package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
  365. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  366. package/dist/v2/components/Accordion.d.ts +6 -6
  367. package/dist/v2/components/Accordion.d.ts.map +1 -1
  368. package/dist/v2/components/Accordion.js.map +1 -1
  369. package/dist/v2/components/ActionStrip.d.ts +12 -12
  370. package/dist/v2/components/ActionStrip.d.ts.map +1 -1
  371. package/dist/v2/components/ActionStrip.js.map +1 -1
  372. package/dist/v2/components/Banner.d.ts +48 -9
  373. package/dist/v2/components/Banner.d.ts.map +1 -1
  374. package/dist/v2/components/Banner.js +116 -35
  375. package/dist/v2/components/Banner.js.map +1 -1
  376. package/dist/v2/components/Busy.d.ts +3 -3
  377. package/dist/v2/components/Busy.d.ts.map +1 -1
  378. package/dist/v2/components/Busy.js.map +1 -1
  379. package/dist/v2/components/Button.d.ts +6 -6
  380. package/dist/v2/components/Button.d.ts.map +1 -1
  381. package/dist/v2/components/Button.js.map +1 -1
  382. package/dist/v2/components/CategoryTag.d.ts +3 -3
  383. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  384. package/dist/v2/components/CategoryTag.js.map +1 -1
  385. package/dist/v2/components/Checkbox.d.ts +11 -11
  386. package/dist/v2/components/Checkbox.d.ts.map +1 -1
  387. package/dist/v2/components/Checkbox.js.map +1 -1
  388. package/dist/v2/components/Chip.d.ts +8 -8
  389. package/dist/v2/components/Chip.d.ts.map +1 -1
  390. package/dist/v2/components/Chip.js +2 -1
  391. package/dist/v2/components/Chip.js.map +1 -1
  392. package/dist/v2/components/Combobox.d.ts +27 -27
  393. package/dist/v2/components/Combobox.d.ts.map +1 -1
  394. package/dist/v2/components/Combobox.js +3 -2
  395. package/dist/v2/components/Combobox.js.map +1 -1
  396. package/dist/v2/components/CommandPalette.d.ts +20 -20
  397. package/dist/v2/components/CommandPalette.d.ts.map +1 -1
  398. package/dist/v2/components/CommandPalette.js +2 -6
  399. package/dist/v2/components/CommandPalette.js.map +1 -1
  400. package/dist/v2/components/ConfirmDialog.d.ts +13 -13
  401. package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
  402. package/dist/v2/components/ConfirmDialog.js +2 -1
  403. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  404. package/dist/v2/components/DatePicker.d.ts +11 -11
  405. package/dist/v2/components/DatePicker.d.ts.map +1 -1
  406. package/dist/v2/components/DatePicker.js.map +1 -1
  407. package/dist/v2/components/DateRangePicker.d.ts +16 -16
  408. package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
  409. package/dist/v2/components/DateRangePicker.js +2 -1
  410. package/dist/v2/components/DateRangePicker.js.map +1 -1
  411. package/dist/v2/components/DateTimePicker.d.ts +11 -11
  412. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  413. package/dist/v2/components/DateTimePicker.js.map +1 -1
  414. package/dist/v2/components/Drawer.d.ts +18 -18
  415. package/dist/v2/components/Drawer.d.ts.map +1 -1
  416. package/dist/v2/components/Drawer.js +2 -1
  417. package/dist/v2/components/Drawer.js.map +1 -1
  418. package/dist/v2/components/Dropzone.d.ts +34 -34
  419. package/dist/v2/components/Dropzone.d.ts.map +1 -1
  420. package/dist/v2/components/Dropzone.js +11 -3
  421. package/dist/v2/components/Dropzone.js.map +1 -1
  422. package/dist/v2/components/EmptyState.d.ts +7 -7
  423. package/dist/v2/components/EmptyState.d.ts.map +1 -1
  424. package/dist/v2/components/EmptyState.js.map +1 -1
  425. package/dist/v2/components/FavoriteToggle.d.ts +7 -7
  426. package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
  427. package/dist/v2/components/FavoriteToggle.js +2 -1
  428. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  429. package/dist/v2/components/Field.d.ts +17 -12
  430. package/dist/v2/components/Field.d.ts.map +1 -1
  431. package/dist/v2/components/Field.js +25 -7
  432. package/dist/v2/components/Field.js.map +1 -1
  433. package/dist/v2/components/FieldError.d.ts +78 -0
  434. package/dist/v2/components/FieldError.d.ts.map +1 -0
  435. package/dist/v2/components/FieldError.js +131 -0
  436. package/dist/v2/components/FieldError.js.map +1 -0
  437. package/dist/v2/components/FieldHelp.d.ts +7 -7
  438. package/dist/v2/components/FieldHelp.d.ts.map +1 -1
  439. package/dist/v2/components/FieldHelp.js.map +1 -1
  440. package/dist/v2/components/FileCard.d.ts +75 -0
  441. package/dist/v2/components/FileCard.d.ts.map +1 -0
  442. package/dist/v2/components/FileCard.js +169 -0
  443. package/dist/v2/components/FileCard.js.map +1 -0
  444. package/dist/v2/components/FilterTab.d.ts +9 -9
  445. package/dist/v2/components/FilterTab.d.ts.map +1 -1
  446. package/dist/v2/components/FilterTab.js +2 -1
  447. package/dist/v2/components/FilterTab.js.map +1 -1
  448. package/dist/v2/components/FormGrid.d.ts +9 -4
  449. package/dist/v2/components/FormGrid.d.ts.map +1 -1
  450. package/dist/v2/components/FormGrid.js +11 -1
  451. package/dist/v2/components/FormGrid.js.map +1 -1
  452. package/dist/v2/components/FormikDisplay.d.ts +6 -6
  453. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  454. package/dist/v2/components/FormikDisplay.js.map +1 -1
  455. package/dist/v2/components/Input.d.ts +6 -6
  456. package/dist/v2/components/Input.d.ts.map +1 -1
  457. package/dist/v2/components/Input.js.map +1 -1
  458. package/dist/v2/components/KPICard.d.ts +43 -13
  459. package/dist/v2/components/KPICard.d.ts.map +1 -1
  460. package/dist/v2/components/KPICard.js +53 -14
  461. package/dist/v2/components/KPICard.js.map +1 -1
  462. package/dist/v2/components/KPIStrip.d.ts +68 -0
  463. package/dist/v2/components/KPIStrip.d.ts.map +1 -0
  464. package/dist/v2/components/KPIStrip.js +92 -0
  465. package/dist/v2/components/KPIStrip.js.map +1 -0
  466. package/dist/v2/components/KV.d.ts +3 -3
  467. package/dist/v2/components/KV.d.ts.map +1 -1
  468. package/dist/v2/components/KV.js.map +1 -1
  469. package/dist/v2/components/KVGrid.d.ts +2 -2
  470. package/dist/v2/components/KVGrid.d.ts.map +1 -1
  471. package/dist/v2/components/KVGrid.js +8 -1
  472. package/dist/v2/components/KVGrid.js.map +1 -1
  473. package/dist/v2/components/Layout.d.ts +7 -7
  474. package/dist/v2/components/Layout.d.ts.map +1 -1
  475. package/dist/v2/components/Layout.js.map +1 -1
  476. package/dist/v2/components/MobileRowCard.d.ts +13 -13
  477. package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
  478. package/dist/v2/components/MobileRowCard.js.map +1 -1
  479. package/dist/v2/components/Modal.d.ts +12 -12
  480. package/dist/v2/components/Modal.d.ts.map +1 -1
  481. package/dist/v2/components/Modal.js.map +1 -1
  482. package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
  483. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  484. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  485. package/dist/v2/components/NumberInput.d.ts +14 -14
  486. package/dist/v2/components/NumberInput.d.ts.map +1 -1
  487. package/dist/v2/components/NumberInput.js +7 -6
  488. package/dist/v2/components/NumberInput.js.map +1 -1
  489. package/dist/v2/components/OverflowMenu.d.ts +14 -14
  490. package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
  491. package/dist/v2/components/OverflowMenu.js +4 -8
  492. package/dist/v2/components/OverflowMenu.js.map +1 -1
  493. package/dist/v2/components/PdfViewer.d.ts +9 -9
  494. package/dist/v2/components/PdfViewer.d.ts.map +1 -1
  495. package/dist/v2/components/PdfViewer.js.map +1 -1
  496. package/dist/v2/components/ProgressBar.d.ts +10 -10
  497. package/dist/v2/components/ProgressBar.d.ts.map +1 -1
  498. package/dist/v2/components/ProgressBar.js.map +1 -1
  499. package/dist/v2/components/Radio.d.ts +7 -7
  500. package/dist/v2/components/Radio.d.ts.map +1 -1
  501. package/dist/v2/components/Radio.js.map +1 -1
  502. package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
  503. package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
  504. package/dist/v2/components/SectionErrorBoundary.js +221 -0
  505. package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
  506. package/dist/v2/components/SectionHeader.d.ts +5 -5
  507. package/dist/v2/components/SectionHeader.d.ts.map +1 -1
  508. package/dist/v2/components/SectionHeader.js.map +1 -1
  509. package/dist/v2/components/Segmented.d.ts +11 -11
  510. package/dist/v2/components/Segmented.d.ts.map +1 -1
  511. package/dist/v2/components/Segmented.js.map +1 -1
  512. package/dist/v2/components/Select.d.ts +33 -15
  513. package/dist/v2/components/Select.d.ts.map +1 -1
  514. package/dist/v2/components/Select.js +147 -30
  515. package/dist/v2/components/Select.js.map +1 -1
  516. package/dist/v2/components/ServerErrorPage.d.ts +1 -1
  517. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  518. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  519. package/dist/v2/components/Skeleton.d.ts +15 -15
  520. package/dist/v2/components/Skeleton.d.ts.map +1 -1
  521. package/dist/v2/components/Skeleton.js.map +1 -1
  522. package/dist/v2/components/SkipLink.d.ts +2 -2
  523. package/dist/v2/components/SkipLink.d.ts.map +1 -1
  524. package/dist/v2/components/SkipLink.js.map +1 -1
  525. package/dist/v2/components/Status.d.ts +3 -3
  526. package/dist/v2/components/Status.d.ts.map +1 -1
  527. package/dist/v2/components/Status.js.map +1 -1
  528. package/dist/v2/components/Stepper.d.ts +28 -22
  529. package/dist/v2/components/Stepper.d.ts.map +1 -1
  530. package/dist/v2/components/Stepper.js +31 -5
  531. package/dist/v2/components/Stepper.js.map +1 -1
  532. package/dist/v2/components/Surface.d.ts +94 -0
  533. package/dist/v2/components/Surface.d.ts.map +1 -0
  534. package/dist/v2/components/Surface.js +163 -0
  535. package/dist/v2/components/Surface.js.map +1 -0
  536. package/dist/v2/components/Switch.d.ts +4 -4
  537. package/dist/v2/components/Switch.d.ts.map +1 -1
  538. package/dist/v2/components/Switch.js.map +1 -1
  539. package/dist/v2/components/Tabs.d.ts +6 -6
  540. package/dist/v2/components/Tabs.d.ts.map +1 -1
  541. package/dist/v2/components/Tabs.js.map +1 -1
  542. package/dist/v2/components/TelInput.d.ts +8 -8
  543. package/dist/v2/components/TelInput.d.ts.map +1 -1
  544. package/dist/v2/components/TelInput.js +18 -18
  545. package/dist/v2/components/TelInput.js.map +1 -1
  546. package/dist/v2/components/Textarea.d.ts +1 -1
  547. package/dist/v2/components/Textarea.d.ts.map +1 -1
  548. package/dist/v2/components/Textarea.js.map +1 -1
  549. package/dist/v2/components/TimePicker.d.ts +11 -11
  550. package/dist/v2/components/TimePicker.d.ts.map +1 -1
  551. package/dist/v2/components/TimePicker.js.map +1 -1
  552. package/dist/v2/components/Toast.d.ts +6 -6
  553. package/dist/v2/components/Toast.d.ts.map +1 -1
  554. package/dist/v2/components/Toast.js +9 -8
  555. package/dist/v2/components/Toast.js.map +1 -1
  556. package/dist/v2/components/Tooltip.d.ts +1 -1
  557. package/dist/v2/components/Tooltip.d.ts.map +1 -1
  558. package/dist/v2/components/Tooltip.js.map +1 -1
  559. package/dist/v2/components/index.d.ts +143 -0
  560. package/dist/v2/components/index.d.ts.map +1 -1
  561. package/dist/v2/components/index.js +35 -0
  562. package/dist/v2/components/index.js.map +1 -1
  563. package/dist/v2/models/favorite.d.ts +1 -1
  564. package/dist/v2/models/favorite.d.ts.map +1 -1
  565. package/dist/v2/models/favorite.js.map +1 -1
  566. package/dist/v2/models/personalization.d.ts +13 -13
  567. package/dist/v2/models/personalization.d.ts.map +1 -1
  568. package/dist/v2/models/personalization.js.map +1 -1
  569. package/dist/v2/models/referentiel.d.ts +11 -11
  570. package/dist/v2/models/referentiel.d.ts.map +1 -1
  571. package/dist/v2/models/referentiel.js.map +1 -1
  572. package/dist/v2/models/savedFilter.d.ts +8 -8
  573. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  574. package/dist/v2/models/savedFilter.js.map +1 -1
  575. package/dist/v2/patterns/ActionBar.d.ts +33 -33
  576. package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
  577. package/dist/v2/patterns/ActionBar.js +2 -1
  578. package/dist/v2/patterns/ActionBar.js.map +1 -1
  579. package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
  580. package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
  581. package/dist/v2/patterns/BulkActionBar.js +2 -1
  582. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  583. package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
  584. package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
  585. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  586. package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
  587. package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
  588. package/dist/v2/patterns/ColumnsToggle.js +4 -8
  589. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  590. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
  591. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  592. package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
  593. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  594. package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
  595. package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
  596. package/dist/v2/patterns/DataGridToolbar.js +2 -1
  597. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  598. package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
  599. package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
  600. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  601. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
  602. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
  603. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  604. package/dist/v2/patterns/FavoriteColumn.d.ts +6 -6
  605. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  606. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  607. package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
  608. package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
  609. package/dist/v2/patterns/FavoritesFilter.js +2 -1
  610. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  611. package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
  612. package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
  613. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  614. package/dist/v2/patterns/FormPageShell.d.ts +4 -4
  615. package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
  616. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  617. package/dist/v2/patterns/FormSection.d.ts +19 -8
  618. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  619. package/dist/v2/patterns/FormSection.js +106 -71
  620. package/dist/v2/patterns/FormSection.js.map +1 -1
  621. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
  622. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  623. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  624. package/dist/v2/patterns/FormikCombobox.d.ts +11 -11
  625. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  626. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  627. package/dist/v2/patterns/FormikDatePicker.d.ts +36 -8
  628. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  629. package/dist/v2/patterns/FormikDatePicker.js +27 -1
  630. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  631. package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
  632. package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
  633. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  634. package/dist/v2/patterns/FormikFile.d.ts +8 -8
  635. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  636. package/dist/v2/patterns/FormikFile.js.map +1 -1
  637. package/dist/v2/patterns/FormikInput.d.ts +41 -6
  638. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  639. package/dist/v2/patterns/FormikInput.js +49 -1
  640. package/dist/v2/patterns/FormikInput.js.map +1 -1
  641. package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
  642. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  643. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  644. package/dist/v2/patterns/FormikSelect.d.ts +33 -12
  645. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  646. package/dist/v2/patterns/FormikSelect.js +28 -2
  647. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  648. package/dist/v2/patterns/FormikTextarea.d.ts +5 -5
  649. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  650. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  651. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +7 -7
  652. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  653. package/dist/v2/patterns/KeyboardShortcutsHelp.js +2 -6
  654. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  655. package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
  656. package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
  657. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  658. package/dist/v2/patterns/PageContent.d.ts +3 -3
  659. package/dist/v2/patterns/PageContent.d.ts.map +1 -1
  660. package/dist/v2/patterns/PageContent.js.map +1 -1
  661. package/dist/v2/patterns/ReferentielField.d.ts +49 -49
  662. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  663. package/dist/v2/patterns/ReferentielField.js +2 -1
  664. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  665. package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
  666. package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
  667. package/dist/v2/patterns/SaveFilterDialog.js +9 -8
  668. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  669. package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
  670. package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
  671. package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
  672. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  673. package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
  674. package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
  675. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  676. package/dist/v2/patterns/SortableHeader.d.ts +1 -1
  677. package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
  678. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  679. package/dist/v2/patterns/Tour.d.ts +12 -12
  680. package/dist/v2/patterns/Tour.d.ts.map +1 -1
  681. package/dist/v2/patterns/Tour.js +9 -8
  682. package/dist/v2/patterns/Tour.js.map +1 -1
  683. package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
  684. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  685. package/dist/v2/patterns/_dataGridShared.js +37 -3
  686. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  687. package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
  688. package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
  689. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  690. package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
  691. package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
  692. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  693. package/dist/v2/patterns/index.d.ts +27 -0
  694. package/dist/v2/patterns/index.d.ts.map +1 -1
  695. package/dist/v2/patterns/index.js.map +1 -1
  696. package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
  697. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  698. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  699. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
  700. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
  701. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  702. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
  703. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
  704. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  705. package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
  706. package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
  707. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  708. package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
  709. package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
  710. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  711. package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
  712. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  713. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  714. package/dist/v2/personalization/schema.d.ts +2 -2
  715. package/dist/v2/personalization/schema.d.ts.map +1 -1
  716. package/dist/v2/personalization/schema.js.map +1 -1
  717. package/dist/v2/personalization/types.d.ts +19 -19
  718. package/dist/v2/personalization/types.d.ts.map +1 -1
  719. package/dist/v2/personalization/types.js.map +1 -1
  720. package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
  721. package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
  722. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  723. package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
  724. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  725. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  726. package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
  727. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  728. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  729. package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
  730. package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
  731. package/dist/v2/theme/createPortnetTheme.js +25 -1
  732. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  733. package/dist/v2/types/datagrid.d.ts +59 -59
  734. package/dist/v2/types/datagrid.d.ts.map +1 -1
  735. package/dist/v2/types/datagrid.js.map +1 -1
  736. package/dist/v2/utils/apiError.d.ts +65 -4
  737. package/dist/v2/utils/apiError.d.ts.map +1 -1
  738. package/dist/v2/utils/apiError.js +69 -6
  739. package/dist/v2/utils/apiError.js.map +1 -1
  740. package/dist/v2/utils/index.d.ts +1 -0
  741. package/dist/v2/utils/index.d.ts.map +1 -1
  742. package/dist/v2/utils/index.js +7 -0
  743. package/dist/v2/utils/index.js.map +1 -1
  744. package/dist/v2/utils/mergeLabels.d.ts +59 -0
  745. package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
  746. package/dist/v2/utils/mergeLabels.js +93 -0
  747. package/dist/v2/utils/mergeLabels.js.map +1 -0
  748. package/package.json +23 -15
@@ -1 +1 @@
1
- {"version":3,"file":"SkeletonPageShell.js","names":["_Box","_interopRequireDefault","require","_Skeleton","_jsxRuntime","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","TypeError","Number","ACTION_BAR_PADDING","freeze","xs","sm","lg","PAGE_CONTENT_PADDING","FILTER_STRIP_SX","display","flexWrap","gap","padding","background","border","borderRadius","TABLE_SHELL_SX","overflow","ListBody","_ref","rows","jsxs","Fragment","children","jsx","sx","map","flex","minWidth","Skeleton","width","height","style","marginBottom","radius","borderBottom","w","Array","from","_","alignItems","FormBody","_ref2","gridTemplateColumns","md","DetailBody","_ref3","SkeletonDetailHero","flexDirection","concat","SkeletonPageShell","_ref4","_ref4$variant","variant","_ref4$breadcrumb","breadcrumb","_ref4$subtitle","subtitle","_ref4$action","action","_ref4$rows","_ref4$loadingLabel","loadingLabel","safeRows","Math","max","floor","justifyContent","marginTop","_default","exports"],"sources":["../../../src/lib/v2/patterns/SkeletonPageShell.tsx"],"sourcesContent":["import Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\nimport { Skeleton, SkeletonDetailHero } from \"../components/Skeleton\";\r\n\r\n/**\r\n * SkeletonPageShell — Portnet UI v2 (pattern)\r\n *\r\n * Route-level `Suspense` fallback: a skeleton of the canonical page skeleton\r\n * (Charter §07 / §7.1 bis), sized to match `ActionBar` + `PageContent`.\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY (capability gap G-02)\r\n *\r\n * R-P.1 MUST: \"Routing avec `React.lazy` + `Suspense`, **fallback skeleton\r\n * page**\". The library shipped every skeleton PART — `Skeleton`, `SkeletonRow`,\r\n * `SkeletonKPI`, `SkeletonDetailHero`, `SkeletonTabContent`, `SkeletonText` —\r\n * and `PageBusy`, but nothing that satisfies R-P.1 directly:\r\n *\r\n * - `PageBusy` is a full-viewport spinner, and R-8.1 MUST forbids exactly that\r\n * for navigation (\"jamais de spinner full-screen sur navigation\"). It cannot\r\n * be the route fallback.\r\n * - the parts are shaped for *inside* a page, not for the page frame.\r\n *\r\n * So every module hand-built a `RoutePageFallback` — observed in\r\n * `procuration-portnet-fe` and `procuration-fe`, independently written.\r\n *\r\n * THE COUPLING IS THE ARGUMENT. To avoid the layout shift a skeleton exists to\r\n * prevent, the fallback's padding must equal `ActionBar`'s and `PageContent`'s\r\n * exactly. A module can only get that by reading this library's source and\r\n * copying literals — which then silently rot the next time either component's\r\n * padding changes. Only the library can keep them in lockstep, so only the\r\n * library should own it. Values below are copied from the two components in this\r\n * same directory; a change there must change them here.\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * Accessibility (R-Sk.3). ONE labelled `aria-busy` region wraps the whole\r\n * shell, and every child is an `aria-hidden` `Skeleton` primitive. This\r\n * deliberately does NOT compose `SkeletonText` / `SkeletonTabContent`, because\r\n * each of those carries its own `aria-busy` + `aria-label`, and nesting live\r\n * regions makes a screen reader announce a page load two or three times.\r\n *\r\n * Dimensions come from density tokens (`--btn-h`, `--input-h`, `--row-h`)\r\n * rather than px literals, so the reserved space follows a\r\n * `data-density=\"compact\"` switch instead of being 6–8 px wrong under it.\r\n *\r\n * Usage:\r\n * <Suspense fallback={<SkeletonPageShell variant=\"list\" />}>\r\n * <Outlet />\r\n * </Suspense>\r\n */\r\n\r\nexport type SkeletonPageShellVariant = \"list\" | \"form\" | \"detail\";\r\n\r\nexport interface SkeletonPageShellProps {\r\n /**\r\n * Which page archetype to mime (R-Sk.2 — \"forme et nombre miment le contenu\r\n * réel\").\r\n *\r\n * - `list` — filter strip + table rows (listing screens)\r\n * - `form` — stepper + two-column field grid (create / edit screens)\r\n * - `detail` — hero card + tab content (consultation screens)\r\n *\r\n * @default \"list\"\r\n */\r\n variant?: SkeletonPageShellVariant;\r\n /** Reserve the breadcrumb row. @default true */\r\n breadcrumb?: boolean;\r\n /** Reserve the subtitle line. @default true */\r\n subtitle?: boolean;\r\n /** Reserve a primary CTA in the header. @default true */\r\n action?: boolean;\r\n /** Rows in the `list` variant / field pairs in `form`. @default 6 */\r\n rows?: number;\r\n /** Accessible name of the busy region. Localise per host. */\r\n loadingLabel?: string;\r\n /** sx overrides applied to the outer region. */\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\n/* ── Copied from ActionBar.tsx / PageContent.tsx in this directory ──────────\r\n * If either changes, change these with it. */\r\nconst ACTION_BAR_PADDING = Object.freeze({\r\n xs: \"var(--s-3)\",\r\n sm: \"var(--s-3) var(--s-4)\",\r\n lg: \"var(--s-3) var(--s-6)\",\r\n});\r\n\r\nconst PAGE_CONTENT_PADDING = Object.freeze({\r\n xs: \"var(--s-3)\",\r\n sm: \"var(--s-4)\",\r\n lg: \"var(--s-6)\",\r\n});\r\n\r\nconst FILTER_STRIP_SX = Object.freeze({\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n gap: \"var(--s-3)\",\r\n padding: \"var(--s-4)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n});\r\n\r\nconst TABLE_SHELL_SX = Object.freeze({\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n overflow: \"hidden\",\r\n});\r\n\r\n/** Filter strip + table rows. */\r\nfunction ListBody({ rows }: { rows: number }) {\r\n return (\r\n <>\r\n <Box sx={FILTER_STRIP_SX}>\r\n {[0, 1, 2].map((i) => (\r\n <Box key={i} sx={{ flex: \"1 1 240px\", minWidth: 0 }}>\r\n <Skeleton\r\n width=\"42%\"\r\n height={11}\r\n style={{ marginBottom: \"var(--s-2)\" }}\r\n />\r\n <Skeleton height=\"var(--input-h)\" radius={8} />\r\n </Box>\r\n ))}\r\n </Box>\r\n\r\n <Box sx={TABLE_SHELL_SX}>\r\n {/* Header band, then rows at the live row height. */}\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n gap: \"var(--s-4)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n background: \"var(--bg-subtle)\",\r\n }}\r\n >\r\n {[\"18%\", \"26%\", \"14%\", \"16%\", \"12%\"].map((w) => (\r\n <Skeleton key={w} width={w} height={11} />\r\n ))}\r\n </Box>\r\n\r\n {Array.from({ length: rows }, (_, i) => (\r\n <Box\r\n key={i}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-4)\",\r\n padding: \"0 var(--s-4)\",\r\n height: \"var(--row-h)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n }}\r\n >\r\n {[\"18%\", \"26%\", \"14%\", \"16%\", \"12%\"].map((w) => (\r\n <Skeleton key={w} width={w} height={13} />\r\n ))}\r\n </Box>\r\n ))}\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\n/** Horizontal stepper + two-column field grid. */\r\nfunction FormBody({ rows }: { rows: number }) {\r\n return (\r\n <>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-4)\",\r\n padding: \"var(--s-4)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n {[0, 1, 2].map((i) => (\r\n <Box\r\n key={i}\r\n sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\", flex: 1 }}\r\n >\r\n <Skeleton width={24} height={24} radius={9999} />\r\n <Skeleton width=\"60%\" height={12} />\r\n </Box>\r\n ))}\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n display: \"grid\",\r\n gridTemplateColumns: { xs: \"1fr\", md: \"1fr 1fr\" },\r\n gap: \"var(--s-4)\",\r\n padding: \"var(--s-5)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n {Array.from({ length: rows }, (_, i) => (\r\n <Box key={i}>\r\n <Skeleton\r\n width=\"38%\"\r\n height={11}\r\n style={{ marginBottom: \"var(--s-2)\" }}\r\n />\r\n <Skeleton height=\"var(--input-h)\" radius={8} />\r\n </Box>\r\n ))}\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\n/** Hero card + tab strip + tab content. */\r\nfunction DetailBody({ rows }: { rows: number }) {\r\n return (\r\n <>\r\n <SkeletonDetailHero />\r\n\r\n <Box sx={{ display: \"flex\", gap: \"var(--s-4)\" }}>\r\n {[0, 1, 2].map((i) => (\r\n <Skeleton key={i} width={96} height={14} />\r\n ))}\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-3)\",\r\n padding: \"var(--s-5)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n {Array.from({ length: rows }, (_, i) => (\r\n <Box key={i} sx={{ display: \"flex\", gap: \"var(--s-4)\" }}>\r\n <Skeleton width=\"22%\" height={12} />\r\n <Skeleton width={`${44 + (i % 3) * 10}%`} height={12} />\r\n </Box>\r\n ))}\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nfunction SkeletonPageShell({\r\n variant = \"list\",\r\n breadcrumb = true,\r\n subtitle = true,\r\n action = true,\r\n rows = 6,\r\n loadingLabel = \"Chargement de la page…\",\r\n sx,\r\n}: SkeletonPageShellProps) {\r\n const safeRows = Math.max(1, Math.floor(rows));\r\n\r\n return (\r\n <Box\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n sx={{ minWidth: 0, ...(sx as SystemStyleObject<Theme>) }}\r\n >\r\n {/* ── ActionBar zone ── */}\r\n <Box sx={{ background: \"var(--bg)\", padding: ACTION_BAR_PADDING }}>\r\n {breadcrumb && (\r\n <Skeleton\r\n width=\"34%\"\r\n height={12}\r\n style={{ marginBottom: \"var(--s-2)\" }}\r\n />\r\n )}\r\n\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: { xs: \"flex-start\", sm: \"center\" },\r\n justifyContent: \"space-between\",\r\n flexWrap: { xs: \"wrap\", sm: \"nowrap\" },\r\n gap: { xs: \"var(--s-2)\", sm: \"var(--s-4)\" },\r\n }}\r\n >\r\n {/* Title: 18px on xs, 22px on sm+, matching ActionBar's h1. */}\r\n <Skeleton width=\"42%\" height={22} />\r\n {action && (\r\n <Skeleton width={148} height=\"var(--btn-h)\" radius={8} />\r\n )}\r\n </Box>\r\n\r\n {subtitle && (\r\n <Skeleton\r\n width=\"56%\"\r\n height={13}\r\n style={{ marginTop: \"var(--s-1)\" }}\r\n />\r\n )}\r\n </Box>\r\n\r\n {/* ── PageContent zone ── */}\r\n <Box\r\n sx={{\r\n padding: PAGE_CONTENT_PADDING,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-4)\",\r\n minWidth: 0,\r\n }}\r\n >\r\n {variant === \"list\" && <ListBody rows={safeRows} />}\r\n {variant === \"form\" && <FormBody rows={safeRows} />}\r\n {variant === \"detail\" && <DetailBody rows={safeRows} />}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default SkeletonPageShell;\r\n"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AAAsE,IAAAE,WAAA,GAAAF,OAAA;AAAA,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,QAAAF,GAAA,sCAAAE,OAAA,wBAAAC,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAJ,GAAA,kBAAAA,GAAA,gBAAAA,GAAA,WAAAA,GAAA,yBAAAG,MAAA,IAAAH,GAAA,CAAAK,WAAA,KAAAF,MAAA,IAAAH,GAAA,KAAAG,MAAA,CAAAG,SAAA,qBAAAN,GAAA,KAAAE,OAAA,CAAAF,GAAA;AAAA,SAAAO,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,IAAAC,eAAA,CAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAAA,SAAAO,gBAAA5B,GAAA,EAAA2B,GAAA,EAAAK,KAAA,IAAAL,GAAA,GAAAM,cAAA,CAAAN,GAAA,OAAAA,GAAA,IAAA3B,GAAA,IAAAW,MAAA,CAAAoB,cAAA,CAAA/B,GAAA,EAAA2B,GAAA,IAAAK,KAAA,EAAAA,KAAA,EAAAf,UAAA,QAAAiB,YAAA,QAAAC,QAAA,oBAAAnC,GAAA,CAAA2B,GAAA,IAAAK,KAAA,WAAAhC,GAAA;AAAA,SAAAiC,eAAAG,GAAA,QAAAT,GAAA,GAAAU,YAAA,CAAAD,GAAA,oBAAAlC,OAAA,CAAAyB,GAAA,iBAAAA,GAAA,GAAAW,MAAA,CAAAX,GAAA;AAAA,SAAAU,aAAAE,KAAA,EAAAC,IAAA,QAAAtC,OAAA,CAAAqC,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAApC,MAAA,CAAAuC,WAAA,OAAAD,IAAA,KAAAE,SAAA,QAAAC,GAAA,GAAAH,IAAA,CAAAI,IAAA,CAAAN,KAAA,EAAAC,IAAA,oBAAAtC,OAAA,CAAA0C,GAAA,uBAAAA,GAAA,YAAAE,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA,KAEtE;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;AACA;AACA;AA8BA;AACA;AACA,IAAMS,kBAAkB,GAAGrC,MAAM,CAACsC,MAAM,CAAC;EACvCC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE,uBAAuB;EAC3BC,EAAE,EAAE;AACN,CAAC,CAAC;AAEF,IAAMC,oBAAoB,GAAG1C,MAAM,CAACsC,MAAM,CAAC;EACzCC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE;AACN,CAAC,CAAC;AAEF,IAAME,eAAe,GAAG3C,MAAM,CAACsC,MAAM,CAAC;EACpCM,OAAO,EAAE,MAAM;EACfC,QAAQ,EAAE,MAAM;EAChBC,GAAG,EAAE,YAAY;EACjBC,OAAO,EAAE,YAAY;EACrBC,UAAU,EAAE,gBAAgB;EAC5BC,MAAM,EAAE,yBAAyB;EACjCC,YAAY,EAAE;AAChB,CAAC,CAAC;AAEF,IAAMC,cAAc,GAAGnD,MAAM,CAACsC,MAAM,CAAC;EACnCU,UAAU,EAAE,gBAAgB;EAC5BC,MAAM,EAAE,yBAAyB;EACjCC,YAAY,EAAE,aAAa;EAC3BE,QAAQ,EAAE;AACZ,CAAC,CAAC;;AAEF;AACA,SAASC,QAAQA,CAAAC,IAAA,EAA6B;EAAA,IAA1BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EACtB,oBACE,IAAAnE,WAAA,CAAAoE,IAAA,EAAApE,WAAA,CAAAqE,QAAA;IAAAC,QAAA,gBACE,IAAAtE,WAAA,CAAAuE,GAAA,EAAC3E,IAAA,WAAG;MAAC4E,EAAE,EAAEjB,eAAgB;MAAAe,QAAA,EACtB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACG,GAAG,CAAC,UAAClD,CAAC;QAAA,oBACf,IAAAvB,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;UAAS4E,EAAE,EAAE;YAAEE,IAAI,EAAE,WAAW;YAAEC,QAAQ,EAAE;UAAE,CAAE;UAAAL,QAAA,gBAClD,IAAAtE,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YACPC,KAAK,EAAC,KAAK;YACXC,MAAM,EAAE,EAAG;YACXC,KAAK,EAAE;cAAEC,YAAY,EAAE;YAAa;UAAE,CACvC,CAAC,eACF,IAAAhF,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YAACE,MAAM,EAAC,gBAAgB;YAACG,MAAM,EAAE;UAAE,CAAE,CAAC;QAAA,GANvC1D,CAOL,CAAC;MAAA,CACP;IAAC,CACC,CAAC,eAEN,IAAAvB,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;MAAC4E,EAAE,EAAET,cAAe;MAAAO,QAAA,gBAEtB,IAAAtE,WAAA,CAAAuE,GAAA,EAAC3E,IAAA,WAAG;QACF4E,EAAE,EAAE;UACFhB,OAAO,EAAE,MAAM;UACfE,GAAG,EAAE,YAAY;UACjBC,OAAO,EAAE,uBAAuB;UAChCuB,YAAY,EAAE,yBAAyB;UACvCtB,UAAU,EAAE;QACd,CAAE;QAAAU,QAAA,EAED,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAACG,GAAG,CAAC,UAACU,CAAC;UAAA,oBACzC,IAAAnF,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YAASC,KAAK,EAAEM,CAAE;YAACL,MAAM,EAAE;UAAG,GAAxBK,CAA0B,CAAC;QAAA,CAC3C;MAAC,CACC,CAAC,EAELC,KAAK,CAACC,IAAI,CAAC;QAAE5D,MAAM,EAAE0C;MAAK,CAAC,EAAE,UAACmB,CAAC,EAAE/D,CAAC;QAAA,oBACjC,IAAAvB,WAAA,CAAAuE,GAAA,EAAC3E,IAAA,WAAG;UAEF4E,EAAE,EAAE;YACFhB,OAAO,EAAE,MAAM;YACf+B,UAAU,EAAE,QAAQ;YACpB7B,GAAG,EAAE,YAAY;YACjBC,OAAO,EAAE,cAAc;YACvBmB,MAAM,EAAE,cAAc;YACtBI,YAAY,EAAE;UAChB,CAAE;UAAAZ,QAAA,EAED,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAACG,GAAG,CAAC,UAACU,CAAC;YAAA,oBACzC,IAAAnF,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;cAASC,KAAK,EAAEM,CAAE;cAACL,MAAM,EAAE;YAAG,GAAxBK,CAA0B,CAAC;UAAA,CAC3C;QAAC,GAZG5D,CAaF,CAAC;MAAA,CACP,CAAC;IAAA,CACC,CAAC;EAAA,CACN,CAAC;AAEP;;AAEA;AACA,SAASiE,QAAQA,CAAAC,KAAA,EAA6B;EAAA,IAA1BtB,IAAI,GAAAsB,KAAA,CAAJtB,IAAI;EACtB,oBACE,IAAAnE,WAAA,CAAAoE,IAAA,EAAApE,WAAA,CAAAqE,QAAA;IAAAC,QAAA,gBACE,IAAAtE,WAAA,CAAAuE,GAAA,EAAC3E,IAAA,WAAG;MACF4E,EAAE,EAAE;QACFhB,OAAO,EAAE,MAAM;QACf+B,UAAU,EAAE,QAAQ;QACpB7B,GAAG,EAAE,YAAY;QACjBC,OAAO,EAAE,YAAY;QACrBC,UAAU,EAAE,gBAAgB;QAC5BC,MAAM,EAAE,yBAAyB;QACjCC,YAAY,EAAE;MAChB,CAAE;MAAAQ,QAAA,EAED,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACG,GAAG,CAAC,UAAClD,CAAC;QAAA,oBACf,IAAAvB,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;UAEF4E,EAAE,EAAE;YAAEhB,OAAO,EAAE,MAAM;YAAE+B,UAAU,EAAE,QAAQ;YAAE7B,GAAG,EAAE,YAAY;YAAEgB,IAAI,EAAE;UAAE,CAAE;UAAAJ,QAAA,gBAE1E,IAAAtE,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YAACC,KAAK,EAAE,EAAG;YAACC,MAAM,EAAE,EAAG;YAACG,MAAM,EAAE;UAAK,CAAE,CAAC,eACjD,IAAAjF,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YAACC,KAAK,EAAC,KAAK;YAACC,MAAM,EAAE;UAAG,CAAE,CAAC;QAAA,GAJ/BvD,CAKF,CAAC;MAAA,CACP;IAAC,CACC,CAAC,eAEN,IAAAvB,WAAA,CAAAuE,GAAA,EAAC3E,IAAA,WAAG;MACF4E,EAAE,EAAE;QACFhB,OAAO,EAAE,MAAM;QACfkC,mBAAmB,EAAE;UAAEvC,EAAE,EAAE,KAAK;UAAEwC,EAAE,EAAE;QAAU,CAAC;QACjDjC,GAAG,EAAE,YAAY;QACjBC,OAAO,EAAE,YAAY;QACrBC,UAAU,EAAE,gBAAgB;QAC5BC,MAAM,EAAE,yBAAyB;QACjCC,YAAY,EAAE;MAChB,CAAE;MAAAQ,QAAA,EAEDc,KAAK,CAACC,IAAI,CAAC;QAAE5D,MAAM,EAAE0C;MAAK,CAAC,EAAE,UAACmB,CAAC,EAAE/D,CAAC;QAAA,oBACjC,IAAAvB,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;UAAA0E,QAAA,gBACF,IAAAtE,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YACPC,KAAK,EAAC,KAAK;YACXC,MAAM,EAAE,EAAG;YACXC,KAAK,EAAE;cAAEC,YAAY,EAAE;YAAa;UAAE,CACvC,CAAC,eACF,IAAAhF,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YAACE,MAAM,EAAC,gBAAgB;YAACG,MAAM,EAAE;UAAE,CAAE,CAAC;QAAA,GANvC1D,CAOL,CAAC;MAAA,CACP;IAAC,CACC,CAAC;EAAA,CACN,CAAC;AAEP;;AAEA;AACA,SAASqE,UAAUA,CAAAC,KAAA,EAA6B;EAAA,IAA1B1B,IAAI,GAAA0B,KAAA,CAAJ1B,IAAI;EACxB,oBACE,IAAAnE,WAAA,CAAAoE,IAAA,EAAApE,WAAA,CAAAqE,QAAA;IAAAC,QAAA,gBACE,IAAAtE,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA+F,kBAAkB,IAAE,CAAC,eAEtB,IAAA9F,WAAA,CAAAuE,GAAA,EAAC3E,IAAA,WAAG;MAAC4E,EAAE,EAAE;QAAEhB,OAAO,EAAE,MAAM;QAAEE,GAAG,EAAE;MAAa,CAAE;MAAAY,QAAA,EAC7C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACG,GAAG,CAAC,UAAClD,CAAC;QAAA,oBACf,IAAAvB,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;UAASC,KAAK,EAAE,EAAG;UAACC,MAAM,EAAE;QAAG,GAAzBvD,CAA2B,CAAC;MAAA,CAC5C;IAAC,CACC,CAAC,eAEN,IAAAvB,WAAA,CAAAuE,GAAA,EAAC3E,IAAA,WAAG;MACF4E,EAAE,EAAE;QACFhB,OAAO,EAAE,MAAM;QACfuC,aAAa,EAAE,QAAQ;QACvBrC,GAAG,EAAE,YAAY;QACjBC,OAAO,EAAE,YAAY;QACrBC,UAAU,EAAE,gBAAgB;QAC5BC,MAAM,EAAE,yBAAyB;QACjCC,YAAY,EAAE;MAChB,CAAE;MAAAQ,QAAA,EAEDc,KAAK,CAACC,IAAI,CAAC;QAAE5D,MAAM,EAAE0C;MAAK,CAAC,EAAE,UAACmB,CAAC,EAAE/D,CAAC;QAAA,oBACjC,IAAAvB,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;UAAS4E,EAAE,EAAE;YAAEhB,OAAO,EAAE,MAAM;YAAEE,GAAG,EAAE;UAAa,CAAE;UAAAY,QAAA,gBACtD,IAAAtE,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YAACC,KAAK,EAAC,KAAK;YAACC,MAAM,EAAE;UAAG,CAAE,CAAC,eACpC,IAAA9E,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;YAACC,KAAK,KAAAmB,MAAA,CAAK,EAAE,GAAIzE,CAAC,GAAG,CAAC,GAAI,EAAE,MAAI;YAACuD,MAAM,EAAE;UAAG,CAAE,CAAC;QAAA,GAFhDvD,CAGL,CAAC;MAAA,CACP;IAAC,CACC,CAAC;EAAA,CACN,CAAC;AAEP;AAEA,SAAS0E,iBAAiBA,CAAAC,KAAA,EAQC;EAAA,IAAAC,aAAA,GAAAD,KAAA,CAPzBE,OAAO;IAAPA,OAAO,GAAAD,aAAA,cAAG,MAAM,GAAAA,aAAA;IAAAE,gBAAA,GAAAH,KAAA,CAChBI,UAAU;IAAVA,UAAU,GAAAD,gBAAA,cAAG,IAAI,GAAAA,gBAAA;IAAAE,cAAA,GAAAL,KAAA,CACjBM,QAAQ;IAARA,QAAQ,GAAAD,cAAA,cAAG,IAAI,GAAAA,cAAA;IAAAE,YAAA,GAAAP,KAAA,CACfQ,MAAM;IAANA,MAAM,GAAAD,YAAA,cAAG,IAAI,GAAAA,YAAA;IAAAE,UAAA,GAAAT,KAAA,CACb/B,IAAI;IAAJA,IAAI,GAAAwC,UAAA,cAAG,CAAC,GAAAA,UAAA;IAAAC,kBAAA,GAAAV,KAAA,CACRW,YAAY;IAAZA,YAAY,GAAAD,kBAAA,cAAG,wBAAwB,GAAAA,kBAAA;IACvCpC,EAAE,GAAA0B,KAAA,CAAF1B,EAAE;EAEF,IAAMsC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAAC9C,IAAI,CAAC,CAAC;EAE9C,oBACE,IAAAnE,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;IACF,aAAU,MAAM;IAChB,cAAYiH,YAAa;IACzBrC,EAAE,EAAAnD,aAAA;MAAIsD,QAAQ,EAAE;IAAC,GAAMH,EAAE,CAAgC;IAAAF,QAAA,gBAGzD,IAAAtE,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;MAAC4E,EAAE,EAAE;QAAEZ,UAAU,EAAE,WAAW;QAAED,OAAO,EAAEV;MAAmB,CAAE;MAAAqB,QAAA,GAC/DgC,UAAU,iBACT,IAAAtG,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;QACPC,KAAK,EAAC,KAAK;QACXC,MAAM,EAAE,EAAG;QACXC,KAAK,EAAE;UAAEC,YAAY,EAAE;QAAa;MAAE,CACvC,CACF,eAED,IAAAhF,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;QACF4E,EAAE,EAAE;UACFhB,OAAO,EAAE,MAAM;UACf+B,UAAU,EAAE;YAAEpC,EAAE,EAAE,YAAY;YAAEC,EAAE,EAAE;UAAS,CAAC;UAC9C8D,cAAc,EAAE,eAAe;UAC/BzD,QAAQ,EAAE;YAAEN,EAAE,EAAE,MAAM;YAAEC,EAAE,EAAE;UAAS,CAAC;UACtCM,GAAG,EAAE;YAAEP,EAAE,EAAE,YAAY;YAAEC,EAAE,EAAE;UAAa;QAC5C,CAAE;QAAAkB,QAAA,gBAGF,IAAAtE,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;UAACC,KAAK,EAAC,KAAK;UAACC,MAAM,EAAE;QAAG,CAAE,CAAC,EACnC4B,MAAM,iBACL,IAAA1G,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;UAACC,KAAK,EAAE,GAAI;UAACC,MAAM,EAAC,cAAc;UAACG,MAAM,EAAE;QAAE,CAAE,CACzD;MAAA,CACE,CAAC,EAELuB,QAAQ,iBACP,IAAAxG,WAAA,CAAAuE,GAAA,EAACxE,SAAA,CAAA6E,QAAQ;QACPC,KAAK,EAAC,KAAK;QACXC,MAAM,EAAE,EAAG;QACXC,KAAK,EAAE;UAAEoC,SAAS,EAAE;QAAa;MAAE,CACpC,CACF;IAAA,CACE,CAAC,eAGN,IAAAnH,WAAA,CAAAoE,IAAA,EAACxE,IAAA,WAAG;MACF4E,EAAE,EAAE;QACFb,OAAO,EAAEL,oBAAoB;QAC7BE,OAAO,EAAE,MAAM;QACfuC,aAAa,EAAE,QAAQ;QACvBrC,GAAG,EAAE,YAAY;QACjBiB,QAAQ,EAAE;MACZ,CAAE;MAAAL,QAAA,GAED8B,OAAO,KAAK,MAAM,iBAAI,IAAApG,WAAA,CAAAuE,GAAA,EAACN,QAAQ;QAACE,IAAI,EAAE2C;MAAS,CAAE,CAAC,EAClDV,OAAO,KAAK,MAAM,iBAAI,IAAApG,WAAA,CAAAuE,GAAA,EAACiB,QAAQ;QAACrB,IAAI,EAAE2C;MAAS,CAAE,CAAC,EAClDV,OAAO,KAAK,QAAQ,iBAAI,IAAApG,WAAA,CAAAuE,GAAA,EAACqB,UAAU;QAACzB,IAAI,EAAE2C;MAAS,CAAE,CAAC;IAAA,CACpD,CAAC;EAAA,CACH,CAAC;AAEV;AAAC,IAAAM,QAAA,GAAAC,OAAA,cAEcpB,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"SkeletonPageShell.js","names":["_Box","_interopRequireDefault","require","_Skeleton","_jsxRuntime","obj","__esModule","_typeof","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","call","TypeError","Number","ACTION_BAR_PADDING","freeze","xs","sm","lg","PAGE_CONTENT_PADDING","FILTER_STRIP_SX","display","flexWrap","gap","padding","background","border","borderRadius","TABLE_SHELL_SX","overflow","ListBody","_ref","rows","jsxs","Fragment","children","jsx","sx","map","flex","minWidth","Skeleton","width","height","style","marginBottom","radius","borderBottom","w","Array","from","_","alignItems","FormBody","_ref2","gridTemplateColumns","md","DetailBody","_ref3","SkeletonDetailHero","flexDirection","concat","SkeletonPageShell","_ref4","_ref4$variant","variant","_ref4$breadcrumb","breadcrumb","_ref4$subtitle","subtitle","_ref4$action","action","_ref4$rows","_ref4$loadingLabel","loadingLabel","safeRows","Math","max","floor","justifyContent","marginTop","_default","exports"],"sources":["../../../src/lib/v2/patterns/SkeletonPageShell.tsx"],"sourcesContent":["import Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { SystemStyleObject } from \"@mui/system\";\r\nimport { Skeleton, SkeletonDetailHero } from \"../components/Skeleton\";\r\n\r\n/**\r\n * SkeletonPageShell — Portnet UI v2 (pattern)\r\n *\r\n * Route-level `Suspense` fallback: a skeleton of the canonical page skeleton\r\n * (Charter §07 / §7.1 bis), sized to match `ActionBar` + `PageContent`.\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY (capability gap G-02)\r\n *\r\n * R-P.1 MUST: \"Routing avec `React.lazy` + `Suspense`, **fallback skeleton\r\n * page**\". The library shipped every skeleton PART — `Skeleton`, `SkeletonRow`,\r\n * `SkeletonKPI`, `SkeletonDetailHero`, `SkeletonTabContent`, `SkeletonText` —\r\n * and `PageBusy`, but nothing that satisfies R-P.1 directly:\r\n *\r\n * - `PageBusy` is a full-viewport spinner, and R-8.1 MUST forbids exactly that\r\n * for navigation (\"jamais de spinner full-screen sur navigation\"). It cannot\r\n * be the route fallback.\r\n * - the parts are shaped for *inside* a page, not for the page frame.\r\n *\r\n * So every module hand-built a `RoutePageFallback` — observed in\r\n * `procuration-portnet-fe` and `procuration-fe`, independently written.\r\n *\r\n * THE COUPLING IS THE ARGUMENT. To avoid the layout shift a skeleton exists to\r\n * prevent, the fallback's padding must equal `ActionBar`'s and `PageContent`'s\r\n * exactly. A module can only get that by reading this library's source and\r\n * copying literals — which then silently rot the next time either component's\r\n * padding changes. Only the library can keep them in lockstep, so only the\r\n * library should own it. Values below are copied from the two components in this\r\n * same directory; a change there must change them here.\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * Accessibility (R-Sk.3). ONE labelled `aria-busy` region wraps the whole\r\n * shell, and every child is an `aria-hidden` `Skeleton` primitive. This\r\n * deliberately does NOT compose `SkeletonText` / `SkeletonTabContent`, because\r\n * each of those carries its own `aria-busy` + `aria-label`, and nesting live\r\n * regions makes a screen reader announce a page load two or three times.\r\n *\r\n * Dimensions come from density tokens (`--btn-h`, `--input-h`, `--row-h`)\r\n * rather than px literals, so the reserved space follows a\r\n * `data-density=\"compact\"` switch instead of being 6–8 px wrong under it.\r\n *\r\n * Usage:\r\n * <Suspense fallback={<SkeletonPageShell variant=\"list\" />}>\r\n * <Outlet />\r\n * </Suspense>\r\n */\r\n\r\nexport type SkeletonPageShellVariant = \"list\" | \"form\" | \"detail\";\r\n\r\nexport interface SkeletonPageShellProps {\r\n /**\r\n * Which page archetype to mime (R-Sk.2 — \"forme et nombre miment le contenu\r\n * réel\").\r\n *\r\n * - `list` — filter strip + table rows (listing screens)\r\n * - `form` — stepper + two-column field grid (create / edit screens)\r\n * - `detail` — hero card + tab content (consultation screens)\r\n *\r\n * @default \"list\"\r\n */\r\n variant?: SkeletonPageShellVariant | undefined;\r\n /** Reserve the breadcrumb row. @default true */\r\n breadcrumb?: boolean | undefined;\r\n /** Reserve the subtitle line. @default true */\r\n subtitle?: boolean | undefined;\r\n /** Reserve a primary CTA in the header. @default true */\r\n action?: boolean | undefined;\r\n /** Rows in the `list` variant / field pairs in `form`. @default 6 */\r\n rows?: number | undefined;\r\n /** Accessible name of the busy region. Localise per host. */\r\n loadingLabel?: string | undefined;\r\n /** sx overrides applied to the outer region. */\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\n/* ── Copied from ActionBar.tsx / PageContent.tsx in this directory ──────────\r\n * If either changes, change these with it. */\r\nconst ACTION_BAR_PADDING = Object.freeze({\r\n xs: \"var(--s-3)\",\r\n sm: \"var(--s-3) var(--s-4)\",\r\n lg: \"var(--s-3) var(--s-6)\",\r\n});\r\n\r\nconst PAGE_CONTENT_PADDING = Object.freeze({\r\n xs: \"var(--s-3)\",\r\n sm: \"var(--s-4)\",\r\n lg: \"var(--s-6)\",\r\n});\r\n\r\nconst FILTER_STRIP_SX = Object.freeze({\r\n display: \"flex\",\r\n flexWrap: \"wrap\",\r\n gap: \"var(--s-3)\",\r\n padding: \"var(--s-4)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n});\r\n\r\nconst TABLE_SHELL_SX = Object.freeze({\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n overflow: \"hidden\",\r\n});\r\n\r\n/** Filter strip + table rows. */\r\nfunction ListBody({ rows }: { rows: number }) {\r\n return (\r\n <>\r\n <Box sx={FILTER_STRIP_SX}>\r\n {[0, 1, 2].map((i) => (\r\n <Box key={i} sx={{ flex: \"1 1 240px\", minWidth: 0 }}>\r\n <Skeleton\r\n width=\"42%\"\r\n height={11}\r\n style={{ marginBottom: \"var(--s-2)\" }}\r\n />\r\n <Skeleton height=\"var(--input-h)\" radius={8} />\r\n </Box>\r\n ))}\r\n </Box>\r\n\r\n <Box sx={TABLE_SHELL_SX}>\r\n {/* Header band, then rows at the live row height. */}\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n gap: \"var(--s-4)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n background: \"var(--bg-subtle)\",\r\n }}\r\n >\r\n {[\"18%\", \"26%\", \"14%\", \"16%\", \"12%\"].map((w) => (\r\n <Skeleton key={w} width={w} height={11} />\r\n ))}\r\n </Box>\r\n\r\n {Array.from({ length: rows }, (_, i) => (\r\n <Box\r\n key={i}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-4)\",\r\n padding: \"0 var(--s-4)\",\r\n height: \"var(--row-h)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n }}\r\n >\r\n {[\"18%\", \"26%\", \"14%\", \"16%\", \"12%\"].map((w) => (\r\n <Skeleton key={w} width={w} height={13} />\r\n ))}\r\n </Box>\r\n ))}\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\n/** Horizontal stepper + two-column field grid. */\r\nfunction FormBody({ rows }: { rows: number }) {\r\n return (\r\n <>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-4)\",\r\n padding: \"var(--s-4)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n {[0, 1, 2].map((i) => (\r\n <Box\r\n key={i}\r\n sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\", flex: 1 }}\r\n >\r\n <Skeleton width={24} height={24} radius={9999} />\r\n <Skeleton width=\"60%\" height={12} />\r\n </Box>\r\n ))}\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n display: \"grid\",\r\n gridTemplateColumns: { xs: \"1fr\", md: \"1fr 1fr\" },\r\n gap: \"var(--s-4)\",\r\n padding: \"var(--s-5)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n {Array.from({ length: rows }, (_, i) => (\r\n <Box key={i}>\r\n <Skeleton\r\n width=\"38%\"\r\n height={11}\r\n style={{ marginBottom: \"var(--s-2)\" }}\r\n />\r\n <Skeleton height=\"var(--input-h)\" radius={8} />\r\n </Box>\r\n ))}\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\n/** Hero card + tab strip + tab content. */\r\nfunction DetailBody({ rows }: { rows: number }) {\r\n return (\r\n <>\r\n <SkeletonDetailHero />\r\n\r\n <Box sx={{ display: \"flex\", gap: \"var(--s-4)\" }}>\r\n {[0, 1, 2].map((i) => (\r\n <Skeleton key={i} width={96} height={14} />\r\n ))}\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-3)\",\r\n padding: \"var(--s-5)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n {Array.from({ length: rows }, (_, i) => (\r\n <Box key={i} sx={{ display: \"flex\", gap: \"var(--s-4)\" }}>\r\n <Skeleton width=\"22%\" height={12} />\r\n <Skeleton width={`${44 + (i % 3) * 10}%`} height={12} />\r\n </Box>\r\n ))}\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nfunction SkeletonPageShell({\r\n variant = \"list\",\r\n breadcrumb = true,\r\n subtitle = true,\r\n action = true,\r\n rows = 6,\r\n loadingLabel = \"Chargement de la page…\",\r\n sx,\r\n}: SkeletonPageShellProps) {\r\n const safeRows = Math.max(1, Math.floor(rows));\r\n\r\n return (\r\n <Box\r\n aria-busy=\"true\"\r\n aria-label={loadingLabel}\r\n sx={{ minWidth: 0, ...(sx as SystemStyleObject<Theme>) }}\r\n >\r\n {/* ── ActionBar zone ── */}\r\n <Box sx={{ background: \"var(--bg)\", padding: ACTION_BAR_PADDING }}>\r\n {breadcrumb && (\r\n <Skeleton\r\n width=\"34%\"\r\n height={12}\r\n style={{ marginBottom: \"var(--s-2)\" }}\r\n />\r\n )}\r\n\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: { xs: \"flex-start\", sm: \"center\" },\r\n justifyContent: \"space-between\",\r\n flexWrap: { xs: \"wrap\", sm: \"nowrap\" },\r\n gap: { xs: \"var(--s-2)\", sm: \"var(--s-4)\" },\r\n }}\r\n >\r\n {/* Title: 18px on xs, 22px on sm+, matching ActionBar's h1. */}\r\n <Skeleton width=\"42%\" height={22} />\r\n {action && (\r\n <Skeleton width={148} height=\"var(--btn-h)\" radius={8} />\r\n )}\r\n </Box>\r\n\r\n {subtitle && (\r\n <Skeleton\r\n width=\"56%\"\r\n height={13}\r\n style={{ marginTop: \"var(--s-1)\" }}\r\n />\r\n )}\r\n </Box>\r\n\r\n {/* ── PageContent zone ── */}\r\n <Box\r\n sx={{\r\n padding: PAGE_CONTENT_PADDING,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-4)\",\r\n minWidth: 0,\r\n }}\r\n >\r\n {variant === \"list\" && <ListBody rows={safeRows} />}\r\n {variant === \"form\" && <FormBody rows={safeRows} />}\r\n {variant === \"detail\" && <DetailBody rows={safeRows} />}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default SkeletonPageShell;\r\n"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,7 @@ export interface SortableHeaderProps {
33
33
  sortKey: string;
34
34
  sort: SortDescriptor[];
35
35
  setSort: React.Dispatch<React.SetStateAction<SortDescriptor[]>>;
36
- align?: Alignment;
36
+ align?: Alignment | undefined;
37
37
  }
38
38
  declare function SortableHeader({ children, sortKey, sort, setSort, align }: SortableHeaderProps): React.JSX.Element;
39
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SortableHeader.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/SortableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAChE,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAc,EAAE,EAAE,mBAAmB,qBAkFhG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAI7E;AAMD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"SortableHeader.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/SortableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAChE,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC/B;AAED,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAc,EAAE,EAAE,mBAAmB,qBAkFhG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,QAAQ,CAI7E;AAMD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAe,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SortableHeader.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_ArrowUpward","_ArrowDownward","_UnfoldMore","_jsxRuntime","_sort","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","iter","iterator","isArray","len","arr2","SortableHeader","_ref","children","sortKey","sort","setSort","_ref$align","align","entry","find","s","idx","findIndex","dir","click","e","multi","shiftKey","prev","exists","concat","map","jsxs","component","type","onClick","sx","background","border","padding","font","color","display","alignItems","gap","cursor","userSelect","justifyContent","outline","outlineOffset","borderRadius","jsx","fontSize","fontWeight","marginLeft","lineHeight","getAriaSort","_default","exports"],"sources":["../../../src/lib/v2/patterns/SortableHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowUpwardIcon from \"@mui/icons-material/ArrowUpward\";\r\nimport ArrowDownwardIcon from \"@mui/icons-material/ArrowDownward\";\r\nimport UnfoldMoreIcon from \"@mui/icons-material/UnfoldMore\";\r\nimport type { Alignment, AriaSort, SortDescriptor } from \"../types/common\";\r\n\r\n/**\r\n * SortableHeader - Portnet UI v2 (pattern)\r\n *\r\n * Charter R-DG.7 - clickable header, ↑/↓ indicator, multi-sort with order badge.\r\n *\r\n * Single-sort: click → asc, click again → desc, click again → off.\r\n * Multi-sort: shift+click adds a sort, badge shows priority.\r\n *\r\n * const [sort, setSort] = useState([{ key: \"date\", dir: \"desc\" }]);\r\n * <th>\r\n * <SortableHeader sortKey=\"date\" sort={sort} setSort={setSort}>\r\n * Date\r\n * </SortableHeader>\r\n * </th>\r\n *\r\n * A11y note (R-Ar.1):\r\n * The trigger is a real <button>, not <div role=\"button\">. WAI-ARIA's\r\n * sortable column header pattern is <th aria-sort=\"...\"><button>Label</button>;\r\n * DataGrid already hoists aria-sort onto the <th> (see getAriaSort below),\r\n * so this component only needs to be a real button.\r\n *\r\n * NOTE on aria-sort: SortableHeader does NOT set aria-sort. The aria-sort\r\n * attribute belongs on the column header element (<th> / <TableCell>) per\r\n * WAI-ARIA, NOT on a child interactive element. DataGrid (the canonical\r\n * caller) hoists aria-sort onto the TableCell. Custom integrators wrapping\r\n * SortableHeader directly in their own <th> must set aria-sort themselves\r\n * - see `getAriaSort()` exported below.\r\n */\r\n\r\nexport interface SortableHeaderProps {\r\n children: React.ReactNode;\r\n sortKey: string;\r\n sort: SortDescriptor[];\r\n setSort: React.Dispatch<React.SetStateAction<SortDescriptor[]>>;\r\n align?: Alignment;\r\n}\r\n\r\nfunction SortableHeader({ children, sortKey, sort, setSort, align = \"left\" }: SortableHeaderProps) {\r\n const entry = sort.find((s) => s.key === sortKey);\r\n const idx = entry ? sort.findIndex((s) => s.key === sortKey) : -1;\r\n const dir = entry?.dir;\r\n\r\n const click = (e: React.MouseEvent) => {\r\n const multi = e.shiftKey;\r\n setSort((prev) => {\r\n const exists = prev.find((s) => s.key === sortKey);\r\n if (!multi) {\r\n if (exists) return exists.dir === \"asc\" ? [{ key: sortKey, dir: \"desc\" }] : [];\r\n return [{ key: sortKey, dir: \"asc\" }];\r\n }\r\n if (!exists) return [...prev, { key: sortKey, dir: \"asc\" }];\r\n if (exists.dir === \"asc\") return prev.map((s) => (s.key === sortKey ? { ...s, dir: \"desc\" } : s));\r\n return prev.filter((s) => s.key !== sortKey);\r\n });\r\n };\r\n\r\n return (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onClick={click}\r\n sx={{\r\n // <button> reset - neutralise UA defaults so the look matches the\r\n // surrounding <th> styling.\r\n background: \"transparent\",\r\n border: 0,\r\n padding: 0,\r\n font: \"inherit\",\r\n color: \"inherit\",\r\n // Layout (unchanged from the previous Box-as-div version).\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n justifyContent: align === \"right\" ? \"flex-end\" : \"flex-start\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n borderRadius: \"var(--r-sm)\",\r\n },\r\n }}\r\n >\r\n <span>{children}</span>\r\n <Box\r\n component=\"span\"\r\n aria-hidden=\"true\"\r\n sx={{\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n color: dir ? \"var(--accent)\" : \"var(--fg-subtle)\",\r\n }}\r\n >\r\n {dir === \"asc\" && <ArrowUpwardIcon sx={{ fontSize: 12 }} />}\r\n {dir === \"desc\" && <ArrowDownwardIcon sx={{ fontSize: 12 }} />}\r\n {!dir && <UnfoldMoreIcon sx={{ fontSize: 12 }} />}\r\n {sort.length > 1 && idx >= 0 && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n // R-T.1 - was 9 px (below charter floor even for captions). 11 px\r\n // is the legible-caption sweet spot; the badge is a 1-digit\r\n // integer so width impact is negligible.\r\n fontSize: 11,\r\n fontWeight: \"var(--fw-bold)\",\r\n padding: \"1px 5px\",\r\n marginLeft: 0.25,\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--accent)\",\r\n color: \"var(--accent-fg)\",\r\n lineHeight: 1.4,\r\n }}\r\n >\r\n {idx + 1}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\n/**\r\n * Helper - returns the WAI-ARIA aria-sort token for a column header,\r\n * given the current sort state and the column key. Set this on the <th>\r\n * (or MUI TableCell) that wraps the SortableHeader.\r\n */\r\nexport function getAriaSort(sort: SortDescriptor[], sortKey: string): AriaSort {\r\n const entry = sort.find((s) => s.key === sortKey);\r\n if (!entry) return \"none\";\r\n return entry.dir === \"asc\" ? \"ascending\" : \"descending\";\r\n}\r\n\r\n/* ── applySort — locale-correct sorting ──────────────────────────────\r\n * Extracted to ./_sort (shared with the useSortedRows hook). Re-exported\r\n * here so the public call site `import { applySort } from \".../SortableHeader\"`\r\n * and the patterns barrel are unchanged. */\r\nexport { applySort } from \"./_sort\";\r\n\r\nexport default SortableHeader;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SortableHeader.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_ArrowUpward","_ArrowDownward","_UnfoldMore","_jsxRuntime","_sort","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","iter","iterator","isArray","len","arr2","SortableHeader","_ref","children","sortKey","sort","setSort","_ref$align","align","entry","find","s","idx","findIndex","dir","click","e","multi","shiftKey","prev","exists","concat","map","jsxs","component","type","onClick","sx","background","border","padding","font","color","display","alignItems","gap","cursor","userSelect","justifyContent","outline","outlineOffset","borderRadius","jsx","fontSize","fontWeight","marginLeft","lineHeight","getAriaSort","_default","exports"],"sources":["../../../src/lib/v2/patterns/SortableHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowUpwardIcon from \"@mui/icons-material/ArrowUpward\";\r\nimport ArrowDownwardIcon from \"@mui/icons-material/ArrowDownward\";\r\nimport UnfoldMoreIcon from \"@mui/icons-material/UnfoldMore\";\r\nimport type { Alignment, AriaSort, SortDescriptor } from \"../types/common\";\r\n\r\n/**\r\n * SortableHeader - Portnet UI v2 (pattern)\r\n *\r\n * Charter R-DG.7 - clickable header, ↑/↓ indicator, multi-sort with order badge.\r\n *\r\n * Single-sort: click → asc, click again → desc, click again → off.\r\n * Multi-sort: shift+click adds a sort, badge shows priority.\r\n *\r\n * const [sort, setSort] = useState([{ key: \"date\", dir: \"desc\" }]);\r\n * <th>\r\n * <SortableHeader sortKey=\"date\" sort={sort} setSort={setSort}>\r\n * Date\r\n * </SortableHeader>\r\n * </th>\r\n *\r\n * A11y note (R-Ar.1):\r\n * The trigger is a real <button>, not <div role=\"button\">. WAI-ARIA's\r\n * sortable column header pattern is <th aria-sort=\"...\"><button>Label</button>;\r\n * DataGrid already hoists aria-sort onto the <th> (see getAriaSort below),\r\n * so this component only needs to be a real button.\r\n *\r\n * NOTE on aria-sort: SortableHeader does NOT set aria-sort. The aria-sort\r\n * attribute belongs on the column header element (<th> / <TableCell>) per\r\n * WAI-ARIA, NOT on a child interactive element. DataGrid (the canonical\r\n * caller) hoists aria-sort onto the TableCell. Custom integrators wrapping\r\n * SortableHeader directly in their own <th> must set aria-sort themselves\r\n * - see `getAriaSort()` exported below.\r\n */\r\n\r\nexport interface SortableHeaderProps {\r\n children: React.ReactNode;\r\n sortKey: string;\r\n sort: SortDescriptor[];\r\n setSort: React.Dispatch<React.SetStateAction<SortDescriptor[]>>;\r\n align?: Alignment | undefined;\r\n}\r\n\r\nfunction SortableHeader({ children, sortKey, sort, setSort, align = \"left\" }: SortableHeaderProps) {\r\n const entry = sort.find((s) => s.key === sortKey);\r\n const idx = entry ? sort.findIndex((s) => s.key === sortKey) : -1;\r\n const dir = entry?.dir;\r\n\r\n const click = (e: React.MouseEvent) => {\r\n const multi = e.shiftKey;\r\n setSort((prev) => {\r\n const exists = prev.find((s) => s.key === sortKey);\r\n if (!multi) {\r\n if (exists) return exists.dir === \"asc\" ? [{ key: sortKey, dir: \"desc\" }] : [];\r\n return [{ key: sortKey, dir: \"asc\" }];\r\n }\r\n if (!exists) return [...prev, { key: sortKey, dir: \"asc\" }];\r\n if (exists.dir === \"asc\") return prev.map((s) => (s.key === sortKey ? { ...s, dir: \"desc\" } : s));\r\n return prev.filter((s) => s.key !== sortKey);\r\n });\r\n };\r\n\r\n return (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n onClick={click}\r\n sx={{\r\n // <button> reset - neutralise UA defaults so the look matches the\r\n // surrounding <th> styling.\r\n background: \"transparent\",\r\n border: 0,\r\n padding: 0,\r\n font: \"inherit\",\r\n color: \"inherit\",\r\n // Layout (unchanged from the previous Box-as-div version).\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n gap: 0.5,\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n justifyContent: align === \"right\" ? \"flex-end\" : \"flex-start\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n borderRadius: \"var(--r-sm)\",\r\n },\r\n }}\r\n >\r\n <span>{children}</span>\r\n <Box\r\n component=\"span\"\r\n aria-hidden=\"true\"\r\n sx={{\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n color: dir ? \"var(--accent)\" : \"var(--fg-subtle)\",\r\n }}\r\n >\r\n {dir === \"asc\" && <ArrowUpwardIcon sx={{ fontSize: 12 }} />}\r\n {dir === \"desc\" && <ArrowDownwardIcon sx={{ fontSize: 12 }} />}\r\n {!dir && <UnfoldMoreIcon sx={{ fontSize: 12 }} />}\r\n {sort.length > 1 && idx >= 0 && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n // R-T.1 - was 9 px (below charter floor even for captions). 11 px\r\n // is the legible-caption sweet spot; the badge is a 1-digit\r\n // integer so width impact is negligible.\r\n fontSize: 11,\r\n fontWeight: \"var(--fw-bold)\",\r\n padding: \"1px 5px\",\r\n marginLeft: 0.25,\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--accent)\",\r\n color: \"var(--accent-fg)\",\r\n lineHeight: 1.4,\r\n }}\r\n >\r\n {idx + 1}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\n/**\r\n * Helper - returns the WAI-ARIA aria-sort token for a column header,\r\n * given the current sort state and the column key. Set this on the <th>\r\n * (or MUI TableCell) that wraps the SortableHeader.\r\n */\r\nexport function getAriaSort(sort: SortDescriptor[], sortKey: string): AriaSort {\r\n const entry = sort.find((s) => s.key === sortKey);\r\n if (!entry) return \"none\";\r\n return entry.dir === \"asc\" ? \"ascending\" : \"descending\";\r\n}\r\n\r\n/* ── applySort — locale-correct sorting ──────────────────────────────\r\n * Extracted to ./_sort (shared with the useSortedRows hook). Re-exported\r\n * here so the public call site `import { applySort } from \".../SortableHeader\"`\r\n * and the patterns barrel are unchanged. */\r\nexport { applySort } from \"./_sort\";\r\n\r\nexport default SortableHeader;\r\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,YAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,WAAA,GAAAH,sBAAA,CAAAF,OAAA;AAA4D,IAAAM,WAAA,GAAAN,OAAA;AA2I5D,IAAAO,KAAA,GAAAP,OAAA;AAAoC,SAAAE,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAZ,wBAAAS,GAAA,EAAAG,WAAA,SAAAA,WAAA,IAAAH,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAO,OAAA,CAAAP,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAQ,KAAA,GAAAN,wBAAA,CAAAC,WAAA,OAAAK,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAT,GAAA,YAAAQ,KAAA,CAAAE,GAAA,CAAAV,GAAA,SAAAW,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAhB,GAAA,QAAAgB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAnB,GAAA,EAAAgB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAf,GAAA,EAAAgB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAhB,GAAA,CAAAgB,GAAA,SAAAL,MAAA,cAAAX,GAAA,MAAAQ,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAArB,GAAA,EAAAW,MAAA,YAAAA,MAAA;AAAA,SAAAW,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAZ,MAAA,CAAAY,IAAA,CAAAF,MAAA,OAAAV,MAAA,CAAAa,qBAAA,QAAAC,OAAA,GAAAd,MAAA,CAAAa,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAhB,MAAA,CAAAE,wBAAA,CAAAQ,MAAA,EAAAM,GAAA,EAAAC,UAAA,OAAAL,IAAA,CAAAM,IAAA,CAAAC,KAAA,CAAAP,IAAA,EAAAE,OAAA,YAAAF,IAAA;AAAA,SAAAQ,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAb,OAAA,CAAAT,MAAA,CAAAyB,MAAA,OAAAC,OAAA,WAAAvB,GAAA,IAAAwB,eAAA,CAAAN,MAAA,EAAAlB,GAAA,EAAAsB,MAAA,CAAAtB,GAAA,SAAAH,MAAA,CAAA4B,yBAAA,GAAA5B,MAAA,CAAA6B,gBAAA,CAAAR,MAAA,EAAArB,MAAA,CAAA4B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAT,MAAA,CAAAyB,MAAA,GAAAC,OAAA,WAAAvB,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAoB,MAAA,EAAAlB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAAuB,MAAA,EAAAtB,GAAA,iBAAAkB,MAAA;AAAA,SAAAM,gBAAAxC,GAAA,EAAAgB,GAAA,EAAA2B,KAAA,IAAA3B,GAAA,GAAA4B,cAAA,CAAA5B,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAA2B,KAAA,EAAAA,KAAA,EAAAb,UAAA,QAAAe,YAAA,QAAAC,QAAA,oBAAA9C,GAAA,CAAAgB,GAAA,IAAA2B,KAAA,WAAA3C,GAAA;AAAA,SAAA4C,eAAAG,GAAA,QAAA/B,GAAA,GAAAgC,YAAA,CAAAD,GAAA,oBAAAxC,OAAA,CAAAS,GAAA,iBAAAA,GAAA,GAAAiC,MAAA,CAAAjC,GAAA;AAAA,SAAAgC,aAAAE,KAAA,EAAAC,IAAA,QAAA5C,OAAA,CAAA2C,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAAG,MAAA,CAAAC,WAAA,OAAAF,IAAA,KAAAG,SAAA,QAAAC,GAAA,GAAAJ,IAAA,CAAAjC,IAAA,CAAA+B,KAAA,EAAAC,IAAA,oBAAA5C,OAAA,CAAAiD,GAAA,uBAAAA,GAAA,YAAAC,SAAA,4DAAAN,IAAA,gBAAAF,MAAA,GAAAS,MAAA,EAAAR,KAAA;AAAA,SAAAS,mBAAAC,GAAA,WAAAC,kBAAA,CAAAD,GAAA,KAAAE,gBAAA,CAAAF,GAAA,KAAAG,2BAAA,CAAAH,GAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAP,SAAA;AAAA,SAAAM,4BAAAE,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAAvD,MAAA,CAAAI,SAAA,CAAAoD,QAAA,CAAAlD,IAAA,CAAA8C,CAAA,EAAAK,KAAA,aAAAF,CAAA,iBAAAH,CAAA,CAAAM,WAAA,EAAAH,CAAA,GAAAH,CAAA,CAAAM,WAAA,CAAAC,IAAA,MAAAJ,CAAA,cAAAA,CAAA,mBAAAK,KAAA,CAAAC,IAAA,CAAAT,CAAA,OAAAG,CAAA,+DAAAO,IAAA,CAAAP,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAJ,iBAAAc,IAAA,eAAAvB,MAAA,oBAAAuB,IAAA,CAAAvB,MAAA,CAAAwB,QAAA,aAAAD,IAAA,+BAAAH,KAAA,CAAAC,IAAA,CAAAE,IAAA;AAAA,SAAAf,mBAAAD,GAAA,QAAAa,KAAA,CAAAK,OAAA,CAAAlB,GAAA,UAAAO,iBAAA,CAAAP,GAAA;AAAA,SAAAO,kBAAAP,GAAA,EAAAmB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAnB,GAAA,CAAAvB,MAAA,EAAA0C,GAAA,GAAAnB,GAAA,CAAAvB,MAAA,WAAAF,CAAA,MAAA6C,IAAA,OAAAP,KAAA,CAAAM,GAAA,GAAA5C,CAAA,GAAA4C,GAAA,EAAA5C,CAAA,MAAA6C,IAAA,CAAA7C,CAAA,IAAAyB,GAAA,CAAAzB,CAAA,YAAA6C,IAAA,IAxIpC;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;AAUA,SAASC,cAAcA,CAAAC,IAAA,EAA4E;EAAA,IAAzEC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAAC,UAAA,GAAAL,IAAA,CAAEM,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,MAAM,GAAAA,UAAA;EACxE,IAAME,KAAK,GAAGJ,IAAI,CAACK,IAAI,CAAC,UAACC,CAAC;IAAA,OAAKA,CAAC,CAAC3E,GAAG,KAAKoE,OAAO;EAAA,EAAC;EACjD,IAAMQ,GAAG,GAAGH,KAAK,GAAGJ,IAAI,CAACQ,SAAS,CAAC,UAACF,CAAC;IAAA,OAAKA,CAAC,CAAC3E,GAAG,KAAKoE,OAAO;EAAA,EAAC,GAAG,CAAC,CAAC;EACjE,IAAMU,GAAG,GAAGL,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEK,GAAG;EAEtB,IAAMC,KAAK,GAAG,SAARA,KAAKA,CAAIC,CAAmB,EAAK;IACrC,IAAMC,KAAK,GAAGD,CAAC,CAACE,QAAQ;IACxBZ,OAAO,CAAC,UAACa,IAAI,EAAK;MAChB,IAAMC,MAAM,GAAGD,IAAI,CAACT,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKA,CAAC,CAAC3E,GAAG,KAAKoE,OAAO;MAAA,EAAC;MAClD,IAAI,CAACa,KAAK,EAAE;QACV,IAAIG,MAAM,EAAE,OAAOA,MAAM,CAACN,GAAG,KAAK,KAAK,GAAG,CAAC;UAAE9E,GAAG,EAAEoE,OAAO;UAAEU,GAAG,EAAE;QAAO,CAAC,CAAC,GAAG,EAAE;QAC9E,OAAO,CAAC;UAAE9E,GAAG,EAAEoE,OAAO;UAAEU,GAAG,EAAE;QAAM,CAAC,CAAC;MACvC;MACA,IAAI,CAACM,MAAM,EAAE,UAAAC,MAAA,CAAA1C,kBAAA,CAAWwC,IAAI,IAAE;QAAEnF,GAAG,EAAEoE,OAAO;QAAEU,GAAG,EAAE;MAAM,CAAC;MAC1D,IAAIM,MAAM,CAACN,GAAG,KAAK,KAAK,EAAE,OAAOK,IAAI,CAACG,GAAG,CAAC,UAACX,CAAC;QAAA,OAAMA,CAAC,CAAC3E,GAAG,KAAKoE,OAAO,GAAAnD,aAAA,CAAAA,aAAA,KAAQ0D,CAAC;UAAEG,GAAG,EAAE;QAAM,KAAKH,CAAC;MAAA,CAAC,CAAC;MACjG,OAAOQ,IAAI,CAACvE,MAAM,CAAC,UAAC+D,CAAC;QAAA,OAAKA,CAAC,CAAC3E,GAAG,KAAKoE,OAAO;MAAA,EAAC;IAC9C,CAAC,CAAC;EACJ,CAAC;EAED,oBACE,IAAAtF,WAAA,CAAAyG,IAAA,EAAC9G,IAAA,WAAG;IACF+G,SAAS,EAAC,QAAQ;IAClBC,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAEX,KAAM;IACfY,EAAE,EAAE;MACF;MACA;MACAC,UAAU,EAAE,aAAa;MACzBC,MAAM,EAAE,CAAC;MACTC,OAAO,EAAE,CAAC;MACVC,IAAI,EAAE,SAAS;MACfC,KAAK,EAAE,SAAS;MAChB;MACAC,OAAO,EAAE,aAAa;MACtBC,UAAU,EAAE,QAAQ;MACpBC,GAAG,EAAE,GAAG;MACRC,MAAM,EAAE,SAAS;MACjBC,UAAU,EAAE,MAAM;MAClBC,cAAc,EAAE9B,KAAK,KAAK,OAAO,GAAG,UAAU,GAAG,YAAY;MAC7D,iBAAiB,EAAE;QACjB+B,OAAO,EAAE,yBAAyB;QAClCC,aAAa,EAAE,2BAA2B;QAC1CC,YAAY,EAAE;MAChB;IACF,CAAE;IAAAtC,QAAA,gBAEF,IAAArF,WAAA,CAAA4H,GAAA;MAAAvC,QAAA,EAAOA;IAAQ,CAAO,CAAC,eACvB,IAAArF,WAAA,CAAAyG,IAAA,EAAC9G,IAAA,WAAG;MACF+G,SAAS,EAAC,MAAM;MAChB,eAAY,MAAM;MAClBG,EAAE,EAAE;QACFM,OAAO,EAAE,aAAa;QACtBC,UAAU,EAAE,QAAQ;QACpBF,KAAK,EAAElB,GAAG,GAAG,eAAe,GAAG;MACjC,CAAE;MAAAX,QAAA,GAEDW,GAAG,KAAK,KAAK,iBAAK,IAAAhG,WAAA,CAAA4H,GAAA,EAAC/H,YAAA,WAAe;QAACgH,EAAE,EAAE;UAAEgB,QAAQ,EAAE;QAAG;MAAE,CAAE,CAAC,EAC3D7B,GAAG,KAAK,MAAM,iBAAI,IAAAhG,WAAA,CAAA4H,GAAA,EAAC9H,cAAA,WAAiB;QAAC+G,EAAE,EAAE;UAAEgB,QAAQ,EAAE;QAAG;MAAE,CAAE,CAAC,EAC7D,CAAC7B,GAAG,iBAAc,IAAAhG,WAAA,CAAA4H,GAAA,EAAC7H,WAAA,WAAc;QAAC8G,EAAE,EAAE;UAAEgB,QAAQ,EAAE;QAAG;MAAE,CAAE,CAAC,EAC1DtC,IAAI,CAAChD,MAAM,GAAG,CAAC,IAAIuD,GAAG,IAAI,CAAC,iBAC1B,IAAA9F,WAAA,CAAA4H,GAAA,EAACjI,IAAA,WAAG;QACF+G,SAAS,EAAC,MAAM;QAChBG,EAAE,EAAE;UACF;UACA;UACA;UACAgB,QAAQ,EAAE,EAAE;UACZC,UAAU,EAAE,gBAAgB;UAC5Bd,OAAO,EAAE,SAAS;UAClBe,UAAU,EAAE,IAAI;UAChBJ,YAAY,EAAE,eAAe;UAC7Bb,UAAU,EAAE,eAAe;UAC3BI,KAAK,EAAE,kBAAkB;UACzBc,UAAU,EAAE;QACd,CAAE;QAAA3C,QAAA,EAEDS,GAAG,GAAG;MAAC,CACL,CACN;IAAA,CACE,CAAC;EAAA,CACH,CAAC;AAEV;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASmC,WAAWA,CAAC1C,IAAsB,EAAED,OAAe,EAAY;EAC7E,IAAMK,KAAK,GAAGJ,IAAI,CAACK,IAAI,CAAC,UAACC,CAAC;IAAA,OAAKA,CAAC,CAAC3E,GAAG,KAAKoE,OAAO;EAAA,EAAC;EACjD,IAAI,CAACK,KAAK,EAAE,OAAO,MAAM;EACzB,OAAOA,KAAK,CAACK,GAAG,KAAK,KAAK,GAAG,WAAW,GAAG,YAAY;AACzD;;AAEA;AACA;AACA;AACA;AAHA,IAAAkC,QAAA,GAAAC,OAAA,cAMehD,cAAc","ignoreList":[]}
@@ -33,22 +33,22 @@ export interface TourStep {
33
33
  title: React.ReactNode;
34
34
  content: React.ReactNode;
35
35
  /** Preferred side; "auto" (default) picks the side with the most space. */
36
- placement?: TourPlacement;
36
+ placement?: TourPlacement | undefined;
37
37
  }
38
38
  export interface TourLabels {
39
- prev?: React.ReactNode;
40
- next?: React.ReactNode;
41
- skip?: React.ReactNode;
42
- finish?: React.ReactNode;
43
- closeAria?: string;
44
- stepCounter?: (cur: number, total: number) => React.ReactNode;
39
+ prev?: React.ReactNode | undefined;
40
+ next?: React.ReactNode | undefined;
41
+ skip?: React.ReactNode | undefined;
42
+ finish?: React.ReactNode | undefined;
43
+ closeAria?: string | undefined;
44
+ stepCounter?: ((cur: number, total: number) => React.ReactNode) | undefined;
45
45
  }
46
46
  export interface TourProps {
47
- open?: boolean;
48
- steps?: TourStep[];
49
- onClose?: () => void;
50
- onComplete?: () => void;
51
- labels?: TourLabels;
47
+ open?: boolean | undefined;
48
+ steps?: TourStep[] | undefined;
49
+ onClose?: (() => void) | undefined;
50
+ onComplete?: (() => void) | undefined;
51
+ labels?: TourLabels | undefined;
52
52
  }
53
53
  declare function Tour({ open, steps, onClose, onComplete, labels }: TourProps): React.ReactPortal | null;
54
54
  export default Tour;
@@ -1 +1 @@
1
- {"version":3,"file":"Tour.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/Tour.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC/D;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAwMD,iBAAS,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,4BAkQpE;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Tour.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/Tour.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzE,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;CAC7E;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACtC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACjC;AAwMD,iBAAS,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,SAAS,4BAkQpE;AAED,eAAe,IAAI,CAAC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -11,22 +12,22 @@ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
11
12
  var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
12
13
  var _Button = _interopRequireDefault(require("../components/Button"));
13
14
  var _useFocusTrap = _interopRequireDefault(require("../hooks/useFocusTrap"));
15
+ var _mergeLabels = require("../utils/mergeLabels");
14
16
  var _jsxRuntime = require("react/jsx-runtime");
15
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
- 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); }
20
+ 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; }
21
+ 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; }
22
+ 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; }
23
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
24
+ 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); }
19
25
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
20
26
  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."); }
21
27
  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); }
22
28
  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; }
23
29
  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; } }
24
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
- 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; }
26
- 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; }
27
- 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; }
28
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
29
- 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); } /**
30
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /**
30
31
  * Tour - Portnet UI v2 (pattern)
31
32
  *
32
33
  * Charter §07 · "First-run tooltips" / onboarding. Step-by-step guided tour
@@ -224,7 +225,7 @@ function Tour(_ref) {
224
225
  onComplete = _ref.onComplete,
225
226
  labels = _ref.labels;
226
227
  var L = React.useMemo(function () {
227
- return labels ? _objectSpread(_objectSpread({}, DEFAULT_LABELS), labels) : DEFAULT_LABELS;
228
+ return (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
228
229
  }, [labels]);
229
230
  var _React$useState = React.useState(0),
230
231
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -1 +1 @@
1
- {"version":3,"file":"Tour.js","names":["React","_interopRequireWildcard","require","_reactDom","_Box","_interopRequireDefault","_IconButton","_Close","_Button","_useFocusTrap","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","name","Array","from","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","isArray","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","apply","_objectSpread","target","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","PADDING","TOOLTIP_GAP","TOOLTIP_WIDTH","TOOLTIP_MAX_HEIGHT","VIEWPORT_MARGIN","DEFAULT_LABELS","freeze","prev","skip","finish","closeAria","stepCounter","cur","total","concat","getElementRect","selector","document","el","querySelector","r","getBoundingClientRect","top","left","right","bottom","width","height","_unused","computeTooltipPosition","targetRect","placement","vw","vh","p","space","best","entries","sort","a","b","Math","max","min","SPOTLIGHT_BG","SPOTLIGHT_BASE_SX","position","background","zIndex","pointerEvents","BACKDROP_FALLBACK_SX","inset","TOOLTIP_BASE_SX","maxHeight","overflowY","border","borderRadius","boxShadow","padding","TOOLTIP_HEADER_SX","display","alignItems","justifyContent","gap","marginBottom","TOOLTIP_TITLE_SX","fontSize","fontWeight","color","TOOLTIP_CLOSE_SX","marginRight","marginTop","TOOLTIP_CONTENT_SX","lineHeight","TOOLTIP_FOOTER_SX","STEP_COUNTER_SX","fontVariantNumeric","NAV_BUTTONS_SX","Tour","_ref","open","steps","onClose","onComplete","labels","L","useMemo","_React$useState","useState","_React$useState2","stepIdx","setStepIdx","_React$useState3","_React$useState4","setTargetRect","_React$useState5","_React$useState6","tooltipPos","setTooltipPos","_React$useState7","w","h","_React$useState8","viewport","setViewport","tooltipRef","useRef","titleId","useId","contentId","currentStep","useFocusTrap","useEffect","recompute","window","innerWidth","innerHeight","rect","initialEl","_unused2","scrollIntoView","block","behavior","rafId","onViewportChange","requestAnimationFrame","addEventListener","removeEventListener","cancelAnimationFrame","onKey","e","preventDefault","isFirst","isLast","goNext","goPrev","spotlight","jsxs","Fragment","children","jsx","onClick","sx","backdropFallback","tooltip","ref","role","id","title","size","content","variant","createPortal","body","_default","exports"],"sources":["../../../src/lib/v2/patterns/Tour.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport Button from \"../components/Button\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/**\r\n * Tour - Portnet UI v2 (pattern)\r\n *\r\n * Charter §07 · \"First-run tooltips\" / onboarding. Step-by-step guided tour\r\n * anchored to specific DOM elements with spotlight + tooltip nav.\r\n *\r\n * <Tour\r\n * open={tourOpen}\r\n * steps={[\r\n * { target: \"#nav-dashboard\", title: \"Accueil\", content: \"...\" },\r\n * { target: \"[data-tour='kpi']\", title: \"KPIs\", content: \"...\", placement: \"bottom\" },\r\n * ]}\r\n * onClose={() => setTourOpen(false)}\r\n * onComplete={() => markTourSeen()}\r\n * />\r\n *\r\n * Step state is INTERNAL (resets to 0 on every `open` → true transition).\r\n * Host owns `open` and the \"user has seen the tour\" persistence.\r\n *\r\n * A11y: role=\"dialog\" aria-modal=\"true\"; aria-labelledby / aria-describedby;\r\n * step counter in role=\"status\" aria-live=\"polite\"; step title + content are\r\n * polite/atomic live regions so each step change is announced (TOUR-1); Esc\r\n * closes; focus trapped.\r\n *\r\n * Target-not-found fallback: if the CSS selector doesn't match, the spotlight\r\n * falls back to a full-screen dimmed backdrop and the tooltip renders centered.\r\n */\r\n\r\nexport type TourPlacement = \"top\" | \"bottom\" | \"left\" | \"right\" | \"auto\";\r\n\r\nexport interface TourStep {\r\n /** CSS selector for the element to highlight. */\r\n target: string;\r\n title: React.ReactNode;\r\n content: React.ReactNode;\r\n /** Preferred side; \"auto\" (default) picks the side with the most space. */\r\n placement?: TourPlacement;\r\n}\r\n\r\nexport interface TourLabels {\r\n prev?: React.ReactNode;\r\n next?: React.ReactNode;\r\n skip?: React.ReactNode;\r\n finish?: React.ReactNode;\r\n closeAria?: string;\r\n stepCounter?: (cur: number, total: number) => React.ReactNode;\r\n}\r\n\r\nexport interface TourProps {\r\n open?: boolean;\r\n steps?: TourStep[];\r\n onClose?: () => void;\r\n onComplete?: () => void;\r\n labels?: TourLabels;\r\n}\r\n\r\n/** Resolved target geometry (plus the element, for potential callers). */\r\ninterface TargetRect {\r\n top: number;\r\n left: number;\r\n right: number;\r\n bottom: number;\r\n width: number;\r\n height: number;\r\n el: Element;\r\n}\r\n\r\n/** Resolved tooltip position; `placement` is the chosen side (or \"center\"). */\r\ninterface TooltipPosition {\r\n top: number;\r\n left: number;\r\n placement: string;\r\n}\r\n\r\nconst PADDING = 8; // spotlight extra around target bbox\r\nconst TOOLTIP_GAP = 12; // distance from target to tooltip edge\r\nconst TOOLTIP_WIDTH = 320;\r\nconst TOOLTIP_MAX_HEIGHT = 360;\r\nconst VIEWPORT_MARGIN = 8; // min distance from viewport edges\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n prev: \"Précédent\",\r\n next: \"Suivant\",\r\n skip: \"Ignorer\",\r\n finish: \"Terminer\",\r\n closeAria: \"Fermer la visite guidée\",\r\n stepCounter: (cur: number, total: number) => `${cur} sur ${total}`,\r\n});\r\n\r\n/**\r\n * Try to resolve a CSS selector to its element's bounding rect. Returns null\r\n * on any failure (selector invalid, element absent). Defensive — host typos\r\n * shouldn't crash the tour.\r\n */\r\nfunction getElementRect(selector: string): TargetRect | null {\r\n if (!selector || typeof document === \"undefined\") return null;\r\n try {\r\n const el = document.querySelector(selector);\r\n if (!el) return null;\r\n const r = el.getBoundingClientRect();\r\n return {\r\n top: r.top,\r\n left: r.left,\r\n right: r.right,\r\n bottom: r.bottom,\r\n width: r.width,\r\n height: r.height,\r\n el,\r\n };\r\n } catch {\r\n // Invalid selector syntax → catch SyntaxError, return null.\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * Compute the tooltip's top/left given a target rect, a placement preference,\r\n * and the viewport bounds. Auto picks the side with the most clearance;\r\n * clamps to viewport.\r\n */\r\nfunction computeTooltipPosition(\r\n targetRect: TargetRect,\r\n placement: TourPlacement | undefined,\r\n vw: number,\r\n vh: number\r\n): TooltipPosition {\r\n let p: string = placement || \"auto\";\r\n if (p === \"auto\") {\r\n const space = {\r\n top: targetRect.top,\r\n bottom: vh - targetRect.bottom,\r\n left: targetRect.left,\r\n right: vw - targetRect.right,\r\n };\r\n // Pick the side with the most clearance. Stable on ties — first entry\r\n // wins (Object.entries order is insertion order, ES2015+).\r\n const best = Object.entries(space).sort((a, b) => b[1] - a[1])[0];\r\n if (best) p = best[0];\r\n }\r\n\r\n let top: number;\r\n let left: number;\r\n switch (p) {\r\n case \"top\":\r\n top = targetRect.top - TOOLTIP_GAP - TOOLTIP_MAX_HEIGHT;\r\n left = targetRect.left + targetRect.width / 2 - TOOLTIP_WIDTH / 2;\r\n break;\r\n case \"bottom\":\r\n top = targetRect.bottom + TOOLTIP_GAP;\r\n left = targetRect.left + targetRect.width / 2 - TOOLTIP_WIDTH / 2;\r\n break;\r\n case \"left\":\r\n top = targetRect.top + targetRect.height / 2 - TOOLTIP_MAX_HEIGHT / 2;\r\n left = targetRect.left - TOOLTIP_GAP - TOOLTIP_WIDTH;\r\n break;\r\n case \"right\":\r\n top = targetRect.top + targetRect.height / 2 - TOOLTIP_MAX_HEIGHT / 2;\r\n left = targetRect.right + TOOLTIP_GAP;\r\n break;\r\n default:\r\n top = targetRect.bottom + TOOLTIP_GAP;\r\n left = targetRect.left;\r\n }\r\n\r\n // Clamp to viewport with a small margin so the tooltip never touches the edge.\r\n left = Math.max(\r\n VIEWPORT_MARGIN,\r\n Math.min(left, vw - TOOLTIP_WIDTH - VIEWPORT_MARGIN)\r\n );\r\n top = Math.max(\r\n VIEWPORT_MARGIN,\r\n Math.min(top, vh - TOOLTIP_MAX_HEIGHT - VIEWPORT_MARGIN)\r\n );\r\n\r\n return { top, left, placement: p };\r\n}\r\n\r\n/* ── Hoisted sx (Batch 14 D5 pattern) ─────────────────────────────── */\r\n\r\nconst SPOTLIGHT_BG = \"color-mix(in srgb, var(--fg) 60%, transparent)\";\r\n\r\nconst SPOTLIGHT_BASE_SX = Object.freeze({\r\n position: \"fixed\",\r\n background: SPOTLIGHT_BG,\r\n zIndex: \"var(--z-modal)\",\r\n pointerEvents: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst BACKDROP_FALLBACK_SX = Object.freeze({\r\n position: \"fixed\",\r\n inset: 0,\r\n background: SPOTLIGHT_BG,\r\n zIndex: \"var(--z-modal)\",\r\n pointerEvents: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_BASE_SX = Object.freeze({\r\n position: \"fixed\",\r\n width: TOOLTIP_WIDTH,\r\n maxHeight: TOOLTIP_MAX_HEIGHT,\r\n overflowY: \"auto\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n padding: \"var(--s-4)\",\r\n zIndex: \"var(--z-tooltip)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_HEADER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n marginBottom: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_TITLE_SX = Object.freeze({\r\n fontSize: \"var(--text-h4)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n});\r\n\r\nconst TOOLTIP_CLOSE_SX = Object.freeze({\r\n color: \"var(--fg-muted)\",\r\n marginRight: \"calc(-1 * var(--s-1))\",\r\n marginTop: \"calc(-1 * var(--s-1))\",\r\n});\r\n\r\nconst TOOLTIP_CONTENT_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n marginBottom: \"var(--s-3)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n});\r\n\r\nconst TOOLTIP_FOOTER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst STEP_COUNTER_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n});\r\n\r\nconst NAV_BUTTONS_SX = Object.freeze({\r\n display: \"flex\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction Tour({ open, steps, onClose, onComplete, labels }: TourProps) {\r\n const L = React.useMemo(\r\n () => (labels ? { ...DEFAULT_LABELS, ...labels } : DEFAULT_LABELS),\r\n [labels]\r\n );\r\n\r\n const [stepIdx, setStepIdx] = React.useState(0);\r\n const [targetRect, setTargetRect] = React.useState<TargetRect | null>(null);\r\n const [tooltipPos, setTooltipPos] = React.useState<TooltipPosition | null>(\r\n null\r\n );\r\n const [viewport, setViewport] = React.useState({ w: 0, h: 0 });\r\n\r\n const tooltipRef = React.useRef<HTMLDivElement>(null);\r\n const titleId = React.useId();\r\n const contentId = React.useId();\r\n\r\n const currentStep = steps && steps[stepIdx];\r\n\r\n // Focus trap activates ONLY after tooltipPos is computed (tooltip actually\r\n // mounted with a non-null ref). On first open, tooltipPos is null until the\r\n // position effect runs, so the trap would otherwise activate against a null ref.\r\n useFocusTrap(tooltipRef, !!open && tooltipPos != null);\r\n\r\n // Reset to step 0 on each open transition.\r\n React.useEffect(() => {\r\n if (open) setStepIdx(0);\r\n }, [open]);\r\n\r\n // Compute target rect + tooltip position. Re-runs on step change and on\r\n // window scroll/resize.\r\n React.useEffect(() => {\r\n if (!open || !currentStep) return undefined;\r\n\r\n const recompute = () => {\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n setViewport({ w, h });\r\n const rect = getElementRect(currentStep.target);\r\n setTargetRect(rect);\r\n if (rect) {\r\n setTooltipPos(\r\n computeTooltipPosition(rect, currentStep.placement, w, h)\r\n );\r\n } else {\r\n // Fallback: center the tooltip when target not found.\r\n setTooltipPos({\r\n top: Math.max(VIEWPORT_MARGIN, (h - TOOLTIP_MAX_HEIGHT) / 2),\r\n left: Math.max(VIEWPORT_MARGIN, (w - TOOLTIP_WIDTH) / 2),\r\n placement: \"center\",\r\n });\r\n }\r\n };\r\n\r\n recompute();\r\n\r\n // Scroll the target into view on each step change; no-ops if not found.\r\n const initialEl =\r\n typeof document !== \"undefined\"\r\n ? (() => {\r\n try {\r\n return document.querySelector(currentStep.target);\r\n } catch {\r\n return null;\r\n }\r\n })()\r\n : null;\r\n if (initialEl && typeof initialEl.scrollIntoView === \"function\") {\r\n initialEl.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\r\n }\r\n\r\n // TOUR-2 (perf) — coalesce scroll/resize into ONE recompute per frame.\r\n // recompute() does a querySelector + getBoundingClientRect + up to 4\r\n // setState calls, so running it on every raw scroll event is wasteful;\r\n // rAF-throttle to at most once per animation frame. `true` (capture)\r\n // catches scroll on any ancestor (default scroll events don't bubble).\r\n let rafId: number | null = null;\r\n const onViewportChange = () => {\r\n if (rafId != null) return; // a frame is already scheduled\r\n rafId = window.requestAnimationFrame(() => {\r\n rafId = null;\r\n recompute();\r\n });\r\n };\r\n window.addEventListener(\"scroll\", onViewportChange, true);\r\n window.addEventListener(\"resize\", onViewportChange);\r\n return () => {\r\n window.removeEventListener(\"scroll\", onViewportChange, true);\r\n window.removeEventListener(\"resize\", onViewportChange);\r\n if (rafId != null) window.cancelAnimationFrame(rafId);\r\n };\r\n }, [open, currentStep]);\r\n\r\n // Esc closes the tour. Window-bound — same pattern as Modal / Drawer.\r\n React.useEffect(() => {\r\n if (!open) return undefined;\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n onClose?.();\r\n }\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [open, onClose]);\r\n\r\n if (!open || !steps || steps.length === 0 || !currentStep) return null;\r\n\r\n const total = steps.length;\r\n const isFirst = stepIdx === 0;\r\n const isLast = stepIdx === total - 1;\r\n\r\n const goNext = () => {\r\n if (isLast) {\r\n onComplete?.();\r\n onClose?.();\r\n } else {\r\n setStepIdx(stepIdx + 1);\r\n }\r\n };\r\n const goPrev = () => {\r\n if (!isFirst) setStepIdx(stepIdx - 1);\r\n };\r\n const skip = () => {\r\n onClose?.();\r\n };\r\n\r\n // Spotlight: 4 dark overlays around the target bbox. Each is clickable → skip.\r\n const spotlight = targetRect && (\r\n <>\r\n {/* Top */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: 0,\r\n width: \"100vw\",\r\n height: Math.max(0, targetRect.top - PADDING),\r\n }}\r\n />\r\n {/* Left */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: Math.max(0, targetRect.top - PADDING),\r\n width: Math.max(0, targetRect.left - PADDING),\r\n height: targetRect.height + 2 * PADDING,\r\n }}\r\n />\r\n {/* Right */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: targetRect.right + PADDING,\r\n top: Math.max(0, targetRect.top - PADDING),\r\n width: Math.max(0, viewport.w - (targetRect.right + PADDING)),\r\n height: targetRect.height + 2 * PADDING,\r\n }}\r\n />\r\n {/* Bottom */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: targetRect.bottom + PADDING,\r\n width: \"100vw\",\r\n height: Math.max(0, viewport.h - (targetRect.bottom + PADDING)),\r\n }}\r\n />\r\n </>\r\n );\r\n\r\n // Backdrop fallback when target not found — full-screen dimmed overlay.\r\n const backdropFallback = !targetRect && (\r\n <Box onClick={skip} sx={BACKDROP_FALLBACK_SX} />\r\n );\r\n\r\n // Tooltip — only renders once tooltipPos is computed.\r\n const tooltip = tooltipPos && (\r\n <Box\r\n ref={tooltipRef}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={titleId}\r\n aria-describedby={contentId}\r\n sx={{\r\n ...TOOLTIP_BASE_SX,\r\n top: tooltipPos.top,\r\n left: tooltipPos.left,\r\n }}\r\n >\r\n <Box sx={TOOLTIP_HEADER_SX}>\r\n {/* TOUR-1 — polite/atomic so a step change announces the new title. */}\r\n <Box\r\n id={titleId}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={TOOLTIP_TITLE_SX}\r\n >\r\n {currentStep.title}\r\n </Box>\r\n <IconButton\r\n size=\"small\"\r\n onClick={skip}\r\n aria-label={L.closeAria}\r\n sx={TOOLTIP_CLOSE_SX}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n\r\n {/* TOUR-1 — polite/atomic so a step change announces the new content. */}\r\n <Box\r\n id={contentId}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={TOOLTIP_CONTENT_SX}\r\n >\r\n {currentStep.content}\r\n </Box>\r\n\r\n <Box sx={TOOLTIP_FOOTER_SX}>\r\n <Box role=\"status\" aria-live=\"polite\" sx={STEP_COUNTER_SX}>\r\n {L.stepCounter(stepIdx + 1, total)}\r\n </Box>\r\n <Box sx={NAV_BUTTONS_SX}>\r\n {!isFirst && (\r\n <Button variant=\"ghost\" size=\"sm\" onClick={goPrev}>\r\n {L.prev}\r\n </Button>\r\n )}\r\n <Button variant=\"ghost\" size=\"sm\" onClick={skip}>\r\n {L.skip}\r\n </Button>\r\n <Button variant=\"primary\" size=\"sm\" onClick={goNext}>\r\n {isLast ? L.finish : L.next}\r\n </Button>\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n\r\n // Portal to document.body so the tour escapes any host overflow/transform\r\n // context that would clip absolute positioning.\r\n if (typeof document === \"undefined\") return null;\r\n return createPortal(\r\n <>\r\n {spotlight}\r\n {backdropFallback}\r\n {tooltip}\r\n </>,\r\n document.body\r\n );\r\n}\r\n\r\nexport default Tour;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Tour.js","names":["React","_interopRequireWildcard","require","_reactDom","_Box","_interopRequireDefault","_IconButton","_Close","_Button","_useFocusTrap","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","PADDING","TOOLTIP_GAP","TOOLTIP_WIDTH","TOOLTIP_MAX_HEIGHT","VIEWPORT_MARGIN","DEFAULT_LABELS","freeze","prev","skip","finish","closeAria","stepCounter","cur","total","concat","getElementRect","selector","document","el","querySelector","r","getBoundingClientRect","top","left","right","bottom","width","height","_unused","computeTooltipPosition","targetRect","placement","vw","vh","p","space","best","entries","sort","a","b","Math","max","min","SPOTLIGHT_BG","SPOTLIGHT_BASE_SX","position","background","zIndex","pointerEvents","BACKDROP_FALLBACK_SX","inset","TOOLTIP_BASE_SX","maxHeight","overflowY","border","borderRadius","boxShadow","padding","TOOLTIP_HEADER_SX","display","alignItems","justifyContent","gap","marginBottom","TOOLTIP_TITLE_SX","fontSize","fontWeight","color","TOOLTIP_CLOSE_SX","marginRight","marginTop","TOOLTIP_CONTENT_SX","lineHeight","TOOLTIP_FOOTER_SX","STEP_COUNTER_SX","fontVariantNumeric","NAV_BUTTONS_SX","Tour","_ref","open","steps","onClose","onComplete","labels","L","useMemo","mergeLabels","_React$useState","useState","_React$useState2","stepIdx","setStepIdx","_React$useState3","_React$useState4","setTargetRect","_React$useState5","_React$useState6","tooltipPos","setTooltipPos","_React$useState7","w","h","_React$useState8","viewport","setViewport","tooltipRef","useRef","titleId","useId","contentId","currentStep","useFocusTrap","useEffect","recompute","window","innerWidth","innerHeight","rect","initialEl","_unused2","scrollIntoView","block","behavior","rafId","onViewportChange","requestAnimationFrame","addEventListener","removeEventListener","cancelAnimationFrame","onKey","e","preventDefault","isFirst","isLast","goNext","goPrev","spotlight","jsxs","Fragment","children","jsx","onClick","sx","backdropFallback","tooltip","ref","role","id","title","size","content","variant","createPortal","body","_default","exports"],"sources":["../../../src/lib/v2/patterns/Tour.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport Button from \"../components/Button\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Tour - Portnet UI v2 (pattern)\r\n *\r\n * Charter §07 · \"First-run tooltips\" / onboarding. Step-by-step guided tour\r\n * anchored to specific DOM elements with spotlight + tooltip nav.\r\n *\r\n * <Tour\r\n * open={tourOpen}\r\n * steps={[\r\n * { target: \"#nav-dashboard\", title: \"Accueil\", content: \"...\" },\r\n * { target: \"[data-tour='kpi']\", title: \"KPIs\", content: \"...\", placement: \"bottom\" },\r\n * ]}\r\n * onClose={() => setTourOpen(false)}\r\n * onComplete={() => markTourSeen()}\r\n * />\r\n *\r\n * Step state is INTERNAL (resets to 0 on every `open` → true transition).\r\n * Host owns `open` and the \"user has seen the tour\" persistence.\r\n *\r\n * A11y: role=\"dialog\" aria-modal=\"true\"; aria-labelledby / aria-describedby;\r\n * step counter in role=\"status\" aria-live=\"polite\"; step title + content are\r\n * polite/atomic live regions so each step change is announced (TOUR-1); Esc\r\n * closes; focus trapped.\r\n *\r\n * Target-not-found fallback: if the CSS selector doesn't match, the spotlight\r\n * falls back to a full-screen dimmed backdrop and the tooltip renders centered.\r\n */\r\n\r\nexport type TourPlacement = \"top\" | \"bottom\" | \"left\" | \"right\" | \"auto\";\r\n\r\nexport interface TourStep {\r\n /** CSS selector for the element to highlight. */\r\n target: string;\r\n title: React.ReactNode;\r\n content: React.ReactNode;\r\n /** Preferred side; \"auto\" (default) picks the side with the most space. */\r\n placement?: TourPlacement | undefined;\r\n}\r\n\r\nexport interface TourLabels {\r\n prev?: React.ReactNode | undefined;\r\n next?: React.ReactNode | undefined;\r\n skip?: React.ReactNode | undefined;\r\n finish?: React.ReactNode | undefined;\r\n closeAria?: string | undefined;\r\n stepCounter?: ((cur: number, total: number) => React.ReactNode) | undefined;\r\n}\r\n\r\nexport interface TourProps {\r\n open?: boolean | undefined;\r\n steps?: TourStep[] | undefined;\r\n onClose?: (() => void) | undefined;\r\n onComplete?: (() => void) | undefined;\r\n labels?: TourLabels | undefined;\r\n}\r\n\r\n/** Resolved target geometry (plus the element, for potential callers). */\r\ninterface TargetRect {\r\n top: number;\r\n left: number;\r\n right: number;\r\n bottom: number;\r\n width: number;\r\n height: number;\r\n el: Element;\r\n}\r\n\r\n/** Resolved tooltip position; `placement` is the chosen side (or \"center\"). */\r\ninterface TooltipPosition {\r\n top: number;\r\n left: number;\r\n placement: string;\r\n}\r\n\r\nconst PADDING = 8; // spotlight extra around target bbox\r\nconst TOOLTIP_GAP = 12; // distance from target to tooltip edge\r\nconst TOOLTIP_WIDTH = 320;\r\nconst TOOLTIP_MAX_HEIGHT = 360;\r\nconst VIEWPORT_MARGIN = 8; // min distance from viewport edges\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n prev: \"Précédent\",\r\n next: \"Suivant\",\r\n skip: \"Ignorer\",\r\n finish: \"Terminer\",\r\n closeAria: \"Fermer la visite guidée\",\r\n stepCounter: (cur: number, total: number) => `${cur} sur ${total}`,\r\n});\r\n\r\n/**\r\n * Try to resolve a CSS selector to its element's bounding rect. Returns null\r\n * on any failure (selector invalid, element absent). Defensive — host typos\r\n * shouldn't crash the tour.\r\n */\r\nfunction getElementRect(selector: string): TargetRect | null {\r\n if (!selector || typeof document === \"undefined\") return null;\r\n try {\r\n const el = document.querySelector(selector);\r\n if (!el) return null;\r\n const r = el.getBoundingClientRect();\r\n return {\r\n top: r.top,\r\n left: r.left,\r\n right: r.right,\r\n bottom: r.bottom,\r\n width: r.width,\r\n height: r.height,\r\n el,\r\n };\r\n } catch {\r\n // Invalid selector syntax → catch SyntaxError, return null.\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * Compute the tooltip's top/left given a target rect, a placement preference,\r\n * and the viewport bounds. Auto picks the side with the most clearance;\r\n * clamps to viewport.\r\n */\r\nfunction computeTooltipPosition(\r\n targetRect: TargetRect,\r\n placement: TourPlacement | undefined,\r\n vw: number,\r\n vh: number\r\n): TooltipPosition {\r\n let p: string = placement || \"auto\";\r\n if (p === \"auto\") {\r\n const space = {\r\n top: targetRect.top,\r\n bottom: vh - targetRect.bottom,\r\n left: targetRect.left,\r\n right: vw - targetRect.right,\r\n };\r\n // Pick the side with the most clearance. Stable on ties — first entry\r\n // wins (Object.entries order is insertion order, ES2015+).\r\n const best = Object.entries(space).sort((a, b) => b[1] - a[1])[0];\r\n if (best) p = best[0];\r\n }\r\n\r\n let top: number;\r\n let left: number;\r\n switch (p) {\r\n case \"top\":\r\n top = targetRect.top - TOOLTIP_GAP - TOOLTIP_MAX_HEIGHT;\r\n left = targetRect.left + targetRect.width / 2 - TOOLTIP_WIDTH / 2;\r\n break;\r\n case \"bottom\":\r\n top = targetRect.bottom + TOOLTIP_GAP;\r\n left = targetRect.left + targetRect.width / 2 - TOOLTIP_WIDTH / 2;\r\n break;\r\n case \"left\":\r\n top = targetRect.top + targetRect.height / 2 - TOOLTIP_MAX_HEIGHT / 2;\r\n left = targetRect.left - TOOLTIP_GAP - TOOLTIP_WIDTH;\r\n break;\r\n case \"right\":\r\n top = targetRect.top + targetRect.height / 2 - TOOLTIP_MAX_HEIGHT / 2;\r\n left = targetRect.right + TOOLTIP_GAP;\r\n break;\r\n default:\r\n top = targetRect.bottom + TOOLTIP_GAP;\r\n left = targetRect.left;\r\n }\r\n\r\n // Clamp to viewport with a small margin so the tooltip never touches the edge.\r\n left = Math.max(\r\n VIEWPORT_MARGIN,\r\n Math.min(left, vw - TOOLTIP_WIDTH - VIEWPORT_MARGIN)\r\n );\r\n top = Math.max(\r\n VIEWPORT_MARGIN,\r\n Math.min(top, vh - TOOLTIP_MAX_HEIGHT - VIEWPORT_MARGIN)\r\n );\r\n\r\n return { top, left, placement: p };\r\n}\r\n\r\n/* ── Hoisted sx (Batch 14 D5 pattern) ─────────────────────────────── */\r\n\r\nconst SPOTLIGHT_BG = \"color-mix(in srgb, var(--fg) 60%, transparent)\";\r\n\r\nconst SPOTLIGHT_BASE_SX = Object.freeze({\r\n position: \"fixed\",\r\n background: SPOTLIGHT_BG,\r\n zIndex: \"var(--z-modal)\",\r\n pointerEvents: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst BACKDROP_FALLBACK_SX = Object.freeze({\r\n position: \"fixed\",\r\n inset: 0,\r\n background: SPOTLIGHT_BG,\r\n zIndex: \"var(--z-modal)\",\r\n pointerEvents: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_BASE_SX = Object.freeze({\r\n position: \"fixed\",\r\n width: TOOLTIP_WIDTH,\r\n maxHeight: TOOLTIP_MAX_HEIGHT,\r\n overflowY: \"auto\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n padding: \"var(--s-4)\",\r\n zIndex: \"var(--z-tooltip)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_HEADER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n marginBottom: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_TITLE_SX = Object.freeze({\r\n fontSize: \"var(--text-h4)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n});\r\n\r\nconst TOOLTIP_CLOSE_SX = Object.freeze({\r\n color: \"var(--fg-muted)\",\r\n marginRight: \"calc(-1 * var(--s-1))\",\r\n marginTop: \"calc(-1 * var(--s-1))\",\r\n});\r\n\r\nconst TOOLTIP_CONTENT_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n marginBottom: \"var(--s-3)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n});\r\n\r\nconst TOOLTIP_FOOTER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst STEP_COUNTER_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n});\r\n\r\nconst NAV_BUTTONS_SX = Object.freeze({\r\n display: \"flex\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction Tour({ open, steps, onClose, onComplete, labels }: TourProps) {\r\n const L = React.useMemo(\r\n () => (mergeLabels(DEFAULT_LABELS, labels)),\r\n [labels]\r\n );\r\n\r\n const [stepIdx, setStepIdx] = React.useState(0);\r\n const [targetRect, setTargetRect] = React.useState<TargetRect | null>(null);\r\n const [tooltipPos, setTooltipPos] = React.useState<TooltipPosition | null>(\r\n null\r\n );\r\n const [viewport, setViewport] = React.useState({ w: 0, h: 0 });\r\n\r\n const tooltipRef = React.useRef<HTMLDivElement>(null);\r\n const titleId = React.useId();\r\n const contentId = React.useId();\r\n\r\n const currentStep = steps && steps[stepIdx];\r\n\r\n // Focus trap activates ONLY after tooltipPos is computed (tooltip actually\r\n // mounted with a non-null ref). On first open, tooltipPos is null until the\r\n // position effect runs, so the trap would otherwise activate against a null ref.\r\n useFocusTrap(tooltipRef, !!open && tooltipPos != null);\r\n\r\n // Reset to step 0 on each open transition.\r\n React.useEffect(() => {\r\n if (open) setStepIdx(0);\r\n }, [open]);\r\n\r\n // Compute target rect + tooltip position. Re-runs on step change and on\r\n // window scroll/resize.\r\n React.useEffect(() => {\r\n if (!open || !currentStep) return undefined;\r\n\r\n const recompute = () => {\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n setViewport({ w, h });\r\n const rect = getElementRect(currentStep.target);\r\n setTargetRect(rect);\r\n if (rect) {\r\n setTooltipPos(\r\n computeTooltipPosition(rect, currentStep.placement, w, h)\r\n );\r\n } else {\r\n // Fallback: center the tooltip when target not found.\r\n setTooltipPos({\r\n top: Math.max(VIEWPORT_MARGIN, (h - TOOLTIP_MAX_HEIGHT) / 2),\r\n left: Math.max(VIEWPORT_MARGIN, (w - TOOLTIP_WIDTH) / 2),\r\n placement: \"center\",\r\n });\r\n }\r\n };\r\n\r\n recompute();\r\n\r\n // Scroll the target into view on each step change; no-ops if not found.\r\n const initialEl =\r\n typeof document !== \"undefined\"\r\n ? (() => {\r\n try {\r\n return document.querySelector(currentStep.target);\r\n } catch {\r\n return null;\r\n }\r\n })()\r\n : null;\r\n if (initialEl && typeof initialEl.scrollIntoView === \"function\") {\r\n initialEl.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\r\n }\r\n\r\n // TOUR-2 (perf) — coalesce scroll/resize into ONE recompute per frame.\r\n // recompute() does a querySelector + getBoundingClientRect + up to 4\r\n // setState calls, so running it on every raw scroll event is wasteful;\r\n // rAF-throttle to at most once per animation frame. `true` (capture)\r\n // catches scroll on any ancestor (default scroll events don't bubble).\r\n let rafId: number | null = null;\r\n const onViewportChange = () => {\r\n if (rafId != null) return; // a frame is already scheduled\r\n rafId = window.requestAnimationFrame(() => {\r\n rafId = null;\r\n recompute();\r\n });\r\n };\r\n window.addEventListener(\"scroll\", onViewportChange, true);\r\n window.addEventListener(\"resize\", onViewportChange);\r\n return () => {\r\n window.removeEventListener(\"scroll\", onViewportChange, true);\r\n window.removeEventListener(\"resize\", onViewportChange);\r\n if (rafId != null) window.cancelAnimationFrame(rafId);\r\n };\r\n }, [open, currentStep]);\r\n\r\n // Esc closes the tour. Window-bound — same pattern as Modal / Drawer.\r\n React.useEffect(() => {\r\n if (!open) return undefined;\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n onClose?.();\r\n }\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [open, onClose]);\r\n\r\n if (!open || !steps || steps.length === 0 || !currentStep) return null;\r\n\r\n const total = steps.length;\r\n const isFirst = stepIdx === 0;\r\n const isLast = stepIdx === total - 1;\r\n\r\n const goNext = () => {\r\n if (isLast) {\r\n onComplete?.();\r\n onClose?.();\r\n } else {\r\n setStepIdx(stepIdx + 1);\r\n }\r\n };\r\n const goPrev = () => {\r\n if (!isFirst) setStepIdx(stepIdx - 1);\r\n };\r\n const skip = () => {\r\n onClose?.();\r\n };\r\n\r\n // Spotlight: 4 dark overlays around the target bbox. Each is clickable → skip.\r\n const spotlight = targetRect && (\r\n <>\r\n {/* Top */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: 0,\r\n width: \"100vw\",\r\n height: Math.max(0, targetRect.top - PADDING),\r\n }}\r\n />\r\n {/* Left */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: Math.max(0, targetRect.top - PADDING),\r\n width: Math.max(0, targetRect.left - PADDING),\r\n height: targetRect.height + 2 * PADDING,\r\n }}\r\n />\r\n {/* Right */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: targetRect.right + PADDING,\r\n top: Math.max(0, targetRect.top - PADDING),\r\n width: Math.max(0, viewport.w - (targetRect.right + PADDING)),\r\n height: targetRect.height + 2 * PADDING,\r\n }}\r\n />\r\n {/* Bottom */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: targetRect.bottom + PADDING,\r\n width: \"100vw\",\r\n height: Math.max(0, viewport.h - (targetRect.bottom + PADDING)),\r\n }}\r\n />\r\n </>\r\n );\r\n\r\n // Backdrop fallback when target not found — full-screen dimmed overlay.\r\n const backdropFallback = !targetRect && (\r\n <Box onClick={skip} sx={BACKDROP_FALLBACK_SX} />\r\n );\r\n\r\n // Tooltip — only renders once tooltipPos is computed.\r\n const tooltip = tooltipPos && (\r\n <Box\r\n ref={tooltipRef}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={titleId}\r\n aria-describedby={contentId}\r\n sx={{\r\n ...TOOLTIP_BASE_SX,\r\n top: tooltipPos.top,\r\n left: tooltipPos.left,\r\n }}\r\n >\r\n <Box sx={TOOLTIP_HEADER_SX}>\r\n {/* TOUR-1 — polite/atomic so a step change announces the new title. */}\r\n <Box\r\n id={titleId}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={TOOLTIP_TITLE_SX}\r\n >\r\n {currentStep.title}\r\n </Box>\r\n <IconButton\r\n size=\"small\"\r\n onClick={skip}\r\n aria-label={L.closeAria}\r\n sx={TOOLTIP_CLOSE_SX}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n\r\n {/* TOUR-1 — polite/atomic so a step change announces the new content. */}\r\n <Box\r\n id={contentId}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={TOOLTIP_CONTENT_SX}\r\n >\r\n {currentStep.content}\r\n </Box>\r\n\r\n <Box sx={TOOLTIP_FOOTER_SX}>\r\n <Box role=\"status\" aria-live=\"polite\" sx={STEP_COUNTER_SX}>\r\n {L.stepCounter(stepIdx + 1, total)}\r\n </Box>\r\n <Box sx={NAV_BUTTONS_SX}>\r\n {!isFirst && (\r\n <Button variant=\"ghost\" size=\"sm\" onClick={goPrev}>\r\n {L.prev}\r\n </Button>\r\n )}\r\n <Button variant=\"ghost\" size=\"sm\" onClick={skip}>\r\n {L.skip}\r\n </Button>\r\n <Button variant=\"primary\" size=\"sm\" onClick={goNext}>\r\n {isLast ? L.finish : L.next}\r\n </Button>\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n\r\n // Portal to document.body so the tour escapes any host overflow/transform\r\n // context that would clip absolute positioning.\r\n if (typeof document === \"undefined\") return null;\r\n return createPortal(\r\n <>\r\n {spotlight}\r\n {backdropFallback}\r\n {tooltip}\r\n </>,\r\n document.body\r\n );\r\n}\r\n\r\nexport default Tour;\r\n"],"mappings":"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","ignoreList":[]}
@@ -5,14 +5,32 @@ import * as React from "react";
5
5
  import type { SxProps, Theme } from "@mui/material/styles";
6
6
  import type { Density } from "../types/common";
7
7
  import type { DataGridLabels, DataGridPaginationLabels } from "../types/datagrid";
8
+ /**
9
+ * Strips optionality AND an explicitly-declared `| undefined`.
10
+ *
11
+ * `Required<T>` is NOT sufficient here, and the difference is invisible until it
12
+ * bites. `-?` removes `undefined` only when it was IMPLIED by the `?` marker.
13
+ * Under `exactOptionalPropertyTypes` — mandatory platform-wide — the public label
14
+ * shapes declare `?: T | undefined` explicitly, so that `undefined` is part of
15
+ * the declared type and survives `Required<>`. The "fully-resolved" shapes below
16
+ * silently stopped being resolved, and every renderer that read them without an
17
+ * optional check became a type error (three of them).
18
+ *
19
+ * `Exclude<T[K], undefined>` removes it for real. Behaviour is identical to what
20
+ * `Required<>` produced BEFORE the optional props were widened — this restores
21
+ * the original intent rather than changing it.
22
+ */
23
+ type Concrete<T> = {
24
+ [K in keyof T]-?: Exclude<T[K], undefined>;
25
+ };
8
26
  /**
9
27
  * Fully-resolved (all-present) label shapes. The public DataGridLabels /
10
28
  * DataGridPaginationLabels (../types/datagrid) are the OVERRIDE shapes (every
11
29
  * field optional). After mergeLabels every field is guaranteed present, so the
12
30
  * renderers (Pagination, DataGrid) read them without optional access.
13
31
  */
14
- export type ResolvedDataGridPaginationLabels = Required<DataGridPaginationLabels>;
15
- export type ResolvedDataGridLabels = Required<Omit<DataGridLabels, "pagination">> & {
32
+ export type ResolvedDataGridPaginationLabels = Concrete<DataGridPaginationLabels>;
33
+ export type ResolvedDataGridLabels = Concrete<Omit<DataGridLabels, "pagination">> & {
16
34
  pagination: ResolvedDataGridPaginationLabels;
17
35
  };
18
36
  export declare const DEFAULT_PAGE_SIZES: number[];
@@ -115,11 +133,12 @@ export interface PaginationProps {
115
133
  pageSize: number;
116
134
  total: number;
117
135
  onPageChange: (page: number) => void;
118
- onPageSizeChange?: (pageSize: number) => void;
119
- pageSizes?: number[];
120
- loading?: boolean;
121
- locale?: string;
136
+ onPageSizeChange?: ((pageSize: number) => void) | undefined;
137
+ pageSizes?: number[] | undefined;
138
+ loading?: boolean | undefined;
139
+ locale?: string | undefined;
122
140
  labels: ResolvedDataGridPaginationLabels;
123
141
  }
124
142
  export declare function Pagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizes, loading, locale, labels }: PaginationProps): React.JSX.Element;
143
+ export {};
125
144
  //# sourceMappingURL=_dataGridShared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_dataGridShared.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElF;;;;;GAKG;AACH,MAAM,MAAM,gCAAgC,GAAG,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,GAAG;IAClF,UAAU,EAAE,gCAAgC,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAgB,CAAC;AAChD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAE,sBAe3B,CAAC;AAEH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,sBAAsB,CAO3E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,YAAY,CAGtE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACxD,OAAO,EAAE,CAAC,EAAE,EACZ,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,CAAC,EAAE,CAUL;AASD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB9D;AAED,eAAO,MAAM,kBAAkB;;EAAiE,CAAC;AACjG,eAAO,MAAM,YAAY;;;EAA4F,CAAC;AAwCtH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAM3D,CAAC;AAYH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAIF,CAAC;AAE5B,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;EAA0F,CAAC;AAErH,eAAO,MAAM,uBAAuB;;;;;EAAiH,CAAC;AACtJ,eAAO,MAAM,qBAAqB;;EAAmD,CAAC;AAEtF,eAAO,MAAM,kBAAkB;;;;;;;;;EAK7B,CAAC;AAEH,eAAO,MAAM,aAAa;;;EAAuD,CAAC;AAClF,eAAO,MAAM,cAAc;;EAA2C,CAAC;AAEvE,eAAO,MAAM,cAAc;;;EAAyE,CAAC;AACrG,eAAO,MAAM,mBAAmB;;;;;;;EAGL,CAAC;AAuB5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gCAAgC,CAAC;CAC1C;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAA8B,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,eAAe,qBAiC7J"}
1
+ {"version":3,"file":"_dataGridShared.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"names":[],"mappings":"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"}