@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
@@ -20,9 +20,9 @@ import type { RadioGroupProps as MuiRadioGroupProps } from "@mui/material/RadioG
20
20
  * passing `inputProps={...}` to v2.Radio is unchanged.
21
21
  */
22
22
  export interface RadioProps extends MuiRadioProps {
23
- label?: React.ReactNode;
23
+ label?: React.ReactNode | undefined;
24
24
  /** Native <input> attributes. Routed to slotProps.input (v9). */
25
- inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
25
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;
26
26
  }
27
27
  export declare const Radio: React.ForwardRefExoticComponent<Omit<RadioProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
28
28
  /**
@@ -64,14 +64,14 @@ export declare const Radio: React.ForwardRefExoticComponent<Omit<RadioProps, "re
64
64
  export interface RadioOption {
65
65
  value: string | number;
66
66
  label: React.ReactNode;
67
- helper?: React.ReactNode;
68
- disabled?: boolean;
67
+ helper?: React.ReactNode | undefined;
68
+ disabled?: boolean | undefined;
69
69
  }
70
70
  export type RadioGroupOption = string | RadioOption;
71
71
  export interface RadioGroupProps extends Omit<MuiRadioGroupProps, "value" | "children"> {
72
- value?: string | number;
73
- options?: RadioGroupOption[];
74
- disabled?: boolean;
72
+ value?: string | number | undefined;
73
+ options?: RadioGroupOption[] | undefined;
74
+ disabled?: boolean | undefined;
75
75
  }
76
76
  export declare function RadioGroup({ value, onChange, options, row, disabled, name, id, sx, ...rest }: RadioGroupProps): React.JSX.Element;
77
77
  export default Radio;
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAItF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iEAAiE;IACjE,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;CAC1D;AAED,eAAO,MAAM,KAAK,mGAyChB,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,UAAU,CAAC;IACrF,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,OAAY,EACZ,GAAW,EACX,QAAgB,EAChB,IAAI,EACJ,EAAE,EACF,EAAE,EACF,GAAG,IAAI,EACR,EAAE,eAAe,qBAkFjB;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Radio.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAItF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,iEAAiE;IACjE,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CACtE;AAED,eAAO,MAAM,KAAK,mGAyChB,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,UAAU,CAAC;IACrF,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,OAAY,EACZ,GAAW,EACX,QAAgB,EAChB,IAAI,EACJ,EAAE,EACF,EAAE,EACF,GAAG,IAAI,EACR,EAAE,eAAe,qBAkFjB;AAED,eAAe,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","names":["React","_interopRequireWildcard","require","_Radio","_interopRequireDefault","_RadioGroup","_FormControlLabel","_Box","_jsxRuntime","_excluded","_excluded2","_excluded3","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","Radio","exports","forwardRef","_ref","ref","checked","onChange","label","disabled","inputProps","sx","rest","radio","jsx","size","slotProps","padding","outline","outlineOffset","control","margin","fontSize","RadioGroup","_ref2","_ref2$options","options","_ref2$row","row","_ref2$disabled","name","id","baseId","useId","_ref3","_fieldError","error","_fieldFullWidth","fullWidth","domRest","gap","children","map","opt","idx","v","lbl","helper","optDisabled","helperId","concat","labelNode","jsxs","display","flexDirection","paddingY","component","color","alignItems","_default"],"sources":["../../../src/lib/v2/components/Radio.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiRadio from \"@mui/material/Radio\";\r\nimport type { RadioProps as MuiRadioProps } from \"@mui/material/Radio\";\r\nimport MuiRadioGroup from \"@mui/material/RadioGroup\";\r\nimport type { RadioGroupProps as MuiRadioGroupProps } from \"@mui/material/RadioGroup\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\n/**\r\n * Radio - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Radio\". Required by R-Sel.2 (2-3 options\r\n * -> Radio or Segmented).\r\n *\r\n * Low-level: a single controlled radio. For typical usage, prefer\r\n * <RadioGroup options={...}> below.\r\n *\r\n * <Radio checked={v === \"a\"} onChange={() => setV(\"a\")} label=\"Option A\" value=\"a\" />\r\n *\r\n * MUI v9 surface notes (audit Batch 2 external):\r\n * The public `inputProps` is routed internally to slotProps.input -\r\n * MUI v9 idiomatic location for native <input type=\"radio\"/> attributes.\r\n * `inputProps` was deprecated in v6 and REMOVED in v9, so it is no longer\r\n * inherited from MuiRadioProps and must be re-declared here. Consumer code\r\n * passing `inputProps={...}` to v2.Radio is unchanged.\r\n */\r\nexport interface RadioProps extends MuiRadioProps {\r\n label?: React.ReactNode;\r\n /** Native <input> attributes. Routed to slotProps.input (v9). */\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\r\n}\r\n\r\nexport const Radio = React.forwardRef<React.ComponentRef<typeof MuiRadio>, RadioProps>(function Radio(\r\n { checked, onChange, label, value, disabled, inputProps, sx, ...rest },\r\n ref,\r\n) {\r\n const radio = (\r\n <MuiRadio\r\n ref={ref}\r\n checked={!!checked}\r\n onChange={onChange}\r\n value={value}\r\n disabled={disabled}\r\n size=\"small\"\r\n // MUI v9: Radio inputProps -> slotProps.input (same migration class\r\n // as Checkbox / Switch / NumberInput). Emitted conditionally so we\r\n // don't pass `slotProps={{ input: undefined }}` when nothing is\r\n // supplied.\r\n slotProps={inputProps ? { input: inputProps } : undefined}\r\n sx={{\r\n padding: \"6px\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n ...sx,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n if (!label) return radio;\r\n return (\r\n <FormControlLabel\r\n control={radio}\r\n label={label}\r\n value={value}\r\n disabled={disabled}\r\n sx={{\r\n margin: 0,\r\n \"& .MuiFormControlLabel-label\": { fontSize: \"var(--text-sm, 13px)\" },\r\n }}\r\n />\r\n );\r\n});\r\n\r\n/**\r\n * RadioGroup - Portnet UI v2\r\n *\r\n * Declarative group of radios taking an `options` array. Use inside\r\n * <Field> for label / hint / error / a11y wiring.\r\n *\r\n * <Field label=\"Type d'opération\" required>\r\n * <RadioGroup\r\n * value={op}\r\n * onChange={e => setOp(e.target.value)}\r\n * options={[\r\n * { value: \"import\", label: \"Importation\" },\r\n * { value: \"export\", label: \"Exportation\" },\r\n * { value: \"transit\", label: \"Transit\", helper: \"Marchandises en transit douanier\" },\r\n * ]}\r\n * />\r\n * </Field>\r\n *\r\n * Layout:\r\n * row={false} (default) -> vertical stack\r\n * row={true} -> horizontal (use only when labels are short)\r\n *\r\n * A11y (audit Batch 5, finding B3-3):\r\n * When an option carries a `helper` text, RadioGroup wires it\r\n * to the inner radio input via aria-describedby - SR users hear\r\n * the helper alongside the label when navigating. Without this\r\n * link the helper is purely visual.\r\n *\r\n * A11y (audit Batch 19, RG-1):\r\n * Used inside <Field>, Field cloneElement-injects presentational /\r\n * validation props onto this group. `error` and `fullWidth` are not valid\r\n * on the role=\"radiogroup\" element (React emits \"non-boolean / unrecognized\r\n * attribute\" warnings), so they are stripped before the spread. The aria-*\r\n * (labelledby / describedby / invalid) and id that Field also injects stay\r\n * valid on the group and are still forwarded.\r\n */\r\nexport interface RadioOption {\r\n value: string | number;\r\n label: React.ReactNode;\r\n helper?: React.ReactNode;\r\n disabled?: boolean;\r\n}\r\n\r\nexport type RadioGroupOption = string | RadioOption;\r\n\r\nexport interface RadioGroupProps extends Omit<MuiRadioGroupProps, \"value\" | \"children\"> {\r\n value?: string | number;\r\n options?: RadioGroupOption[];\r\n disabled?: boolean;\r\n}\r\n\r\nexport function RadioGroup({\r\n value,\r\n onChange,\r\n options = [],\r\n row = false,\r\n disabled = false,\r\n name,\r\n id,\r\n sx,\r\n ...rest\r\n}: RadioGroupProps) {\r\n // R-Ar.1 - stable, SSR-safe, per-instance base for option helper ids.\r\n // Each option that exposes a `helper` derives a deterministic id from\r\n // this base + its index, so the inner <input type=\"radio\">'s\r\n // aria-describedby points at the right <Box> element.\r\n const baseId = React.useId();\r\n\r\n // RG-1 — Field cloneElement-injects presentational/validation props onto this\r\n // child; `error` and `fullWidth` are not valid on the role=\"radiogroup\"\r\n // element and would trigger React attribute warnings if forwarded. Strip just\r\n // those two (object-rest omit); the aria-* / id Field also injects remain in\r\n // `domRest` and stay valid on the group. Cast because these injected props\r\n // are not part of RadioGroupProps.\r\n const { error: _fieldError, fullWidth: _fieldFullWidth, ...domRest } =\r\n rest as typeof rest & { error?: unknown; fullWidth?: unknown };\r\n\r\n return (\r\n <MuiRadioGroup\r\n value={value ?? \"\"}\r\n onChange={onChange}\r\n row={row}\r\n name={name}\r\n id={id}\r\n sx={{ gap: row ? 2 : 0.5, ...sx }}\r\n {...domRest}\r\n >\r\n {options.map((opt, idx) => {\r\n const v = typeof opt === \"string\" ? opt : opt.value;\r\n const lbl = typeof opt === \"string\" ? opt : opt.label;\r\n const helper = typeof opt === \"string\" ? null : opt.helper;\r\n const optDisabled = disabled || (typeof opt === \"object\" && opt.disabled);\r\n // Per-option deterministic id. Uses the loop index so the\r\n // value type (string, number, object) doesn't constrain the\r\n // shape. Stable across renders for the same option list.\r\n const helperId = helper ? `${baseId}-h-${idx}` : undefined;\r\n const labelNode = helper ? (\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", paddingY: 0.25 }}>\r\n <Box component=\"span\" sx={{ fontSize: \"var(--text-sm)\", color: \"var(--fg)\" }}>\r\n {lbl}\r\n </Box>\r\n <Box\r\n id={helperId}\r\n component=\"span\"\r\n sx={{ fontSize: \"var(--text-xs)\", color: \"var(--fg-subtle)\" }}\r\n >\r\n {helper}\r\n </Box>\r\n </Box>\r\n ) : lbl;\r\n return (\r\n <FormControlLabel\r\n key={v}\r\n value={v}\r\n disabled={optDisabled}\r\n control={\r\n <MuiRadio\r\n size=\"small\"\r\n // MUI v9: aria-describedby routed through slotProps.input\r\n // to land on the inner <input type=\"radio\">, not on the\r\n // root span. SR users hear the helper as a description\r\n // when focusing the radio.\r\n slotProps={helperId ? { input: { \"aria-describedby\": helperId } } : undefined}\r\n sx={{\r\n padding: \"6px\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n }}\r\n />\r\n }\r\n label={labelNode}\r\n sx={{\r\n margin: 0,\r\n alignItems: helper ? \"flex-start\" : \"center\",\r\n \"& .MuiFormControlLabel-label\": { fontSize: \"var(--text-sm)\" },\r\n }}\r\n />\r\n );\r\n })}\r\n </MuiRadioGroup>\r\n );\r\n}\r\n\r\nexport default Radio;\r\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,iBAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,IAAA,GAAAH,sBAAA,CAAAF,OAAA;AAAoC,IAAAM,WAAA,GAAAN,OAAA;AAAA,IAAAO,SAAA;EAAAC,UAAA;EAAAC,UAAA;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAjBA,SAAAP,uBAAAQ,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,SAAAd,wBAAAW,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,SAAAJ,QAAAP,GAAA,sCAAAO,OAAA,wBAAAe,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAvB,GAAA,kBAAAA,GAAA,gBAAAA,GAAA,WAAAA,GAAA,yBAAAsB,MAAA,IAAAtB,GAAA,CAAAwB,WAAA,KAAAF,MAAA,IAAAtB,GAAA,KAAAsB,MAAA,CAAAL,SAAA,qBAAAjB,GAAA,KAAAO,OAAA,CAAAP,GAAA;AAAA,SAAAyB,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAf,MAAA,CAAAe,IAAA,CAAAF,MAAA,OAAAb,MAAA,CAAAgB,qBAAA,QAAAC,OAAA,GAAAjB,MAAA,CAAAgB,qBAAA,CAAAH,MAAA,GAAAC,cAAA,KAAAG,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAnB,MAAA,CAAAE,wBAAA,CAAAW,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,CAAAZ,MAAA,CAAA4B,MAAA,OAAAC,OAAA,WAAA1B,GAAA,IAAA2B,eAAA,CAAAN,MAAA,EAAArB,GAAA,EAAAyB,MAAA,CAAAzB,GAAA,SAAAH,MAAA,CAAA+B,yBAAA,GAAA/B,MAAA,CAAAgC,gBAAA,CAAAR,MAAA,EAAAxB,MAAA,CAAA+B,yBAAA,CAAAH,MAAA,KAAAhB,OAAA,CAAAZ,MAAA,CAAA4B,MAAA,GAAAC,OAAA,WAAA1B,GAAA,IAAAH,MAAA,CAAAC,cAAA,CAAAuB,MAAA,EAAArB,GAAA,EAAAH,MAAA,CAAAE,wBAAA,CAAA0B,MAAA,EAAAzB,GAAA,iBAAAqB,MAAA;AAAA,SAAAM,gBAAA3C,GAAA,EAAAgB,GAAA,EAAA8B,KAAA,IAAA9B,GAAA,GAAA+B,cAAA,CAAA/B,GAAA,OAAAA,GAAA,IAAAhB,GAAA,IAAAa,MAAA,CAAAC,cAAA,CAAAd,GAAA,EAAAgB,GAAA,IAAA8B,KAAA,EAAAA,KAAA,EAAAb,UAAA,QAAAe,YAAA,QAAAC,QAAA,oBAAAjD,GAAA,CAAAgB,GAAA,IAAA8B,KAAA,WAAA9C,GAAA;AAAA,SAAA+C,eAAAG,GAAA,QAAAlC,GAAA,GAAAmC,YAAA,CAAAD,GAAA,oBAAA3C,OAAA,CAAAS,GAAA,iBAAAA,GAAA,GAAAoC,MAAA,CAAApC,GAAA;AAAA,SAAAmC,aAAAE,KAAA,EAAAC,IAAA,QAAA/C,OAAA,CAAA8C,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAA/B,MAAA,CAAAkC,WAAA,OAAAD,IAAA,KAAAE,SAAA,QAAAC,GAAA,GAAAH,IAAA,CAAApC,IAAA,CAAAkC,KAAA,EAAAC,IAAA,oBAAA/C,OAAA,CAAAmD,GAAA,uBAAAA,GAAA,YAAAC,SAAA,4DAAAL,IAAA,gBAAAF,MAAA,GAAAQ,MAAA,EAAAP,KAAA;AAAA,SAAAQ,yBAAApB,MAAA,EAAAqB,QAAA,QAAArB,MAAA,yBAAAJ,MAAA,GAAA0B,6BAAA,CAAAtB,MAAA,EAAAqB,QAAA,OAAA9C,GAAA,EAAAsB,CAAA,MAAAzB,MAAA,CAAAgB,qBAAA,QAAAmC,gBAAA,GAAAnD,MAAA,CAAAgB,qBAAA,CAAAY,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAA0B,gBAAA,CAAAxB,MAAA,EAAAF,CAAA,MAAAtB,GAAA,GAAAgD,gBAAA,CAAA1B,CAAA,OAAAwB,QAAA,CAAAG,OAAA,CAAAjD,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAiD,oBAAA,CAAA/C,IAAA,CAAAsB,MAAA,EAAAzB,GAAA,aAAAqB,MAAA,CAAArB,GAAA,IAAAyB,MAAA,CAAAzB,GAAA,cAAAqB,MAAA;AAAA,SAAA0B,8BAAAtB,MAAA,EAAAqB,QAAA,QAAArB,MAAA,yBAAAJ,MAAA,WAAA8B,UAAA,GAAAtD,MAAA,CAAAe,IAAA,CAAAa,MAAA,OAAAzB,GAAA,EAAAsB,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAA6B,UAAA,CAAA3B,MAAA,EAAAF,CAAA,MAAAtB,GAAA,GAAAmD,UAAA,CAAA7B,CAAA,OAAAwB,QAAA,CAAAG,OAAA,CAAAjD,GAAA,kBAAAqB,MAAA,CAAArB,GAAA,IAAAyB,MAAA,CAAAzB,GAAA,YAAAqB,MAAA;AAwBO,IAAM+B,KAAK,GAAAC,OAAA,CAAAD,KAAA,gBAAGhF,KAAK,CAACkF,UAAU,CAAkD,SAASF,KAAKA,CAAAG,IAAA,EAEnGC,GAAG,EACH;EAAA,IAFEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IAAE7B,KAAK,GAAAyB,IAAA,CAALzB,KAAK;IAAE8B,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IAAEC,UAAU,GAAAN,IAAA,CAAVM,UAAU;IAAEC,EAAE,GAAAP,IAAA,CAAFO,EAAE;IAAKC,IAAI,GAAAlB,wBAAA,CAAAU,IAAA,EAAA1E,SAAA;EAGpE,IAAMmF,KAAK,gBACT,IAAApF,WAAA,CAAAqF,GAAA,EAAC1F,MAAA,WAAQ,EAAA6C,aAAA;IACPoC,GAAG,EAAEA,GAAI;IACTC,OAAO,EAAE,CAAC,CAACA,OAAQ;IACnBC,QAAQ,EAAEA,QAAS;IACnB5B,KAAK,EAAEA,KAAM;IACb8B,QAAQ,EAAEA,QAAS;IACnBM,IAAI,EAAC;IACL;IACA;IACA;IACA;IAAA;IACAC,SAAS,EAAEN,UAAU,GAAG;MAAExB,KAAK,EAAEwB;IAAW,CAAC,GAAGpB,SAAU;IAC1DqB,EAAE,EAAA1C,aAAA;MACAgD,OAAO,EAAE,KAAK;MACd,iBAAiB,EAAE;QACjBC,OAAO,EAAE,yBAAyB;QAClCC,aAAa,EAAE;MACjB;IAAC,GACER,EAAE;EACL,GACEC,IAAI,CACT,CACF;EACD,IAAI,CAACJ,KAAK,EAAE,OAAOK,KAAK;EACxB,oBACE,IAAApF,WAAA,CAAAqF,GAAA,EAACvF,iBAAA,WAAgB;IACf6F,OAAO,EAAEP,KAAM;IACfL,KAAK,EAAEA,KAAM;IACb7B,KAAK,EAAEA,KAAM;IACb8B,QAAQ,EAAEA,QAAS;IACnBE,EAAE,EAAE;MACFU,MAAM,EAAE,CAAC;MACT,8BAA8B,EAAE;QAAEC,QAAQ,EAAE;MAAuB;IACrE;EAAE,CACH,CAAC;AAEN,CAAC,CAAC;;AAEF;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;;AAgBO,SAASC,UAAUA,CAAAC,KAAA,EAUN;EAAA,IATlB7C,KAAK,GAAA6C,KAAA,CAAL7C,KAAK;IACL4B,QAAQ,GAAAiB,KAAA,CAARjB,QAAQ;IAAAkB,aAAA,GAAAD,KAAA,CACRE,OAAO;IAAPA,OAAO,GAAAD,aAAA,cAAG,EAAE,GAAAA,aAAA;IAAAE,SAAA,GAAAH,KAAA,CACZI,GAAG;IAAHA,GAAG,GAAAD,SAAA,cAAG,KAAK,GAAAA,SAAA;IAAAE,cAAA,GAAAL,KAAA,CACXf,QAAQ;IAARA,QAAQ,GAAAoB,cAAA,cAAG,KAAK,GAAAA,cAAA;IAChBC,IAAI,GAAAN,KAAA,CAAJM,IAAI;IACJC,EAAE,GAAAP,KAAA,CAAFO,EAAE;IACFpB,EAAE,GAAAa,KAAA,CAAFb,EAAE;IACCC,IAAI,GAAAlB,wBAAA,CAAA8B,KAAA,EAAA7F,UAAA;EAEP;EACA;EACA;EACA;EACA,IAAMqG,MAAM,GAAG/G,KAAK,CAACgH,KAAK,CAAC,CAAC;;EAE5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAAC,KAAA,GACEtB,IAAI;IADSuB,WAAW,GAAAD,KAAA,CAAlBE,KAAK;IAA0BC,eAAe,GAAAH,KAAA,CAA1BI,SAAS;IAAsBC,OAAO,GAAA7C,wBAAA,CAAAwC,KAAA,EAAAtG,UAAA;EAGlE,oBACE,IAAAH,WAAA,CAAAqF,GAAA,EAACxF,WAAA,WAAa,EAAA2C,aAAA,CAAAA,aAAA;IACZU,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAG;IACnB4B,QAAQ,EAAEA,QAAS;IACnBqB,GAAG,EAAEA,GAAI;IACTE,IAAI,EAAEA,IAAK;IACXC,EAAE,EAAEA,EAAG;IACPpB,EAAE,EAAA1C,aAAA;MAAIuE,GAAG,EAAEZ,GAAG,GAAG,CAAC,GAAG;IAAG,GAAKjB,EAAE;EAAG,GAC9B4B,OAAO;IAAAE,QAAA,EAEVf,OAAO,CAACgB,GAAG,CAAC,UAACC,GAAG,EAAEC,GAAG,EAAK;MACzB,IAAMC,CAAC,GAAG,OAAOF,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAAChE,KAAK;MACnD,IAAMmE,GAAG,GAAG,OAAOH,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAACnC,KAAK;MACrD,IAAMuC,MAAM,GAAG,OAAOJ,GAAG,KAAK,QAAQ,GAAG,IAAI,GAAGA,GAAG,CAACI,MAAM;MAC1D,IAAMC,WAAW,GAAGvC,QAAQ,IAAKrE,OAAA,CAAOuG,GAAG,MAAK,QAAQ,IAAIA,GAAG,CAAClC,QAAS;MACzE;MACA;MACA;MACA,IAAMwC,QAAQ,GAAGF,MAAM,MAAAG,MAAA,CAAMlB,MAAM,SAAAkB,MAAA,CAAMN,GAAG,IAAKtD,SAAS;MAC1D,IAAM6D,SAAS,GAAGJ,MAAM,gBACtB,IAAAtH,WAAA,CAAA2H,IAAA,EAAC5H,IAAA,WAAG;QAACmF,EAAE,EAAE;UAAE0C,OAAO,EAAE,MAAM;UAAEC,aAAa,EAAE,QAAQ;UAAEC,QAAQ,EAAE;QAAK,CAAE;QAAAd,QAAA,gBACpE,IAAAhH,WAAA,CAAAqF,GAAA,EAACtF,IAAA,WAAG;UAACgI,SAAS,EAAC,MAAM;UAAC7C,EAAE,EAAE;YAAEW,QAAQ,EAAE,gBAAgB;YAAEmC,KAAK,EAAE;UAAY,CAAE;UAAAhB,QAAA,EAC1EK;QAAG,CACD,CAAC,eACN,IAAArH,WAAA,CAAAqF,GAAA,EAACtF,IAAA,WAAG;UACFuG,EAAE,EAAEkB,QAAS;UACbO,SAAS,EAAC,MAAM;UAChB7C,EAAE,EAAE;YAAEW,QAAQ,EAAE,gBAAgB;YAAEmC,KAAK,EAAE;UAAmB,CAAE;UAAAhB,QAAA,EAE7DM;QAAM,CACJ,CAAC;MAAA,CACH,CAAC,GACJD,GAAG;MACP,oBACE,IAAArH,WAAA,CAAAqF,GAAA,EAACvF,iBAAA,WAAgB;QAEfoD,KAAK,EAAEkE,CAAE;QACTpC,QAAQ,EAAEuC,WAAY;QACtB5B,OAAO,eACL,IAAA3F,WAAA,CAAAqF,GAAA,EAAC1F,MAAA,WAAQ;UACP2F,IAAI,EAAC;UACL;UACA;UACA;UACA;UAAA;UACAC,SAAS,EAAEiC,QAAQ,GAAG;YAAE/D,KAAK,EAAE;cAAE,kBAAkB,EAAE+D;YAAS;UAAE,CAAC,GAAG3D,SAAU;UAC9EqB,EAAE,EAAE;YACFM,OAAO,EAAE,KAAK;YACd,iBAAiB,EAAE;cACjBC,OAAO,EAAE,yBAAyB;cAClCC,aAAa,EAAE;YACjB;UACF;QAAE,CACH,CACF;QACDX,KAAK,EAAE2C,SAAU;QACjBxC,EAAE,EAAE;UACFU,MAAM,EAAE,CAAC;UACTqC,UAAU,EAAEX,MAAM,GAAG,YAAY,GAAG,QAAQ;UAC5C,8BAA8B,EAAE;YAAEzB,QAAQ,EAAE;UAAiB;QAC/D;MAAE,GAzBGuB,CA0BN,CAAC;IAEN,CAAC;EAAC,EACW,CAAC;AAEpB;AAAC,IAAAc,QAAA,GAAAzD,OAAA,cAEcD,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"Radio.js","names":["React","_interopRequireWildcard","require","_Radio","_interopRequireDefault","_RadioGroup","_FormControlLabel","_Box","_jsxRuntime","_excluded","_excluded2","_excluded3","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","Radio","exports","forwardRef","_ref","ref","checked","onChange","label","disabled","inputProps","sx","rest","radio","jsx","size","slotProps","padding","outline","outlineOffset","control","margin","fontSize","RadioGroup","_ref2","_ref2$options","options","_ref2$row","row","_ref2$disabled","name","id","baseId","useId","_ref3","_fieldError","error","_fieldFullWidth","fullWidth","domRest","gap","children","map","opt","idx","v","lbl","helper","optDisabled","helperId","concat","labelNode","jsxs","display","flexDirection","paddingY","component","color","alignItems","_default"],"sources":["../../../src/lib/v2/components/Radio.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport MuiRadio from \"@mui/material/Radio\";\r\nimport type { RadioProps as MuiRadioProps } from \"@mui/material/Radio\";\r\nimport MuiRadioGroup from \"@mui/material/RadioGroup\";\r\nimport type { RadioGroupProps as MuiRadioGroupProps } from \"@mui/material/RadioGroup\";\r\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\n/**\r\n * Radio - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Radio\". Required by R-Sel.2 (2-3 options\r\n * -> Radio or Segmented).\r\n *\r\n * Low-level: a single controlled radio. For typical usage, prefer\r\n * <RadioGroup options={...}> below.\r\n *\r\n * <Radio checked={v === \"a\"} onChange={() => setV(\"a\")} label=\"Option A\" value=\"a\" />\r\n *\r\n * MUI v9 surface notes (audit Batch 2 external):\r\n * The public `inputProps` is routed internally to slotProps.input -\r\n * MUI v9 idiomatic location for native <input type=\"radio\"/> attributes.\r\n * `inputProps` was deprecated in v6 and REMOVED in v9, so it is no longer\r\n * inherited from MuiRadioProps and must be re-declared here. Consumer code\r\n * passing `inputProps={...}` to v2.Radio is unchanged.\r\n */\r\nexport interface RadioProps extends MuiRadioProps {\r\n label?: React.ReactNode | undefined;\r\n /** Native <input> attributes. Routed to slotProps.input (v9). */\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;\r\n}\r\n\r\nexport const Radio = React.forwardRef<React.ComponentRef<typeof MuiRadio>, RadioProps>(function Radio(\r\n { checked, onChange, label, value, disabled, inputProps, sx, ...rest },\r\n ref,\r\n) {\r\n const radio = (\r\n <MuiRadio\r\n ref={ref}\r\n checked={!!checked}\r\n onChange={onChange}\r\n value={value}\r\n disabled={disabled}\r\n size=\"small\"\r\n // MUI v9: Radio inputProps -> slotProps.input (same migration class\r\n // as Checkbox / Switch / NumberInput). Emitted conditionally so we\r\n // don't pass `slotProps={{ input: undefined }}` when nothing is\r\n // supplied.\r\n slotProps={inputProps ? { input: inputProps } : undefined}\r\n sx={{\r\n padding: \"6px\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n ...sx,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n if (!label) return radio;\r\n return (\r\n <FormControlLabel\r\n control={radio}\r\n label={label}\r\n value={value}\r\n disabled={disabled}\r\n sx={{\r\n margin: 0,\r\n \"& .MuiFormControlLabel-label\": { fontSize: \"var(--text-sm, 13px)\" },\r\n }}\r\n />\r\n );\r\n});\r\n\r\n/**\r\n * RadioGroup - Portnet UI v2\r\n *\r\n * Declarative group of radios taking an `options` array. Use inside\r\n * <Field> for label / hint / error / a11y wiring.\r\n *\r\n * <Field label=\"Type d'opération\" required>\r\n * <RadioGroup\r\n * value={op}\r\n * onChange={e => setOp(e.target.value)}\r\n * options={[\r\n * { value: \"import\", label: \"Importation\" },\r\n * { value: \"export\", label: \"Exportation\" },\r\n * { value: \"transit\", label: \"Transit\", helper: \"Marchandises en transit douanier\" },\r\n * ]}\r\n * />\r\n * </Field>\r\n *\r\n * Layout:\r\n * row={false} (default) -> vertical stack\r\n * row={true} -> horizontal (use only when labels are short)\r\n *\r\n * A11y (audit Batch 5, finding B3-3):\r\n * When an option carries a `helper` text, RadioGroup wires it\r\n * to the inner radio input via aria-describedby - SR users hear\r\n * the helper alongside the label when navigating. Without this\r\n * link the helper is purely visual.\r\n *\r\n * A11y (audit Batch 19, RG-1):\r\n * Used inside <Field>, Field cloneElement-injects presentational /\r\n * validation props onto this group. `error` and `fullWidth` are not valid\r\n * on the role=\"radiogroup\" element (React emits \"non-boolean / unrecognized\r\n * attribute\" warnings), so they are stripped before the spread. The aria-*\r\n * (labelledby / describedby / invalid) and id that Field also injects stay\r\n * valid on the group and are still forwarded.\r\n */\r\nexport interface RadioOption {\r\n value: string | number;\r\n label: React.ReactNode;\r\n helper?: React.ReactNode | undefined;\r\n disabled?: boolean | undefined;\r\n}\r\n\r\nexport type RadioGroupOption = string | RadioOption;\r\n\r\nexport interface RadioGroupProps extends Omit<MuiRadioGroupProps, \"value\" | \"children\"> {\r\n value?: string | number | undefined;\r\n options?: RadioGroupOption[] | undefined;\r\n disabled?: boolean | undefined;\r\n}\r\n\r\nexport function RadioGroup({\r\n value,\r\n onChange,\r\n options = [],\r\n row = false,\r\n disabled = false,\r\n name,\r\n id,\r\n sx,\r\n ...rest\r\n}: RadioGroupProps) {\r\n // R-Ar.1 - stable, SSR-safe, per-instance base for option helper ids.\r\n // Each option that exposes a `helper` derives a deterministic id from\r\n // this base + its index, so the inner <input type=\"radio\">'s\r\n // aria-describedby points at the right <Box> element.\r\n const baseId = React.useId();\r\n\r\n // RG-1 — Field cloneElement-injects presentational/validation props onto this\r\n // child; `error` and `fullWidth` are not valid on the role=\"radiogroup\"\r\n // element and would trigger React attribute warnings if forwarded. Strip just\r\n // those two (object-rest omit); the aria-* / id Field also injects remain in\r\n // `domRest` and stay valid on the group. Cast because these injected props\r\n // are not part of RadioGroupProps.\r\n const { error: _fieldError, fullWidth: _fieldFullWidth, ...domRest } =\r\n rest as typeof rest & { error?: unknown; fullWidth?: unknown };\r\n\r\n return (\r\n <MuiRadioGroup\r\n value={value ?? \"\"}\r\n onChange={onChange}\r\n row={row}\r\n name={name}\r\n id={id}\r\n sx={{ gap: row ? 2 : 0.5, ...sx }}\r\n {...domRest}\r\n >\r\n {options.map((opt, idx) => {\r\n const v = typeof opt === \"string\" ? opt : opt.value;\r\n const lbl = typeof opt === \"string\" ? opt : opt.label;\r\n const helper = typeof opt === \"string\" ? null : opt.helper;\r\n const optDisabled = disabled || (typeof opt === \"object\" && opt.disabled);\r\n // Per-option deterministic id. Uses the loop index so the\r\n // value type (string, number, object) doesn't constrain the\r\n // shape. Stable across renders for the same option list.\r\n const helperId = helper ? `${baseId}-h-${idx}` : undefined;\r\n const labelNode = helper ? (\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", paddingY: 0.25 }}>\r\n <Box component=\"span\" sx={{ fontSize: \"var(--text-sm)\", color: \"var(--fg)\" }}>\r\n {lbl}\r\n </Box>\r\n <Box\r\n id={helperId}\r\n component=\"span\"\r\n sx={{ fontSize: \"var(--text-xs)\", color: \"var(--fg-subtle)\" }}\r\n >\r\n {helper}\r\n </Box>\r\n </Box>\r\n ) : lbl;\r\n return (\r\n <FormControlLabel\r\n key={v}\r\n value={v}\r\n disabled={optDisabled}\r\n control={\r\n <MuiRadio\r\n size=\"small\"\r\n // MUI v9: aria-describedby routed through slotProps.input\r\n // to land on the inner <input type=\"radio\">, not on the\r\n // root span. SR users hear the helper as a description\r\n // when focusing the radio.\r\n slotProps={helperId ? { input: { \"aria-describedby\": helperId } } : undefined}\r\n sx={{\r\n padding: \"6px\",\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n }}\r\n />\r\n }\r\n label={labelNode}\r\n sx={{\r\n margin: 0,\r\n alignItems: helper ? \"flex-start\" : \"center\",\r\n \"& .MuiFormControlLabel-label\": { fontSize: \"var(--text-sm)\" },\r\n }}\r\n />\r\n );\r\n })}\r\n </MuiRadioGroup>\r\n );\r\n}\r\n\r\nexport default Radio;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ import * as React from "react";
2
+ import type { BannerAction } from "./Banner";
3
+ /**
4
+ * SectionErrorBoundary — Portnet UI v2
5
+ *
6
+ * Isolates a subtree so one failing section cannot take down the page.
7
+ *
8
+ * ─────────────────────────────────────────────────────────────────────────────
9
+ * WHY THIS BELONGS IN THE LIBRARY (capability gap G-30)
10
+ *
11
+ * ISO/IEC 25010 § Reliability — Fault tolerance: a system must keep operating
12
+ * despite a fault. React does the opposite by default. An exception thrown during
13
+ * render unmounts the WHOLE tree, so a single section receiving an unexpected
14
+ * payload — an `articles` field arriving as an object where `.map` is called —
15
+ * replaces the entire page with a BLANK SCREEN. Not an error message: nothing.
16
+ * That is the worst possible failure mode, and it is reachable in every GU module
17
+ * whose wire models declare all fields optional precisely because the legacy
18
+ * back-end is not dependable.
19
+ *
20
+ * `ms-ti-fe` wrapped 13 sections in a boundary of its own; `addpe-fe` had none,
21
+ * and neither did this library — so the pattern was one module's private
22
+ * safeguard rather than a platform guarantee. Promoting it makes fault tolerance
23
+ * available by import instead of by copy (R-2.1).
24
+ *
25
+ * NO MUI IMPORT, deliberately. This file depends only on React and `Banner`.
26
+ * That constraint is inherited from the reference implementation and it is
27
+ * load-bearing rather than stylistic: if MUI is what threw, importing MUI in the
28
+ * fallback risks failing the fallback too. Keep it that way.
29
+ * ─────────────────────────────────────────────────────────────────────────────
30
+ *
31
+ * <SectionErrorBoundary title="Marchandises">
32
+ * <MarchandisesSection data={data.marchandises} />
33
+ * </SectionErrorBoundary>
34
+ *
35
+ * Class component because `getDerivedStateFromError` and `componentDidCatch` have
36
+ * no hook equivalent in stable React.
37
+ *
38
+ * WHAT THE USER SEES, and how it diverges from the reference. The reference
39
+ * rendered `error.message` straight into the banner body — so an end user was
40
+ * shown "Cannot read properties of undefined (reading 'map')". Charter §09.3
41
+ * forbids exactly that ("pas de jargon technique exposé à l'utilisateur"), and a
42
+ * raw JS exception is worse than the "Erreur HTTP 422" the charter uses as its
43
+ * DON'T example. So:
44
+ *
45
+ * - production: a stable French sentence + the retry action. Nothing technical.
46
+ * - development: the message and the probable origin component are appended,
47
+ * because that is where a developer reads them.
48
+ * - always: `console.error` with the full component stack, and the optional
49
+ * `onError` hook for an APM breadcrumb — which is how the detail reaches
50
+ * whoever can act on it, rather than the user who cannot.
51
+ */
52
+ export interface SectionErrorBoundaryProps {
53
+ /** Short section label, used to name the failure in the banner and the log. */
54
+ title?: string | undefined;
55
+ /** The subtree to protect. */
56
+ children?: React.ReactNode | undefined;
57
+ /**
58
+ * Optional second affordance, rendered left of "Réessayer" (R-M.6). Use it when
59
+ * retrying is unlikely to help and the user needs a way out — e.g. « Retour à la
60
+ * liste ». The library cannot know the host's navigation, so this is a
61
+ * pass-through rather than a built-in.
62
+ *
63
+ * Only possible since `Banner` gained `secondaryAction` (gap G-19); the
64
+ * reference implementation had no second exit at all.
65
+ */
66
+ secondaryAction?: BannerAction | undefined;
67
+ /**
68
+ * Reporting hook, called once per caught error with the same arguments as
69
+ * `componentDidCatch`. `console.error` is invisible in production, so without
70
+ * this a boundary silently swallows the only signal an operator would get.
71
+ */
72
+ onError?: ((error: Error, info: React.ErrorInfo) => void) | undefined;
73
+ /** Retry button label. Defaults to « Réessayer ». */
74
+ retryLabel?: string | undefined;
75
+ }
76
+ interface SectionErrorBoundaryState {
77
+ error: Error | null;
78
+ info: React.ErrorInfo | null;
79
+ attempt: number;
80
+ }
81
+ declare class SectionErrorBoundary extends React.Component<SectionErrorBoundaryProps, SectionErrorBoundaryState> {
82
+ constructor(props: SectionErrorBoundaryProps);
83
+ static getDerivedStateFromError(error: Error): Partial<SectionErrorBoundaryState>;
84
+ componentDidCatch(error: Error, info: React.ErrorInfo): void;
85
+ handleRetry(): void;
86
+ render(): React.JSX.Element;
87
+ }
88
+ export default SectionErrorBoundary;
89
+ //# sourceMappingURL=SectionErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/SectionErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,MAAM,WAAW,yBAAyB;IACxC,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAC3C;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtE,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,UAAU,yBAAyB;IACjC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAmCD,cAAM,oBAAqB,SAAQ,KAAK,CAAC,SAAS,CAChD,yBAAyB,EACzB,yBAAyB,CAC1B;gBACa,KAAK,EAAE,yBAAyB;IAM5C,MAAM,CAAC,wBAAwB,CAC7B,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,yBAAyB,CAAC;IAI5B,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS;IAmB9D,WAAW;IAIF,MAAM;CA0ChB;AAED,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,221 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _Banner = _interopRequireDefault(require("./Banner"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
+ 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); }
13
+ 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; }
14
+ 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; }
15
+ 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; }
16
+ 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; }
17
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
19
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
20
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
21
+ 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); }
22
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
23
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
24
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
25
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
26
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
27
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
28
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
29
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
30
+ 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); }
31
+ 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; } /**
32
+ * SectionErrorBoundary — Portnet UI v2
33
+ *
34
+ * Isolates a subtree so one failing section cannot take down the page.
35
+ *
36
+ * ─────────────────────────────────────────────────────────────────────────────
37
+ * WHY THIS BELONGS IN THE LIBRARY (capability gap G-30)
38
+ *
39
+ * ISO/IEC 25010 § Reliability — Fault tolerance: a system must keep operating
40
+ * despite a fault. React does the opposite by default. An exception thrown during
41
+ * render unmounts the WHOLE tree, so a single section receiving an unexpected
42
+ * payload — an `articles` field arriving as an object where `.map` is called —
43
+ * replaces the entire page with a BLANK SCREEN. Not an error message: nothing.
44
+ * That is the worst possible failure mode, and it is reachable in every GU module
45
+ * whose wire models declare all fields optional precisely because the legacy
46
+ * back-end is not dependable.
47
+ *
48
+ * `ms-ti-fe` wrapped 13 sections in a boundary of its own; `addpe-fe` had none,
49
+ * and neither did this library — so the pattern was one module's private
50
+ * safeguard rather than a platform guarantee. Promoting it makes fault tolerance
51
+ * available by import instead of by copy (R-2.1).
52
+ *
53
+ * NO MUI IMPORT, deliberately. This file depends only on React and `Banner`.
54
+ * That constraint is inherited from the reference implementation and it is
55
+ * load-bearing rather than stylistic: if MUI is what threw, importing MUI in the
56
+ * fallback risks failing the fallback too. Keep it that way.
57
+ * ─────────────────────────────────────────────────────────────────────────────
58
+ *
59
+ * <SectionErrorBoundary title="Marchandises">
60
+ * <MarchandisesSection data={data.marchandises} />
61
+ * </SectionErrorBoundary>
62
+ *
63
+ * Class component because `getDerivedStateFromError` and `componentDidCatch` have
64
+ * no hook equivalent in stable React.
65
+ *
66
+ * WHAT THE USER SEES, and how it diverges from the reference. The reference
67
+ * rendered `error.message` straight into the banner body — so an end user was
68
+ * shown "Cannot read properties of undefined (reading 'map')". Charter §09.3
69
+ * forbids exactly that ("pas de jargon technique exposé à l'utilisateur"), and a
70
+ * raw JS exception is worse than the "Erreur HTTP 422" the charter uses as its
71
+ * DON'T example. So:
72
+ *
73
+ * - production: a stable French sentence + the retry action. Nothing technical.
74
+ * - development: the message and the probable origin component are appended,
75
+ * because that is where a developer reads them.
76
+ * - always: `console.error` with the full component stack, and the optional
77
+ * `onError` hook for an APM breadcrumb — which is how the detail reaches
78
+ * whoever can act on it, rather than the user who cannot.
79
+ */
80
+ /**
81
+ * Pulls the topmost user component out of a React component stack.
82
+ *
83
+ * Handles BOTH stack formats: React 18 emits `" in Foo (at Bar.tsx:42)"`,
84
+ * React 19 emits `" at Foo (Bar.tsx:42)"`. The reference matched only `in`,
85
+ * so on React 19 — which this library targets — it silently returned null and the
86
+ * origin hint never rendered.
87
+ */
88
+ function extractFirstComponent(stack) {
89
+ if (!stack || typeof stack !== "string") return null;
90
+ var _iterator = _createForOfIteratorHelper(stack.split("\n")),
91
+ _step;
92
+ try {
93
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
94
+ var raw = _step.value;
95
+ var line = raw.trim();
96
+ if (!line) continue;
97
+ var match = /^(?:in|at)\s+([A-Za-z0-9_$.]+)/.exec(line);
98
+ var name = match === null || match === void 0 ? void 0 : match[1];
99
+ // Skip host elements (div, span…) — only a capitalised name is a component.
100
+ if (name && /^[A-Z]/.test(name)) return name;
101
+ }
102
+ } catch (err) {
103
+ _iterator.e(err);
104
+ } finally {
105
+ _iterator.f();
106
+ }
107
+ return null;
108
+ }
109
+ var DETAIL_SX = Object.freeze({
110
+ fontFamily: "var(--font-mono)",
111
+ fontSize: "var(--text-xs)",
112
+ color: "var(--fg-subtle)",
113
+ marginTop: "var(--s-1)",
114
+ // `wordBreak` because an exception message has no spaces to wrap on and would
115
+ // otherwise widen the banner past its container.
116
+ wordBreak: "break-word"
117
+ });
118
+ var SectionErrorBoundary = /*#__PURE__*/function (_React$Component) {
119
+ _inherits(SectionErrorBoundary, _React$Component);
120
+ var _super = _createSuper(SectionErrorBoundary);
121
+ function SectionErrorBoundary(props) {
122
+ var _this;
123
+ _classCallCheck(this, SectionErrorBoundary);
124
+ _this = _super.call(this, props);
125
+ _this.state = {
126
+ error: null,
127
+ info: null,
128
+ attempt: 0
129
+ };
130
+ _this.handleRetry = _this.handleRetry.bind(_assertThisInitialized(_this));
131
+ return _this;
132
+ }
133
+ _createClass(SectionErrorBoundary, [{
134
+ key: "componentDidCatch",
135
+ value: function componentDidCatch(error, info) {
136
+ var _this$props;
137
+ var title = ((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.title) || "Section";
138
+ // eslint-disable-next-line no-console
139
+ console.error("[SectionErrorBoundary:".concat(title, "]"), error, "\nComponent stack:", info === null || info === void 0 ? void 0 : info.componentStack);
140
+ this.setState({
141
+ info: info
142
+ });
143
+ /* Guarded: a throwing reporter must not take down the boundary that exists to
144
+ * stop things from taking each other down. */
145
+ try {
146
+ var _this$props$onError, _this$props2;
147
+ (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);
148
+ } catch (_unused) {
149
+ /* reporter failed — the console.error above is still the record */
150
+ }
151
+ }
152
+ }, {
153
+ key: "handleRetry",
154
+ value: function handleRetry() {
155
+ this.setState(function (s) {
156
+ return {
157
+ error: null,
158
+ info: null,
159
+ attempt: s.attempt + 1
160
+ };
161
+ });
162
+ }
163
+ }, {
164
+ key: "render",
165
+ value: function render() {
166
+ var _ref, _error$message;
167
+ var _this$state = this.state,
168
+ error = _this$state.error,
169
+ info = _this$state.info,
170
+ attempt = _this$state.attempt;
171
+ var _this$props3 = this.props,
172
+ title = _this$props3.title,
173
+ children = _this$props3.children,
174
+ secondaryAction = _this$props3.secondaryAction,
175
+ retryLabel = _this$props3.retryLabel;
176
+ if (!error) {
177
+ /* Re-keyed on retry so React REMOUNTS the subtree rather than reusing the
178
+ * state that led to the throw. Without this, retry re-renders the same
179
+ * broken instance and fails identically. */
180
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
181
+ children: children
182
+ }, attempt);
183
+ }
184
+
185
+ /* Bracket access, not dot: `noPropertyAccessFromIndexSignature` is one of the
186
+ * nine mandatory strict flags, and `process.env` is an index signature. Note
187
+ * that `tsc --noEmit` did not flag this — only `tsconfig.build.json` did, so a
188
+ * green typecheck is not sufficient evidence here. */
189
+ var isDev = process.env["NODE_ENV"] !== "production";
190
+ var originComponent = extractFirstComponent(info === null || info === void 0 ? void 0 : info.componentStack);
191
+ var technicalMessage = String((_ref = (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : error) !== null && _ref !== void 0 ? _ref : "");
192
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Banner["default"], _objectSpread(_objectSpread({
193
+ variant: "error",
194
+ title: "".concat(title || "Section", " \u2014 affichage impossible"),
195
+ action: {
196
+ label: retryLabel || "Réessayer",
197
+ onClick: this.handleRetry
198
+ }
199
+ }, secondaryAction ? {
200
+ secondaryAction: secondaryAction
201
+ } : {}), {}, {
202
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
203
+ children: ["Cette section n'a pas pu s'afficher. Cliquez sur \xAB\xA0", retryLabel || "Réessayer", "\xA0\xBB\xA0; si le probl\xE8me persiste, rechargez la page ou contactez l'administrateur."]
204
+ }), isDev && (technicalMessage || originComponent) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
205
+ style: DETAIL_SX,
206
+ children: [technicalMessage, originComponent ? " \xB7 origine probable : ".concat(originComponent) : ""]
207
+ })]
208
+ }));
209
+ }
210
+ }], [{
211
+ key: "getDerivedStateFromError",
212
+ value: function getDerivedStateFromError(error) {
213
+ return {
214
+ error: error
215
+ };
216
+ }
217
+ }]);
218
+ return SectionErrorBoundary;
219
+ }(React.Component);
220
+ var _default = exports["default"] = SectionErrorBoundary;
221
+ //# sourceMappingURL=SectionErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionErrorBoundary.js","names":["React","_interopRequireWildcard","require","_Banner","_interopRequireDefault","_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","_classCallCheck","instance","Constructor","TypeError","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","Number","_inherits","subClass","superClass","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf","result","NewTarget","Reflect","construct","_possibleConstructorReturn","self","_assertThisInitialized","ReferenceError","sham","Proxy","Boolean","valueOf","e","getPrototypeOf","_createForOfIteratorHelper","allowArrayLike","it","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","_e","f","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","name","from","test","arr","len","arr2","extractFirstComponent","stack","_iterator","split","_step","raw","line","trim","match","exec","DETAIL_SX","freeze","fontFamily","fontSize","color","marginTop","wordBreak","SectionErrorBoundary","_React$Component","_super","_this","state","error","info","attempt","handleRetry","componentDidCatch","_this$props","title","console","concat","componentStack","setState","_this$props$onError","_this$props2","onError","_unused","render","_ref","_error$message","_this$state","_this$props3","children","secondaryAction","retryLabel","jsx","Fragment","isDev","process","env","originComponent","technicalMessage","message","jsxs","variant","action","label","onClick","style","getDerivedStateFromError","Component","_default","exports"],"sources":["../../../src/lib/v2/components/SectionErrorBoundary.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Banner from \"./Banner\";\r\nimport type { BannerAction } from \"./Banner\";\r\n\r\n/**\r\n * SectionErrorBoundary — Portnet UI v2\r\n *\r\n * Isolates a subtree so one failing section cannot take down the page.\r\n *\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n * WHY THIS BELONGS IN THE LIBRARY (capability gap G-30)\r\n *\r\n * ISO/IEC 25010 § Reliability — Fault tolerance: a system must keep operating\r\n * despite a fault. React does the opposite by default. An exception thrown during\r\n * render unmounts the WHOLE tree, so a single section receiving an unexpected\r\n * payload — an `articles` field arriving as an object where `.map` is called —\r\n * replaces the entire page with a BLANK SCREEN. Not an error message: nothing.\r\n * That is the worst possible failure mode, and it is reachable in every GU module\r\n * whose wire models declare all fields optional precisely because the legacy\r\n * back-end is not dependable.\r\n *\r\n * `ms-ti-fe` wrapped 13 sections in a boundary of its own; `addpe-fe` had none,\r\n * and neither did this library — so the pattern was one module's private\r\n * safeguard rather than a platform guarantee. Promoting it makes fault tolerance\r\n * available by import instead of by copy (R-2.1).\r\n *\r\n * NO MUI IMPORT, deliberately. This file depends only on React and `Banner`.\r\n * That constraint is inherited from the reference implementation and it is\r\n * load-bearing rather than stylistic: if MUI is what threw, importing MUI in the\r\n * fallback risks failing the fallback too. Keep it that way.\r\n * ─────────────────────────────────────────────────────────────────────────────\r\n *\r\n * <SectionErrorBoundary title=\"Marchandises\">\r\n * <MarchandisesSection data={data.marchandises} />\r\n * </SectionErrorBoundary>\r\n *\r\n * Class component because `getDerivedStateFromError` and `componentDidCatch` have\r\n * no hook equivalent in stable React.\r\n *\r\n * WHAT THE USER SEES, and how it diverges from the reference. The reference\r\n * rendered `error.message` straight into the banner body — so an end user was\r\n * shown \"Cannot read properties of undefined (reading 'map')\". Charter §09.3\r\n * forbids exactly that (\"pas de jargon technique exposé à l'utilisateur\"), and a\r\n * raw JS exception is worse than the \"Erreur HTTP 422\" the charter uses as its\r\n * DON'T example. So:\r\n *\r\n * - production: a stable French sentence + the retry action. Nothing technical.\r\n * - development: the message and the probable origin component are appended,\r\n * because that is where a developer reads them.\r\n * - always: `console.error` with the full component stack, and the optional\r\n * `onError` hook for an APM breadcrumb — which is how the detail reaches\r\n * whoever can act on it, rather than the user who cannot.\r\n */\r\n\r\nexport interface SectionErrorBoundaryProps {\r\n /** Short section label, used to name the failure in the banner and the log. */\r\n title?: string | undefined;\r\n /** The subtree to protect. */\r\n children?: React.ReactNode | undefined;\r\n /**\r\n * Optional second affordance, rendered left of \"Réessayer\" (R-M.6). Use it when\r\n * retrying is unlikely to help and the user needs a way out — e.g. « Retour à la\r\n * liste ». The library cannot know the host's navigation, so this is a\r\n * pass-through rather than a built-in.\r\n *\r\n * Only possible since `Banner` gained `secondaryAction` (gap G-19); the\r\n * reference implementation had no second exit at all.\r\n */\r\n secondaryAction?: BannerAction | undefined;\r\n /**\r\n * Reporting hook, called once per caught error with the same arguments as\r\n * `componentDidCatch`. `console.error` is invisible in production, so without\r\n * this a boundary silently swallows the only signal an operator would get.\r\n */\r\n onError?: ((error: Error, info: React.ErrorInfo) => void) | undefined;\r\n /** Retry button label. Defaults to « Réessayer ». */\r\n retryLabel?: string | undefined;\r\n}\r\n\r\ninterface SectionErrorBoundaryState {\r\n error: Error | null;\r\n info: React.ErrorInfo | null;\r\n attempt: number;\r\n}\r\n\r\n/**\r\n * Pulls the topmost user component out of a React component stack.\r\n *\r\n * Handles BOTH stack formats: React 18 emits `\" in Foo (at Bar.tsx:42)\"`,\r\n * React 19 emits `\" at Foo (Bar.tsx:42)\"`. The reference matched only `in`,\r\n * so on React 19 — which this library targets — it silently returned null and the\r\n * origin hint never rendered.\r\n */\r\nfunction extractFirstComponent(\r\n stack: string | null | undefined\r\n): string | null {\r\n if (!stack || typeof stack !== \"string\") return null;\r\n for (const raw of stack.split(\"\\n\")) {\r\n const line = raw.trim();\r\n if (!line) continue;\r\n const match = /^(?:in|at)\\s+([A-Za-z0-9_$.]+)/.exec(line);\r\n const name = match?.[1];\r\n // Skip host elements (div, span…) — only a capitalised name is a component.\r\n if (name && /^[A-Z]/.test(name)) return name;\r\n }\r\n return null;\r\n}\r\n\r\nconst DETAIL_SX = Object.freeze({\r\n fontFamily: \"var(--font-mono)\",\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n marginTop: \"var(--s-1)\",\r\n // `wordBreak` because an exception message has no spaces to wrap on and would\r\n // otherwise widen the banner past its container.\r\n wordBreak: \"break-word\" as const,\r\n});\r\n\r\nclass SectionErrorBoundary extends React.Component<\r\n SectionErrorBoundaryProps,\r\n SectionErrorBoundaryState\r\n> {\r\n constructor(props: SectionErrorBoundaryProps) {\r\n super(props);\r\n this.state = { error: null, info: null, attempt: 0 };\r\n this.handleRetry = this.handleRetry.bind(this);\r\n }\r\n\r\n static getDerivedStateFromError(\r\n error: Error\r\n ): Partial<SectionErrorBoundaryState> {\r\n return { error };\r\n }\r\n\r\n override componentDidCatch(error: Error, info: React.ErrorInfo) {\r\n const title = this.props?.title || \"Section\";\r\n // eslint-disable-next-line no-console\r\n console.error(\r\n `[SectionErrorBoundary:${title}]`,\r\n error,\r\n \"\\nComponent stack:\",\r\n info?.componentStack\r\n );\r\n this.setState({ info });\r\n /* Guarded: a throwing reporter must not take down the boundary that exists to\r\n * stop things from taking each other down. */\r\n try {\r\n this.props.onError?.(error, info);\r\n } catch {\r\n /* reporter failed — the console.error above is still the record */\r\n }\r\n }\r\n\r\n handleRetry() {\r\n this.setState((s) => ({ error: null, info: null, attempt: s.attempt + 1 }));\r\n }\r\n\r\n override render() {\r\n const { error, info, attempt } = this.state;\r\n const { title, children, secondaryAction, retryLabel } = this.props;\r\n\r\n if (!error) {\r\n /* Re-keyed on retry so React REMOUNTS the subtree rather than reusing the\r\n * state that led to the throw. Without this, retry re-renders the same\r\n * broken instance and fails identically. */\r\n return <React.Fragment key={attempt}>{children}</React.Fragment>;\r\n }\r\n\r\n /* Bracket access, not dot: `noPropertyAccessFromIndexSignature` is one of the\r\n * nine mandatory strict flags, and `process.env` is an index signature. Note\r\n * that `tsc --noEmit` did not flag this — only `tsconfig.build.json` did, so a\r\n * green typecheck is not sufficient evidence here. */\r\n const isDev = process.env[\"NODE_ENV\"] !== \"production\";\r\n const originComponent = extractFirstComponent(info?.componentStack);\r\n const technicalMessage = String(error?.message ?? error ?? \"\");\r\n\r\n return (\r\n <Banner\r\n variant=\"error\"\r\n title={`${title || \"Section\"} — affichage impossible`}\r\n action={{ label: retryLabel || \"Réessayer\", onClick: this.handleRetry }}\r\n {...(secondaryAction ? { secondaryAction } : {})}\r\n >\r\n {/* §09.3 — [Quoi] + [Comment corriger], no technical detail. The cause\r\n goes to the console and to `onError`, not to the user. */}\r\n <div>\r\n Cette section n'a pas pu s'afficher. Cliquez sur «&nbsp;\r\n {retryLabel || \"Réessayer\"}&nbsp;»&nbsp;; si le problème persiste,\r\n rechargez la page ou contactez l'administrateur.\r\n </div>\r\n {isDev && (technicalMessage || originComponent) && (\r\n <div style={DETAIL_SX}>\r\n {technicalMessage}\r\n {originComponent ? ` · origine probable : ${originComponent}` : \"\"}\r\n </div>\r\n )}\r\n </Banner>\r\n );\r\n }\r\n}\r\n\r\nexport default SectionErrorBoundary;\r\n"],"mappings":"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","ignoreList":[]}
@@ -42,11 +42,11 @@ import type { BoxProps } from "@mui/material/Box";
42
42
  */
43
43
  export type SectionHeaderLevel = "h2" | "h3" | "h4";
44
44
  export interface SectionHeaderProps extends Omit<BoxProps, "title"> {
45
- level?: SectionHeaderLevel;
46
- icon?: React.ReactElement;
47
- title?: React.ReactNode;
48
- subtitle?: React.ReactNode;
49
- action?: React.ReactNode;
45
+ level?: SectionHeaderLevel | undefined;
46
+ icon?: React.ReactElement | undefined;
47
+ title?: React.ReactNode | undefined;
48
+ subtitle?: React.ReactNode | undefined;
49
+ action?: React.ReactNode | undefined;
50
50
  }
51
51
  declare function SectionHeader({ level, icon, title, children, subtitle, action, sx, ...rest }: SectionHeaderProps): React.JSX.Element;
52
52
  export default SectionHeader;
@@ -1 +1 @@
1
- {"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAQpD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;IACjE,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED,iBAAS,aAAa,CAAC,EACrB,KAAY,EACZ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,EAAE,EACF,GAAG,IAAI,EACR,EAAE,kBAAkB,qBA4DpB;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"SectionHeader.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAQpD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC;IACjE,KAAK,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IACtC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;CACtC;AAED,iBAAS,aAAa,CAAC,EACrB,KAAY,EACZ,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,EAAE,EACF,GAAG,IAAI,EACR,EAAE,kBAAkB,qBA4DpB;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SectionHeader.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","_excluded","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","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","TYPOGRAPHY_BY_LEVEL","freeze","h2","fontSize","lineHeight","h3","h4","SectionHeader","_ref","_ref$level","level","icon","title","children","subtitle","action","sx","rest","headingText","typography","jsxs","display","alignItems","gap","jsx","color","marginTop","flex","minWidth","component","margin","fontWeight","_default","exports"],"sources":["../../../src/lib/v2/components/SectionHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * SectionHeader — Portnet UI v2\r\n *\r\n * Charter §03 · standalone section-header primitive. Replaces the\r\n * local AppTitle wrapper that host modules previously maintained\r\n * (audit Batch 2 violation C3 in ms-ti-fe — direct MUI Typography\r\n * with hardcoded styling).\r\n *\r\n * Distinguished from v2.FormSection: SectionHeader is JUST the\r\n * heading row (no wrapping content, no surface chrome). Use it\r\n * when you need to label a region but don't want the FormSection\r\n * card border + padding.\r\n *\r\n * Usage:\r\n *\r\n * <SectionHeader level=\"h3\" icon={<DescriptionIcon />}>\r\n * Données du titre\r\n * </SectionHeader>\r\n *\r\n * <SectionHeader\r\n * level=\"h2\"\r\n * title=\"Documents joints\"\r\n * subtitle=\"Pièces transmises par l'opérateur\"\r\n * action={<Button variant=\"ghost\">Tout télécharger</Button>}\r\n * />\r\n *\r\n * The text can be passed either as `children` (single-line) or as\r\n * `title` + optional `subtitle` (multi-line).\r\n *\r\n * Props:\r\n * level — semantic h-level (\"h2\" / \"h3\" / \"h4\"). Default \"h3\".\r\n * Pick the next level below the page's outermost\r\n * heading (typically the ActionBar h1).\r\n * icon — optional leading icon element.\r\n * title — heading text. Use this OR children.\r\n * children — heading text. Use this OR title.\r\n * subtitle — optional secondary line beneath the title.\r\n * action — optional trailing element (Button, dropdown, etc.).\r\n * sx — escape hatch.\r\n */\r\n\r\nexport type SectionHeaderLevel = \"h2\" | \"h3\" | \"h4\";\r\n\r\nconst TYPOGRAPHY_BY_LEVEL: Record<SectionHeaderLevel, { fontSize: string; lineHeight: string }> = Object.freeze({\r\n h2: { fontSize: \"var(--text-h2)\", lineHeight: \"var(--lh-tight)\" },\r\n h3: { fontSize: \"var(--text-h3)\", lineHeight: \"var(--lh-snug)\" },\r\n h4: { fontSize: \"var(--text-h4)\", lineHeight: \"var(--lh-snug)\" },\r\n});\r\n\r\nexport interface SectionHeaderProps extends Omit<BoxProps, \"title\"> {\r\n level?: SectionHeaderLevel;\r\n icon?: React.ReactElement;\r\n title?: React.ReactNode;\r\n subtitle?: React.ReactNode;\r\n action?: React.ReactNode;\r\n}\r\n\r\nfunction SectionHeader({\r\n level = \"h3\",\r\n icon,\r\n title,\r\n children,\r\n subtitle,\r\n action,\r\n sx,\r\n ...rest\r\n}: SectionHeaderProps) {\r\n const headingText = title ?? children;\r\n const typography = TYPOGRAPHY_BY_LEVEL[level] || TYPOGRAPHY_BY_LEVEL.h3;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: subtitle ? \"flex-start\" : \"center\",\r\n gap: \"var(--s-2)\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {icon && (\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n color: \"var(--fg-muted)\",\r\n display: \"inline-flex\",\r\n // Lift the icon slightly so it lines up with the\r\n // first cap-height of the heading text rather than\r\n // floating at the baseline.\r\n marginTop: subtitle ? \"2px\" : 0,\r\n \"& svg\": { fontSize: 20 },\r\n }}\r\n >\r\n {icon}\r\n </Box>\r\n )}\r\n\r\n <Box sx={{ flex: 1, minWidth: 0 }}>\r\n <Box\r\n component={level}\r\n sx={{\r\n margin: 0,\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n ...typography,\r\n }}\r\n >\r\n {headingText}\r\n </Box>\r\n {subtitle && (\r\n <Box\r\n sx={{\r\n marginTop: \"var(--s-1)\",\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n }}\r\n >\r\n {subtitle}\r\n </Box>\r\n )}\r\n </Box>\r\n\r\n {action && <Box sx={{ flex: \"0 0 auto\" }}>{action}</Box>}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default SectionHeader;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SectionHeader.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","_excluded","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","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","TYPOGRAPHY_BY_LEVEL","freeze","h2","fontSize","lineHeight","h3","h4","SectionHeader","_ref","_ref$level","level","icon","title","children","subtitle","action","sx","rest","headingText","typography","jsxs","display","alignItems","gap","jsx","color","marginTop","flex","minWidth","component","margin","fontWeight","_default","exports"],"sources":["../../../src/lib/v2/components/SectionHeader.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * SectionHeader — Portnet UI v2\r\n *\r\n * Charter §03 · standalone section-header primitive. Replaces the\r\n * local AppTitle wrapper that host modules previously maintained\r\n * (audit Batch 2 violation C3 in ms-ti-fe — direct MUI Typography\r\n * with hardcoded styling).\r\n *\r\n * Distinguished from v2.FormSection: SectionHeader is JUST the\r\n * heading row (no wrapping content, no surface chrome). Use it\r\n * when you need to label a region but don't want the FormSection\r\n * card border + padding.\r\n *\r\n * Usage:\r\n *\r\n * <SectionHeader level=\"h3\" icon={<DescriptionIcon />}>\r\n * Données du titre\r\n * </SectionHeader>\r\n *\r\n * <SectionHeader\r\n * level=\"h2\"\r\n * title=\"Documents joints\"\r\n * subtitle=\"Pièces transmises par l'opérateur\"\r\n * action={<Button variant=\"ghost\">Tout télécharger</Button>}\r\n * />\r\n *\r\n * The text can be passed either as `children` (single-line) or as\r\n * `title` + optional `subtitle` (multi-line).\r\n *\r\n * Props:\r\n * level — semantic h-level (\"h2\" / \"h3\" / \"h4\"). Default \"h3\".\r\n * Pick the next level below the page's outermost\r\n * heading (typically the ActionBar h1).\r\n * icon — optional leading icon element.\r\n * title — heading text. Use this OR children.\r\n * children — heading text. Use this OR title.\r\n * subtitle — optional secondary line beneath the title.\r\n * action — optional trailing element (Button, dropdown, etc.).\r\n * sx — escape hatch.\r\n */\r\n\r\nexport type SectionHeaderLevel = \"h2\" | \"h3\" | \"h4\";\r\n\r\nconst TYPOGRAPHY_BY_LEVEL: Record<SectionHeaderLevel, { fontSize: string; lineHeight: string }> = Object.freeze({\r\n h2: { fontSize: \"var(--text-h2)\", lineHeight: \"var(--lh-tight)\" },\r\n h3: { fontSize: \"var(--text-h3)\", lineHeight: \"var(--lh-snug)\" },\r\n h4: { fontSize: \"var(--text-h4)\", lineHeight: \"var(--lh-snug)\" },\r\n});\r\n\r\nexport interface SectionHeaderProps extends Omit<BoxProps, \"title\"> {\r\n level?: SectionHeaderLevel | undefined;\r\n icon?: React.ReactElement | undefined;\r\n title?: React.ReactNode | undefined;\r\n subtitle?: React.ReactNode | undefined;\r\n action?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction SectionHeader({\r\n level = \"h3\",\r\n icon,\r\n title,\r\n children,\r\n subtitle,\r\n action,\r\n sx,\r\n ...rest\r\n}: SectionHeaderProps) {\r\n const headingText = title ?? children;\r\n const typography = TYPOGRAPHY_BY_LEVEL[level] || TYPOGRAPHY_BY_LEVEL.h3;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: subtitle ? \"flex-start\" : \"center\",\r\n gap: \"var(--s-2)\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {icon && (\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n color: \"var(--fg-muted)\",\r\n display: \"inline-flex\",\r\n // Lift the icon slightly so it lines up with the\r\n // first cap-height of the heading text rather than\r\n // floating at the baseline.\r\n marginTop: subtitle ? \"2px\" : 0,\r\n \"& svg\": { fontSize: 20 },\r\n }}\r\n >\r\n {icon}\r\n </Box>\r\n )}\r\n\r\n <Box sx={{ flex: 1, minWidth: 0 }}>\r\n <Box\r\n component={level}\r\n sx={{\r\n margin: 0,\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n ...typography,\r\n }}\r\n >\r\n {headingText}\r\n </Box>\r\n {subtitle && (\r\n <Box\r\n sx={{\r\n marginTop: \"var(--s-1)\",\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n }}\r\n >\r\n {subtitle}\r\n </Box>\r\n )}\r\n </Box>\r\n\r\n {action && <Box sx={{ flex: \"0 0 auto\" }}>{action}</Box>}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default SectionHeader;\r\n"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAoC,IAAAG,WAAA,GAAAH,OAAA;AAAA,IAAAI,SAAA;AAGpC;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;AAvCA,SAAAF,uBAAAG,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,SAAAT,wBAAAM,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,yBAAArB,MAAA,EAAAsB,QAAA,QAAAtB,MAAA,yBAAAJ,MAAA,GAAA2B,6BAAA,CAAAvB,MAAA,EAAAsB,QAAA,OAAA5C,GAAA,EAAAmB,CAAA,MAAAtB,MAAA,CAAAa,qBAAA,QAAAoC,gBAAA,GAAAjD,MAAA,CAAAa,qBAAA,CAAAY,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAA2B,gBAAA,CAAAzB,MAAA,EAAAF,CAAA,MAAAnB,GAAA,GAAA8C,gBAAA,CAAA3B,CAAA,OAAAyB,QAAA,CAAAG,OAAA,CAAA/C,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAA+C,oBAAA,CAAA7C,IAAA,CAAAmB,MAAA,EAAAtB,GAAA,aAAAkB,MAAA,CAAAlB,GAAA,IAAAsB,MAAA,CAAAtB,GAAA,cAAAkB,MAAA;AAAA,SAAA2B,8BAAAvB,MAAA,EAAAsB,QAAA,QAAAtB,MAAA,yBAAAJ,MAAA,WAAA+B,UAAA,GAAApD,MAAA,CAAAY,IAAA,CAAAa,MAAA,OAAAtB,GAAA,EAAAmB,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAA8B,UAAA,CAAA5B,MAAA,EAAAF,CAAA,MAAAnB,GAAA,GAAAiD,UAAA,CAAA9B,CAAA,OAAAyB,QAAA,CAAAG,OAAA,CAAA/C,GAAA,kBAAAkB,MAAA,CAAAlB,GAAA,IAAAsB,MAAA,CAAAtB,GAAA,YAAAkB,MAAA;AA2CA,IAAMgC,mBAAyF,GAAGrD,MAAM,CAACsD,MAAM,CAAC;EAC9GC,EAAE,EAAE;IAAEC,QAAQ,EAAE,gBAAgB;IAAEC,UAAU,EAAE;EAAkB,CAAC;EACjEC,EAAE,EAAE;IAAEF,QAAQ,EAAE,gBAAgB;IAAEC,UAAU,EAAE;EAAkB,CAAC;EACjEE,EAAE,EAAE;IAAEH,QAAQ,EAAE,gBAAgB;IAAEC,UAAU,EAAE;EAAkB;AAClE,CAAC,CAAC;AAUF,SAASG,aAAaA,CAAAC,IAAA,EASC;EAAA,IAAAC,UAAA,GAAAD,IAAA,CARrBE,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,IAAI,GAAAA,UAAA;IACZE,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,KAAK,GAAAJ,IAAA,CAALI,KAAK;IACLC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IACRC,MAAM,GAAAP,IAAA,CAANO,MAAM;IACNC,EAAE,GAAAR,IAAA,CAAFQ,EAAE;IACCC,IAAI,GAAAxB,wBAAA,CAAAe,IAAA,EAAA3E,SAAA;EAEP,IAAMqF,WAAW,GAAGN,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIC,QAAQ;EACrC,IAAMM,UAAU,GAAInB,mBAAmB,CAACU,KAAK,CAAC,IAAIV,mBAAmB,CAACK,EAAE;EAExE,oBACE,IAAAzE,WAAA,CAAAwF,IAAA,EAAC1F,IAAA,WAAG,EAAAqC,aAAA,CAAAA,aAAA;IACFiD,EAAE,EAAAjD,aAAA;MACAsD,OAAO,EAAM,MAAM;MACnBC,UAAU,EAAGR,QAAQ,GAAG,YAAY,GAAG,QAAQ;MAC/CS,GAAG,EAAU;IAAY,GACtBP,EAAE;EACL,GACEC,IAAI;IAAAJ,QAAA,GAEPF,IAAI,iBACH,IAAA/E,WAAA,CAAA4F,GAAA,EAAC9F,IAAA,WAAG;MACF,eAAY,MAAM;MAClBsF,EAAE,EAAE;QACFS,KAAK,EAAE,iBAAiB;QACxBJ,OAAO,EAAE,aAAa;QACtB;QACA;QACA;QACAK,SAAS,EAAEZ,QAAQ,GAAG,KAAK,GAAG,CAAC;QAC/B,OAAO,EAAE;UAAEX,QAAQ,EAAE;QAAG;MAC1B,CAAE;MAAAU,QAAA,EAEDF;IAAI,CACF,CACN,eAED,IAAA/E,WAAA,CAAAwF,IAAA,EAAC1F,IAAA,WAAG;MAACsF,EAAE,EAAE;QAAEW,IAAI,EAAE,CAAC;QAAEC,QAAQ,EAAE;MAAE,CAAE;MAAAf,QAAA,gBAChC,IAAAjF,WAAA,CAAA4F,GAAA,EAAC9F,IAAA,WAAG;QACFmG,SAAS,EAAEnB,KAAM;QACjBM,EAAE,EAAAjD,aAAA;UACA+D,MAAM,EAAM,CAAC;UACbC,UAAU,EAAE,oBAAoB;UAChCN,KAAK,EAAO;QAAW,GACpBN,UAAU,CACb;QAAAN,QAAA,EAEDK;MAAW,CACT,CAAC,EACLJ,QAAQ,iBACP,IAAAlF,WAAA,CAAA4F,GAAA,EAAC9F,IAAA,WAAG;QACFsF,EAAE,EAAE;UACFU,SAAS,EAAG,YAAY;UACxBvB,QAAQ,EAAI,gBAAgB;UAC5BsB,KAAK,EAAO,iBAAiB;UAC7BrB,UAAU,EAAE;QACd,CAAE;QAAAS,QAAA,EAEDC;MAAQ,CACN,CACN;IAAA,CACE,CAAC,EAELC,MAAM,iBAAI,IAAAnF,WAAA,CAAA4F,GAAA,EAAC9F,IAAA,WAAG;MAACsF,EAAE,EAAE;QAAEW,IAAI,EAAE;MAAW,CAAE;MAAAd,QAAA,EAAEE;IAAM,CAAM,CAAC;EAAA,EACrD,CAAC;AAEV;AAAC,IAAAiB,QAAA,GAAAC,OAAA,cAEc1B,aAAa","ignoreList":[]}