@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 @@
1
+ {"version":3,"file":"useFocusTrap.test.js","names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","_catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","React","render","waitFor","cleanup","screen","userEvent","useFocusTrap","jsx","_jsx","jsxs","_jsxs","realGetClientRects","Element","getClientRects","beforeAll","rect","x","y","top","left","right","bottom","width","height","toJSON","list","assign","item","_list$i","afterAll","Trapped","_ref","children","_ref$active","active","containerProps","ref","useRef","isFocused","el","expect","toHaveFocus","_unused","afterEach","describe","test","_callee","_callee$","_context","getByRole","_callee2","_callee2$","_context2","autoFocus","_callee3","_callee3$","_context3","not","toThrow","_callee4","_callee4$","_context4","tab","_callee5","_callee5$","_context5","shift","_callee6","_callee6$","_context6","disabled","_callee7","_callee7$","_context7","NestedHarness","_ref9","innerActive","_callee8","_render","rerender","_callee8$","_context8","_callee9","_render2","outer1","outer2","_callee9$","_context9","toBe"],"sources":["../../../../src/lib/v2/__tests__/useFocusTrap.test.tsx"],"sourcesContent":["import \"@testing-library/jest-dom\";\r\nimport * as React from \"react\";\r\nimport { render, waitFor, cleanup, screen } from \"@testing-library/react\";\r\nimport userEvent from \"@testing-library/user-event\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/* ── jsdom LAYOUT SHIM — REQUIRED, NOT A CONVENIENCE ────────────────────────\r\n *\r\n * Without this, EVERY test in this file fails at its first `waitFor`, with focus\r\n * sitting on <body>. The cause is not the hook:\r\n *\r\n * `useFocusTrap.isVisuallyFocusable` rejects an element whose\r\n * `getClientRects()` is empty — a cheap, correct test for `display:none` and\r\n * `visibility:hidden` in a real browser.\r\n *\r\n * jsdom PERFORMS NO LAYOUT. `getClientRects()` returns an empty list for every\r\n * element, always. So the filter discards all candidates, `getFocusable()`\r\n * returns `[]`, nothing is focused, and all eight assertions fail for one\r\n * reason that has nothing to do with focus management.\r\n *\r\n * This shim gives every element a non-zero rect so the visibility filter behaves\r\n * as it does in a browser. It does NOT weaken the tests: the hook's other\r\n * exclusions — `disabled`, `aria-disabled`, and the ancestor walk for `hidden` /\r\n * `aria-hidden` / `inert` — are all ATTRIBUTE-based, work correctly in jsdom, and\r\n * remain fully exercised (see the \"disabled / aria-hidden filtering\" block).\r\n *\r\n * ⚠ Diagnosed during the procuration-portnet-fe certification audit, where these\r\n * eight failures were initially suspected of being a real WCAG R-M.2 breach\r\n * across all consuming modules. They were not. Do NOT \"fix\" this by relaxing the\r\n * rect check in the hook — that check is what stops a trap focusing an invisible\r\n * control in production.\r\n *\r\n * Restored in `afterAll` so the patch cannot leak into other suites. */\r\nconst realGetClientRects = Element.prototype.getClientRects;\r\n\r\nbeforeAll(() => {\r\n Element.prototype.getClientRects = function getClientRects(this: Element) {\r\n const rect: DOMRect = {\r\n x: 0,\r\n y: 0,\r\n top: 0,\r\n left: 0,\r\n right: 10,\r\n bottom: 10,\r\n width: 10,\r\n height: 10,\r\n toJSON: () => ({}),\r\n };\r\n const list = [rect];\r\n return Object.assign(list, {\r\n item: (i: number): DOMRect | null => list[i] ?? null,\r\n }) as unknown as DOMRectList;\r\n };\r\n});\r\n\r\nafterAll(() => {\r\n Element.prototype.getClientRects = realGetClientRects;\r\n});\r\n\r\n/**\r\n * Smoke + contract tests for the Batch 3 useFocusTrap refactor.\r\n *\r\n * Test harness — a minimal trap container component. Defaults to\r\n * active=true so tests don't have to flip props.\r\n */\r\ntype ContainerProps = React.HTMLAttributes<HTMLDivElement> & {\r\n [key: `data-${string}`]: string;\r\n};\r\n\r\ninterface TrappedProps {\r\n children?: React.ReactNode;\r\n active?: boolean;\r\n containerProps?: ContainerProps;\r\n}\r\n\r\nfunction Trapped({\r\n children,\r\n active = true,\r\n containerProps,\r\n}: TrappedProps): React.JSX.Element {\r\n const ref = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(ref, active);\r\n return (\r\n <div ref={ref} {...containerProps}>\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\n/**\r\n * Returns whether `el` currently has focus, without touching\r\n * document.activeElement directly (testing-library/no-node-access) —\r\n * delegates to jest-dom's toHaveFocus() matcher and converts its pass/fail\r\n * into a boolean so several candidates can be checked in a single\r\n * \"focus is on ONE of these\" assertion (see the \"outer trap resumes\" test).\r\n */\r\nfunction isFocused(el: HTMLElement): boolean {\r\n try {\r\n expect(el).toHaveFocus();\r\n return true;\r\n } catch {\r\n return false;\r\n }\r\n}\r\n\r\nafterEach(() => {\r\n cleanup();\r\n});\r\n\r\ndescribe(\"useFocusTrap — initial focus\", () => {\r\n test(\"focuses the first focusable element when activated\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"[autofocus] priority wins over the first focusable\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button autoFocus>Auto</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Auto\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"[data-autofocus] priority is honoured (alternative attribute)\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button data-autofocus>Marker</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Marker\" })).toHaveFocus();\r\n });\r\n });\r\n\r\n test(\"does not crash when the trap container is empty\", () => {\r\n expect(() =>\r\n render(<Trapped containerProps={{ \"data-testid\": \"empty\" }} />)\r\n ).not.toThrow();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — Tab cycling\", () => {\r\n test(\"Tab cycles forward and wraps to the first element\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n <button>Third</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Second\" })).toHaveFocus();\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n\r\n // Wrap from last to first\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n test(\"Shift+Tab from the first wraps to the last\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Second</button>\r\n <button>Last</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab({ shift: true });\r\n expect(screen.getByRole(\"button\", { name: \"Last\" })).toHaveFocus();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — disabled / aria-hidden filtering\", () => {\r\n test(\"disabled buttons are skipped during cycling\", async () => {\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button disabled>Disabled</button>\r\n <button>Third</button>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n // Tab should jump from First → Third, skipping Disabled.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n });\r\n\r\n test(\"[aria-hidden=true] subtree is excluded from the cycle boundary\", async () => {\r\n /* WHY THE aria-hidden SUBTREE IS LAST, AND WHY THIS ASSERTS THE WRAP\r\n *\r\n * This test previously placed the aria-hidden subtree in the MIDDLE and\r\n * expected a single Tab to jump First → Third. It failed, and the hook was\r\n * not at fault: of the three attributes isVisuallyFocusable walks,\r\n * `hidden` and `inert` remove an element from the NATIVE tab order, but\r\n * `aria-hidden` does NOT — per spec it annotates the accessibility tree\r\n * only. useFocusTrap intercepts Tab at the cycle BOUNDARIES (first/last)\r\n * and defers mid-cycle moves to the browser, so a native Tab lands on the\r\n * aria-hidden button no matter what getFocusable() returned.\r\n *\r\n * A focusable control inside aria-hidden=\"true\" is a CONTENT defect (axe\r\n * `aria-hidden-focus`); use `inert` (or `hidden`) to take a subtree out of\r\n * interaction. What the filter genuinely guarantees is that such an element\r\n * is never treated as the cycle's first/last — so the trap never DELIVERS\r\n * focus into it. That is what is asserted here: with the subtree last,\r\n * `last` is still \"Third\", so Tab from Third wraps to First instead of\r\n * proceeding natively into \"Hidden\".\r\n *\r\n * Do NOT restore the mid-cycle form without also converting the hook to\r\n * intercept every Tab — see the boundary-scope note in useFocusTrap.ts. */\r\n render(\r\n <Trapped>\r\n <button>First</button>\r\n <button>Third</button>\r\n <div aria-hidden=\"true\">\r\n <button>Hidden</button>\r\n </div>\r\n </Trapped>\r\n );\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Third\" })).toHaveFocus();\r\n\r\n // \"Third\" is the LAST focusable the trap recognises: the aria-hidden\r\n // button is filtered out, so Tab wraps rather than entering it.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"First\" })).toHaveFocus();\r\n });\r\n});\r\n\r\ndescribe(\"useFocusTrap — nested traps (Batch 3 stack contract)\", () => {\r\n /**\r\n * Nested-trap harness. Outer trap is always-active; inner trap is\r\n * controlled by `innerActive`. When the inner mounts, Tab cycles\r\n * inside it; when the inner unmounts, the outer trap resumes.\r\n */\r\n interface NestedHarnessProps {\r\n innerActive: boolean;\r\n }\r\n\r\n function NestedHarness({ innerActive }: NestedHarnessProps): React.JSX.Element {\r\n return (\r\n <Trapped>\r\n <button>Outer-1</button>\r\n <button>Outer-2</button>\r\n {innerActive && (\r\n <Trapped containerProps={{ \"data-testid\": \"inner\" }}>\r\n <button>Inner-A</button>\r\n <button>Inner-B</button>\r\n </Trapped>\r\n )}\r\n </Trapped>\r\n );\r\n }\r\n\r\n test(\"inner trap takes over Tab cycling when active\", async () => {\r\n const { rerender } = render(<NestedHarness innerActive={false} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Outer-1\" })).toHaveFocus();\r\n });\r\n\r\n // Mount the inner trap — it should grab focus and confine Tab.\r\n rerender(<NestedHarness innerActive={true} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Inner-B\" })).toHaveFocus();\r\n\r\n // Wrap inside the inner trap, NOT escape to Outer-2.\r\n await userEvent.tab();\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n test(\"outer trap resumes after inner unmounts\", async () => {\r\n const { rerender } = render(<NestedHarness innerActive={true} />);\r\n await waitFor(() => {\r\n expect(screen.getByRole(\"button\", { name: \"Inner-A\" })).toHaveFocus();\r\n });\r\n\r\n // Unmount inner. Outer trap should resume duty.\r\n rerender(<NestedHarness innerActive={false} />);\r\n\r\n // Tab inside the outer container — must stay inside, not leak to body.\r\n // (We don't assert the exact focused element after rerender because\r\n // restoration depends on whether the previously-focused element is\r\n // still mounted; we DO assert that focus lands on one of the outer\r\n // buttons — isFocused() catches both \"lost to body\" and \"landed\r\n // somewhere unexpected\" in one check, without reading\r\n // document.activeElement directly.)\r\n await userEvent.tab();\r\n const outer1 = screen.getByRole(\"button\", { name: \"Outer-1\" });\r\n const outer2 = screen.getByRole(\"button\", { name: \"Outer-2\" });\r\n expect(isFocused(outer1) || isFocused(outer2)).toBe(true);\r\n });\r\n});\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,230 @@
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 = ["children", "defaultOpen", "open", "onChange", "mode", "sx"],
3
+ _excluded2 = ["id", "title", "badge", "icon", "children", "sx"];
4
+ 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; }
5
+ 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; }
6
+ 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; }
7
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
8
+ 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); }
9
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
11
+ 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); }
12
+ 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; }
13
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
14
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
+ 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; }
16
+ 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; }
17
+ import * as React from "react";
18
+ import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
19
+ import Box from "@mui/material/Box";
20
+
21
+ /**
22
+ * Accordion — Portnet UI v2
23
+ *
24
+ * Charter §03 · atomic disclosure primitive. Replaces the local
25
+ * AppAccordion wrapper that host modules previously maintained
26
+ * (audit Batch 2 violation C1 in ms-ti-fe — direct MUI Accordion
27
+ * with no tokens / a11y harmonisation).
28
+ *
29
+ * Implementation uses native <details>/<summary> elements so the
30
+ * keyboard interaction (Enter/Space to toggle, Tab to enter
31
+ * content) and ARIA role/state mapping come from the browser
32
+ * (WCAG 2.1 SC 4.1.2, R-Ar.1).
33
+ *
34
+ * Compound-component API:
35
+ *
36
+ * <Accordion defaultOpen={["general"]}>
37
+ * <Accordion.Item id="general" title="Informations générales">
38
+ * … content …
39
+ * </Accordion.Item>
40
+ * <Accordion.Item id="documents" title="Documents joints" badge="5">
41
+ * … content …
42
+ * </Accordion.Item>
43
+ * </Accordion>
44
+ *
45
+ * Controlled mode:
46
+ *
47
+ * const [open, setOpen] = useState(["general"]);
48
+ * <Accordion open={open} onChange={setOpen}>…</Accordion>
49
+ *
50
+ * Modes:
51
+ * "multiple" (default) — any number of items may be open
52
+ * "single" — only one item open at a time
53
+ * (mutually-exclusive accordion)
54
+ */
55
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
56
+ var AccordionContext = /*#__PURE__*/React.createContext(null);
57
+ function Accordion(_ref) {
58
+ var children = _ref.children,
59
+ defaultOpen = _ref.defaultOpen,
60
+ open = _ref.open,
61
+ onChange = _ref.onChange,
62
+ _ref$mode = _ref.mode,
63
+ mode = _ref$mode === void 0 ? "multiple" : _ref$mode,
64
+ sx = _ref.sx,
65
+ rest = _objectWithoutProperties(_ref, _excluded);
66
+ var controlled = open !== undefined;
67
+ var _React$useState = React.useState(function () {
68
+ return new Set(defaultOpen || []);
69
+ }),
70
+ _React$useState2 = _slicedToArray(_React$useState, 2),
71
+ internalOpen = _React$useState2[0],
72
+ setInternalOpen = _React$useState2[1];
73
+ var openSet = React.useMemo(function () {
74
+ return controlled ? new Set(open) : internalOpen;
75
+ }, [controlled, open, internalOpen]);
76
+ var toggle = React.useCallback(function (id) {
77
+ var next = new Set(openSet);
78
+ if (next.has(id)) {
79
+ next["delete"](id);
80
+ } else {
81
+ if (mode === "single") next.clear();
82
+ next.add(id);
83
+ }
84
+ var nextArr = Array.from(next);
85
+ if (!controlled) setInternalOpen(next);
86
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextArr);
87
+ }, [openSet, mode, controlled, onChange]);
88
+ var ctx = React.useMemo(function () {
89
+ return {
90
+ openSet: openSet,
91
+ toggle: toggle
92
+ };
93
+ }, [openSet, toggle]);
94
+ return /*#__PURE__*/_jsx(AccordionContext.Provider, {
95
+ value: ctx,
96
+ children: /*#__PURE__*/_jsx(Box, _objectSpread(_objectSpread({
97
+ sx: _objectSpread({
98
+ display: "flex",
99
+ flexDirection: "column",
100
+ gap: "var(--s-2)"
101
+ }, sx)
102
+ }, rest), {}, {
103
+ children: children
104
+ }))
105
+ });
106
+ }
107
+
108
+ // BoxProps<"details">: AccordionItem always renders through native <details>,
109
+ // so its inherited DOM-attribute surface (onClick, onCopy, aria-*, ...) must
110
+ // be typed against HTMLDetailsElement, not the plain-BoxProps default of
111
+ // HTMLDivElement — otherwise every handler mismatches the details overload
112
+ // once `component="details"` resolves cleanly (TS2769). `component` / `open` /
113
+ // `name` are additionally omitted: this item owns `open` via Accordion's
114
+ // context state and is never meant to be re-parented or native-name-grouped,
115
+ // so neither should be an externally settable prop.
116
+
117
+ function AccordionItem(_ref2) {
118
+ var id = _ref2.id,
119
+ title = _ref2.title,
120
+ badge = _ref2.badge,
121
+ icon = _ref2.icon,
122
+ children = _ref2.children,
123
+ sx = _ref2.sx,
124
+ rest = _objectWithoutProperties(_ref2, _excluded2);
125
+ var ctx = React.useContext(AccordionContext);
126
+ if (!ctx) {
127
+ throw new Error("Accordion.Item must be rendered inside <Accordion>.");
128
+ }
129
+ var isOpen = ctx.openSet.has(id);
130
+
131
+ /* React's controlled <details>/open is fiddly — we use the native
132
+ * element but intercept the click on the summary, preventing the
133
+ * default toggle so our state stays the single source of truth. */
134
+ var handleClick = function handleClick(e) {
135
+ e.preventDefault();
136
+ ctx.toggle(id);
137
+ };
138
+ return /*#__PURE__*/_jsxs(Box, _objectSpread(_objectSpread({
139
+ component: "details"
140
+ // We re-render with the boolean so React/DOM stay in sync.
141
+ ,
142
+ open: isOpen || undefined,
143
+ sx: _objectSpread({
144
+ border: "1px solid var(--border)",
145
+ borderRadius: "var(--r-md)",
146
+ background: "var(--surface)",
147
+ // Remove the default browser triangle marker — we render
148
+ // our own chevron in the summary content.
149
+ "& > summary::-webkit-details-marker": {
150
+ display: "none"
151
+ },
152
+ "& > summary": {
153
+ listStyle: "none"
154
+ }
155
+ }, sx)
156
+ }, rest), {}, {
157
+ children: [/*#__PURE__*/_jsxs(Box, {
158
+ component: "summary",
159
+ onClick: handleClick,
160
+ sx: {
161
+ display: "flex",
162
+ alignItems: "center",
163
+ gap: "var(--s-2)",
164
+ padding: "var(--s-3) var(--s-4)",
165
+ cursor: "pointer",
166
+ userSelect: "none",
167
+ borderRadius: "var(--r-md)",
168
+ fontSize: "var(--text-body)",
169
+ fontWeight: "var(--fw-semibold)",
170
+ color: "var(--fg)",
171
+ "&:focus-visible": {
172
+ outline: "2px solid var(--accent)",
173
+ outlineOffset: "var(--pui-outline-offset)"
174
+ }
175
+ },
176
+ children: [icon && /*#__PURE__*/_jsx(Box, {
177
+ "aria-hidden": "true",
178
+ sx: {
179
+ color: "var(--fg-muted)",
180
+ display: "inline-flex",
181
+ "& svg": {
182
+ fontSize: 18
183
+ }
184
+ },
185
+ children: icon
186
+ }), /*#__PURE__*/_jsx(Box, {
187
+ sx: {
188
+ flex: 1,
189
+ minWidth: 0
190
+ },
191
+ children: title
192
+ }), badge != null && /*#__PURE__*/_jsx(Box, {
193
+ sx: {
194
+ fontSize: "var(--text-xs)",
195
+ fontWeight: "var(--fw-medium)",
196
+ color: "var(--fg-subtle)",
197
+ background: "var(--bg-subtle)",
198
+ borderRadius: "var(--r-full)",
199
+ padding: "2px 8px"
200
+ },
201
+ children: badge
202
+ }), /*#__PURE__*/_jsx(Box, {
203
+ "aria-hidden": "true",
204
+ sx: {
205
+ display: "inline-flex",
206
+ color: "var(--fg-muted)",
207
+ transition: "transform var(--duration-base, 180ms)",
208
+ transform: isOpen ? "rotate(180deg)" : "rotate(0deg)",
209
+ "& svg": {
210
+ fontSize: 20
211
+ },
212
+ "@media (prefers-reduced-motion: reduce)": {
213
+ transition: "none"
214
+ }
215
+ },
216
+ children: /*#__PURE__*/_jsx(ExpandMoreIcon, {})
217
+ })]
218
+ }), /*#__PURE__*/_jsx(Box, {
219
+ sx: {
220
+ padding: "var(--s-2) var(--s-4) var(--s-4)",
221
+ borderTop: "1px solid var(--border-subtle, var(--border))"
222
+ },
223
+ children: children
224
+ })]
225
+ }));
226
+ }
227
+ export default Object.assign(Accordion, {
228
+ Item: AccordionItem
229
+ });
230
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","names":["React","ExpandMoreIcon","Box","jsx","_jsx","jsxs","_jsxs","AccordionContext","createContext","Accordion","_ref","children","defaultOpen","open","onChange","_ref$mode","mode","sx","rest","_objectWithoutProperties","_excluded","controlled","undefined","_React$useState","useState","Set","_React$useState2","_slicedToArray","internalOpen","setInternalOpen","openSet","useMemo","toggle","useCallback","id","next","has","clear","add","nextArr","Array","from","ctx","Provider","value","_objectSpread","display","flexDirection","gap","AccordionItem","_ref2","title","badge","icon","_excluded2","useContext","Error","isOpen","handleClick","e","preventDefault","component","border","borderRadius","background","listStyle","onClick","alignItems","padding","cursor","userSelect","fontSize","fontWeight","color","outline","outlineOffset","flex","minWidth","transition","transform","borderTop","Object","assign","Item"],"sources":["../../../../src/lib/v2/components/Accordion.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\n\r\n/**\r\n * Accordion — Portnet UI v2\r\n *\r\n * Charter §03 · atomic disclosure primitive. Replaces the local\r\n * AppAccordion wrapper that host modules previously maintained\r\n * (audit Batch 2 violation C1 in ms-ti-fe — direct MUI Accordion\r\n * with no tokens / a11y harmonisation).\r\n *\r\n * Implementation uses native <details>/<summary> elements so the\r\n * keyboard interaction (Enter/Space to toggle, Tab to enter\r\n * content) and ARIA role/state mapping come from the browser\r\n * (WCAG 2.1 SC 4.1.2, R-Ar.1).\r\n *\r\n * Compound-component API:\r\n *\r\n * <Accordion defaultOpen={[\"general\"]}>\r\n * <Accordion.Item id=\"general\" title=\"Informations générales\">\r\n * … content …\r\n * </Accordion.Item>\r\n * <Accordion.Item id=\"documents\" title=\"Documents joints\" badge=\"5\">\r\n * … content …\r\n * </Accordion.Item>\r\n * </Accordion>\r\n *\r\n * Controlled mode:\r\n *\r\n * const [open, setOpen] = useState([\"general\"]);\r\n * <Accordion open={open} onChange={setOpen}>…</Accordion>\r\n *\r\n * Modes:\r\n * \"multiple\" (default) — any number of items may be open\r\n * \"single\" — only one item open at a time\r\n * (mutually-exclusive accordion)\r\n */\r\n\r\nexport type AccordionMode = \"multiple\" | \"single\";\r\n\r\ninterface AccordionContextValue {\r\n openSet: Set<string>;\r\n toggle: (id: string) => void;\r\n}\r\n\r\nconst AccordionContext = React.createContext<AccordionContextValue | null>(null);\r\n\r\nexport interface AccordionProps extends Omit<BoxProps, \"onChange\"> {\r\n defaultOpen?: string[] | undefined;\r\n open?: string[] | undefined;\r\n onChange?: ((open: string[]) => void) | undefined;\r\n mode?: AccordionMode | undefined;\r\n}\r\n\r\nfunction Accordion({\r\n children,\r\n defaultOpen,\r\n open,\r\n onChange,\r\n mode = \"multiple\",\r\n sx,\r\n ...rest\r\n}: AccordionProps) {\r\n const controlled = open !== undefined;\r\n const [internalOpen, setInternalOpen] = React.useState<Set<string>>(() =>\r\n new Set<string>(defaultOpen || [])\r\n );\r\n\r\n const openSet = React.useMemo(\r\n () => (controlled ? new Set<string>(open) : internalOpen),\r\n [controlled, open, internalOpen]\r\n );\r\n\r\n const toggle = React.useCallback(\r\n (id: string) => {\r\n const next = new Set<string>(openSet);\r\n if (next.has(id)) {\r\n next.delete(id);\r\n } else {\r\n if (mode === \"single\") next.clear();\r\n next.add(id);\r\n }\r\n const nextArr = Array.from(next);\r\n if (!controlled) setInternalOpen(next);\r\n onChange?.(nextArr);\r\n },\r\n [openSet, mode, controlled, onChange]\r\n );\r\n\r\n const ctx = React.useMemo<AccordionContextValue>(\r\n () => ({ openSet, toggle }),\r\n [openSet, toggle]\r\n );\r\n\r\n return (\r\n <AccordionContext.Provider value={ctx}>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-2)\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n </AccordionContext.Provider>\r\n );\r\n}\r\n\r\n// BoxProps<\"details\">: AccordionItem always renders through native <details>,\r\n// so its inherited DOM-attribute surface (onClick, onCopy, aria-*, ...) must\r\n// be typed against HTMLDetailsElement, not the plain-BoxProps default of\r\n// HTMLDivElement — otherwise every handler mismatches the details overload\r\n// once `component=\"details\"` resolves cleanly (TS2769). `component` / `open` /\r\n// `name` are additionally omitted: this item owns `open` via Accordion's\r\n// context state and is never meant to be re-parented or native-name-grouped,\r\n// so neither should be an externally settable prop.\r\nexport interface AccordionItemProps\r\n extends Omit<BoxProps<\"details\">, \"id\" | \"title\" | \"open\" | \"name\" | \"component\"> {\r\n id: string;\r\n title: React.ReactNode;\r\n badge?: React.ReactNode | undefined;\r\n icon?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction AccordionItem({ id, title, badge, icon, children, sx, ...rest }: AccordionItemProps) {\r\n const ctx = React.useContext(AccordionContext);\r\n if (!ctx) {\r\n throw new Error(\"Accordion.Item must be rendered inside <Accordion>.\");\r\n }\r\n const isOpen = ctx.openSet.has(id);\r\n\r\n /* React's controlled <details>/open is fiddly — we use the native\r\n * element but intercept the click on the summary, preventing the\r\n * default toggle so our state stays the single source of truth. */\r\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\r\n e.preventDefault();\r\n ctx.toggle(id);\r\n };\r\n\r\n return (\r\n <Box\r\n component=\"details\"\r\n // We re-render with the boolean so React/DOM stay in sync.\r\n open={isOpen || undefined}\r\n sx={{\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n background: \"var(--surface)\",\r\n // Remove the default browser triangle marker — we render\r\n // our own chevron in the summary content.\r\n \"& > summary::-webkit-details-marker\": { display: \"none\" },\r\n \"& > summary\": { listStyle: \"none\" },\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n <Box\r\n component=\"summary\"\r\n onClick={handleClick}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n borderRadius: \"var(--r-md)\",\r\n fontSize: \"var(--text-body)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\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 {icon && (\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n color: \"var(--fg-muted)\",\r\n display: \"inline-flex\",\r\n \"& svg\": { fontSize: 18 },\r\n }}\r\n >\r\n {icon}\r\n </Box>\r\n )}\r\n <Box sx={{ flex: 1, minWidth: 0 }}>{title}</Box>\r\n {badge != null && (\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg-subtle)\",\r\n background: \"var(--bg-subtle)\",\r\n borderRadius: \"var(--r-full)\",\r\n padding: \"2px 8px\",\r\n }}\r\n >\r\n {badge}\r\n </Box>\r\n )}\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n display: \"inline-flex\",\r\n color: \"var(--fg-muted)\",\r\n transition: \"transform var(--duration-base, 180ms)\",\r\n transform: isOpen ? \"rotate(180deg)\" : \"rotate(0deg)\",\r\n \"& svg\": { fontSize: 20 },\r\n \"@media (prefers-reduced-motion: reduce)\": {\r\n transition: \"none\",\r\n },\r\n }}\r\n >\r\n <ExpandMoreIcon />\r\n </Box>\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n padding: \"var(--s-2) var(--s-4) var(--s-4)\",\r\n borderTop: \"1px solid var(--border-subtle, var(--border))\",\r\n }}\r\n >\r\n {children}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Object.assign(Accordion, { Item: AccordionItem });\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,146 @@
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 = ["back", "backLabel", "secondary", "primary", "align", "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 ArrowBackIcon from "@mui/icons-material/ArrowBack";
12
+ import Box from "@mui/material/Box";
13
+ import Button from "./Button";
14
+
15
+ /**
16
+ * ActionStrip — Portnet UI v2
17
+ *
18
+ * Charter §03 · footer-level action row. Distinct from ActionBar
19
+ * (page header) and BulkActionBar (selection toolbar). Use this
20
+ * primitive at the BOTTOM of a form or below a section's content
21
+ * to anchor the principal CTAs.
22
+ *
23
+ * ┌─────────────────────────────────────────────────────────┐
24
+ * │ ← Retour Annuler ✉ Envoyer │
25
+ * └─────────────────────────────────────────────────────────┘
26
+ *
27
+ * Replaces:
28
+ * - AppGlobalActions wrapper (audit Batch 2 M17)
29
+ * - AppButtonsGroup wrapper (audit Batch 2 M13)
30
+ * - inline `display:flex; justifyContent: flex-end; gap: var(--s-3)`
31
+ * Box blocks in CreationTIMarchandises update dialog, etc.
32
+ *
33
+ * API:
34
+ *
35
+ * <ActionStrip
36
+ * back={() => navigate(-1)} // omit if no Back affordance
37
+ * backLabel="Retour"
38
+ * secondary={[
39
+ * { label: "Annuler", variant: "ghost", onClick: cancel },
40
+ * ]}
41
+ * primary={{
42
+ * label: "Envoyer",
43
+ * icon: <SendIcon />,
44
+ * onClick: submit,
45
+ * loading: isSubmitting,
46
+ * }}
47
+ * />
48
+ *
49
+ * Single-CTA shortcut:
50
+ *
51
+ * <ActionStrip primary={{ label: "Valider", onClick: confirm }} />
52
+ *
53
+ * Responsive: on the `xs` breakpoint the strip becomes a vertical
54
+ * stack of primary → secondary → back so the primary CTA stays
55
+ * above the fold and reachable by thumb. The right cluster stacks
56
+ * column-reverse with stretched (full-width) buttons; the outer
57
+ * container is column-reverse too, so Back sits at the very bottom.
58
+ */
59
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
60
+ function ActionStrip(_ref) {
61
+ var back = _ref.back,
62
+ _ref$backLabel = _ref.backLabel,
63
+ backLabel = _ref$backLabel === void 0 ? "Retour" : _ref$backLabel,
64
+ _ref$secondary = _ref.secondary,
65
+ secondary = _ref$secondary === void 0 ? [] : _ref$secondary,
66
+ primary = _ref.primary,
67
+ _ref$align = _ref.align,
68
+ align = _ref$align === void 0 ? "end" : _ref$align,
69
+ sx = _ref.sx,
70
+ rest = _objectWithoutProperties(_ref, _excluded);
71
+ return /*#__PURE__*/_jsxs(Box, _objectSpread(_objectSpread({
72
+ sx: _objectSpread({
73
+ display: "flex",
74
+ flexDirection: {
75
+ xs: "column-reverse",
76
+ sm: "row"
77
+ },
78
+ alignItems: {
79
+ xs: "stretch",
80
+ sm: "center"
81
+ },
82
+ justifyContent: align === "start" ? "flex-start" : "space-between",
83
+ gap: "var(--s-3)",
84
+ marginTop: "var(--s-5)",
85
+ paddingTop: "var(--s-4)",
86
+ borderTop: "1px solid var(--border)"
87
+ }, sx)
88
+ }, rest), {}, {
89
+ children: [/*#__PURE__*/_jsx(Box, {
90
+ sx: {
91
+ display: "flex",
92
+ alignItems: "center",
93
+ gap: "var(--s-2)"
94
+ },
95
+ children: back && /*#__PURE__*/_jsx(Button, {
96
+ variant: "ghost",
97
+ icon: /*#__PURE__*/_jsx(ArrowBackIcon, {}),
98
+ onClick: back,
99
+ children: backLabel
100
+ })
101
+ }), /*#__PURE__*/_jsxs(Box, {
102
+ sx: {
103
+ display: "flex",
104
+ flexDirection: {
105
+ xs: "column-reverse",
106
+ sm: "row"
107
+ },
108
+ alignItems: {
109
+ xs: "stretch",
110
+ sm: "center"
111
+ },
112
+ gap: "var(--s-3)",
113
+ flexWrap: "wrap",
114
+ justifyContent: {
115
+ xs: "flex-start",
116
+ sm: "flex-end"
117
+ }
118
+ },
119
+ children: [secondary.map(function (action, i) {
120
+ return /*#__PURE__*/_jsx(Button, _objectSpread(_objectSpread({
121
+ variant: action.variant || "ghost",
122
+ icon: action.icon,
123
+ onClick: action.onClick,
124
+ disabled: action.disabled,
125
+ type: action.type
126
+ }, action.loading !== undefined ? {
127
+ loading: action.loading
128
+ } : {}), {}, {
129
+ children: action.label
130
+ }), action.id || "sec-".concat(i));
131
+ }), primary && /*#__PURE__*/_jsx(Button, _objectSpread(_objectSpread({
132
+ variant: primary.variant || "primary",
133
+ icon: primary.icon,
134
+ onClick: primary.onClick,
135
+ disabled: primary.disabled,
136
+ type: primary.type
137
+ }, primary.loading !== undefined ? {
138
+ loading: primary.loading
139
+ } : {}), {}, {
140
+ children: primary.label
141
+ }))]
142
+ })]
143
+ }));
144
+ }
145
+ export default ActionStrip;
146
+ //# sourceMappingURL=ActionStrip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionStrip.js","names":["React","ArrowBackIcon","Box","Button","jsx","_jsx","jsxs","_jsxs","ActionStrip","_ref","back","_ref$backLabel","backLabel","_ref$secondary","secondary","primary","_ref$align","align","sx","rest","_objectWithoutProperties","_excluded","_objectSpread","display","flexDirection","xs","sm","alignItems","justifyContent","gap","marginTop","paddingTop","borderTop","children","variant","icon","onClick","flexWrap","map","action","i","disabled","type","loading","undefined","label","id","concat"],"sources":["../../../../src/lib/v2/components/ActionStrip.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport ArrowBackIcon from \"@mui/icons-material/ArrowBack\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { BoxProps } from \"@mui/material/Box\";\r\nimport Button from \"./Button\";\r\nimport type { ButtonProps } from \"./Button\";\r\n\r\n/**\r\n * ActionStrip — Portnet UI v2\r\n *\r\n * Charter §03 · footer-level action row. Distinct from ActionBar\r\n * (page header) and BulkActionBar (selection toolbar). Use this\r\n * primitive at the BOTTOM of a form or below a section's content\r\n * to anchor the principal CTAs.\r\n *\r\n * ┌─────────────────────────────────────────────────────────┐\r\n * │ ← Retour Annuler ✉ Envoyer │\r\n * └─────────────────────────────────────────────────────────┘\r\n *\r\n * Replaces:\r\n * - AppGlobalActions wrapper (audit Batch 2 M17)\r\n * - AppButtonsGroup wrapper (audit Batch 2 M13)\r\n * - inline `display:flex; justifyContent: flex-end; gap: var(--s-3)`\r\n * Box blocks in CreationTIMarchandises update dialog, etc.\r\n *\r\n * API:\r\n *\r\n * <ActionStrip\r\n * back={() => navigate(-1)} // omit if no Back affordance\r\n * backLabel=\"Retour\"\r\n * secondary={[\r\n * { label: \"Annuler\", variant: \"ghost\", onClick: cancel },\r\n * ]}\r\n * primary={{\r\n * label: \"Envoyer\",\r\n * icon: <SendIcon />,\r\n * onClick: submit,\r\n * loading: isSubmitting,\r\n * }}\r\n * />\r\n *\r\n * Single-CTA shortcut:\r\n *\r\n * <ActionStrip primary={{ label: \"Valider\", onClick: confirm }} />\r\n *\r\n * Responsive: on the `xs` breakpoint the strip becomes a vertical\r\n * stack of primary → secondary → back so the primary CTA stays\r\n * above the fold and reachable by thumb. The right cluster stacks\r\n * column-reverse with stretched (full-width) buttons; the outer\r\n * container is column-reverse too, so Back sits at the very bottom.\r\n */\r\n\r\nexport interface ActionStripAction {\r\n id?: string | undefined;\r\n label: React.ReactNode;\r\n onClick?: ButtonProps[\"onClick\"] | undefined;\r\n icon?: React.ReactNode | undefined;\r\n variant?: ButtonProps[\"variant\"] | undefined;\r\n loading?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n type?: \"button\" | \"submit\" | \"reset\" | undefined;\r\n}\r\n\r\nexport interface ActionStripProps extends BoxProps {\r\n back?: ButtonProps[\"onClick\"] | undefined;\r\n backLabel?: React.ReactNode | undefined;\r\n secondary?: ActionStripAction[] | undefined;\r\n primary?: ActionStripAction | undefined;\r\n align?: \"start\" | \"end\" | undefined;\r\n}\r\n\r\nfunction ActionStrip({\r\n back,\r\n backLabel = \"Retour\",\r\n secondary = [],\r\n primary,\r\n align = \"end\",\r\n sx,\r\n ...rest\r\n}: ActionStripProps) {\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: { xs: \"column-reverse\", sm: \"row\" },\r\n alignItems: { xs: \"stretch\", sm: \"center\" },\r\n justifyContent: align === \"start\" ? \"flex-start\" : \"space-between\",\r\n gap: \"var(--s-3)\",\r\n marginTop: \"var(--s-5)\",\r\n paddingTop: \"var(--s-4)\",\r\n borderTop: \"1px solid var(--border)\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {/* Left cluster — Back affordance */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\" }}>\r\n {back && (\r\n <Button\r\n variant=\"ghost\"\r\n icon={<ArrowBackIcon />}\r\n onClick={back}\r\n >\r\n {backLabel}\r\n </Button>\r\n )}\r\n </Box>\r\n\r\n {/* Right cluster — secondary + primary.\r\n xs : column-reverse + stretch → full-width buttons, primary on\r\n top (primary → secondary), reachable by thumb.\r\n sm+ : single centred row, primary anchored to the right edge. */}\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: { xs: \"column-reverse\", sm: \"row\" },\r\n alignItems: { xs: \"stretch\", sm: \"center\" },\r\n gap: \"var(--s-3)\",\r\n flexWrap: \"wrap\",\r\n justifyContent: { xs: \"flex-start\", sm: \"flex-end\" },\r\n }}\r\n >\r\n {secondary.map((action, i) => (\r\n <Button\r\n key={action.id || `sec-${i}`}\r\n variant={action.variant || \"ghost\"}\r\n icon={action.icon}\r\n onClick={action.onClick}\r\n disabled={action.disabled}\r\n type={action.type}\r\n {...(action.loading !== undefined ? { loading: action.loading } : {})}\r\n >\r\n {action.label}\r\n </Button>\r\n ))}\r\n {primary && (\r\n <Button\r\n variant={primary.variant || \"primary\"}\r\n icon={primary.icon}\r\n onClick={primary.onClick}\r\n disabled={primary.disabled}\r\n type={primary.type}\r\n {...(primary.loading !== undefined ? { loading: primary.loading } : {})}\r\n >\r\n {primary.label}\r\n </Button>\r\n )}\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default ActionStrip;\r\n"],"mappings":"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","ignoreList":[]}