@portnet/ui 6.0.0 → 6.0.2

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 (820) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/dist/esm/index.js +214 -0
  3. package/dist/esm/index.js.map +1 -0
  4. package/dist/esm/v2/__tests__/FieldError.test.js +159 -0
  5. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  7. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/FileCard.test.js +143 -0
  9. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
  11. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
  13. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  14. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
  15. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/MobileRowCard.test.js +332 -0
  17. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
  19. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  20. package/dist/esm/v2/__tests__/apiError.test.js +181 -0
  21. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
  23. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
  24. package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
  25. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
  27. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/labels-merge.test.js +146 -0
  29. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
  30. package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
  31. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
  33. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
  34. package/dist/esm/v2/components/Accordion.js +230 -0
  35. package/dist/esm/v2/components/Accordion.js.map +1 -0
  36. package/dist/esm/v2/components/ActionStrip.js +146 -0
  37. package/dist/esm/v2/components/ActionStrip.js.map +1 -0
  38. package/dist/esm/v2/components/Banner.js +254 -0
  39. package/dist/esm/v2/components/Banner.js.map +1 -0
  40. package/dist/esm/v2/components/Busy.js +97 -0
  41. package/dist/esm/v2/components/Busy.js.map +1 -0
  42. package/dist/esm/v2/components/Button.js +114 -0
  43. package/dist/esm/v2/components/Button.js.map +1 -0
  44. package/dist/esm/v2/components/CategoryTag.js +81 -0
  45. package/dist/esm/v2/components/CategoryTag.js.map +1 -0
  46. package/dist/esm/v2/components/Checkbox.js +124 -0
  47. package/dist/esm/v2/components/Checkbox.js.map +1 -0
  48. package/dist/esm/v2/components/Chip.js +124 -0
  49. package/dist/esm/v2/components/Chip.js.map +1 -0
  50. package/dist/esm/v2/components/Combobox.js +394 -0
  51. package/dist/esm/v2/components/Combobox.js.map +1 -0
  52. package/dist/esm/v2/components/CommandPalette.js +660 -0
  53. package/dist/esm/v2/components/CommandPalette.js.map +1 -0
  54. package/dist/esm/v2/components/ConfirmDialog.js +144 -0
  55. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
  56. package/dist/esm/v2/components/DatePicker.js +200 -0
  57. package/dist/esm/v2/components/DatePicker.js.map +1 -0
  58. package/dist/esm/v2/components/DateRangePicker.js +289 -0
  59. package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
  60. package/dist/esm/v2/components/DateTimePicker.js +215 -0
  61. package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
  62. package/dist/esm/v2/components/Drawer.js +333 -0
  63. package/dist/esm/v2/components/Drawer.js.map +1 -0
  64. package/dist/esm/v2/components/Dropzone.js +540 -0
  65. package/dist/esm/v2/components/Dropzone.js.map +1 -0
  66. package/dist/esm/v2/components/EmptyState.js +102 -0
  67. package/dist/esm/v2/components/EmptyState.js.map +1 -0
  68. package/dist/esm/v2/components/FavoriteToggle.js +127 -0
  69. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
  70. package/dist/esm/v2/components/Field.js +259 -0
  71. package/dist/esm/v2/components/Field.js.map +1 -0
  72. package/dist/esm/v2/components/FieldError.js +124 -0
  73. package/dist/esm/v2/components/FieldError.js.map +1 -0
  74. package/dist/esm/v2/components/FieldHelp.js +202 -0
  75. package/dist/esm/v2/components/FieldHelp.js.map +1 -0
  76. package/dist/esm/v2/components/FileCard.js +162 -0
  77. package/dist/esm/v2/components/FileCard.js.map +1 -0
  78. package/dist/esm/v2/components/FilterTab.js +138 -0
  79. package/dist/esm/v2/components/FilterTab.js.map +1 -0
  80. package/dist/esm/v2/components/ForbiddenPage.js +74 -0
  81. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
  82. package/dist/esm/v2/components/FormGrid.js +179 -0
  83. package/dist/esm/v2/components/FormGrid.js.map +1 -0
  84. package/dist/esm/v2/components/FormikDisplay.js +118 -0
  85. package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
  86. package/dist/esm/v2/components/Input.js +107 -0
  87. package/dist/esm/v2/components/Input.js.map +1 -0
  88. package/dist/esm/v2/components/KPICard.js +237 -0
  89. package/dist/esm/v2/components/KPICard.js.map +1 -0
  90. package/dist/esm/v2/components/KPIStrip.js +84 -0
  91. package/dist/esm/v2/components/KPIStrip.js.map +1 -0
  92. package/dist/esm/v2/components/KV.js +75 -0
  93. package/dist/esm/v2/components/KV.js.map +1 -0
  94. package/dist/esm/v2/components/KVGrid.js +74 -0
  95. package/dist/esm/v2/components/KVGrid.js.map +1 -0
  96. package/dist/esm/v2/components/Layout.js +284 -0
  97. package/dist/esm/v2/components/Layout.js.map +1 -0
  98. package/dist/esm/v2/components/MobileRowCard.js +314 -0
  99. package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
  100. package/dist/esm/v2/components/Modal.js +276 -0
  101. package/dist/esm/v2/components/Modal.js.map +1 -0
  102. package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
  103. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
  104. package/dist/esm/v2/components/NotFoundPage.js +58 -0
  105. package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
  106. package/dist/esm/v2/components/NumberInput.js +309 -0
  107. package/dist/esm/v2/components/NumberInput.js.map +1 -0
  108. package/dist/esm/v2/components/OverflowMenu.js +184 -0
  109. package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
  110. package/dist/esm/v2/components/PdfViewer.js +122 -0
  111. package/dist/esm/v2/components/PdfViewer.js.map +1 -0
  112. package/dist/esm/v2/components/ProgressBar.js +202 -0
  113. package/dist/esm/v2/components/ProgressBar.js.map +1 -0
  114. package/dist/esm/v2/components/Radio.js +228 -0
  115. package/dist/esm/v2/components/Radio.js.map +1 -0
  116. package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
  117. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
  118. package/dist/esm/v2/components/SectionHeader.js +132 -0
  119. package/dist/esm/v2/components/SectionHeader.js.map +1 -0
  120. package/dist/esm/v2/components/Segmented.js +254 -0
  121. package/dist/esm/v2/components/Segmented.js.map +1 -0
  122. package/dist/esm/v2/components/Select.js +490 -0
  123. package/dist/esm/v2/components/Select.js.map +1 -0
  124. package/dist/esm/v2/components/ServerErrorPage.js +74 -0
  125. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
  126. package/dist/esm/v2/components/Skeleton.js +269 -0
  127. package/dist/esm/v2/components/Skeleton.js.map +1 -0
  128. package/dist/esm/v2/components/SkipLink.js +49 -0
  129. package/dist/esm/v2/components/SkipLink.js.map +1 -0
  130. package/dist/esm/v2/components/Spinner.js +69 -0
  131. package/dist/esm/v2/components/Spinner.js.map +1 -0
  132. package/dist/esm/v2/components/Status.js +64 -0
  133. package/dist/esm/v2/components/Status.js.map +1 -0
  134. package/dist/esm/v2/components/Stepper.js +432 -0
  135. package/dist/esm/v2/components/Stepper.js.map +1 -0
  136. package/dist/esm/v2/components/Surface.js +159 -0
  137. package/dist/esm/v2/components/Surface.js.map +1 -0
  138. package/dist/esm/v2/components/Switch.js +128 -0
  139. package/dist/esm/v2/components/Switch.js.map +1 -0
  140. package/dist/esm/v2/components/Tabs.js +150 -0
  141. package/dist/esm/v2/components/Tabs.js.map +1 -0
  142. package/dist/esm/v2/components/TelInput.js +274 -0
  143. package/dist/esm/v2/components/TelInput.js.map +1 -0
  144. package/dist/esm/v2/components/Textarea.js +72 -0
  145. package/dist/esm/v2/components/Textarea.js.map +1 -0
  146. package/dist/esm/v2/components/TimePicker.js +134 -0
  147. package/dist/esm/v2/components/TimePicker.js.map +1 -0
  148. package/dist/esm/v2/components/Toast.js +376 -0
  149. package/dist/esm/v2/components/Toast.js.map +1 -0
  150. package/dist/esm/v2/components/Tooltip.js +161 -0
  151. package/dist/esm/v2/components/Tooltip.js.map +1 -0
  152. package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
  153. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
  154. package/dist/esm/v2/components/_pickerShared.js +60 -0
  155. package/dist/esm/v2/components/_pickerShared.js.map +1 -0
  156. package/dist/esm/v2/components/index.js +271 -0
  157. package/dist/esm/v2/components/index.js.map +1 -0
  158. package/dist/esm/v2/hooks/index.js +10 -0
  159. package/dist/esm/v2/hooks/index.js.map +1 -0
  160. package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
  161. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
  162. package/dist/esm/v2/hooks/useDensity.js +119 -0
  163. package/dist/esm/v2/hooks/useDensity.js.map +1 -0
  164. package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
  165. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
  166. package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
  167. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
  168. package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
  169. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
  170. package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
  171. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
  172. package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
  173. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
  174. package/dist/esm/v2/hooks/useSortedRows.js +32 -0
  175. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
  176. package/dist/esm/v2/hooks/useTabLoading.js +79 -0
  177. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
  178. package/dist/esm/v2/index.js +132 -0
  179. package/dist/esm/v2/index.js.map +1 -0
  180. package/dist/esm/v2/modalContext.js +108 -0
  181. package/dist/esm/v2/modalContext.js.map +1 -0
  182. package/dist/esm/v2/models/favorite.js +2 -0
  183. package/dist/esm/v2/models/favorite.js.map +1 -0
  184. package/dist/esm/v2/models/index.js +12 -0
  185. package/dist/esm/v2/models/index.js.map +1 -0
  186. package/dist/esm/v2/models/personalization.js +2 -0
  187. package/dist/esm/v2/models/personalization.js.map +1 -0
  188. package/dist/esm/v2/models/referentiel.js +2 -0
  189. package/dist/esm/v2/models/referentiel.js.map +1 -0
  190. package/dist/esm/v2/models/savedFilter.js +2 -0
  191. package/dist/esm/v2/models/savedFilter.js.map +1 -0
  192. package/dist/esm/v2/patterns/ActionBar.js +603 -0
  193. package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
  194. package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
  195. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
  196. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
  197. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
  198. package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
  199. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
  200. package/dist/esm/v2/patterns/DataGrid.js +820 -0
  201. package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
  202. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
  203. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
  204. package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
  205. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
  206. package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
  207. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
  208. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
  209. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
  210. package/dist/esm/v2/patterns/FavoriteColumn.js +117 -0
  211. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
  212. package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
  213. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
  214. package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
  215. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
  216. package/dist/esm/v2/patterns/FormPageShell.js +126 -0
  217. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
  218. package/dist/esm/v2/patterns/FormSection.js +190 -0
  219. package/dist/esm/v2/patterns/FormSection.js.map +1 -0
  220. package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
  221. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  222. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
  223. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
  224. package/dist/esm/v2/patterns/FormikCombobox.js +118 -0
  225. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
  226. package/dist/esm/v2/patterns/FormikDatePicker.js +162 -0
  227. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
  228. package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
  229. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  230. package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
  231. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
  232. package/dist/esm/v2/patterns/FormikFile.js +148 -0
  233. package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
  234. package/dist/esm/v2/patterns/FormikInput.js +130 -0
  235. package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
  236. package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
  237. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  238. package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
  239. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
  240. package/dist/esm/v2/patterns/FormikSelect.js +162 -0
  241. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
  242. package/dist/esm/v2/patterns/FormikTextarea.js +79 -0
  243. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
  244. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +212 -0
  245. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
  246. package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
  247. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
  248. package/dist/esm/v2/patterns/PageContent.js +62 -0
  249. package/dist/esm/v2/patterns/PageContent.js.map +1 -0
  250. package/dist/esm/v2/patterns/ReferentielField.js +615 -0
  251. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
  252. package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
  253. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  254. package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
  255. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
  256. package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
  257. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
  258. package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
  259. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
  260. package/dist/esm/v2/patterns/SortableHeader.js +179 -0
  261. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
  262. package/dist/esm/v2/patterns/Tour.js +471 -0
  263. package/dist/esm/v2/patterns/Tour.js.map +1 -0
  264. package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
  265. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
  266. package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
  267. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  268. package/dist/esm/v2/patterns/_sort.js +112 -0
  269. package/dist/esm/v2/patterns/_sort.js.map +1 -0
  270. package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
  271. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
  272. package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
  273. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
  274. package/dist/esm/v2/patterns/index.js +178 -0
  275. package/dist/esm/v2/patterns/index.js.map +1 -0
  276. package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
  277. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
  278. package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
  279. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
  280. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
  281. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
  282. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
  283. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
  284. package/dist/esm/v2/personalization/adapters/index.js +11 -0
  285. package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
  286. package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
  287. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
  288. package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
  289. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
  290. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
  291. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  292. package/dist/esm/v2/personalization/capabilities/index.js +22 -0
  293. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
  294. package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
  295. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
  296. package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
  297. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
  298. package/dist/esm/v2/personalization/index.js +64 -0
  299. package/dist/esm/v2/personalization/index.js.map +1 -0
  300. package/dist/esm/v2/personalization/personalizationContext.js +108 -0
  301. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
  302. package/dist/esm/v2/personalization/schema.js +92 -0
  303. package/dist/esm/v2/personalization/schema.js.map +1 -0
  304. package/dist/esm/v2/personalization/types.js +2 -0
  305. package/dist/esm/v2/personalization/types.js.map +1 -0
  306. package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
  307. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
  308. package/dist/esm/v2/referentiel/index.js +15 -0
  309. package/dist/esm/v2/referentiel/index.js.map +1 -0
  310. package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
  311. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
  312. package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
  313. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
  314. package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
  315. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
  316. package/dist/esm/v2/styles/base.css +425 -0
  317. package/dist/esm/v2/styles/css.d.ts +10 -0
  318. package/dist/esm/v2/styles/index.js +12 -0
  319. package/dist/esm/v2/styles/index.js.map +1 -0
  320. package/dist/esm/v2/theme/_brand.js +64 -0
  321. package/dist/esm/v2/theme/_brand.js.map +1 -0
  322. package/dist/esm/v2/theme/_brandSecondary.js +60 -0
  323. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
  324. package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
  325. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
  326. package/dist/esm/v2/theme/cssVariables.js +198 -0
  327. package/dist/esm/v2/theme/cssVariables.js.map +1 -0
  328. package/dist/esm/v2/theme/index.js +32 -0
  329. package/dist/esm/v2/theme/index.js.map +1 -0
  330. package/dist/esm/v2/tokens/breakpoints.js +106 -0
  331. package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
  332. package/dist/esm/v2/tokens/colors.js +219 -0
  333. package/dist/esm/v2/tokens/colors.js.map +1 -0
  334. package/dist/esm/v2/tokens/density.js +98 -0
  335. package/dist/esm/v2/tokens/density.js.map +1 -0
  336. package/dist/esm/v2/tokens/index.js +80 -0
  337. package/dist/esm/v2/tokens/index.js.map +1 -0
  338. package/dist/esm/v2/tokens/motion.js +88 -0
  339. package/dist/esm/v2/tokens/motion.js.map +1 -0
  340. package/dist/esm/v2/tokens/radius.js +22 -0
  341. package/dist/esm/v2/tokens/radius.js.map +1 -0
  342. package/dist/esm/v2/tokens/shadows.js +40 -0
  343. package/dist/esm/v2/tokens/shadows.js.map +1 -0
  344. package/dist/esm/v2/tokens/spacing.js +51 -0
  345. package/dist/esm/v2/tokens/spacing.js.map +1 -0
  346. package/dist/esm/v2/tokens/state.js +41 -0
  347. package/dist/esm/v2/tokens/state.js.map +1 -0
  348. package/dist/esm/v2/tokens/statusPalette.js +66 -0
  349. package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
  350. package/dist/esm/v2/tokens/tokens.json +153 -0
  351. package/dist/esm/v2/tokens/typography.js +149 -0
  352. package/dist/esm/v2/tokens/typography.js.map +1 -0
  353. package/dist/esm/v2/tokens/zIndex.js +44 -0
  354. package/dist/esm/v2/tokens/zIndex.js.map +1 -0
  355. package/dist/esm/v2/types/common.js +2 -0
  356. package/dist/esm/v2/types/common.js.map +1 -0
  357. package/dist/esm/v2/types/datagrid.js +2 -0
  358. package/dist/esm/v2/types/datagrid.js.map +1 -0
  359. package/dist/esm/v2/types/index.js +12 -0
  360. package/dist/esm/v2/types/index.js.map +1 -0
  361. package/dist/esm/v2/utils/apiError.js +281 -0
  362. package/dist/esm/v2/utils/apiError.js.map +1 -0
  363. package/dist/esm/v2/utils/contrast.js +157 -0
  364. package/dist/esm/v2/utils/contrast.js.map +1 -0
  365. package/dist/esm/v2/utils/cx.js +38 -0
  366. package/dist/esm/v2/utils/cx.js.map +1 -0
  367. package/dist/esm/v2/utils/fileDownload.js +226 -0
  368. package/dist/esm/v2/utils/fileDownload.js.map +1 -0
  369. package/dist/esm/v2/utils/fmtMoney.js +78 -0
  370. package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
  371. package/dist/esm/v2/utils/index.js +43 -0
  372. package/dist/esm/v2/utils/index.js.map +1 -0
  373. package/dist/esm/v2/utils/mergeLabels.js +86 -0
  374. package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
  375. package/dist/esm/v2/utils/networkStatus.js +114 -0
  376. package/dist/esm/v2/utils/networkStatus.js.map +1 -0
  377. package/dist/index.d.ts +5 -2
  378. package/dist/index.d.ts.map +1 -1
  379. package/dist/index.js +35 -0
  380. package/dist/index.js.map +1 -1
  381. package/dist/v2/__tests__/FieldError.test.js +160 -0
  382. package/dist/v2/__tests__/FieldError.test.js.map +1 -0
  383. package/dist/v2/__tests__/FieldWidth.test.js +150 -0
  384. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  385. package/dist/v2/__tests__/FileCard.test.js +144 -0
  386. package/dist/v2/__tests__/FileCard.test.js.map +1 -0
  387. package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
  388. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  389. package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
  390. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  391. package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
  392. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  393. package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
  394. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  395. package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
  396. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  397. package/dist/v2/__tests__/labels-merge.test.js +20 -24
  398. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  399. package/dist/v2/components/Accordion.d.ts +6 -6
  400. package/dist/v2/components/Accordion.d.ts.map +1 -1
  401. package/dist/v2/components/Accordion.js.map +1 -1
  402. package/dist/v2/components/ActionStrip.d.ts +12 -12
  403. package/dist/v2/components/ActionStrip.d.ts.map +1 -1
  404. package/dist/v2/components/ActionStrip.js.map +1 -1
  405. package/dist/v2/components/Banner.d.ts +48 -9
  406. package/dist/v2/components/Banner.d.ts.map +1 -1
  407. package/dist/v2/components/Banner.js +116 -35
  408. package/dist/v2/components/Banner.js.map +1 -1
  409. package/dist/v2/components/Busy.d.ts +3 -3
  410. package/dist/v2/components/Busy.d.ts.map +1 -1
  411. package/dist/v2/components/Busy.js.map +1 -1
  412. package/dist/v2/components/Button.d.ts +6 -6
  413. package/dist/v2/components/Button.d.ts.map +1 -1
  414. package/dist/v2/components/Button.js.map +1 -1
  415. package/dist/v2/components/CategoryTag.d.ts +3 -3
  416. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  417. package/dist/v2/components/CategoryTag.js.map +1 -1
  418. package/dist/v2/components/Checkbox.d.ts +11 -11
  419. package/dist/v2/components/Checkbox.d.ts.map +1 -1
  420. package/dist/v2/components/Checkbox.js.map +1 -1
  421. package/dist/v2/components/Chip.d.ts +8 -8
  422. package/dist/v2/components/Chip.d.ts.map +1 -1
  423. package/dist/v2/components/Chip.js +2 -1
  424. package/dist/v2/components/Chip.js.map +1 -1
  425. package/dist/v2/components/Combobox.d.ts +27 -27
  426. package/dist/v2/components/Combobox.d.ts.map +1 -1
  427. package/dist/v2/components/Combobox.js +3 -2
  428. package/dist/v2/components/Combobox.js.map +1 -1
  429. package/dist/v2/components/CommandPalette.d.ts +20 -20
  430. package/dist/v2/components/CommandPalette.d.ts.map +1 -1
  431. package/dist/v2/components/CommandPalette.js +2 -6
  432. package/dist/v2/components/CommandPalette.js.map +1 -1
  433. package/dist/v2/components/ConfirmDialog.d.ts +13 -13
  434. package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
  435. package/dist/v2/components/ConfirmDialog.js +2 -1
  436. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  437. package/dist/v2/components/DatePicker.d.ts +11 -11
  438. package/dist/v2/components/DatePicker.d.ts.map +1 -1
  439. package/dist/v2/components/DatePicker.js.map +1 -1
  440. package/dist/v2/components/DateRangePicker.d.ts +16 -16
  441. package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
  442. package/dist/v2/components/DateRangePicker.js +2 -1
  443. package/dist/v2/components/DateRangePicker.js.map +1 -1
  444. package/dist/v2/components/DateTimePicker.d.ts +11 -11
  445. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  446. package/dist/v2/components/DateTimePicker.js +37 -4
  447. package/dist/v2/components/DateTimePicker.js.map +1 -1
  448. package/dist/v2/components/Drawer.d.ts +18 -18
  449. package/dist/v2/components/Drawer.d.ts.map +1 -1
  450. package/dist/v2/components/Drawer.js +2 -1
  451. package/dist/v2/components/Drawer.js.map +1 -1
  452. package/dist/v2/components/Dropzone.d.ts +34 -34
  453. package/dist/v2/components/Dropzone.d.ts.map +1 -1
  454. package/dist/v2/components/Dropzone.js +11 -3
  455. package/dist/v2/components/Dropzone.js.map +1 -1
  456. package/dist/v2/components/EmptyState.d.ts +7 -7
  457. package/dist/v2/components/EmptyState.d.ts.map +1 -1
  458. package/dist/v2/components/EmptyState.js.map +1 -1
  459. package/dist/v2/components/FavoriteToggle.d.ts +7 -7
  460. package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
  461. package/dist/v2/components/FavoriteToggle.js +2 -1
  462. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  463. package/dist/v2/components/Field.d.ts +76 -13
  464. package/dist/v2/components/Field.d.ts.map +1 -1
  465. package/dist/v2/components/Field.js +87 -9
  466. package/dist/v2/components/Field.js.map +1 -1
  467. package/dist/v2/components/FieldError.d.ts +78 -0
  468. package/dist/v2/components/FieldError.d.ts.map +1 -0
  469. package/dist/v2/components/FieldError.js +131 -0
  470. package/dist/v2/components/FieldError.js.map +1 -0
  471. package/dist/v2/components/FieldHelp.d.ts +7 -7
  472. package/dist/v2/components/FieldHelp.d.ts.map +1 -1
  473. package/dist/v2/components/FieldHelp.js.map +1 -1
  474. package/dist/v2/components/FileCard.d.ts +75 -0
  475. package/dist/v2/components/FileCard.d.ts.map +1 -0
  476. package/dist/v2/components/FileCard.js +169 -0
  477. package/dist/v2/components/FileCard.js.map +1 -0
  478. package/dist/v2/components/FilterTab.d.ts +9 -9
  479. package/dist/v2/components/FilterTab.d.ts.map +1 -1
  480. package/dist/v2/components/FilterTab.js +2 -1
  481. package/dist/v2/components/FilterTab.js.map +1 -1
  482. package/dist/v2/components/FormGrid.d.ts +9 -4
  483. package/dist/v2/components/FormGrid.d.ts.map +1 -1
  484. package/dist/v2/components/FormGrid.js +11 -1
  485. package/dist/v2/components/FormGrid.js.map +1 -1
  486. package/dist/v2/components/FormikDisplay.d.ts +6 -6
  487. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  488. package/dist/v2/components/FormikDisplay.js.map +1 -1
  489. package/dist/v2/components/Input.d.ts +6 -6
  490. package/dist/v2/components/Input.d.ts.map +1 -1
  491. package/dist/v2/components/Input.js.map +1 -1
  492. package/dist/v2/components/KPICard.d.ts +43 -13
  493. package/dist/v2/components/KPICard.d.ts.map +1 -1
  494. package/dist/v2/components/KPICard.js +53 -14
  495. package/dist/v2/components/KPICard.js.map +1 -1
  496. package/dist/v2/components/KPIStrip.d.ts +68 -0
  497. package/dist/v2/components/KPIStrip.d.ts.map +1 -0
  498. package/dist/v2/components/KPIStrip.js +92 -0
  499. package/dist/v2/components/KPIStrip.js.map +1 -0
  500. package/dist/v2/components/KV.d.ts +3 -3
  501. package/dist/v2/components/KV.d.ts.map +1 -1
  502. package/dist/v2/components/KV.js.map +1 -1
  503. package/dist/v2/components/KVGrid.d.ts +2 -2
  504. package/dist/v2/components/KVGrid.d.ts.map +1 -1
  505. package/dist/v2/components/KVGrid.js +8 -1
  506. package/dist/v2/components/KVGrid.js.map +1 -1
  507. package/dist/v2/components/Layout.d.ts +7 -7
  508. package/dist/v2/components/Layout.d.ts.map +1 -1
  509. package/dist/v2/components/Layout.js.map +1 -1
  510. package/dist/v2/components/MobileRowCard.d.ts +13 -13
  511. package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
  512. package/dist/v2/components/MobileRowCard.js.map +1 -1
  513. package/dist/v2/components/Modal.d.ts +12 -12
  514. package/dist/v2/components/Modal.d.ts.map +1 -1
  515. package/dist/v2/components/Modal.js.map +1 -1
  516. package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
  517. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  518. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  519. package/dist/v2/components/NumberInput.d.ts +14 -14
  520. package/dist/v2/components/NumberInput.d.ts.map +1 -1
  521. package/dist/v2/components/NumberInput.js +7 -6
  522. package/dist/v2/components/NumberInput.js.map +1 -1
  523. package/dist/v2/components/OverflowMenu.d.ts +14 -14
  524. package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
  525. package/dist/v2/components/OverflowMenu.js +4 -8
  526. package/dist/v2/components/OverflowMenu.js.map +1 -1
  527. package/dist/v2/components/PdfViewer.d.ts +9 -9
  528. package/dist/v2/components/PdfViewer.d.ts.map +1 -1
  529. package/dist/v2/components/PdfViewer.js.map +1 -1
  530. package/dist/v2/components/ProgressBar.d.ts +10 -10
  531. package/dist/v2/components/ProgressBar.d.ts.map +1 -1
  532. package/dist/v2/components/ProgressBar.js.map +1 -1
  533. package/dist/v2/components/Radio.d.ts +7 -7
  534. package/dist/v2/components/Radio.d.ts.map +1 -1
  535. package/dist/v2/components/Radio.js.map +1 -1
  536. package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
  537. package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
  538. package/dist/v2/components/SectionErrorBoundary.js +221 -0
  539. package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
  540. package/dist/v2/components/SectionHeader.d.ts +5 -5
  541. package/dist/v2/components/SectionHeader.d.ts.map +1 -1
  542. package/dist/v2/components/SectionHeader.js.map +1 -1
  543. package/dist/v2/components/Segmented.d.ts +11 -11
  544. package/dist/v2/components/Segmented.d.ts.map +1 -1
  545. package/dist/v2/components/Segmented.js.map +1 -1
  546. package/dist/v2/components/Select.d.ts +33 -15
  547. package/dist/v2/components/Select.d.ts.map +1 -1
  548. package/dist/v2/components/Select.js +147 -30
  549. package/dist/v2/components/Select.js.map +1 -1
  550. package/dist/v2/components/ServerErrorPage.d.ts +1 -1
  551. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  552. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  553. package/dist/v2/components/Skeleton.d.ts +15 -15
  554. package/dist/v2/components/Skeleton.d.ts.map +1 -1
  555. package/dist/v2/components/Skeleton.js.map +1 -1
  556. package/dist/v2/components/SkipLink.d.ts +2 -2
  557. package/dist/v2/components/SkipLink.d.ts.map +1 -1
  558. package/dist/v2/components/SkipLink.js.map +1 -1
  559. package/dist/v2/components/Status.d.ts +3 -3
  560. package/dist/v2/components/Status.d.ts.map +1 -1
  561. package/dist/v2/components/Status.js.map +1 -1
  562. package/dist/v2/components/Stepper.d.ts +28 -22
  563. package/dist/v2/components/Stepper.d.ts.map +1 -1
  564. package/dist/v2/components/Stepper.js +31 -5
  565. package/dist/v2/components/Stepper.js.map +1 -1
  566. package/dist/v2/components/Surface.d.ts +94 -0
  567. package/dist/v2/components/Surface.d.ts.map +1 -0
  568. package/dist/v2/components/Surface.js +163 -0
  569. package/dist/v2/components/Surface.js.map +1 -0
  570. package/dist/v2/components/Switch.d.ts +4 -4
  571. package/dist/v2/components/Switch.d.ts.map +1 -1
  572. package/dist/v2/components/Switch.js.map +1 -1
  573. package/dist/v2/components/Tabs.d.ts +6 -6
  574. package/dist/v2/components/Tabs.d.ts.map +1 -1
  575. package/dist/v2/components/Tabs.js.map +1 -1
  576. package/dist/v2/components/TelInput.d.ts +8 -8
  577. package/dist/v2/components/TelInput.d.ts.map +1 -1
  578. package/dist/v2/components/TelInput.js +18 -18
  579. package/dist/v2/components/TelInput.js.map +1 -1
  580. package/dist/v2/components/Textarea.d.ts +1 -1
  581. package/dist/v2/components/Textarea.d.ts.map +1 -1
  582. package/dist/v2/components/Textarea.js.map +1 -1
  583. package/dist/v2/components/TimePicker.d.ts +11 -11
  584. package/dist/v2/components/TimePicker.d.ts.map +1 -1
  585. package/dist/v2/components/TimePicker.js.map +1 -1
  586. package/dist/v2/components/Toast.d.ts +6 -6
  587. package/dist/v2/components/Toast.d.ts.map +1 -1
  588. package/dist/v2/components/Toast.js +9 -8
  589. package/dist/v2/components/Toast.js.map +1 -1
  590. package/dist/v2/components/Tooltip.d.ts +1 -1
  591. package/dist/v2/components/Tooltip.d.ts.map +1 -1
  592. package/dist/v2/components/Tooltip.js.map +1 -1
  593. package/dist/v2/components/index.d.ts +170 -0
  594. package/dist/v2/components/index.d.ts.map +1 -1
  595. package/dist/v2/components/index.js +35 -0
  596. package/dist/v2/components/index.js.map +1 -1
  597. package/dist/v2/index.d.ts.map +1 -1
  598. package/dist/v2/index.js.map +1 -1
  599. package/dist/v2/models/favorite.d.ts +1 -1
  600. package/dist/v2/models/favorite.d.ts.map +1 -1
  601. package/dist/v2/models/favorite.js.map +1 -1
  602. package/dist/v2/models/personalization.d.ts +13 -13
  603. package/dist/v2/models/personalization.d.ts.map +1 -1
  604. package/dist/v2/models/personalization.js.map +1 -1
  605. package/dist/v2/models/referentiel.d.ts +11 -11
  606. package/dist/v2/models/referentiel.d.ts.map +1 -1
  607. package/dist/v2/models/referentiel.js.map +1 -1
  608. package/dist/v2/models/savedFilter.d.ts +8 -8
  609. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  610. package/dist/v2/models/savedFilter.js.map +1 -1
  611. package/dist/v2/patterns/ActionBar.d.ts +33 -33
  612. package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
  613. package/dist/v2/patterns/ActionBar.js +2 -1
  614. package/dist/v2/patterns/ActionBar.js.map +1 -1
  615. package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
  616. package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
  617. package/dist/v2/patterns/BulkActionBar.js +2 -1
  618. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  619. package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
  620. package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
  621. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  622. package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
  623. package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
  624. package/dist/v2/patterns/ColumnsToggle.js +4 -8
  625. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  626. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
  627. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  628. package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
  629. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  630. package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
  631. package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
  632. package/dist/v2/patterns/DataGridToolbar.js +2 -1
  633. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  634. package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
  635. package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
  636. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  637. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
  638. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
  639. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  640. package/dist/v2/patterns/FavoriteColumn.d.ts +15 -15
  641. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  642. package/dist/v2/patterns/FavoriteColumn.js +14 -61
  643. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  644. package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
  645. package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
  646. package/dist/v2/patterns/FavoritesFilter.js +2 -1
  647. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  648. package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
  649. package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
  650. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  651. package/dist/v2/patterns/FormPageShell.d.ts +4 -4
  652. package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
  653. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  654. package/dist/v2/patterns/FormSection.d.ts +19 -8
  655. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  656. package/dist/v2/patterns/FormSection.js +106 -71
  657. package/dist/v2/patterns/FormSection.js.map +1 -1
  658. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  659. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  660. package/dist/v2/patterns/FormikCheckbox.js +147 -0
  661. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  662. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
  663. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  664. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  665. package/dist/v2/patterns/FormikCombobox.d.ts +18 -12
  666. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  667. package/dist/v2/patterns/FormikCombobox.js +5 -2
  668. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  669. package/dist/v2/patterns/FormikDatePicker.d.ts +48 -8
  670. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  671. package/dist/v2/patterns/FormikDatePicker.js +58 -65
  672. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  673. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  674. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  675. package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
  676. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  677. package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
  678. package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
  679. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  680. package/dist/v2/patterns/FormikFile.d.ts +8 -8
  681. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  682. package/dist/v2/patterns/FormikFile.js.map +1 -1
  683. package/dist/v2/patterns/FormikInput.d.ts +51 -6
  684. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  685. package/dist/v2/patterns/FormikInput.js +53 -2
  686. package/dist/v2/patterns/FormikInput.js.map +1 -1
  687. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  688. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  689. package/dist/v2/patterns/FormikRadioGroup.js +148 -0
  690. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  691. package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
  692. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  693. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  694. package/dist/v2/patterns/FormikSelect.d.ts +41 -12
  695. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  696. package/dist/v2/patterns/FormikSelect.js +32 -3
  697. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  698. package/dist/v2/patterns/FormikTextarea.d.ts +14 -6
  699. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  700. package/dist/v2/patterns/FormikTextarea.js +5 -2
  701. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  702. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +21 -8
  703. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  704. package/dist/v2/patterns/KeyboardShortcutsHelp.js +27 -14
  705. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  706. package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
  707. package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
  708. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  709. package/dist/v2/patterns/PageContent.d.ts +3 -3
  710. package/dist/v2/patterns/PageContent.d.ts.map +1 -1
  711. package/dist/v2/patterns/PageContent.js.map +1 -1
  712. package/dist/v2/patterns/ReferentielField.d.ts +49 -49
  713. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  714. package/dist/v2/patterns/ReferentielField.js +2 -1
  715. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  716. package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
  717. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  718. package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
  719. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  720. package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
  721. package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
  722. package/dist/v2/patterns/SaveFilterDialog.js +9 -8
  723. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  724. package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
  725. package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
  726. package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
  727. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  728. package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
  729. package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
  730. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  731. package/dist/v2/patterns/SortableHeader.d.ts +1 -1
  732. package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
  733. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  734. package/dist/v2/patterns/Tour.d.ts +12 -12
  735. package/dist/v2/patterns/Tour.d.ts.map +1 -1
  736. package/dist/v2/patterns/Tour.js +9 -8
  737. package/dist/v2/patterns/Tour.js.map +1 -1
  738. package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
  739. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  740. package/dist/v2/patterns/_dataGridShared.js +37 -3
  741. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  742. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  743. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  744. package/dist/v2/patterns/_pickerSerialisation.js +81 -0
  745. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  746. package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
  747. package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
  748. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  749. package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
  750. package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
  751. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  752. package/dist/v2/patterns/index.d.ts +114 -0
  753. package/dist/v2/patterns/index.d.ts.map +1 -1
  754. package/dist/v2/patterns/index.js +34 -0
  755. package/dist/v2/patterns/index.js.map +1 -1
  756. package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
  757. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  758. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  759. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
  760. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
  761. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  762. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
  763. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
  764. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  765. package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
  766. package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
  767. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  768. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  769. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  770. package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
  771. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  772. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  773. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  774. package/dist/v2/personalization/capabilities/index.js +13 -0
  775. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  776. package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
  777. package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
  778. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  779. package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
  780. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  781. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  782. package/dist/v2/personalization/index.d.ts +18 -0
  783. package/dist/v2/personalization/index.d.ts.map +1 -1
  784. package/dist/v2/personalization/index.js +13 -0
  785. package/dist/v2/personalization/index.js.map +1 -1
  786. package/dist/v2/personalization/schema.d.ts +2 -2
  787. package/dist/v2/personalization/schema.d.ts.map +1 -1
  788. package/dist/v2/personalization/schema.js.map +1 -1
  789. package/dist/v2/personalization/types.d.ts +19 -19
  790. package/dist/v2/personalization/types.d.ts.map +1 -1
  791. package/dist/v2/personalization/types.js.map +1 -1
  792. package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
  793. package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
  794. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  795. package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
  796. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  797. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  798. package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
  799. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  800. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  801. package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
  802. package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
  803. package/dist/v2/theme/createPortnetTheme.js +25 -1
  804. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  805. package/dist/v2/types/datagrid.d.ts +59 -59
  806. package/dist/v2/types/datagrid.d.ts.map +1 -1
  807. package/dist/v2/types/datagrid.js.map +1 -1
  808. package/dist/v2/utils/apiError.d.ts +65 -4
  809. package/dist/v2/utils/apiError.d.ts.map +1 -1
  810. package/dist/v2/utils/apiError.js +69 -6
  811. package/dist/v2/utils/apiError.js.map +1 -1
  812. package/dist/v2/utils/index.d.ts +1 -0
  813. package/dist/v2/utils/index.d.ts.map +1 -1
  814. package/dist/v2/utils/index.js +7 -0
  815. package/dist/v2/utils/index.js.map +1 -1
  816. package/dist/v2/utils/mergeLabels.d.ts +59 -0
  817. package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
  818. package/dist/v2/utils/mergeLabels.js +93 -0
  819. package/dist/v2/utils/mergeLabels.js.map +1 -0
  820. package/package.json +23 -15
@@ -0,0 +1,228 @@
1
+ var _excluded = ["checked", "onChange", "label", "value", "disabled", "inputProps", "sx"],
2
+ _excluded2 = ["value", "onChange", "options", "row", "disabled", "name", "id", "sx"],
3
+ _excluded3 = ["error", "fullWidth"];
4
+ 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); }
5
+ 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; }
6
+ 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; }
7
+ 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; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ 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); }
10
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
11
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12
+ import * as React from "react";
13
+ import MuiRadio from "@mui/material/Radio";
14
+ import MuiRadioGroup from "@mui/material/RadioGroup";
15
+ import FormControlLabel from "@mui/material/FormControlLabel";
16
+ import Box from "@mui/material/Box";
17
+
18
+ /**
19
+ * Radio - Portnet UI v2
20
+ *
21
+ * Charter §03 · Component "Radio". Required by R-Sel.2 (2-3 options
22
+ * -> Radio or Segmented).
23
+ *
24
+ * Low-level: a single controlled radio. For typical usage, prefer
25
+ * <RadioGroup options={...}> below.
26
+ *
27
+ * <Radio checked={v === "a"} onChange={() => setV("a")} label="Option A" value="a" />
28
+ *
29
+ * MUI v9 surface notes (audit Batch 2 external):
30
+ * The public `inputProps` is routed internally to slotProps.input -
31
+ * MUI v9 idiomatic location for native <input type="radio"/> attributes.
32
+ * `inputProps` was deprecated in v6 and REMOVED in v9, so it is no longer
33
+ * inherited from MuiRadioProps and must be re-declared here. Consumer code
34
+ * passing `inputProps={...}` to v2.Radio is unchanged.
35
+ */
36
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
37
+ export var Radio = /*#__PURE__*/React.forwardRef(function Radio(_ref, ref) {
38
+ var checked = _ref.checked,
39
+ onChange = _ref.onChange,
40
+ label = _ref.label,
41
+ value = _ref.value,
42
+ disabled = _ref.disabled,
43
+ inputProps = _ref.inputProps,
44
+ sx = _ref.sx,
45
+ rest = _objectWithoutProperties(_ref, _excluded);
46
+ var radio = /*#__PURE__*/_jsx(MuiRadio, _objectSpread({
47
+ ref: ref,
48
+ checked: !!checked,
49
+ onChange: onChange,
50
+ value: value,
51
+ disabled: disabled,
52
+ size: "small"
53
+ // MUI v9: Radio inputProps -> slotProps.input (same migration class
54
+ // as Checkbox / Switch / NumberInput). Emitted conditionally so we
55
+ // don't pass `slotProps={{ input: undefined }}` when nothing is
56
+ // supplied.
57
+ ,
58
+ slotProps: inputProps ? {
59
+ input: inputProps
60
+ } : undefined,
61
+ sx: _objectSpread({
62
+ padding: "6px",
63
+ "&:focus-visible": {
64
+ outline: "2px solid var(--accent)",
65
+ outlineOffset: "var(--pui-outline-offset)"
66
+ }
67
+ }, sx)
68
+ }, rest));
69
+ if (!label) return radio;
70
+ return /*#__PURE__*/_jsx(FormControlLabel, {
71
+ control: radio,
72
+ label: label,
73
+ value: value,
74
+ disabled: disabled,
75
+ sx: {
76
+ margin: 0,
77
+ "& .MuiFormControlLabel-label": {
78
+ fontSize: "var(--text-sm, 13px)"
79
+ }
80
+ }
81
+ });
82
+ });
83
+
84
+ /**
85
+ * RadioGroup - Portnet UI v2
86
+ *
87
+ * Declarative group of radios taking an `options` array. Use inside
88
+ * <Field> for label / hint / error / a11y wiring.
89
+ *
90
+ * <Field label="Type d'opération" required>
91
+ * <RadioGroup
92
+ * value={op}
93
+ * onChange={e => setOp(e.target.value)}
94
+ * options={[
95
+ * { value: "import", label: "Importation" },
96
+ * { value: "export", label: "Exportation" },
97
+ * { value: "transit", label: "Transit", helper: "Marchandises en transit douanier" },
98
+ * ]}
99
+ * />
100
+ * </Field>
101
+ *
102
+ * Layout:
103
+ * row={false} (default) -> vertical stack
104
+ * row={true} -> horizontal (use only when labels are short)
105
+ *
106
+ * A11y (audit Batch 5, finding B3-3):
107
+ * When an option carries a `helper` text, RadioGroup wires it
108
+ * to the inner radio input via aria-describedby - SR users hear
109
+ * the helper alongside the label when navigating. Without this
110
+ * link the helper is purely visual.
111
+ *
112
+ * A11y (audit Batch 19, RG-1):
113
+ * Used inside <Field>, Field cloneElement-injects presentational /
114
+ * validation props onto this group. `error` and `fullWidth` are not valid
115
+ * on the role="radiogroup" element (React emits "non-boolean / unrecognized
116
+ * attribute" warnings), so they are stripped before the spread. The aria-*
117
+ * (labelledby / describedby / invalid) and id that Field also injects stay
118
+ * valid on the group and are still forwarded.
119
+ */
120
+
121
+ export function RadioGroup(_ref2) {
122
+ var value = _ref2.value,
123
+ onChange = _ref2.onChange,
124
+ _ref2$options = _ref2.options,
125
+ options = _ref2$options === void 0 ? [] : _ref2$options,
126
+ _ref2$row = _ref2.row,
127
+ row = _ref2$row === void 0 ? false : _ref2$row,
128
+ _ref2$disabled = _ref2.disabled,
129
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
130
+ name = _ref2.name,
131
+ id = _ref2.id,
132
+ sx = _ref2.sx,
133
+ rest = _objectWithoutProperties(_ref2, _excluded2);
134
+ // R-Ar.1 - stable, SSR-safe, per-instance base for option helper ids.
135
+ // Each option that exposes a `helper` derives a deterministic id from
136
+ // this base + its index, so the inner <input type="radio">'s
137
+ // aria-describedby points at the right <Box> element.
138
+ var baseId = React.useId();
139
+
140
+ // RG-1 — Field cloneElement-injects presentational/validation props onto this
141
+ // child; `error` and `fullWidth` are not valid on the role="radiogroup"
142
+ // element and would trigger React attribute warnings if forwarded. Strip just
143
+ // those two (object-rest omit); the aria-* / id Field also injects remain in
144
+ // `domRest` and stay valid on the group. Cast because these injected props
145
+ // are not part of RadioGroupProps.
146
+ var _ref3 = rest,
147
+ _fieldError = _ref3.error,
148
+ _fieldFullWidth = _ref3.fullWidth,
149
+ domRest = _objectWithoutProperties(_ref3, _excluded3);
150
+ return /*#__PURE__*/_jsx(MuiRadioGroup, _objectSpread(_objectSpread({
151
+ value: value !== null && value !== void 0 ? value : "",
152
+ onChange: onChange,
153
+ row: row,
154
+ name: name,
155
+ id: id,
156
+ sx: _objectSpread({
157
+ gap: row ? 2 : 0.5
158
+ }, sx)
159
+ }, domRest), {}, {
160
+ children: options.map(function (opt, idx) {
161
+ var v = typeof opt === "string" ? opt : opt.value;
162
+ var lbl = typeof opt === "string" ? opt : opt.label;
163
+ var helper = typeof opt === "string" ? null : opt.helper;
164
+ var optDisabled = disabled || _typeof(opt) === "object" && opt.disabled;
165
+ // Per-option deterministic id. Uses the loop index so the
166
+ // value type (string, number, object) doesn't constrain the
167
+ // shape. Stable across renders for the same option list.
168
+ var helperId = helper ? "".concat(baseId, "-h-").concat(idx) : undefined;
169
+ var labelNode = helper ? /*#__PURE__*/_jsxs(Box, {
170
+ sx: {
171
+ display: "flex",
172
+ flexDirection: "column",
173
+ paddingY: 0.25
174
+ },
175
+ children: [/*#__PURE__*/_jsx(Box, {
176
+ component: "span",
177
+ sx: {
178
+ fontSize: "var(--text-sm)",
179
+ color: "var(--fg)"
180
+ },
181
+ children: lbl
182
+ }), /*#__PURE__*/_jsx(Box, {
183
+ id: helperId,
184
+ component: "span",
185
+ sx: {
186
+ fontSize: "var(--text-xs)",
187
+ color: "var(--fg-subtle)"
188
+ },
189
+ children: helper
190
+ })]
191
+ }) : lbl;
192
+ return /*#__PURE__*/_jsx(FormControlLabel, {
193
+ value: v,
194
+ disabled: optDisabled,
195
+ control: /*#__PURE__*/_jsx(MuiRadio, {
196
+ size: "small"
197
+ // MUI v9: aria-describedby routed through slotProps.input
198
+ // to land on the inner <input type="radio">, not on the
199
+ // root span. SR users hear the helper as a description
200
+ // when focusing the radio.
201
+ ,
202
+ slotProps: helperId ? {
203
+ input: {
204
+ "aria-describedby": helperId
205
+ }
206
+ } : undefined,
207
+ sx: {
208
+ padding: "6px",
209
+ "&:focus-visible": {
210
+ outline: "2px solid var(--accent)",
211
+ outlineOffset: "var(--pui-outline-offset)"
212
+ }
213
+ }
214
+ }),
215
+ label: labelNode,
216
+ sx: {
217
+ margin: 0,
218
+ alignItems: helper ? "flex-start" : "center",
219
+ "& .MuiFormControlLabel-label": {
220
+ fontSize: "var(--text-sm)"
221
+ }
222
+ }
223
+ }, v);
224
+ })
225
+ }));
226
+ }
227
+ export default Radio;
228
+ //# sourceMappingURL=Radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Radio.js","names":["React","MuiRadio","MuiRadioGroup","FormControlLabel","Box","jsx","_jsx","jsxs","_jsxs","Radio","forwardRef","_ref","ref","checked","onChange","label","value","disabled","inputProps","sx","rest","_objectWithoutProperties","_excluded","radio","_objectSpread","size","slotProps","input","undefined","padding","outline","outlineOffset","control","margin","fontSize","RadioGroup","_ref2","_ref2$options","options","_ref2$row","row","_ref2$disabled","name","id","_excluded2","baseId","useId","_ref3","_fieldError","error","_fieldFullWidth","fullWidth","domRest","_excluded3","gap","children","map","opt","idx","v","lbl","helper","optDisabled","_typeof","helperId","concat","labelNode","display","flexDirection","paddingY","component","color","alignItems"],"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,214 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
+ 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); } }
7
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
9
+ 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); }
10
+ 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); }
11
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12
+ 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); }; }
13
+ 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); }
14
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
15
+ 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; } }
16
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
17
+ 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; } } }; }
18
+ 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); }
19
+ 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; }
20
+ import * as React from "react";
21
+ import Banner from "./Banner";
22
+
23
+ /**
24
+ * SectionErrorBoundary — Portnet UI v2
25
+ *
26
+ * Isolates a subtree so one failing section cannot take down the page.
27
+ *
28
+ * ─────────────────────────────────────────────────────────────────────────────
29
+ * WHY THIS BELONGS IN THE LIBRARY (capability gap G-30)
30
+ *
31
+ * ISO/IEC 25010 § Reliability — Fault tolerance: a system must keep operating
32
+ * despite a fault. React does the opposite by default. An exception thrown during
33
+ * render unmounts the WHOLE tree, so a single section receiving an unexpected
34
+ * payload — an `articles` field arriving as an object where `.map` is called —
35
+ * replaces the entire page with a BLANK SCREEN. Not an error message: nothing.
36
+ * That is the worst possible failure mode, and it is reachable in every GU module
37
+ * whose wire models declare all fields optional precisely because the legacy
38
+ * back-end is not dependable.
39
+ *
40
+ * `ms-ti-fe` wrapped 13 sections in a boundary of its own; `addpe-fe` had none,
41
+ * and neither did this library — so the pattern was one module's private
42
+ * safeguard rather than a platform guarantee. Promoting it makes fault tolerance
43
+ * available by import instead of by copy (R-2.1).
44
+ *
45
+ * NO MUI IMPORT, deliberately. This file depends only on React and `Banner`.
46
+ * That constraint is inherited from the reference implementation and it is
47
+ * load-bearing rather than stylistic: if MUI is what threw, importing MUI in the
48
+ * fallback risks failing the fallback too. Keep it that way.
49
+ * ─────────────────────────────────────────────────────────────────────────────
50
+ *
51
+ * <SectionErrorBoundary title="Marchandises">
52
+ * <MarchandisesSection data={data.marchandises} />
53
+ * </SectionErrorBoundary>
54
+ *
55
+ * Class component because `getDerivedStateFromError` and `componentDidCatch` have
56
+ * no hook equivalent in stable React.
57
+ *
58
+ * WHAT THE USER SEES, and how it diverges from the reference. The reference
59
+ * rendered `error.message` straight into the banner body — so an end user was
60
+ * shown "Cannot read properties of undefined (reading 'map')". Charter §09.3
61
+ * forbids exactly that ("pas de jargon technique exposé à l'utilisateur"), and a
62
+ * raw JS exception is worse than the "Erreur HTTP 422" the charter uses as its
63
+ * DON'T example. So:
64
+ *
65
+ * - production: a stable French sentence + the retry action. Nothing technical.
66
+ * - development: the message and the probable origin component are appended,
67
+ * because that is where a developer reads them.
68
+ * - always: `console.error` with the full component stack, and the optional
69
+ * `onError` hook for an APM breadcrumb — which is how the detail reaches
70
+ * whoever can act on it, rather than the user who cannot.
71
+ */
72
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
73
+ /**
74
+ * Pulls the topmost user component out of a React component stack.
75
+ *
76
+ * Handles BOTH stack formats: React 18 emits `" in Foo (at Bar.tsx:42)"`,
77
+ * React 19 emits `" at Foo (Bar.tsx:42)"`. The reference matched only `in`,
78
+ * so on React 19 — which this library targets — it silently returned null and the
79
+ * origin hint never rendered.
80
+ */
81
+ function extractFirstComponent(stack) {
82
+ if (!stack || typeof stack !== "string") return null;
83
+ var _iterator = _createForOfIteratorHelper(stack.split("\n")),
84
+ _step;
85
+ try {
86
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
87
+ var raw = _step.value;
88
+ var line = raw.trim();
89
+ if (!line) continue;
90
+ var match = /^(?:in|at)\s+([A-Za-z0-9_$.]+)/.exec(line);
91
+ var name = match === null || match === void 0 ? void 0 : match[1];
92
+ // Skip host elements (div, span…) — only a capitalised name is a component.
93
+ if (name && /^[A-Z]/.test(name)) return name;
94
+ }
95
+ } catch (err) {
96
+ _iterator.e(err);
97
+ } finally {
98
+ _iterator.f();
99
+ }
100
+ return null;
101
+ }
102
+ var DETAIL_SX = Object.freeze({
103
+ fontFamily: "var(--font-mono)",
104
+ fontSize: "var(--text-xs)",
105
+ color: "var(--fg-subtle)",
106
+ marginTop: "var(--s-1)",
107
+ // `wordBreak` because an exception message has no spaces to wrap on and would
108
+ // otherwise widen the banner past its container.
109
+ wordBreak: "break-word"
110
+ });
111
+ var SectionErrorBoundary = /*#__PURE__*/function (_React$Component) {
112
+ _inherits(SectionErrorBoundary, _React$Component);
113
+ var _super = _createSuper(SectionErrorBoundary);
114
+ function SectionErrorBoundary(props) {
115
+ var _this;
116
+ _classCallCheck(this, SectionErrorBoundary);
117
+ _this = _super.call(this, props);
118
+ _this.state = {
119
+ error: null,
120
+ info: null,
121
+ attempt: 0
122
+ };
123
+ _this.handleRetry = _this.handleRetry.bind(_assertThisInitialized(_this));
124
+ return _this;
125
+ }
126
+ _createClass(SectionErrorBoundary, [{
127
+ key: "componentDidCatch",
128
+ value: function componentDidCatch(error, info) {
129
+ var _this$props;
130
+ var title = ((_this$props = this.props) === null || _this$props === void 0 ? void 0 : _this$props.title) || "Section";
131
+ // eslint-disable-next-line no-console
132
+ console.error("[SectionErrorBoundary:".concat(title, "]"), error, "\nComponent stack:", info === null || info === void 0 ? void 0 : info.componentStack);
133
+ this.setState({
134
+ info: info
135
+ });
136
+ /* Guarded: a throwing reporter must not take down the boundary that exists to
137
+ * stop things from taking each other down. */
138
+ try {
139
+ var _this$props$onError, _this$props2;
140
+ (_this$props$onError = (_this$props2 = this.props).onError) === null || _this$props$onError === void 0 ? void 0 : _this$props$onError.call(_this$props2, error, info);
141
+ } catch (_unused) {
142
+ /* reporter failed — the console.error above is still the record */
143
+ }
144
+ }
145
+ }, {
146
+ key: "handleRetry",
147
+ value: function handleRetry() {
148
+ this.setState(function (s) {
149
+ return {
150
+ error: null,
151
+ info: null,
152
+ attempt: s.attempt + 1
153
+ };
154
+ });
155
+ }
156
+ }, {
157
+ key: "render",
158
+ value: function render() {
159
+ var _ref, _error$message;
160
+ var _this$state = this.state,
161
+ error = _this$state.error,
162
+ info = _this$state.info,
163
+ attempt = _this$state.attempt;
164
+ var _this$props3 = this.props,
165
+ title = _this$props3.title,
166
+ children = _this$props3.children,
167
+ secondaryAction = _this$props3.secondaryAction,
168
+ retryLabel = _this$props3.retryLabel;
169
+ if (!error) {
170
+ /* Re-keyed on retry so React REMOUNTS the subtree rather than reusing the
171
+ * state that led to the throw. Without this, retry re-renders the same
172
+ * broken instance and fails identically. */
173
+ return /*#__PURE__*/_jsx(React.Fragment, {
174
+ children: children
175
+ }, attempt);
176
+ }
177
+
178
+ /* Bracket access, not dot: `noPropertyAccessFromIndexSignature` is one of the
179
+ * nine mandatory strict flags, and `process.env` is an index signature. Note
180
+ * that `tsc --noEmit` did not flag this — only `tsconfig.build.json` did, so a
181
+ * green typecheck is not sufficient evidence here. */
182
+ var isDev = process.env["NODE_ENV"] !== "production";
183
+ var originComponent = extractFirstComponent(info === null || info === void 0 ? void 0 : info.componentStack);
184
+ 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 : "");
185
+ return /*#__PURE__*/_jsxs(Banner, _objectSpread(_objectSpread({
186
+ variant: "error",
187
+ title: "".concat(title || "Section", " \u2014 affichage impossible"),
188
+ action: {
189
+ label: retryLabel || "Réessayer",
190
+ onClick: this.handleRetry
191
+ }
192
+ }, secondaryAction ? {
193
+ secondaryAction: secondaryAction
194
+ } : {}), {}, {
195
+ children: [/*#__PURE__*/_jsxs("div", {
196
+ 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."]
197
+ }), isDev && (technicalMessage || originComponent) && /*#__PURE__*/_jsxs("div", {
198
+ style: DETAIL_SX,
199
+ children: [technicalMessage, originComponent ? " \xB7 origine probable : ".concat(originComponent) : ""]
200
+ })]
201
+ }));
202
+ }
203
+ }], [{
204
+ key: "getDerivedStateFromError",
205
+ value: function getDerivedStateFromError(error) {
206
+ return {
207
+ error: error
208
+ };
209
+ }
210
+ }]);
211
+ return SectionErrorBoundary;
212
+ }(React.Component);
213
+ export default SectionErrorBoundary;
214
+ //# sourceMappingURL=SectionErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionErrorBoundary.js","names":["React","Banner","jsx","_jsx","jsxs","_jsxs","extractFirstComponent","stack","_iterator","_createForOfIteratorHelper","split","_step","s","n","done","raw","value","line","trim","match","exec","name","test","err","e","f","DETAIL_SX","Object","freeze","fontFamily","fontSize","color","marginTop","wordBreak","SectionErrorBoundary","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","state","error","info","attempt","handleRetry","bind","_assertThisInitialized","_createClass","key","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","Fragment","isDev","process","env","originComponent","technicalMessage","String","message","_objectSpread","variant","action","label","onClick","style","getDerivedStateFromError","Component"],"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":[]}
@@ -0,0 +1,132 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ var _excluded = ["level", "icon", "title", "children", "subtitle", "action", "sx"];
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
+ import * as React from "react";
11
+ import Box from "@mui/material/Box";
12
+
13
+ /**
14
+ * SectionHeader — Portnet UI v2
15
+ *
16
+ * Charter §03 · standalone section-header primitive. Replaces the
17
+ * local AppTitle wrapper that host modules previously maintained
18
+ * (audit Batch 2 violation C3 in ms-ti-fe — direct MUI Typography
19
+ * with hardcoded styling).
20
+ *
21
+ * Distinguished from v2.FormSection: SectionHeader is JUST the
22
+ * heading row (no wrapping content, no surface chrome). Use it
23
+ * when you need to label a region but don't want the FormSection
24
+ * card border + padding.
25
+ *
26
+ * Usage:
27
+ *
28
+ * <SectionHeader level="h3" icon={<DescriptionIcon />}>
29
+ * Données du titre
30
+ * </SectionHeader>
31
+ *
32
+ * <SectionHeader
33
+ * level="h2"
34
+ * title="Documents joints"
35
+ * subtitle="Pièces transmises par l'opérateur"
36
+ * action={<Button variant="ghost">Tout télécharger</Button>}
37
+ * />
38
+ *
39
+ * The text can be passed either as `children` (single-line) or as
40
+ * `title` + optional `subtitle` (multi-line).
41
+ *
42
+ * Props:
43
+ * level — semantic h-level ("h2" / "h3" / "h4"). Default "h3".
44
+ * Pick the next level below the page's outermost
45
+ * heading (typically the ActionBar h1).
46
+ * icon — optional leading icon element.
47
+ * title — heading text. Use this OR children.
48
+ * children — heading text. Use this OR title.
49
+ * subtitle — optional secondary line beneath the title.
50
+ * action — optional trailing element (Button, dropdown, etc.).
51
+ * sx — escape hatch.
52
+ */
53
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
54
+ var TYPOGRAPHY_BY_LEVEL = Object.freeze({
55
+ h2: {
56
+ fontSize: "var(--text-h2)",
57
+ lineHeight: "var(--lh-tight)"
58
+ },
59
+ h3: {
60
+ fontSize: "var(--text-h3)",
61
+ lineHeight: "var(--lh-snug)"
62
+ },
63
+ h4: {
64
+ fontSize: "var(--text-h4)",
65
+ lineHeight: "var(--lh-snug)"
66
+ }
67
+ });
68
+ function SectionHeader(_ref) {
69
+ var _ref$level = _ref.level,
70
+ level = _ref$level === void 0 ? "h3" : _ref$level,
71
+ icon = _ref.icon,
72
+ title = _ref.title,
73
+ children = _ref.children,
74
+ subtitle = _ref.subtitle,
75
+ action = _ref.action,
76
+ sx = _ref.sx,
77
+ rest = _objectWithoutProperties(_ref, _excluded);
78
+ var headingText = title !== null && title !== void 0 ? title : children;
79
+ var typography = TYPOGRAPHY_BY_LEVEL[level] || TYPOGRAPHY_BY_LEVEL.h3;
80
+ return /*#__PURE__*/_jsxs(Box, _objectSpread(_objectSpread({
81
+ sx: _objectSpread({
82
+ display: "flex",
83
+ alignItems: subtitle ? "flex-start" : "center",
84
+ gap: "var(--s-2)"
85
+ }, sx)
86
+ }, rest), {}, {
87
+ children: [icon && /*#__PURE__*/_jsx(Box, {
88
+ "aria-hidden": "true",
89
+ sx: {
90
+ color: "var(--fg-muted)",
91
+ display: "inline-flex",
92
+ // Lift the icon slightly so it lines up with the
93
+ // first cap-height of the heading text rather than
94
+ // floating at the baseline.
95
+ marginTop: subtitle ? "2px" : 0,
96
+ "& svg": {
97
+ fontSize: 20
98
+ }
99
+ },
100
+ children: icon
101
+ }), /*#__PURE__*/_jsxs(Box, {
102
+ sx: {
103
+ flex: 1,
104
+ minWidth: 0
105
+ },
106
+ children: [/*#__PURE__*/_jsx(Box, {
107
+ component: level,
108
+ sx: _objectSpread({
109
+ margin: 0,
110
+ fontWeight: "var(--fw-semibold)",
111
+ color: "var(--fg)"
112
+ }, typography),
113
+ children: headingText
114
+ }), subtitle && /*#__PURE__*/_jsx(Box, {
115
+ sx: {
116
+ marginTop: "var(--s-1)",
117
+ fontSize: "var(--text-sm)",
118
+ color: "var(--fg-muted)",
119
+ lineHeight: "var(--lh-normal)"
120
+ },
121
+ children: subtitle
122
+ })]
123
+ }), action && /*#__PURE__*/_jsx(Box, {
124
+ sx: {
125
+ flex: "0 0 auto"
126
+ },
127
+ children: action
128
+ })]
129
+ }));
130
+ }
131
+ export default SectionHeader;
132
+ //# sourceMappingURL=SectionHeader.js.map