@portnet/ui 6.0.0 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (748) hide show
  1. package/dist/esm/index.js +196 -0
  2. package/dist/esm/index.js.map +1 -0
  3. package/dist/esm/v2/__tests__/FieldError.test.js +160 -0
  4. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
  5. package/dist/esm/v2/__tests__/FileCard.test.js +144 -0
  6. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
  7. package/dist/esm/v2/__tests__/MobileRowCard.test.js +333 -0
  8. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
  9. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
  10. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  11. package/dist/esm/v2/__tests__/apiError.test.js +181 -0
  12. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
  13. package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
  14. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
  15. package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
  16. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
  17. package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
  18. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
  19. package/dist/esm/v2/__tests__/labels-merge.test.js +147 -0
  20. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
  21. package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
  22. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
  23. package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
  24. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
  25. package/dist/esm/v2/components/Accordion.js +230 -0
  26. package/dist/esm/v2/components/Accordion.js.map +1 -0
  27. package/dist/esm/v2/components/ActionStrip.js +146 -0
  28. package/dist/esm/v2/components/ActionStrip.js.map +1 -0
  29. package/dist/esm/v2/components/Banner.js +254 -0
  30. package/dist/esm/v2/components/Banner.js.map +1 -0
  31. package/dist/esm/v2/components/Busy.js +97 -0
  32. package/dist/esm/v2/components/Busy.js.map +1 -0
  33. package/dist/esm/v2/components/Button.js +114 -0
  34. package/dist/esm/v2/components/Button.js.map +1 -0
  35. package/dist/esm/v2/components/CategoryTag.js +81 -0
  36. package/dist/esm/v2/components/CategoryTag.js.map +1 -0
  37. package/dist/esm/v2/components/Checkbox.js +124 -0
  38. package/dist/esm/v2/components/Checkbox.js.map +1 -0
  39. package/dist/esm/v2/components/Chip.js +124 -0
  40. package/dist/esm/v2/components/Chip.js.map +1 -0
  41. package/dist/esm/v2/components/Combobox.js +394 -0
  42. package/dist/esm/v2/components/Combobox.js.map +1 -0
  43. package/dist/esm/v2/components/CommandPalette.js +660 -0
  44. package/dist/esm/v2/components/CommandPalette.js.map +1 -0
  45. package/dist/esm/v2/components/ConfirmDialog.js +144 -0
  46. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
  47. package/dist/esm/v2/components/DatePicker.js +200 -0
  48. package/dist/esm/v2/components/DatePicker.js.map +1 -0
  49. package/dist/esm/v2/components/DateRangePicker.js +289 -0
  50. package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
  51. package/dist/esm/v2/components/DateTimePicker.js +182 -0
  52. package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
  53. package/dist/esm/v2/components/Drawer.js +333 -0
  54. package/dist/esm/v2/components/Drawer.js.map +1 -0
  55. package/dist/esm/v2/components/Dropzone.js +540 -0
  56. package/dist/esm/v2/components/Dropzone.js.map +1 -0
  57. package/dist/esm/v2/components/EmptyState.js +102 -0
  58. package/dist/esm/v2/components/EmptyState.js.map +1 -0
  59. package/dist/esm/v2/components/FavoriteToggle.js +127 -0
  60. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
  61. package/dist/esm/v2/components/Field.js +197 -0
  62. package/dist/esm/v2/components/Field.js.map +1 -0
  63. package/dist/esm/v2/components/FieldError.js +124 -0
  64. package/dist/esm/v2/components/FieldError.js.map +1 -0
  65. package/dist/esm/v2/components/FieldHelp.js +202 -0
  66. package/dist/esm/v2/components/FieldHelp.js.map +1 -0
  67. package/dist/esm/v2/components/FileCard.js +162 -0
  68. package/dist/esm/v2/components/FileCard.js.map +1 -0
  69. package/dist/esm/v2/components/FilterTab.js +138 -0
  70. package/dist/esm/v2/components/FilterTab.js.map +1 -0
  71. package/dist/esm/v2/components/ForbiddenPage.js +74 -0
  72. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
  73. package/dist/esm/v2/components/FormGrid.js +179 -0
  74. package/dist/esm/v2/components/FormGrid.js.map +1 -0
  75. package/dist/esm/v2/components/FormikDisplay.js +118 -0
  76. package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
  77. package/dist/esm/v2/components/Input.js +107 -0
  78. package/dist/esm/v2/components/Input.js.map +1 -0
  79. package/dist/esm/v2/components/KPICard.js +237 -0
  80. package/dist/esm/v2/components/KPICard.js.map +1 -0
  81. package/dist/esm/v2/components/KPIStrip.js +84 -0
  82. package/dist/esm/v2/components/KPIStrip.js.map +1 -0
  83. package/dist/esm/v2/components/KV.js +75 -0
  84. package/dist/esm/v2/components/KV.js.map +1 -0
  85. package/dist/esm/v2/components/KVGrid.js +74 -0
  86. package/dist/esm/v2/components/KVGrid.js.map +1 -0
  87. package/dist/esm/v2/components/Layout.js +284 -0
  88. package/dist/esm/v2/components/Layout.js.map +1 -0
  89. package/dist/esm/v2/components/MobileRowCard.js +314 -0
  90. package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
  91. package/dist/esm/v2/components/Modal.js +276 -0
  92. package/dist/esm/v2/components/Modal.js.map +1 -0
  93. package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
  94. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
  95. package/dist/esm/v2/components/NotFoundPage.js +58 -0
  96. package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
  97. package/dist/esm/v2/components/NumberInput.js +309 -0
  98. package/dist/esm/v2/components/NumberInput.js.map +1 -0
  99. package/dist/esm/v2/components/OverflowMenu.js +184 -0
  100. package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
  101. package/dist/esm/v2/components/PdfViewer.js +122 -0
  102. package/dist/esm/v2/components/PdfViewer.js.map +1 -0
  103. package/dist/esm/v2/components/ProgressBar.js +202 -0
  104. package/dist/esm/v2/components/ProgressBar.js.map +1 -0
  105. package/dist/esm/v2/components/Radio.js +228 -0
  106. package/dist/esm/v2/components/Radio.js.map +1 -0
  107. package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
  108. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
  109. package/dist/esm/v2/components/SectionHeader.js +132 -0
  110. package/dist/esm/v2/components/SectionHeader.js.map +1 -0
  111. package/dist/esm/v2/components/Segmented.js +254 -0
  112. package/dist/esm/v2/components/Segmented.js.map +1 -0
  113. package/dist/esm/v2/components/Select.js +490 -0
  114. package/dist/esm/v2/components/Select.js.map +1 -0
  115. package/dist/esm/v2/components/ServerErrorPage.js +74 -0
  116. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
  117. package/dist/esm/v2/components/Skeleton.js +269 -0
  118. package/dist/esm/v2/components/Skeleton.js.map +1 -0
  119. package/dist/esm/v2/components/SkipLink.js +49 -0
  120. package/dist/esm/v2/components/SkipLink.js.map +1 -0
  121. package/dist/esm/v2/components/Spinner.js +69 -0
  122. package/dist/esm/v2/components/Spinner.js.map +1 -0
  123. package/dist/esm/v2/components/Status.js +64 -0
  124. package/dist/esm/v2/components/Status.js.map +1 -0
  125. package/dist/esm/v2/components/Stepper.js +432 -0
  126. package/dist/esm/v2/components/Stepper.js.map +1 -0
  127. package/dist/esm/v2/components/Surface.js +159 -0
  128. package/dist/esm/v2/components/Surface.js.map +1 -0
  129. package/dist/esm/v2/components/Switch.js +128 -0
  130. package/dist/esm/v2/components/Switch.js.map +1 -0
  131. package/dist/esm/v2/components/Tabs.js +150 -0
  132. package/dist/esm/v2/components/Tabs.js.map +1 -0
  133. package/dist/esm/v2/components/TelInput.js +274 -0
  134. package/dist/esm/v2/components/TelInput.js.map +1 -0
  135. package/dist/esm/v2/components/Textarea.js +72 -0
  136. package/dist/esm/v2/components/Textarea.js.map +1 -0
  137. package/dist/esm/v2/components/TimePicker.js +134 -0
  138. package/dist/esm/v2/components/TimePicker.js.map +1 -0
  139. package/dist/esm/v2/components/Toast.js +376 -0
  140. package/dist/esm/v2/components/Toast.js.map +1 -0
  141. package/dist/esm/v2/components/Tooltip.js +161 -0
  142. package/dist/esm/v2/components/Tooltip.js.map +1 -0
  143. package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
  144. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
  145. package/dist/esm/v2/components/_pickerShared.js +60 -0
  146. package/dist/esm/v2/components/_pickerShared.js.map +1 -0
  147. package/dist/esm/v2/components/index.js +244 -0
  148. package/dist/esm/v2/components/index.js.map +1 -0
  149. package/dist/esm/v2/hooks/index.js +10 -0
  150. package/dist/esm/v2/hooks/index.js.map +1 -0
  151. package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
  152. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
  153. package/dist/esm/v2/hooks/useDensity.js +119 -0
  154. package/dist/esm/v2/hooks/useDensity.js.map +1 -0
  155. package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
  156. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
  157. package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
  158. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
  159. package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
  160. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
  161. package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
  162. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
  163. package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
  164. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
  165. package/dist/esm/v2/hooks/useSortedRows.js +32 -0
  166. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
  167. package/dist/esm/v2/hooks/useTabLoading.js +79 -0
  168. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
  169. package/dist/esm/v2/index.js +121 -0
  170. package/dist/esm/v2/index.js.map +1 -0
  171. package/dist/esm/v2/modalContext.js +108 -0
  172. package/dist/esm/v2/modalContext.js.map +1 -0
  173. package/dist/esm/v2/models/favorite.js +2 -0
  174. package/dist/esm/v2/models/favorite.js.map +1 -0
  175. package/dist/esm/v2/models/index.js +12 -0
  176. package/dist/esm/v2/models/index.js.map +1 -0
  177. package/dist/esm/v2/models/personalization.js +2 -0
  178. package/dist/esm/v2/models/personalization.js.map +1 -0
  179. package/dist/esm/v2/models/referentiel.js +2 -0
  180. package/dist/esm/v2/models/referentiel.js.map +1 -0
  181. package/dist/esm/v2/models/savedFilter.js +2 -0
  182. package/dist/esm/v2/models/savedFilter.js.map +1 -0
  183. package/dist/esm/v2/patterns/ActionBar.js +603 -0
  184. package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
  185. package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
  186. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
  187. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
  188. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
  189. package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
  190. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
  191. package/dist/esm/v2/patterns/DataGrid.js +820 -0
  192. package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
  193. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
  194. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
  195. package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
  196. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
  197. package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
  198. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
  199. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
  200. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
  201. package/dist/esm/v2/patterns/FavoriteColumn.js +164 -0
  202. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
  203. package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
  204. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
  205. package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
  206. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
  207. package/dist/esm/v2/patterns/FormPageShell.js +126 -0
  208. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
  209. package/dist/esm/v2/patterns/FormSection.js +190 -0
  210. package/dist/esm/v2/patterns/FormSection.js.map +1 -0
  211. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
  212. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
  213. package/dist/esm/v2/patterns/FormikCombobox.js +115 -0
  214. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
  215. package/dist/esm/v2/patterns/FormikDatePicker.js +196 -0
  216. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
  217. package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
  218. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
  219. package/dist/esm/v2/patterns/FormikFile.js +148 -0
  220. package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
  221. package/dist/esm/v2/patterns/FormikInput.js +127 -0
  222. package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
  223. package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
  224. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
  225. package/dist/esm/v2/patterns/FormikSelect.js +159 -0
  226. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
  227. package/dist/esm/v2/patterns/FormikTextarea.js +76 -0
  228. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
  229. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +195 -0
  230. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
  231. package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
  232. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
  233. package/dist/esm/v2/patterns/PageContent.js +62 -0
  234. package/dist/esm/v2/patterns/PageContent.js.map +1 -0
  235. package/dist/esm/v2/patterns/ReferentielField.js +615 -0
  236. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
  237. package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
  238. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
  239. package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
  240. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
  241. package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
  242. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
  243. package/dist/esm/v2/patterns/SortableHeader.js +179 -0
  244. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
  245. package/dist/esm/v2/patterns/Tour.js +471 -0
  246. package/dist/esm/v2/patterns/Tour.js.map +1 -0
  247. package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
  248. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
  249. package/dist/esm/v2/patterns/_sort.js +112 -0
  250. package/dist/esm/v2/patterns/_sort.js.map +1 -0
  251. package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
  252. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
  253. package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
  254. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
  255. package/dist/esm/v2/patterns/index.js +95 -0
  256. package/dist/esm/v2/patterns/index.js.map +1 -0
  257. package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
  258. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
  259. package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
  260. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
  261. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
  262. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
  263. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
  264. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
  265. package/dist/esm/v2/personalization/adapters/index.js +11 -0
  266. package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
  267. package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
  268. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
  269. package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
  270. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
  271. package/dist/esm/v2/personalization/capabilities/index.js +17 -0
  272. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
  273. package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
  274. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
  275. package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
  276. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
  277. package/dist/esm/v2/personalization/index.js +46 -0
  278. package/dist/esm/v2/personalization/index.js.map +1 -0
  279. package/dist/esm/v2/personalization/personalizationContext.js +108 -0
  280. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
  281. package/dist/esm/v2/personalization/schema.js +92 -0
  282. package/dist/esm/v2/personalization/schema.js.map +1 -0
  283. package/dist/esm/v2/personalization/types.js +2 -0
  284. package/dist/esm/v2/personalization/types.js.map +1 -0
  285. package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
  286. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
  287. package/dist/esm/v2/referentiel/index.js +15 -0
  288. package/dist/esm/v2/referentiel/index.js.map +1 -0
  289. package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
  290. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
  291. package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
  292. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
  293. package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
  294. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
  295. package/dist/esm/v2/styles/base.css +425 -0
  296. package/dist/esm/v2/styles/css.d.ts +10 -0
  297. package/dist/esm/v2/styles/index.js +12 -0
  298. package/dist/esm/v2/styles/index.js.map +1 -0
  299. package/dist/esm/v2/theme/_brand.js +64 -0
  300. package/dist/esm/v2/theme/_brand.js.map +1 -0
  301. package/dist/esm/v2/theme/_brandSecondary.js +60 -0
  302. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
  303. package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
  304. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
  305. package/dist/esm/v2/theme/cssVariables.js +198 -0
  306. package/dist/esm/v2/theme/cssVariables.js.map +1 -0
  307. package/dist/esm/v2/theme/index.js +32 -0
  308. package/dist/esm/v2/theme/index.js.map +1 -0
  309. package/dist/esm/v2/tokens/breakpoints.js +106 -0
  310. package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
  311. package/dist/esm/v2/tokens/colors.js +219 -0
  312. package/dist/esm/v2/tokens/colors.js.map +1 -0
  313. package/dist/esm/v2/tokens/density.js +98 -0
  314. package/dist/esm/v2/tokens/density.js.map +1 -0
  315. package/dist/esm/v2/tokens/index.js +80 -0
  316. package/dist/esm/v2/tokens/index.js.map +1 -0
  317. package/dist/esm/v2/tokens/motion.js +88 -0
  318. package/dist/esm/v2/tokens/motion.js.map +1 -0
  319. package/dist/esm/v2/tokens/radius.js +22 -0
  320. package/dist/esm/v2/tokens/radius.js.map +1 -0
  321. package/dist/esm/v2/tokens/shadows.js +40 -0
  322. package/dist/esm/v2/tokens/shadows.js.map +1 -0
  323. package/dist/esm/v2/tokens/spacing.js +51 -0
  324. package/dist/esm/v2/tokens/spacing.js.map +1 -0
  325. package/dist/esm/v2/tokens/state.js +41 -0
  326. package/dist/esm/v2/tokens/state.js.map +1 -0
  327. package/dist/esm/v2/tokens/statusPalette.js +66 -0
  328. package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
  329. package/dist/esm/v2/tokens/tokens.json +153 -0
  330. package/dist/esm/v2/tokens/typography.js +149 -0
  331. package/dist/esm/v2/tokens/typography.js.map +1 -0
  332. package/dist/esm/v2/tokens/zIndex.js +44 -0
  333. package/dist/esm/v2/tokens/zIndex.js.map +1 -0
  334. package/dist/esm/v2/types/common.js +2 -0
  335. package/dist/esm/v2/types/common.js.map +1 -0
  336. package/dist/esm/v2/types/datagrid.js +2 -0
  337. package/dist/esm/v2/types/datagrid.js.map +1 -0
  338. package/dist/esm/v2/types/index.js +12 -0
  339. package/dist/esm/v2/types/index.js.map +1 -0
  340. package/dist/esm/v2/utils/apiError.js +281 -0
  341. package/dist/esm/v2/utils/apiError.js.map +1 -0
  342. package/dist/esm/v2/utils/contrast.js +157 -0
  343. package/dist/esm/v2/utils/contrast.js.map +1 -0
  344. package/dist/esm/v2/utils/cx.js +38 -0
  345. package/dist/esm/v2/utils/cx.js.map +1 -0
  346. package/dist/esm/v2/utils/fileDownload.js +226 -0
  347. package/dist/esm/v2/utils/fileDownload.js.map +1 -0
  348. package/dist/esm/v2/utils/fmtMoney.js +78 -0
  349. package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
  350. package/dist/esm/v2/utils/index.js +43 -0
  351. package/dist/esm/v2/utils/index.js.map +1 -0
  352. package/dist/esm/v2/utils/mergeLabels.js +86 -0
  353. package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
  354. package/dist/esm/v2/utils/networkStatus.js +114 -0
  355. package/dist/esm/v2/utils/networkStatus.js.map +1 -0
  356. package/dist/index.d.ts +3 -2
  357. package/dist/index.d.ts.map +1 -1
  358. package/dist/index.js +21 -0
  359. package/dist/index.js.map +1 -1
  360. package/dist/v2/__tests__/FieldError.test.js +164 -0
  361. package/dist/v2/__tests__/FieldError.test.js.map +1 -0
  362. package/dist/v2/__tests__/FileCard.test.js +148 -0
  363. package/dist/v2/__tests__/FileCard.test.js.map +1 -0
  364. package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
  365. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  366. package/dist/v2/components/Accordion.d.ts +6 -6
  367. package/dist/v2/components/Accordion.d.ts.map +1 -1
  368. package/dist/v2/components/Accordion.js.map +1 -1
  369. package/dist/v2/components/ActionStrip.d.ts +12 -12
  370. package/dist/v2/components/ActionStrip.d.ts.map +1 -1
  371. package/dist/v2/components/ActionStrip.js.map +1 -1
  372. package/dist/v2/components/Banner.d.ts +48 -9
  373. package/dist/v2/components/Banner.d.ts.map +1 -1
  374. package/dist/v2/components/Banner.js +116 -35
  375. package/dist/v2/components/Banner.js.map +1 -1
  376. package/dist/v2/components/Busy.d.ts +3 -3
  377. package/dist/v2/components/Busy.d.ts.map +1 -1
  378. package/dist/v2/components/Busy.js.map +1 -1
  379. package/dist/v2/components/Button.d.ts +6 -6
  380. package/dist/v2/components/Button.d.ts.map +1 -1
  381. package/dist/v2/components/Button.js.map +1 -1
  382. package/dist/v2/components/CategoryTag.d.ts +3 -3
  383. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  384. package/dist/v2/components/CategoryTag.js.map +1 -1
  385. package/dist/v2/components/Checkbox.d.ts +11 -11
  386. package/dist/v2/components/Checkbox.d.ts.map +1 -1
  387. package/dist/v2/components/Checkbox.js.map +1 -1
  388. package/dist/v2/components/Chip.d.ts +8 -8
  389. package/dist/v2/components/Chip.d.ts.map +1 -1
  390. package/dist/v2/components/Chip.js +2 -1
  391. package/dist/v2/components/Chip.js.map +1 -1
  392. package/dist/v2/components/Combobox.d.ts +27 -27
  393. package/dist/v2/components/Combobox.d.ts.map +1 -1
  394. package/dist/v2/components/Combobox.js +3 -2
  395. package/dist/v2/components/Combobox.js.map +1 -1
  396. package/dist/v2/components/CommandPalette.d.ts +20 -20
  397. package/dist/v2/components/CommandPalette.d.ts.map +1 -1
  398. package/dist/v2/components/CommandPalette.js +2 -6
  399. package/dist/v2/components/CommandPalette.js.map +1 -1
  400. package/dist/v2/components/ConfirmDialog.d.ts +13 -13
  401. package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
  402. package/dist/v2/components/ConfirmDialog.js +2 -1
  403. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  404. package/dist/v2/components/DatePicker.d.ts +11 -11
  405. package/dist/v2/components/DatePicker.d.ts.map +1 -1
  406. package/dist/v2/components/DatePicker.js.map +1 -1
  407. package/dist/v2/components/DateRangePicker.d.ts +16 -16
  408. package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
  409. package/dist/v2/components/DateRangePicker.js +2 -1
  410. package/dist/v2/components/DateRangePicker.js.map +1 -1
  411. package/dist/v2/components/DateTimePicker.d.ts +11 -11
  412. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  413. package/dist/v2/components/DateTimePicker.js.map +1 -1
  414. package/dist/v2/components/Drawer.d.ts +18 -18
  415. package/dist/v2/components/Drawer.d.ts.map +1 -1
  416. package/dist/v2/components/Drawer.js +2 -1
  417. package/dist/v2/components/Drawer.js.map +1 -1
  418. package/dist/v2/components/Dropzone.d.ts +34 -34
  419. package/dist/v2/components/Dropzone.d.ts.map +1 -1
  420. package/dist/v2/components/Dropzone.js +11 -3
  421. package/dist/v2/components/Dropzone.js.map +1 -1
  422. package/dist/v2/components/EmptyState.d.ts +7 -7
  423. package/dist/v2/components/EmptyState.d.ts.map +1 -1
  424. package/dist/v2/components/EmptyState.js.map +1 -1
  425. package/dist/v2/components/FavoriteToggle.d.ts +7 -7
  426. package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
  427. package/dist/v2/components/FavoriteToggle.js +2 -1
  428. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  429. package/dist/v2/components/Field.d.ts +17 -12
  430. package/dist/v2/components/Field.d.ts.map +1 -1
  431. package/dist/v2/components/Field.js +25 -7
  432. package/dist/v2/components/Field.js.map +1 -1
  433. package/dist/v2/components/FieldError.d.ts +78 -0
  434. package/dist/v2/components/FieldError.d.ts.map +1 -0
  435. package/dist/v2/components/FieldError.js +131 -0
  436. package/dist/v2/components/FieldError.js.map +1 -0
  437. package/dist/v2/components/FieldHelp.d.ts +7 -7
  438. package/dist/v2/components/FieldHelp.d.ts.map +1 -1
  439. package/dist/v2/components/FieldHelp.js.map +1 -1
  440. package/dist/v2/components/FileCard.d.ts +75 -0
  441. package/dist/v2/components/FileCard.d.ts.map +1 -0
  442. package/dist/v2/components/FileCard.js +169 -0
  443. package/dist/v2/components/FileCard.js.map +1 -0
  444. package/dist/v2/components/FilterTab.d.ts +9 -9
  445. package/dist/v2/components/FilterTab.d.ts.map +1 -1
  446. package/dist/v2/components/FilterTab.js +2 -1
  447. package/dist/v2/components/FilterTab.js.map +1 -1
  448. package/dist/v2/components/FormGrid.d.ts +9 -4
  449. package/dist/v2/components/FormGrid.d.ts.map +1 -1
  450. package/dist/v2/components/FormGrid.js +11 -1
  451. package/dist/v2/components/FormGrid.js.map +1 -1
  452. package/dist/v2/components/FormikDisplay.d.ts +6 -6
  453. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  454. package/dist/v2/components/FormikDisplay.js.map +1 -1
  455. package/dist/v2/components/Input.d.ts +6 -6
  456. package/dist/v2/components/Input.d.ts.map +1 -1
  457. package/dist/v2/components/Input.js.map +1 -1
  458. package/dist/v2/components/KPICard.d.ts +43 -13
  459. package/dist/v2/components/KPICard.d.ts.map +1 -1
  460. package/dist/v2/components/KPICard.js +53 -14
  461. package/dist/v2/components/KPICard.js.map +1 -1
  462. package/dist/v2/components/KPIStrip.d.ts +68 -0
  463. package/dist/v2/components/KPIStrip.d.ts.map +1 -0
  464. package/dist/v2/components/KPIStrip.js +92 -0
  465. package/dist/v2/components/KPIStrip.js.map +1 -0
  466. package/dist/v2/components/KV.d.ts +3 -3
  467. package/dist/v2/components/KV.d.ts.map +1 -1
  468. package/dist/v2/components/KV.js.map +1 -1
  469. package/dist/v2/components/KVGrid.d.ts +2 -2
  470. package/dist/v2/components/KVGrid.d.ts.map +1 -1
  471. package/dist/v2/components/KVGrid.js +8 -1
  472. package/dist/v2/components/KVGrid.js.map +1 -1
  473. package/dist/v2/components/Layout.d.ts +7 -7
  474. package/dist/v2/components/Layout.d.ts.map +1 -1
  475. package/dist/v2/components/Layout.js.map +1 -1
  476. package/dist/v2/components/MobileRowCard.d.ts +13 -13
  477. package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
  478. package/dist/v2/components/MobileRowCard.js.map +1 -1
  479. package/dist/v2/components/Modal.d.ts +12 -12
  480. package/dist/v2/components/Modal.d.ts.map +1 -1
  481. package/dist/v2/components/Modal.js.map +1 -1
  482. package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
  483. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  484. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  485. package/dist/v2/components/NumberInput.d.ts +14 -14
  486. package/dist/v2/components/NumberInput.d.ts.map +1 -1
  487. package/dist/v2/components/NumberInput.js +7 -6
  488. package/dist/v2/components/NumberInput.js.map +1 -1
  489. package/dist/v2/components/OverflowMenu.d.ts +14 -14
  490. package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
  491. package/dist/v2/components/OverflowMenu.js +4 -8
  492. package/dist/v2/components/OverflowMenu.js.map +1 -1
  493. package/dist/v2/components/PdfViewer.d.ts +9 -9
  494. package/dist/v2/components/PdfViewer.d.ts.map +1 -1
  495. package/dist/v2/components/PdfViewer.js.map +1 -1
  496. package/dist/v2/components/ProgressBar.d.ts +10 -10
  497. package/dist/v2/components/ProgressBar.d.ts.map +1 -1
  498. package/dist/v2/components/ProgressBar.js.map +1 -1
  499. package/dist/v2/components/Radio.d.ts +7 -7
  500. package/dist/v2/components/Radio.d.ts.map +1 -1
  501. package/dist/v2/components/Radio.js.map +1 -1
  502. package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
  503. package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
  504. package/dist/v2/components/SectionErrorBoundary.js +221 -0
  505. package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
  506. package/dist/v2/components/SectionHeader.d.ts +5 -5
  507. package/dist/v2/components/SectionHeader.d.ts.map +1 -1
  508. package/dist/v2/components/SectionHeader.js.map +1 -1
  509. package/dist/v2/components/Segmented.d.ts +11 -11
  510. package/dist/v2/components/Segmented.d.ts.map +1 -1
  511. package/dist/v2/components/Segmented.js.map +1 -1
  512. package/dist/v2/components/Select.d.ts +33 -15
  513. package/dist/v2/components/Select.d.ts.map +1 -1
  514. package/dist/v2/components/Select.js +147 -30
  515. package/dist/v2/components/Select.js.map +1 -1
  516. package/dist/v2/components/ServerErrorPage.d.ts +1 -1
  517. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  518. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  519. package/dist/v2/components/Skeleton.d.ts +15 -15
  520. package/dist/v2/components/Skeleton.d.ts.map +1 -1
  521. package/dist/v2/components/Skeleton.js.map +1 -1
  522. package/dist/v2/components/SkipLink.d.ts +2 -2
  523. package/dist/v2/components/SkipLink.d.ts.map +1 -1
  524. package/dist/v2/components/SkipLink.js.map +1 -1
  525. package/dist/v2/components/Status.d.ts +3 -3
  526. package/dist/v2/components/Status.d.ts.map +1 -1
  527. package/dist/v2/components/Status.js.map +1 -1
  528. package/dist/v2/components/Stepper.d.ts +28 -22
  529. package/dist/v2/components/Stepper.d.ts.map +1 -1
  530. package/dist/v2/components/Stepper.js +31 -5
  531. package/dist/v2/components/Stepper.js.map +1 -1
  532. package/dist/v2/components/Surface.d.ts +94 -0
  533. package/dist/v2/components/Surface.d.ts.map +1 -0
  534. package/dist/v2/components/Surface.js +163 -0
  535. package/dist/v2/components/Surface.js.map +1 -0
  536. package/dist/v2/components/Switch.d.ts +4 -4
  537. package/dist/v2/components/Switch.d.ts.map +1 -1
  538. package/dist/v2/components/Switch.js.map +1 -1
  539. package/dist/v2/components/Tabs.d.ts +6 -6
  540. package/dist/v2/components/Tabs.d.ts.map +1 -1
  541. package/dist/v2/components/Tabs.js.map +1 -1
  542. package/dist/v2/components/TelInput.d.ts +8 -8
  543. package/dist/v2/components/TelInput.d.ts.map +1 -1
  544. package/dist/v2/components/TelInput.js +18 -18
  545. package/dist/v2/components/TelInput.js.map +1 -1
  546. package/dist/v2/components/Textarea.d.ts +1 -1
  547. package/dist/v2/components/Textarea.d.ts.map +1 -1
  548. package/dist/v2/components/Textarea.js.map +1 -1
  549. package/dist/v2/components/TimePicker.d.ts +11 -11
  550. package/dist/v2/components/TimePicker.d.ts.map +1 -1
  551. package/dist/v2/components/TimePicker.js.map +1 -1
  552. package/dist/v2/components/Toast.d.ts +6 -6
  553. package/dist/v2/components/Toast.d.ts.map +1 -1
  554. package/dist/v2/components/Toast.js +9 -8
  555. package/dist/v2/components/Toast.js.map +1 -1
  556. package/dist/v2/components/Tooltip.d.ts +1 -1
  557. package/dist/v2/components/Tooltip.d.ts.map +1 -1
  558. package/dist/v2/components/Tooltip.js.map +1 -1
  559. package/dist/v2/components/index.d.ts +143 -0
  560. package/dist/v2/components/index.d.ts.map +1 -1
  561. package/dist/v2/components/index.js +35 -0
  562. package/dist/v2/components/index.js.map +1 -1
  563. package/dist/v2/models/favorite.d.ts +1 -1
  564. package/dist/v2/models/favorite.d.ts.map +1 -1
  565. package/dist/v2/models/favorite.js.map +1 -1
  566. package/dist/v2/models/personalization.d.ts +13 -13
  567. package/dist/v2/models/personalization.d.ts.map +1 -1
  568. package/dist/v2/models/personalization.js.map +1 -1
  569. package/dist/v2/models/referentiel.d.ts +11 -11
  570. package/dist/v2/models/referentiel.d.ts.map +1 -1
  571. package/dist/v2/models/referentiel.js.map +1 -1
  572. package/dist/v2/models/savedFilter.d.ts +8 -8
  573. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  574. package/dist/v2/models/savedFilter.js.map +1 -1
  575. package/dist/v2/patterns/ActionBar.d.ts +33 -33
  576. package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
  577. package/dist/v2/patterns/ActionBar.js +2 -1
  578. package/dist/v2/patterns/ActionBar.js.map +1 -1
  579. package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
  580. package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
  581. package/dist/v2/patterns/BulkActionBar.js +2 -1
  582. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  583. package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
  584. package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
  585. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  586. package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
  587. package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
  588. package/dist/v2/patterns/ColumnsToggle.js +4 -8
  589. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  590. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
  591. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  592. package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
  593. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  594. package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
  595. package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
  596. package/dist/v2/patterns/DataGridToolbar.js +2 -1
  597. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  598. package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
  599. package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
  600. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  601. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
  602. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
  603. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  604. package/dist/v2/patterns/FavoriteColumn.d.ts +6 -6
  605. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  606. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  607. package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
  608. package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
  609. package/dist/v2/patterns/FavoritesFilter.js +2 -1
  610. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  611. package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
  612. package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
  613. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  614. package/dist/v2/patterns/FormPageShell.d.ts +4 -4
  615. package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
  616. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  617. package/dist/v2/patterns/FormSection.d.ts +19 -8
  618. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  619. package/dist/v2/patterns/FormSection.js +106 -71
  620. package/dist/v2/patterns/FormSection.js.map +1 -1
  621. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
  622. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  623. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  624. package/dist/v2/patterns/FormikCombobox.d.ts +11 -11
  625. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  626. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  627. package/dist/v2/patterns/FormikDatePicker.d.ts +36 -8
  628. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  629. package/dist/v2/patterns/FormikDatePicker.js +27 -1
  630. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  631. package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
  632. package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
  633. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  634. package/dist/v2/patterns/FormikFile.d.ts +8 -8
  635. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  636. package/dist/v2/patterns/FormikFile.js.map +1 -1
  637. package/dist/v2/patterns/FormikInput.d.ts +41 -6
  638. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  639. package/dist/v2/patterns/FormikInput.js +49 -1
  640. package/dist/v2/patterns/FormikInput.js.map +1 -1
  641. package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
  642. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  643. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  644. package/dist/v2/patterns/FormikSelect.d.ts +33 -12
  645. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  646. package/dist/v2/patterns/FormikSelect.js +28 -2
  647. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  648. package/dist/v2/patterns/FormikTextarea.d.ts +5 -5
  649. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  650. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  651. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +7 -7
  652. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  653. package/dist/v2/patterns/KeyboardShortcutsHelp.js +2 -6
  654. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  655. package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
  656. package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
  657. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  658. package/dist/v2/patterns/PageContent.d.ts +3 -3
  659. package/dist/v2/patterns/PageContent.d.ts.map +1 -1
  660. package/dist/v2/patterns/PageContent.js.map +1 -1
  661. package/dist/v2/patterns/ReferentielField.d.ts +49 -49
  662. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  663. package/dist/v2/patterns/ReferentielField.js +2 -1
  664. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  665. package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
  666. package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
  667. package/dist/v2/patterns/SaveFilterDialog.js +9 -8
  668. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  669. package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
  670. package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
  671. package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
  672. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  673. package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
  674. package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
  675. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  676. package/dist/v2/patterns/SortableHeader.d.ts +1 -1
  677. package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
  678. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  679. package/dist/v2/patterns/Tour.d.ts +12 -12
  680. package/dist/v2/patterns/Tour.d.ts.map +1 -1
  681. package/dist/v2/patterns/Tour.js +9 -8
  682. package/dist/v2/patterns/Tour.js.map +1 -1
  683. package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
  684. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  685. package/dist/v2/patterns/_dataGridShared.js +37 -3
  686. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  687. package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
  688. package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
  689. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  690. package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
  691. package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
  692. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  693. package/dist/v2/patterns/index.d.ts +27 -0
  694. package/dist/v2/patterns/index.d.ts.map +1 -1
  695. package/dist/v2/patterns/index.js.map +1 -1
  696. package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
  697. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  698. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  699. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
  700. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
  701. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  702. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
  703. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
  704. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  705. package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
  706. package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
  707. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  708. package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
  709. package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
  710. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  711. package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
  712. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  713. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  714. package/dist/v2/personalization/schema.d.ts +2 -2
  715. package/dist/v2/personalization/schema.d.ts.map +1 -1
  716. package/dist/v2/personalization/schema.js.map +1 -1
  717. package/dist/v2/personalization/types.d.ts +19 -19
  718. package/dist/v2/personalization/types.d.ts.map +1 -1
  719. package/dist/v2/personalization/types.js.map +1 -1
  720. package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
  721. package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
  722. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  723. package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
  724. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  725. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  726. package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
  727. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  728. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  729. package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
  730. package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
  731. package/dist/v2/theme/createPortnetTheme.js +25 -1
  732. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  733. package/dist/v2/types/datagrid.d.ts +59 -59
  734. package/dist/v2/types/datagrid.d.ts.map +1 -1
  735. package/dist/v2/types/datagrid.js.map +1 -1
  736. package/dist/v2/utils/apiError.d.ts +65 -4
  737. package/dist/v2/utils/apiError.d.ts.map +1 -1
  738. package/dist/v2/utils/apiError.js +69 -6
  739. package/dist/v2/utils/apiError.js.map +1 -1
  740. package/dist/v2/utils/index.d.ts +1 -0
  741. package/dist/v2/utils/index.d.ts.map +1 -1
  742. package/dist/v2/utils/index.js +7 -0
  743. package/dist/v2/utils/index.js.map +1 -1
  744. package/dist/v2/utils/mergeLabels.d.ts +59 -0
  745. package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
  746. package/dist/v2/utils/mergeLabels.js +93 -0
  747. package/dist/v2/utils/mergeLabels.js.map +1 -0
  748. package/package.json +23 -15
@@ -40,21 +40,21 @@ import type { SxProps, Theme } from "@mui/material/styles";
40
40
  export type SegmentedValue = string | number;
41
41
  export interface SegmentedOption {
42
42
  value: SegmentedValue;
43
- label?: React.ReactNode;
44
- icon?: React.ReactElement;
45
- disabled?: boolean;
46
- "aria-label"?: string;
43
+ label?: React.ReactNode | undefined;
44
+ icon?: React.ReactElement | undefined;
45
+ disabled?: boolean | undefined;
46
+ "aria-label"?: string | undefined;
47
47
  }
48
48
  export interface SegmentedProps {
49
49
  value: SegmentedValue;
50
- onChange?: (value: SegmentedValue) => void;
50
+ onChange?: ((value: SegmentedValue) => void) | undefined;
51
51
  options: SegmentedOption[];
52
- size?: "sm" | "md";
53
- fullWidth?: boolean;
54
- disabled?: boolean;
55
- "aria-label"?: string;
56
- "aria-labelledby"?: string;
57
- sx?: SxProps<Theme>;
52
+ size?: "sm" | "md" | undefined;
53
+ fullWidth?: boolean | undefined;
54
+ disabled?: boolean | undefined;
55
+ "aria-label"?: string | undefined;
56
+ "aria-labelledby"?: string | undefined;
57
+ sx?: SxProps<Theme> | undefined;
58
58
  }
59
59
  declare function Segmented({ value, onChange, options, size, fullWidth, disabled, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, sx, }: SegmentedProps): React.JSX.Element;
60
60
  export default Segmented;
@@ -1 +1 @@
1
- {"version":3,"file":"Segmented.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Segmented.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED,iBAAS,SAAS,CAAC,EACjB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAW,EACX,SAAiB,EACjB,QAAgB,EAChB,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,EAAE,GACH,EAAE,cAAc,qBA8LhB;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Segmented.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Segmented.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAED,iBAAS,SAAS,CAAC,EACjB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,IAAW,EACX,SAAiB,EACjB,QAAgB,EAChB,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,EAAE,GACH,EAAE,cAAc,qBA8LhB;AAED,eAAe,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Segmented.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","iterator","constructor","Segmented","_ref","_options$selectedInde","onChange","options","_ref$size","size","_ref$fullWidth","fullWidth","_ref$disabled","disabled","ariaLabel","ariaLabelledBy","sx","process","env","console","warn","concat","refs","useRef","selectedIndex","Math","max","findIndex","o","tabbableIndex","focusOption","node","current","focus","move","delta","len","next","step","_options$next","requestAnimationFrame","handleKeyDown","e","preventDefault","first","opt","_loop","v","_ret","padY","padX","fontSize","jsx","role","onKeyDown","display","width","padding","background","border","borderRadius","gap","opacity","children","map","isSelected","isDisabled","jsxs","ref","el","tabIndex","onClick","flex","alignItems","justifyContent","fontWeight","color","boxShadow","cursor","userSelect","whiteSpace","transition","outline","outlineOffset","icon","component","label","_default","exports"],"sources":["../../../src/lib/v2/components/Segmented.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * Segmented - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Segmented control\". Single-selection input\r\n * for 2-4 mutually exclusive options. Use when Radio would feel\r\n * overweighted (R-Sel.2). For panel switching use <Tabs> instead.\r\n *\r\n * <Segmented\r\n * value={density}\r\n * onChange={setDensity}\r\n * options={[\r\n * { value: \"comfortable\", label: \"Confort\" },\r\n * { value: \"compact\", label: \"Compact\" },\r\n * ]}\r\n * aria-label=\"Densité d'affichage\"\r\n * />\r\n *\r\n * With icons (icon-only is allowed but each option MUST then have its\r\n * own aria-label):\r\n *\r\n * <Segmented\r\n * value={view} onChange={setView}\r\n * options={[\r\n * { value: \"list\", icon: <ViewListIcon />, \"aria-label\": \"Liste\" },\r\n * { value: \"grid\", icon: <ViewModuleIcon />, \"aria-label\": \"Grille\" },\r\n * ]}\r\n * aria-label=\"Mode d'affichage\"\r\n * />\r\n *\r\n * A11y note (R-K.1):\r\n * role=\"radiogroup\" + role=\"radio\" with roving tabindex per WAI-ARIA.\r\n * Arrow keys move focus AND auto-select (selection follows focus).\r\n * Space/Enter re-affirm the focused option (no-op under auto-select,\r\n * but consumes the keystroke so automated a11y audits don't flag the\r\n * role and so users following the alternative WAI-ARIA radiogroup\r\n * pattern aren't surprised).\r\n */\r\n\r\nexport type SegmentedValue = string | number;\r\n\r\nexport interface SegmentedOption {\r\n value: SegmentedValue;\r\n label?: React.ReactNode;\r\n icon?: React.ReactElement;\r\n disabled?: boolean;\r\n \"aria-label\"?: string;\r\n}\r\n\r\nexport interface SegmentedProps {\r\n value: SegmentedValue;\r\n onChange?: (value: SegmentedValue) => void;\r\n options: SegmentedOption[];\r\n size?: \"sm\" | \"md\";\r\n fullWidth?: boolean;\r\n disabled?: boolean;\r\n \"aria-label\"?: string;\r\n \"aria-labelledby\"?: string;\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nfunction Segmented({\r\n value,\r\n onChange,\r\n options,\r\n size = \"md\",\r\n fullWidth = false,\r\n disabled = false,\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n sx,\r\n}: SegmentedProps) {\r\n if (process.env[\"NODE_ENV\"] !== \"production\") {\r\n if (!ariaLabel && !ariaLabelledBy) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] <Segmented> requires aria-label or aria-labelledby on the radiogroup.\"\r\n );\r\n }\r\n if (options.length < 2 || options.length > 4) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `[@portnet/ui v2] <Segmented> with ${options.length} options - charter R-Sel.2 says 2-4. ` +\r\n \"Below 2: drop the control. Above 4: use <Select> or <Tabs>.\"\r\n );\r\n }\r\n }\r\n\r\n const refs = React.useRef<Array<HTMLDivElement | null>>([]);\r\n\r\n // Index of the currently-selected option drives aria-checked + styling.\r\n const selectedIndex = Math.max(\r\n 0,\r\n options.findIndex((o) => o.value === value)\r\n );\r\n\r\n // SEG-1 — Roving tabindex target. Per WAI-ARIA only ONE option is tabbable;\r\n // normally that's the selected one, but if the current value points at a\r\n // disabled option we fall back to the first enabled option so the group is\r\n // still reachable by Tab (WCAG 2.1.1). -1 when every option is disabled.\r\n const tabbableIndex = !options[selectedIndex]?.disabled\r\n ? selectedIndex\r\n : options.findIndex((o) => !o.disabled);\r\n\r\n const focusOption = (i: number) => {\r\n const node = refs.current[i];\r\n if (node) node.focus();\r\n };\r\n\r\n const move = (delta: number) => {\r\n const len = options.length;\r\n let next = selectedIndex;\r\n for (let step = 0; step < len; step += 1) {\r\n next = (next + delta + len) % len;\r\n if (!options[next]?.disabled) break;\r\n }\r\n const target = options[next];\r\n if (target && !target.disabled) {\r\n onChange?.(target.value);\r\n // schedule focus to land after React commits the new selectedIndex\r\n requestAnimationFrame(() => focusOption(next));\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n switch (e.key) {\r\n case \"ArrowRight\":\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n move(+1);\r\n break;\r\n case \"ArrowLeft\":\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n move(-1);\r\n break;\r\n case \"Home\": {\r\n e.preventDefault();\r\n const first = options.findIndex((o) => !o.disabled);\r\n const opt = first >= 0 ? options[first] : undefined;\r\n if (opt) {\r\n onChange?.(opt.value);\r\n requestAnimationFrame(() => focusOption(first));\r\n }\r\n break;\r\n }\r\n case \"End\": {\r\n e.preventDefault();\r\n for (let i = options.length - 1; i >= 0; i -= 1) {\r\n const opt = options[i];\r\n if (opt && !opt.disabled) {\r\n onChange?.(opt.value);\r\n requestAnimationFrame(() => focusOption(i));\r\n return;\r\n }\r\n }\r\n break;\r\n }\r\n case \" \":\r\n case \"Enter\": {\r\n // R-K.1 - Space/Enter re-affirm the focused (= selected) option.\r\n const opt = options[selectedIndex];\r\n if (opt && !opt.disabled) {\r\n e.preventDefault();\r\n onChange?.(opt.value);\r\n }\r\n break;\r\n }\r\n default:\r\n }\r\n };\r\n\r\n // Per-option padding pulled from the spacing scale (var(--s-1) = 4 px,\r\n // var(--s-2) = 8 px). The \"+2\" on the small horizontal padding\r\n // mirrors the +2 button padding offset in createPortnetTheme — all\r\n // small interactive elements add a 2 px breathing offset to the\r\n // base grid for visual rhythm.\r\n const padY = size === \"sm\" ? \"var(--s-1)\" : \"calc(var(--s-1) + 2px)\";\r\n const padX = size === \"sm\" ? \"calc(var(--s-2) + 2px)\" : \"var(--s-3)\";\r\n const fontSize = size === \"sm\" ? \"var(--text-xs)\" : \"var(--text-sm)\";\r\n\r\n return (\r\n <Box\r\n role=\"radiogroup\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-disabled={disabled || undefined}\r\n onKeyDown={handleKeyDown}\r\n sx={{\r\n display: \"inline-flex\",\r\n width: fullWidth ? \"100%\" : \"auto\",\r\n padding: \"2px\",\r\n background: \"var(--bg-subtle)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n gap: \"2px\",\r\n opacity: disabled ? 0.55 : 1,\r\n ...sx,\r\n }}\r\n >\r\n {options.map((opt, i) => {\r\n const isSelected = i === selectedIndex;\r\n const isDisabled = disabled || opt.disabled;\r\n return (\r\n <Box\r\n key={opt.value}\r\n ref={(el) => { refs.current[i] = el as HTMLDivElement | null; }}\r\n role=\"radio\"\r\n aria-checked={isSelected}\r\n aria-disabled={isDisabled || undefined}\r\n aria-label={opt[\"aria-label\"]}\r\n tabIndex={i === tabbableIndex && !isDisabled ? 0 : -1}\r\n onClick={() => {\r\n if (isDisabled || isSelected) return;\r\n onChange?.(opt.value);\r\n }}\r\n sx={{\r\n flex: fullWidth ? 1 : \"0 0 auto\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: 0.75,\r\n padding: `${padY} ${padX}`,\r\n borderRadius: \"calc(var(--r-md) - 2px)\",\r\n fontSize,\r\n fontWeight: isSelected ? \"var(--fw-semibold)\" : \"var(--fw-medium)\",\r\n color: isSelected ? \"var(--fg)\" : \"var(--fg-muted)\",\r\n background: isSelected ? \"var(--surface)\" : \"transparent\",\r\n boxShadow: isSelected ? \"var(--shadow-xs)\" : \"none\",\r\n cursor: isDisabled ? \"not-allowed\" : isSelected ? \"default\" : \"pointer\",\r\n userSelect: \"none\",\r\n whiteSpace: \"nowrap\",\r\n transition:\r\n \"background var(--duration-fast, 80ms) ease, color var(--duration-fast, 80ms) ease\",\r\n \"&:hover\": {\r\n ...(!isSelected && !isDisabled\r\n ? { background: \"var(--bg-hover)\", color: \"var(--fg)\" }\r\n : {}),\r\n },\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 {opt.icon && (\r\n <Box\r\n component=\"span\"\r\n aria-hidden=\"true\"\r\n sx={{ display: \"inline-flex\", color: \"currentColor\" }}\r\n >\r\n {opt.icon}\r\n </Box>\r\n )}\r\n {opt.label && <Box component=\"span\">{opt.label}</Box>}\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Segmented;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Segmented.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","iterator","constructor","Segmented","_ref","_options$selectedInde","onChange","options","_ref$size","size","_ref$fullWidth","fullWidth","_ref$disabled","disabled","ariaLabel","ariaLabelledBy","sx","process","env","console","warn","concat","refs","useRef","selectedIndex","Math","max","findIndex","o","tabbableIndex","focusOption","node","current","focus","move","delta","len","next","step","_options$next","requestAnimationFrame","handleKeyDown","e","preventDefault","first","opt","_loop","v","_ret","padY","padX","fontSize","jsx","role","onKeyDown","display","width","padding","background","border","borderRadius","gap","opacity","children","map","isSelected","isDisabled","jsxs","ref","el","tabIndex","onClick","flex","alignItems","justifyContent","fontWeight","color","boxShadow","cursor","userSelect","whiteSpace","transition","outline","outlineOffset","icon","component","label","_default","exports"],"sources":["../../../src/lib/v2/components/Segmented.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * Segmented - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Segmented control\". Single-selection input\r\n * for 2-4 mutually exclusive options. Use when Radio would feel\r\n * overweighted (R-Sel.2). For panel switching use <Tabs> instead.\r\n *\r\n * <Segmented\r\n * value={density}\r\n * onChange={setDensity}\r\n * options={[\r\n * { value: \"comfortable\", label: \"Confort\" },\r\n * { value: \"compact\", label: \"Compact\" },\r\n * ]}\r\n * aria-label=\"Densité d'affichage\"\r\n * />\r\n *\r\n * With icons (icon-only is allowed but each option MUST then have its\r\n * own aria-label):\r\n *\r\n * <Segmented\r\n * value={view} onChange={setView}\r\n * options={[\r\n * { value: \"list\", icon: <ViewListIcon />, \"aria-label\": \"Liste\" },\r\n * { value: \"grid\", icon: <ViewModuleIcon />, \"aria-label\": \"Grille\" },\r\n * ]}\r\n * aria-label=\"Mode d'affichage\"\r\n * />\r\n *\r\n * A11y note (R-K.1):\r\n * role=\"radiogroup\" + role=\"radio\" with roving tabindex per WAI-ARIA.\r\n * Arrow keys move focus AND auto-select (selection follows focus).\r\n * Space/Enter re-affirm the focused option (no-op under auto-select,\r\n * but consumes the keystroke so automated a11y audits don't flag the\r\n * role and so users following the alternative WAI-ARIA radiogroup\r\n * pattern aren't surprised).\r\n */\r\n\r\nexport type SegmentedValue = string | number;\r\n\r\nexport interface SegmentedOption {\r\n value: SegmentedValue;\r\n label?: React.ReactNode | undefined;\r\n icon?: React.ReactElement | undefined;\r\n disabled?: boolean | undefined;\r\n \"aria-label\"?: string | undefined;\r\n}\r\n\r\nexport interface SegmentedProps {\r\n value: SegmentedValue;\r\n onChange?: ((value: SegmentedValue) => void) | undefined;\r\n options: SegmentedOption[];\r\n size?: \"sm\" | \"md\" | undefined;\r\n fullWidth?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n \"aria-label\"?: string | undefined;\r\n \"aria-labelledby\"?: string | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nfunction Segmented({\r\n value,\r\n onChange,\r\n options,\r\n size = \"md\",\r\n fullWidth = false,\r\n disabled = false,\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n sx,\r\n}: SegmentedProps) {\r\n if (process.env[\"NODE_ENV\"] !== \"production\") {\r\n if (!ariaLabel && !ariaLabelledBy) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n \"[@portnet/ui v2] <Segmented> requires aria-label or aria-labelledby on the radiogroup.\"\r\n );\r\n }\r\n if (options.length < 2 || options.length > 4) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `[@portnet/ui v2] <Segmented> with ${options.length} options - charter R-Sel.2 says 2-4. ` +\r\n \"Below 2: drop the control. Above 4: use <Select> or <Tabs>.\"\r\n );\r\n }\r\n }\r\n\r\n const refs = React.useRef<Array<HTMLDivElement | null>>([]);\r\n\r\n // Index of the currently-selected option drives aria-checked + styling.\r\n const selectedIndex = Math.max(\r\n 0,\r\n options.findIndex((o) => o.value === value)\r\n );\r\n\r\n // SEG-1 — Roving tabindex target. Per WAI-ARIA only ONE option is tabbable;\r\n // normally that's the selected one, but if the current value points at a\r\n // disabled option we fall back to the first enabled option so the group is\r\n // still reachable by Tab (WCAG 2.1.1). -1 when every option is disabled.\r\n const tabbableIndex = !options[selectedIndex]?.disabled\r\n ? selectedIndex\r\n : options.findIndex((o) => !o.disabled);\r\n\r\n const focusOption = (i: number) => {\r\n const node = refs.current[i];\r\n if (node) node.focus();\r\n };\r\n\r\n const move = (delta: number) => {\r\n const len = options.length;\r\n let next = selectedIndex;\r\n for (let step = 0; step < len; step += 1) {\r\n next = (next + delta + len) % len;\r\n if (!options[next]?.disabled) break;\r\n }\r\n const target = options[next];\r\n if (target && !target.disabled) {\r\n onChange?.(target.value);\r\n // schedule focus to land after React commits the new selectedIndex\r\n requestAnimationFrame(() => focusOption(next));\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n switch (e.key) {\r\n case \"ArrowRight\":\r\n case \"ArrowDown\":\r\n e.preventDefault();\r\n move(+1);\r\n break;\r\n case \"ArrowLeft\":\r\n case \"ArrowUp\":\r\n e.preventDefault();\r\n move(-1);\r\n break;\r\n case \"Home\": {\r\n e.preventDefault();\r\n const first = options.findIndex((o) => !o.disabled);\r\n const opt = first >= 0 ? options[first] : undefined;\r\n if (opt) {\r\n onChange?.(opt.value);\r\n requestAnimationFrame(() => focusOption(first));\r\n }\r\n break;\r\n }\r\n case \"End\": {\r\n e.preventDefault();\r\n for (let i = options.length - 1; i >= 0; i -= 1) {\r\n const opt = options[i];\r\n if (opt && !opt.disabled) {\r\n onChange?.(opt.value);\r\n requestAnimationFrame(() => focusOption(i));\r\n return;\r\n }\r\n }\r\n break;\r\n }\r\n case \" \":\r\n case \"Enter\": {\r\n // R-K.1 - Space/Enter re-affirm the focused (= selected) option.\r\n const opt = options[selectedIndex];\r\n if (opt && !opt.disabled) {\r\n e.preventDefault();\r\n onChange?.(opt.value);\r\n }\r\n break;\r\n }\r\n default:\r\n }\r\n };\r\n\r\n // Per-option padding pulled from the spacing scale (var(--s-1) = 4 px,\r\n // var(--s-2) = 8 px). The \"+2\" on the small horizontal padding\r\n // mirrors the +2 button padding offset in createPortnetTheme — all\r\n // small interactive elements add a 2 px breathing offset to the\r\n // base grid for visual rhythm.\r\n const padY = size === \"sm\" ? \"var(--s-1)\" : \"calc(var(--s-1) + 2px)\";\r\n const padX = size === \"sm\" ? \"calc(var(--s-2) + 2px)\" : \"var(--s-3)\";\r\n const fontSize = size === \"sm\" ? \"var(--text-xs)\" : \"var(--text-sm)\";\r\n\r\n return (\r\n <Box\r\n role=\"radiogroup\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-disabled={disabled || undefined}\r\n onKeyDown={handleKeyDown}\r\n sx={{\r\n display: \"inline-flex\",\r\n width: fullWidth ? \"100%\" : \"auto\",\r\n padding: \"2px\",\r\n background: \"var(--bg-subtle)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n gap: \"2px\",\r\n opacity: disabled ? 0.55 : 1,\r\n ...sx,\r\n }}\r\n >\r\n {options.map((opt, i) => {\r\n const isSelected = i === selectedIndex;\r\n const isDisabled = disabled || opt.disabled;\r\n return (\r\n <Box\r\n key={opt.value}\r\n ref={(el) => { refs.current[i] = el as HTMLDivElement | null; }}\r\n role=\"radio\"\r\n aria-checked={isSelected}\r\n aria-disabled={isDisabled || undefined}\r\n aria-label={opt[\"aria-label\"]}\r\n tabIndex={i === tabbableIndex && !isDisabled ? 0 : -1}\r\n onClick={() => {\r\n if (isDisabled || isSelected) return;\r\n onChange?.(opt.value);\r\n }}\r\n sx={{\r\n flex: fullWidth ? 1 : \"0 0 auto\",\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: 0.75,\r\n padding: `${padY} ${padX}`,\r\n borderRadius: \"calc(var(--r-md) - 2px)\",\r\n fontSize,\r\n fontWeight: isSelected ? \"var(--fw-semibold)\" : \"var(--fw-medium)\",\r\n color: isSelected ? \"var(--fg)\" : \"var(--fg-muted)\",\r\n background: isSelected ? \"var(--surface)\" : \"transparent\",\r\n boxShadow: isSelected ? \"var(--shadow-xs)\" : \"none\",\r\n cursor: isDisabled ? \"not-allowed\" : isSelected ? \"default\" : \"pointer\",\r\n userSelect: \"none\",\r\n whiteSpace: \"nowrap\",\r\n transition:\r\n \"background var(--duration-fast, 80ms) ease, color var(--duration-fast, 80ms) ease\",\r\n \"&:hover\": {\r\n ...(!isSelected && !isDisabled\r\n ? { background: \"var(--bg-hover)\", color: \"var(--fg)\" }\r\n : {}),\r\n },\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 {opt.icon && (\r\n <Box\r\n component=\"span\"\r\n aria-hidden=\"true\"\r\n sx={{ display: \"inline-flex\", color: \"currentColor\" }}\r\n >\r\n {opt.icon}\r\n </Box>\r\n )}\r\n {opt.label && <Box component=\"span\">{opt.label}</Box>}\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Segmented;\r\n"],"mappings":"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","ignoreList":[]}
@@ -48,25 +48,43 @@ export interface SelectChangeLike {
48
48
  };
49
49
  }
50
50
  export interface SelectLabels {
51
- placeholder?: string;
52
- clearAll?: string;
53
- clearAllAria?: string;
54
- removeChip?: (label: React.ReactNode) => string;
55
- searchLabel?: string;
56
- searchClear?: string;
57
- noOptions?: string;
51
+ placeholder?: string | undefined;
52
+ clearAll?: string | undefined;
53
+ clearAllAria?: string | undefined;
54
+ removeChip?: ((label: React.ReactNode) => string) | undefined;
55
+ searchLabel?: string | undefined;
56
+ searchClear?: string | undefined;
57
+ noOptions?: string | undefined;
58
58
  }
59
59
  export interface SelectProps extends Omit<MuiSelectProps<SelectValue>, "value" | "onChange" | "renderValue" | "children" | "inputRef"> {
60
- value?: SelectValue;
61
- onChange?: (event: SelectChangeLike) => void;
62
- options?: SelectOption[];
63
- placeholder?: string;
64
- labels?: SelectLabels;
65
- searchable?: boolean;
66
- searchThreshold?: number;
60
+ value?: SelectValue | undefined;
61
+ onChange?: ((event: SelectChangeLike) => void) | undefined;
62
+ options?: SelectOption[] | undefined;
63
+ placeholder?: string | undefined;
64
+ labels?: SelectLabels | undefined;
65
+ searchable?: boolean | undefined;
66
+ searchThreshold?: number | undefined;
67
67
  /** Optional caller-provided input ref; merged with the internal one. */
68
- inputRef?: React.Ref<HTMLInputElement>;
68
+ inputRef?: React.Ref<HTMLInputElement> | undefined;
69
69
  }
70
+ export declare function isRecord(v: unknown): v is Record<string, unknown>;
71
+ /** Stable string key for a value, primitive or object. "" when undecidable. */
72
+ export declare function valueKey(v: unknown): string;
73
+ /**
74
+ * Value equality that survives object identity loss.
75
+ *
76
+ * Reference/primitive equality first (the common path), then a structural
77
+ * comparison on the discriminating key. The `!== ""` guard matters: without it
78
+ * two objects that expose no key would compare equal to each other AND to any
79
+ * empty value.
80
+ */
81
+ export declare function sameOptionValue(a: unknown, b: unknown): boolean;
82
+ /**
83
+ * Best-effort label for a value with no matching option. Returns `null` when
84
+ * nothing renderable can be derived, so the caller shows the placeholder
85
+ * instead of throwing.
86
+ */
87
+ export declare function labelFromValue(v: unknown): React.ReactNode;
70
88
  declare const Select: React.ForwardRefExoticComponent<Omit<SelectProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
71
89
  export default Select;
72
90
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAQ1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WACf,SAAQ,IAAI,CACV,cAAc,CAAC,WAAW,CAAC,EAC3B,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAC/D;IACD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;CACxC;AA6BD,QAAA,MAAM,MAAM,mGAyPV,CAAC;AAEH,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAS1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,kBAAkB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,iBAAiB,EAAE,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,GAAG,SAAS,CAAC;IAC9D,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,WACf,SAAQ,IAAI,CACV,cAAc,CAAC,WAAW,CAAC,EAC3B,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,UAAU,CAC/D;IACD,KAAK,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CACpD;AA2CD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEjE;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAU3C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAO/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAW1D;AAmBD,QAAA,MAAM,MAAM,mGAoQV,CAAC;AAEH,eAAe,MAAM,CAAC"}
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports["default"] = void 0;
7
+ exports.isRecord = isRecord;
8
+ exports.labelFromValue = labelFromValue;
9
+ exports.sameOptionValue = sameOptionValue;
10
+ exports.valueKey = valueKey;
8
11
  var React = _interopRequireWildcard(require("react"));
9
12
  var _Select = _interopRequireDefault(require("@mui/material/Select"));
10
13
  var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
@@ -12,9 +15,27 @@ var _Chip = _interopRequireDefault(require("@mui/material/Chip"));
12
15
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
13
16
  var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
14
17
  var _Search = _interopRequireDefault(require("@mui/icons-material/Search"));
18
+ var _mergeLabels = require("../utils/mergeLabels");
15
19
  var _jsxRuntime = require("react/jsx-runtime");
16
20
  var _excluded = ["value", "onChange", "onBlur", "options", "placeholder", "disabled", "error", "fullWidth", "multiple", "labels", "searchable", "searchThreshold", "inputRef", "sx"];
17
- /**
21
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
+ 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; }
25
+ 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; }
26
+ 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; }
27
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
28
+ 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); }
29
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
30
+ 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."); }
31
+ 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; } }
32
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
33
+ 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; }
34
+ 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; }
35
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
36
+ 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); }
37
+ 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; }
38
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } /**
18
39
  * Select — Portnet UI v2
19
40
  *
20
41
  * Charter §03 · Component "Select".
@@ -43,28 +64,11 @@ var _excluded = ["value", "onChange", "onBlur", "options", "placeholder", "disab
43
64
  * that focus target is never null — otherwise clicking the closed select
44
65
  * throws "Cannot read properties of null (reading 'focus')" from inside
45
66
  * MUI's own click handler.
46
- */
47
- /**
67
+ */ /**
48
68
  * onChange event shape. Deliberately loose: the component fires onChange
49
69
  * both from MUI's native SelectChangeEvent AND from a synthetic
50
70
  * { target: { value } } object in the chip-remove / clear-all paths.
51
71
  */
52
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
53
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
54
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
55
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
56
- 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."); }
57
- 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); }
58
- 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; }
59
- 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; } }
60
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
61
- 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; }
62
- 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; }
63
- 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; }
64
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
65
- 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); }
66
- 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; }
67
- 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; }
68
72
  var DEFAULT_LABELS = Object.freeze({
69
73
  placeholder: "Sélectionner…",
70
74
  clearAll: "Tout effacer",
@@ -77,6 +81,107 @@ var DEFAULT_LABELS = Object.freeze({
77
81
  noOptions: "Aucun résultat"
78
82
  });
79
83
 
84
+ /* ── Out-of-contract object values: defensive resolution ───────────
85
+ *
86
+ * `SelectOptionValue` is declared `string | number`, but several GU modules
87
+ * store whole referentiel objects as the Select value — see R-29 in the
88
+ * amssnur-ui behaviour register, and the `bmdav-fe` precedent that first
89
+ * surfaced `FormikComboboxProps`. Their payload mappers read
90
+ * `values.typeDemande.code`, so the object IS the value they need back.
91
+ *
92
+ * That is out of contract, and until the opt-in opaque value described in R-29
93
+ * lands it is also reality. This component must therefore be DEFENSIVE about
94
+ * object values rather than crash on them. Three concrete failures it had:
95
+ *
96
+ * 1. `optionLabel` returned the raw value when no option matched, so
97
+ * `renderValue` handed a plain object to React:
98
+ * "Objects are not valid as a React child
99
+ * (found: object with keys {id, code, description})"
100
+ * This is a HARD CRASH, caught only if the host wraps the section in an
101
+ * error boundary. Reported from amssnur-ui on two screens.
102
+ *
103
+ * 2. `options.find((o) => o.value === v)` is REFERENCE equality for objects.
104
+ * A value seeded from an API payload is never the same instance as an
105
+ * option fetched separately, so it never matched — which is what made (1)
106
+ * fire on the edit path even when the option list was fully loaded.
107
+ *
108
+ * 3. `key={v}` on each MenuItem stringifies an object to "[object Object]",
109
+ * giving every item in the list the SAME React key.
110
+ *
111
+ * `value={v}` is still passed through unchanged, so `onChange` returns the
112
+ * caller's own object reference and the object-valued contract keeps working.
113
+ */
114
+
115
+ function isRecord(v) {
116
+ return _typeof(v) === "object" && v !== null;
117
+ }
118
+
119
+ /** Stable string key for a value, primitive or object. "" when undecidable. */
120
+ function valueKey(v) {
121
+ if (v === null || v === undefined) return "";
122
+ if (!isRecord(v)) return String(v);
123
+ var _iterator = _createForOfIteratorHelper(["value", "id", "code"]),
124
+ _step;
125
+ try {
126
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
127
+ var k = _step.value;
128
+ var candidate = v[k];
129
+ if (candidate !== null && candidate !== undefined && !isRecord(candidate)) {
130
+ return String(candidate);
131
+ }
132
+ }
133
+ } catch (err) {
134
+ _iterator.e(err);
135
+ } finally {
136
+ _iterator.f();
137
+ }
138
+ return "";
139
+ }
140
+
141
+ /**
142
+ * Value equality that survives object identity loss.
143
+ *
144
+ * Reference/primitive equality first (the common path), then a structural
145
+ * comparison on the discriminating key. The `!== ""` guard matters: without it
146
+ * two objects that expose no key would compare equal to each other AND to any
147
+ * empty value.
148
+ */
149
+ function sameOptionValue(a, b) {
150
+ if (a === b) return true;
151
+ if (isRecord(a) || isRecord(b)) {
152
+ var ka = valueKey(a);
153
+ return ka !== "" && ka === valueKey(b);
154
+ }
155
+ return String(a) === String(b);
156
+ }
157
+
158
+ /**
159
+ * Best-effort label for a value with no matching option. Returns `null` when
160
+ * nothing renderable can be derived, so the caller shows the placeholder
161
+ * instead of throwing.
162
+ */
163
+ function labelFromValue(v) {
164
+ if (v === null || v === undefined) return null;
165
+ if (!isRecord(v)) return String(v);
166
+ var _iterator2 = _createForOfIteratorHelper(["label", "description", "name", "libelle", "code"]),
167
+ _step2;
168
+ try {
169
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
170
+ var k = _step2.value;
171
+ var candidate = v[k];
172
+ if (candidate !== null && candidate !== undefined && !isRecord(candidate)) {
173
+ var s = String(candidate);
174
+ if (s !== "") return s;
175
+ }
176
+ }
177
+ } catch (err) {
178
+ _iterator2.e(err);
179
+ } finally {
180
+ _iterator2.f();
181
+ }
182
+ return null;
183
+ }
184
+
80
185
  /* ── Search input — sticky at top of dropdown list ─────────────────
81
186
  * Rendered as a non-MenuItem Box so ArrowKey list-navigation skips it.
82
187
  * onKeyDown stopPropagation prevents MUI's keyboard handler from
@@ -138,7 +243,7 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(_ref, ref) {
138
243
  // eslint-disable-next-line no-console
139
244
  console.warn("[@portnet/ui v2] <Select> has ".concat(options.length, " options \u2014 charter R-Sel.1: use searchThreshold={8} or Combobox above 30."));
140
245
  }
141
- var L = labels ? _objectSpread(_objectSpread({}, DEFAULT_LABELS), labels) : DEFAULT_LABELS;
246
+ var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
142
247
  var effectivePlaceholder = placeholder !== null && placeholder !== void 0 ? placeholder : L.placeholder;
143
248
 
144
249
  /* ── Search state ──────────────────────────────────────────────── */
@@ -173,11 +278,21 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(_ref, ref) {
173
278
  /* ── Label resolver ────────────────────────────────────────────── */
174
279
  var optionLabel = React.useCallback(function (v) {
175
280
  var opt = options.find(function (o) {
176
- return (typeof o === "string" ? o : o.value) === v;
281
+ return sameOptionValue(typeof o === "string" ? o : o.value, v);
282
+ });
283
+ if (opt) return typeof opt === "string" ? opt : opt.label;
284
+
285
+ /* No match. NEVER return `v` unguarded — an object here is a React-child
286
+ * crash. Derive something readable, else show the placeholder. */
287
+ var derived = labelFromValue(v);
288
+ if (derived !== null) return derived;
289
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
290
+ style: {
291
+ color: "var(--fg-subtle)"
292
+ },
293
+ children: effectivePlaceholder
177
294
  });
178
- if (!opt) return v;
179
- return typeof opt === "string" ? opt : opt.label;
180
- }, [options]);
295
+ }, [options, effectivePlaceholder]);
181
296
 
182
297
  /* ── Multi-select helpers ──────────────────────────────────────── */
183
298
  var fireChange = React.useCallback(function (nextValue) {
@@ -194,7 +309,7 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(_ref, ref) {
194
309
  if (!multiple) return;
195
310
  var arr = Array.isArray(value) ? value : [];
196
311
  fireChange(arr.filter(function (v) {
197
- return v !== val;
312
+ return !sameOptionValue(v, val);
198
313
  }));
199
314
  };
200
315
  };
@@ -237,7 +352,7 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(_ref, ref) {
237
352
  alignItems: "center",
238
353
  gap: 0.5
239
354
  },
240
- children: [arr.map(function (v) {
355
+ children: [arr.map(function (v, i) {
241
356
  var lbl = optionLabel(v);
242
357
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip["default"], {
243
358
  size: "small",
@@ -256,7 +371,7 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(_ref, ref) {
256
371
  fontSize: 12
257
372
  }
258
373
  }
259
- }, v);
374
+ }, valueKey(v) || "sel-".concat(i));
260
375
  }), arr.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
261
376
  component: "button",
262
377
  type: "button",
@@ -368,13 +483,15 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(_ref, ref) {
368
483
  fontSize: "var(--text-sm)"
369
484
  },
370
485
  children: L.noOptions
371
- }), filteredOptions.map(function (o) {
486
+ }), filteredOptions.map(function (o, i) {
372
487
  var v = typeof o === "string" ? o : o.value;
373
488
  var l = typeof o === "string" ? o : o.label;
489
+ /* key via valueKey: an object value stringifies to "[object Object]",
490
+ * which would give every item in the list the same React key. */
374
491
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem["default"], {
375
492
  value: v,
376
493
  children: l
377
- }, v);
494
+ }, valueKey(v) || "opt-".concat(i));
378
495
  })]
379
496
  }));
380
497
  });