@portnet/ui 6.0.1 → 6.0.3

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 (1011) hide show
  1. package/CHANGELOG.md +737 -0
  2. package/dist/esm/index.js +90 -3
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/v2/__tests__/AppMain.test.js +130 -0
  5. package/dist/esm/v2/__tests__/AppMain.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/ChartFigure.test.js +180 -0
  7. package/dist/esm/v2/__tests__/ChartFigure.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js +150 -0
  9. package/dist/esm/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js +93 -0
  11. package/dist/esm/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FieldError.test.js +71 -39
  13. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -1
  14. package/dist/esm/v2/__tests__/FieldNaming.test.js +160 -0
  15. package/dist/esm/v2/__tests__/FieldNaming.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  17. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/FileCard.test.js +18 -18
  19. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -1
  20. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +173 -0
  21. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +236 -0
  23. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  24. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js +101 -0
  25. package/dist/esm/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +299 -0
  27. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/MobileRowCard.test.js +44 -43
  29. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -1
  30. package/dist/esm/v2/__tests__/PreviewDrawer.test.js +165 -0
  31. package/dist/esm/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js +156 -0
  33. package/dist/esm/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  34. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +37 -52
  35. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  36. package/dist/esm/v2/__tests__/apiError.test.js +50 -69
  37. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -1
  38. package/dist/esm/v2/__tests__/banned-patterns.test.js +41 -122
  39. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -1
  40. package/dist/esm/v2/__tests__/chart-palette.test.js +204 -0
  41. package/dist/esm/v2/__tests__/chart-palette.test.js.map +1 -0
  42. package/dist/esm/v2/__tests__/contrast-palette.test.js +42 -74
  43. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -1
  44. package/dist/esm/v2/__tests__/cssVariables.test.js +44 -51
  45. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -1
  46. package/dist/esm/v2/__tests__/fileValidation.test.js +134 -0
  47. package/dist/esm/v2/__tests__/fileValidation.test.js.map +1 -0
  48. package/dist/esm/v2/__tests__/filterCriteria.test.js +321 -0
  49. package/dist/esm/v2/__tests__/filterCriteria.test.js.map +1 -0
  50. package/dist/esm/v2/__tests__/fmtDate.test.js +68 -0
  51. package/dist/esm/v2/__tests__/fmtDate.test.js.map +1 -0
  52. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js +218 -0
  53. package/dist/esm/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  54. package/dist/esm/v2/__tests__/labels-merge.test.js +17 -22
  55. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -1
  56. package/dist/esm/v2/__tests__/locale-fallback.test.js +35 -40
  57. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -1
  58. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js +143 -0
  59. package/dist/esm/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  60. package/dist/esm/v2/__tests__/rowActions.test.js +182 -0
  61. package/dist/esm/v2/__tests__/rowActions.test.js.map +1 -0
  62. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js +155 -0
  63. package/dist/esm/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  64. package/dist/esm/v2/__tests__/useFocusTrap.test.js +266 -402
  65. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -1
  66. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js +120 -0
  67. package/dist/esm/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  68. package/dist/esm/v2/components/Accordion.js +48 -70
  69. package/dist/esm/v2/components/Accordion.js.map +1 -1
  70. package/dist/esm/v2/components/ActionStrip.js +31 -43
  71. package/dist/esm/v2/components/ActionStrip.js.map +1 -1
  72. package/dist/esm/v2/components/Banner.js +25 -22
  73. package/dist/esm/v2/components/Banner.js.map +1 -1
  74. package/dist/esm/v2/components/Busy.js +14 -19
  75. package/dist/esm/v2/components/Busy.js.map +1 -1
  76. package/dist/esm/v2/components/Button.js +34 -45
  77. package/dist/esm/v2/components/Button.js.map +1 -1
  78. package/dist/esm/v2/components/CategoryTag.js +44 -27
  79. package/dist/esm/v2/components/CategoryTag.js.map +1 -1
  80. package/dist/esm/v2/components/Checkbox.js +32 -38
  81. package/dist/esm/v2/components/Checkbox.js.map +1 -1
  82. package/dist/esm/v2/components/Chip.js +23 -36
  83. package/dist/esm/v2/components/Chip.js.map +1 -1
  84. package/dist/esm/v2/components/Combobox.js +112 -136
  85. package/dist/esm/v2/components/Combobox.js.map +1 -1
  86. package/dist/esm/v2/components/CommandPalette.js +113 -198
  87. package/dist/esm/v2/components/CommandPalette.js.map +1 -1
  88. package/dist/esm/v2/components/ConfirmDialog.js +36 -45
  89. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -1
  90. package/dist/esm/v2/components/DatePicker.js +78 -81
  91. package/dist/esm/v2/components/DatePicker.js.map +1 -1
  92. package/dist/esm/v2/components/DateRangePicker.js +63 -74
  93. package/dist/esm/v2/components/DateRangePicker.js.map +1 -1
  94. package/dist/esm/v2/components/DateTimePicker.js +118 -90
  95. package/dist/esm/v2/components/DateTimePicker.js.map +1 -1
  96. package/dist/esm/v2/components/Drawer.js +71 -65
  97. package/dist/esm/v2/components/Drawer.js.map +1 -1
  98. package/dist/esm/v2/components/Dropzone.js +130 -177
  99. package/dist/esm/v2/components/Dropzone.js.map +1 -1
  100. package/dist/esm/v2/components/EmptyState.js +9 -9
  101. package/dist/esm/v2/components/EmptyState.js.map +1 -1
  102. package/dist/esm/v2/components/FavoriteToggle.js +24 -33
  103. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -1
  104. package/dist/esm/v2/components/Field.js +210 -52
  105. package/dist/esm/v2/components/Field.js.map +1 -1
  106. package/dist/esm/v2/components/FieldError.js +9 -13
  107. package/dist/esm/v2/components/FieldError.js.map +1 -1
  108. package/dist/esm/v2/components/FieldHelp.js +28 -49
  109. package/dist/esm/v2/components/FieldHelp.js.map +1 -1
  110. package/dist/esm/v2/components/FileCard.js +14 -19
  111. package/dist/esm/v2/components/FileCard.js.map +1 -1
  112. package/dist/esm/v2/components/FilterTab.js +22 -31
  113. package/dist/esm/v2/components/FilterTab.js.map +1 -1
  114. package/dist/esm/v2/components/ForbiddenPage.js +28 -8
  115. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -1
  116. package/dist/esm/v2/components/FormGrid.js +48 -54
  117. package/dist/esm/v2/components/FormGrid.js.map +1 -1
  118. package/dist/esm/v2/components/FormikDisplay.js +98 -24
  119. package/dist/esm/v2/components/FormikDisplay.js.map +1 -1
  120. package/dist/esm/v2/components/Input.js +75 -34
  121. package/dist/esm/v2/components/Input.js.map +1 -1
  122. package/dist/esm/v2/components/KPICard.js +42 -51
  123. package/dist/esm/v2/components/KPICard.js.map +1 -1
  124. package/dist/esm/v2/components/KPIStrip.js +9 -15
  125. package/dist/esm/v2/components/KPIStrip.js.map +1 -1
  126. package/dist/esm/v2/components/KV.js +16 -23
  127. package/dist/esm/v2/components/KV.js.map +1 -1
  128. package/dist/esm/v2/components/KVGrid.js +15 -23
  129. package/dist/esm/v2/components/KVGrid.js.map +1 -1
  130. package/dist/esm/v2/components/Layout.js +81 -117
  131. package/dist/esm/v2/components/Layout.js.map +1 -1
  132. package/dist/esm/v2/components/MobileRowCard.js +64 -75
  133. package/dist/esm/v2/components/MobileRowCard.js.map +1 -1
  134. package/dist/esm/v2/components/Modal.js +44 -53
  135. package/dist/esm/v2/components/Modal.js.map +1 -1
  136. package/dist/esm/v2/components/NetworkErrorPage.js +28 -11
  137. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -1
  138. package/dist/esm/v2/components/NotFoundPage.js +28 -9
  139. package/dist/esm/v2/components/NotFoundPage.js.map +1 -1
  140. package/dist/esm/v2/components/NumberInput.js +77 -107
  141. package/dist/esm/v2/components/NumberInput.js.map +1 -1
  142. package/dist/esm/v2/components/OverflowMenu.js +24 -42
  143. package/dist/esm/v2/components/OverflowMenu.js.map +1 -1
  144. package/dist/esm/v2/components/PdfViewer.js +24 -33
  145. package/dist/esm/v2/components/PdfViewer.js.map +1 -1
  146. package/dist/esm/v2/components/ProgressBar.js +28 -36
  147. package/dist/esm/v2/components/ProgressBar.js.map +1 -1
  148. package/dist/esm/v2/components/Radio.js +49 -57
  149. package/dist/esm/v2/components/Radio.js.map +1 -1
  150. package/dist/esm/v2/components/SectionErrorBoundary.js +84 -130
  151. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -1
  152. package/dist/esm/v2/components/SectionHeader.js +24 -31
  153. package/dist/esm/v2/components/SectionHeader.js.map +1 -1
  154. package/dist/esm/v2/components/Segmented.js +59 -84
  155. package/dist/esm/v2/components/Segmented.js.map +1 -1
  156. package/dist/esm/v2/components/Select.js +100 -138
  157. package/dist/esm/v2/components/Select.js.map +1 -1
  158. package/dist/esm/v2/components/ServerErrorPage.js +27 -10
  159. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -1
  160. package/dist/esm/v2/components/Skeleton.js +81 -96
  161. package/dist/esm/v2/components/Skeleton.js.map +1 -1
  162. package/dist/esm/v2/components/SkipLink.js +6 -7
  163. package/dist/esm/v2/components/SkipLink.js.map +1 -1
  164. package/dist/esm/v2/components/Spinner.js +13 -22
  165. package/dist/esm/v2/components/Spinner.js.map +1 -1
  166. package/dist/esm/v2/components/Status.js +14 -25
  167. package/dist/esm/v2/components/Status.js.map +1 -1
  168. package/dist/esm/v2/components/Stepper.js +68 -71
  169. package/dist/esm/v2/components/Stepper.js.map +1 -1
  170. package/dist/esm/v2/components/Surface.js +25 -44
  171. package/dist/esm/v2/components/Surface.js.map +1 -1
  172. package/dist/esm/v2/components/Switch.js +21 -29
  173. package/dist/esm/v2/components/Switch.js.map +1 -1
  174. package/dist/esm/v2/components/TabPanel.js +84 -0
  175. package/dist/esm/v2/components/TabPanel.js.map +1 -0
  176. package/dist/esm/v2/components/Tabs.js +43 -19
  177. package/dist/esm/v2/components/Tabs.js.map +1 -1
  178. package/dist/esm/v2/components/TelInput.js +75 -108
  179. package/dist/esm/v2/components/TelInput.js.map +1 -1
  180. package/dist/esm/v2/components/Textarea.js +21 -30
  181. package/dist/esm/v2/components/Textarea.js.map +1 -1
  182. package/dist/esm/v2/components/TimePicker.js +59 -69
  183. package/dist/esm/v2/components/TimePicker.js.map +1 -1
  184. package/dist/esm/v2/components/Toast.js +109 -163
  185. package/dist/esm/v2/components/Toast.js.map +1 -1
  186. package/dist/esm/v2/components/Tooltip.js +18 -31
  187. package/dist/esm/v2/components/Tooltip.js.map +1 -1
  188. package/dist/esm/v2/components/_ErrorPageBody.js +6 -5
  189. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -1
  190. package/dist/esm/v2/components/_pickerShared.js +2 -2
  191. package/dist/esm/v2/components/_pickerShared.js.map +1 -1
  192. package/dist/esm/v2/components/index.js +64 -0
  193. package/dist/esm/v2/components/index.js.map +1 -1
  194. package/dist/esm/v2/hooks/index.js +62 -0
  195. package/dist/esm/v2/hooks/index.js.map +1 -1
  196. package/dist/esm/v2/hooks/useAppliedFilters.js +112 -0
  197. package/dist/esm/v2/hooks/useAppliedFilters.js.map +1 -0
  198. package/dist/esm/v2/hooks/useDebouncedCallback.js +82 -0
  199. package/dist/esm/v2/hooks/useDebouncedCallback.js.map +1 -0
  200. package/dist/esm/v2/hooks/useDelayedFlag.js +5 -19
  201. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -1
  202. package/dist/esm/v2/hooks/useDensity.js +13 -17
  203. package/dist/esm/v2/hooks/useDensity.js.map +1 -1
  204. package/dist/esm/v2/hooks/useFocusFirstError.js +25 -33
  205. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -1
  206. package/dist/esm/v2/hooks/useFocusOnRouteChange.js +81 -0
  207. package/dist/esm/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  208. package/dist/esm/v2/hooks/useFocusTrap.js +19 -23
  209. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -1
  210. package/dist/esm/v2/hooks/useFormAutoSave.js +38 -53
  211. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -1
  212. package/dist/esm/v2/hooks/useFormCompletionProgress.js +32 -51
  213. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -1
  214. package/dist/esm/v2/hooks/useKeyboardShortcuts.js +125 -0
  215. package/dist/esm/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  216. package/dist/esm/v2/hooks/usePrefersReducedMotion.js +99 -0
  217. package/dist/esm/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  218. package/dist/esm/v2/hooks/useResolvedDensity.js +2 -10
  219. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -1
  220. package/dist/esm/v2/hooks/useSortedRows.js +3 -5
  221. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -1
  222. package/dist/esm/v2/hooks/useTabLoading.js +6 -21
  223. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -1
  224. package/dist/esm/v2/index.js +14 -4
  225. package/dist/esm/v2/index.js.map +1 -1
  226. package/dist/esm/v2/modalContext.js +2 -2
  227. package/dist/esm/v2/modalContext.js.map +1 -1
  228. package/dist/esm/v2/models/favorite.js.map +1 -1
  229. package/dist/esm/v2/models/personalization.js.map +1 -1
  230. package/dist/esm/v2/models/referentiel.js.map +1 -1
  231. package/dist/esm/v2/models/savedFilter.js.map +1 -1
  232. package/dist/esm/v2/patterns/ActionBar.js +115 -159
  233. package/dist/esm/v2/patterns/ActionBar.js.map +1 -1
  234. package/dist/esm/v2/patterns/AppMain.js +108 -0
  235. package/dist/esm/v2/patterns/AppMain.js.map +1 -0
  236. package/dist/esm/v2/patterns/BulkActionBar.js +31 -34
  237. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -1
  238. package/dist/esm/v2/patterns/ChartFigure.js +151 -0
  239. package/dist/esm/v2/patterns/ChartFigure.js.map +1 -0
  240. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +111 -152
  241. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  242. package/dist/esm/v2/patterns/ColumnsToggle.js +43 -77
  243. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -1
  244. package/dist/esm/v2/patterns/DataGrid.js +221 -255
  245. package/dist/esm/v2/patterns/DataGrid.js.map +1 -1
  246. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +76 -94
  247. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  248. package/dist/esm/v2/patterns/DataGridToolbar.js +85 -89
  249. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -1
  250. package/dist/esm/v2/patterns/DataGridVirtualized.js +141 -182
  251. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -1
  252. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +26 -30
  253. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  254. package/dist/esm/v2/patterns/DetailSplit.js +108 -0
  255. package/dist/esm/v2/patterns/DetailSplit.js.map +1 -0
  256. package/dist/esm/v2/patterns/FavoriteColumn.js +26 -75
  257. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -1
  258. package/dist/esm/v2/patterns/FavoritesFilter.js +30 -39
  259. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -1
  260. package/dist/esm/v2/patterns/FilterTabBar.js +112 -0
  261. package/dist/esm/v2/patterns/FilterTabBar.js.map +1 -0
  262. package/dist/esm/v2/patterns/FormErrorSummary.js +12 -13
  263. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -1
  264. package/dist/esm/v2/patterns/FormPageShell.js +43 -41
  265. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -1
  266. package/dist/esm/v2/patterns/FormSection.js +30 -38
  267. package/dist/esm/v2/patterns/FormSection.js.map +1 -1
  268. package/dist/esm/v2/patterns/FormikCheckbox.js +130 -0
  269. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  270. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +56 -60
  271. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  272. package/dist/esm/v2/patterns/FormikCombobox.js +51 -66
  273. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -1
  274. package/dist/esm/v2/patterns/FormikDatePicker.js +51 -99
  275. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -1
  276. package/dist/esm/v2/patterns/FormikDateTimePicker.js +136 -0
  277. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  278. package/dist/esm/v2/patterns/FormikErrorFocus.js +22 -23
  279. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -1
  280. package/dist/esm/v2/patterns/FormikErrorSummary.js +89 -0
  281. package/dist/esm/v2/patterns/FormikErrorSummary.js.map +1 -0
  282. package/dist/esm/v2/patterns/FormikFile.js +94 -78
  283. package/dist/esm/v2/patterns/FormikFile.js.map +1 -1
  284. package/dist/esm/v2/patterns/FormikInput.js +40 -50
  285. package/dist/esm/v2/patterns/FormikInput.js.map +1 -1
  286. package/dist/esm/v2/patterns/FormikRadioGroup.js +129 -0
  287. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  288. package/dist/esm/v2/patterns/FormikReferentielField.js +49 -59
  289. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -1
  290. package/dist/esm/v2/patterns/FormikSelect.js +64 -84
  291. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -1
  292. package/dist/esm/v2/patterns/FormikTextarea.js +30 -43
  293. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -1
  294. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +64 -65
  295. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  296. package/dist/esm/v2/patterns/NetworkErrorBanner.js +6 -7
  297. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -1
  298. package/dist/esm/v2/patterns/PageContent.js +10 -14
  299. package/dist/esm/v2/patterns/PageContent.js.map +1 -1
  300. package/dist/esm/v2/patterns/PreviewDrawer.js +153 -0
  301. package/dist/esm/v2/patterns/PreviewDrawer.js.map +1 -0
  302. package/dist/esm/v2/patterns/ReferentielField.js +327 -312
  303. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -1
  304. package/dist/esm/v2/patterns/RowFavoriteToggle.js +127 -0
  305. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  306. package/dist/esm/v2/patterns/SaveFilterDialog.js +38 -66
  307. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -1
  308. package/dist/esm/v2/patterns/SavedFiltersMenu.js +62 -81
  309. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -1
  310. package/dist/esm/v2/patterns/SkeletonPageShell.js +106 -129
  311. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -1
  312. package/dist/esm/v2/patterns/SortableHeader.js +22 -45
  313. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -1
  314. package/dist/esm/v2/patterns/Tour.js +94 -120
  315. package/dist/esm/v2/patterns/Tour.js.map +1 -1
  316. package/dist/esm/v2/patterns/_dataGridShared.js +107 -128
  317. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -1
  318. package/dist/esm/v2/patterns/_pickerSerialisation.js +72 -0
  319. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  320. package/dist/esm/v2/patterns/_sort.js +17 -33
  321. package/dist/esm/v2/patterns/_sort.js.map +1 -1
  322. package/dist/esm/v2/patterns/_useColumnReorder.js +122 -160
  323. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -1
  324. package/dist/esm/v2/patterns/_useColumnResize.js +78 -96
  325. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -1
  326. package/dist/esm/v2/patterns/filterCriteria.js +102 -0
  327. package/dist/esm/v2/patterns/filterCriteria.js.map +1 -0
  328. package/dist/esm/v2/patterns/index.js +235 -0
  329. package/dist/esm/v2/patterns/index.js.map +1 -1
  330. package/dist/esm/v2/patterns/rowActions.js +223 -0
  331. package/dist/esm/v2/patterns/rowActions.js.map +1 -0
  332. package/dist/esm/v2/personalization/PersonalizationProvider.js +50 -47
  333. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -1
  334. package/dist/esm/v2/personalization/adapters/_storageKey.js +5 -5
  335. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -1
  336. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +22 -23
  337. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  338. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +13 -13
  339. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  340. package/dist/esm/v2/personalization/capabilities/favorites.js +36 -60
  341. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -1
  342. package/dist/esm/v2/personalization/capabilities/favoritesView.js +22 -34
  343. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -1
  344. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +203 -0
  345. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  346. package/dist/esm/v2/personalization/capabilities/index.js +5 -0
  347. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -1
  348. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js +119 -0
  349. package/dist/esm/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  350. package/dist/esm/v2/personalization/capabilities/savedFilters.js +90 -98
  351. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -1
  352. package/dist/esm/v2/personalization/createPersonalizationStore.js +78 -181
  353. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -1
  354. package/dist/esm/v2/personalization/index.js +35 -0
  355. package/dist/esm/v2/personalization/index.js.map +1 -1
  356. package/dist/esm/v2/personalization/personalizationContext.js +9 -9
  357. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -1
  358. package/dist/esm/v2/personalization/schema.js +8 -9
  359. package/dist/esm/v2/personalization/schema.js.map +1 -1
  360. package/dist/esm/v2/referentiel/ReferentielProvider.js +27 -42
  361. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -1
  362. package/dist/esm/v2/referentiel/types.js +2 -0
  363. package/dist/esm/v2/referentiel/types.js.map +1 -0
  364. package/dist/esm/v2/referentiel/useReferentielClient.js +10 -11
  365. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -1
  366. package/dist/esm/v2/referentiel/useReferentielOptions.js +60 -117
  367. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -1
  368. package/dist/esm/v2/referentiel/useReferentielSearch.js +37 -91
  369. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -1
  370. package/dist/esm/v2/theme/_brand.js +8 -24
  371. package/dist/esm/v2/theme/_brand.js.map +1 -1
  372. package/dist/esm/v2/theme/_brandSecondary.js +8 -24
  373. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -1
  374. package/dist/esm/v2/theme/createPortnetTheme.js +51 -61
  375. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -1
  376. package/dist/esm/v2/theme/cssVariables.js +62 -69
  377. package/dist/esm/v2/theme/cssVariables.js.map +1 -1
  378. package/dist/esm/v2/theme/index.js +5 -5
  379. package/dist/esm/v2/theme/index.js.map +1 -1
  380. package/dist/esm/v2/tokens/breakpoints.js +14 -14
  381. package/dist/esm/v2/tokens/breakpoints.js.map +1 -1
  382. package/dist/esm/v2/tokens/chart.js +261 -0
  383. package/dist/esm/v2/tokens/chart.js.map +1 -0
  384. package/dist/esm/v2/tokens/colors.js +22 -22
  385. package/dist/esm/v2/tokens/colors.js.map +1 -1
  386. package/dist/esm/v2/tokens/density.js +62 -7
  387. package/dist/esm/v2/tokens/density.js.map +1 -1
  388. package/dist/esm/v2/tokens/index.js +49 -34
  389. package/dist/esm/v2/tokens/index.js.map +1 -1
  390. package/dist/esm/v2/tokens/motion.js +12 -20
  391. package/dist/esm/v2/tokens/motion.js.map +1 -1
  392. package/dist/esm/v2/tokens/radius.js +1 -1
  393. package/dist/esm/v2/tokens/radius.js.map +1 -1
  394. package/dist/esm/v2/tokens/shadows.js +6 -6
  395. package/dist/esm/v2/tokens/shadows.js.map +1 -1
  396. package/dist/esm/v2/tokens/spacing.js +2 -2
  397. package/dist/esm/v2/tokens/spacing.js.map +1 -1
  398. package/dist/esm/v2/tokens/state.js +1 -1
  399. package/dist/esm/v2/tokens/state.js.map +1 -1
  400. package/dist/esm/v2/tokens/statusPalette.js +17 -21
  401. package/dist/esm/v2/tokens/statusPalette.js.map +1 -1
  402. package/dist/esm/v2/tokens/tokens.json +6 -1
  403. package/dist/esm/v2/tokens/typography.js +13 -13
  404. package/dist/esm/v2/tokens/typography.js.map +1 -1
  405. package/dist/esm/v2/tokens/zIndex.js +1 -1
  406. package/dist/esm/v2/tokens/zIndex.js.map +1 -1
  407. package/dist/esm/v2/types/datagrid.js.map +1 -1
  408. package/dist/esm/v2/utils/apiError.js +16 -37
  409. package/dist/esm/v2/utils/apiError.js.map +1 -1
  410. package/dist/esm/v2/utils/contrast.js +31 -32
  411. package/dist/esm/v2/utils/contrast.js.map +1 -1
  412. package/dist/esm/v2/utils/cx.js +5 -25
  413. package/dist/esm/v2/utils/cx.js.map +1 -1
  414. package/dist/esm/v2/utils/fileDownload.js +23 -26
  415. package/dist/esm/v2/utils/fileDownload.js.map +1 -1
  416. package/dist/esm/v2/utils/fileValidation.js +209 -0
  417. package/dist/esm/v2/utils/fileValidation.js.map +1 -0
  418. package/dist/esm/v2/utils/fmtDate.js +111 -0
  419. package/dist/esm/v2/utils/fmtDate.js.map +1 -0
  420. package/dist/esm/v2/utils/fmtMoney.js +8 -10
  421. package/dist/esm/v2/utils/fmtMoney.js.map +1 -1
  422. package/dist/esm/v2/utils/formikErrors.js +78 -0
  423. package/dist/esm/v2/utils/formikErrors.js.map +1 -0
  424. package/dist/esm/v2/utils/index.js +35 -2
  425. package/dist/esm/v2/utils/index.js.map +1 -1
  426. package/dist/esm/v2/utils/mergeLabels.js +7 -12
  427. package/dist/esm/v2/utils/mergeLabels.js.map +1 -1
  428. package/dist/esm/v2/utils/networkStatus.js +12 -12
  429. package/dist/esm/v2/utils/networkStatus.js.map +1 -1
  430. package/dist/index.d.ts +9 -1
  431. package/dist/index.d.ts.map +1 -1
  432. package/dist/index.js +122 -47
  433. package/dist/index.js.map +1 -1
  434. package/dist/v2/__tests__/AppMain.test.js +133 -0
  435. package/dist/v2/__tests__/AppMain.test.js.map +1 -0
  436. package/dist/v2/__tests__/ChartFigure.test.js +183 -0
  437. package/dist/v2/__tests__/ChartFigure.test.js.map +1 -0
  438. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js +153 -0
  439. package/dist/v2/__tests__/DataGridRowActionsPropagation.test.js.map +1 -0
  440. package/dist/v2/__tests__/DrawerTactileTargets.test.js +94 -0
  441. package/dist/v2/__tests__/DrawerTactileTargets.test.js.map +1 -0
  442. package/dist/v2/__tests__/FieldError.test.js +98 -69
  443. package/dist/v2/__tests__/FieldError.test.js.map +1 -1
  444. package/dist/v2/__tests__/FieldNaming.test.js +161 -0
  445. package/dist/v2/__tests__/FieldNaming.test.js.map +1 -0
  446. package/dist/v2/__tests__/FieldWidth.test.js +148 -0
  447. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  448. package/dist/v2/__tests__/FileCard.test.js +45 -48
  449. package/dist/v2/__tests__/FileCard.test.js.map +1 -1
  450. package/dist/v2/__tests__/FormikCheckbox.test.js +175 -0
  451. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  452. package/dist/v2/__tests__/FormikDateTimePicker.test.js +237 -0
  453. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  454. package/dist/v2/__tests__/FormikDisplayWidth.test.js +102 -0
  455. package/dist/v2/__tests__/FormikDisplayWidth.test.js.map +1 -0
  456. package/dist/v2/__tests__/FormikRadioGroup.test.js +300 -0
  457. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  458. package/dist/v2/__tests__/MobileRowCard.test.js +100 -102
  459. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  460. package/dist/v2/__tests__/PreviewDrawer.test.js +169 -0
  461. package/dist/v2/__tests__/PreviewDrawer.test.js.map +1 -0
  462. package/dist/v2/__tests__/ReferentielFieldContainer.test.js +159 -0
  463. package/dist/v2/__tests__/ReferentielFieldContainer.test.js.map +1 -0
  464. package/dist/v2/__tests__/SectionErrorBoundary.test.js +53 -68
  465. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -1
  466. package/dist/v2/__tests__/apiError.test.js +50 -69
  467. package/dist/v2/__tests__/apiError.test.js.map +1 -1
  468. package/dist/v2/__tests__/banned-patterns.test.js +42 -123
  469. package/dist/v2/__tests__/banned-patterns.test.js.map +1 -1
  470. package/dist/v2/__tests__/chart-palette.test.js +205 -0
  471. package/dist/v2/__tests__/chart-palette.test.js.map +1 -0
  472. package/dist/v2/__tests__/contrast-palette.test.js +42 -74
  473. package/dist/v2/__tests__/contrast-palette.test.js.map +1 -1
  474. package/dist/v2/__tests__/cssVariables.test.js +44 -51
  475. package/dist/v2/__tests__/cssVariables.test.js.map +1 -1
  476. package/dist/v2/__tests__/fileValidation.test.js +136 -0
  477. package/dist/v2/__tests__/fileValidation.test.js.map +1 -0
  478. package/dist/v2/__tests__/filterCriteria.test.js +324 -0
  479. package/dist/v2/__tests__/filterCriteria.test.js.map +1 -0
  480. package/dist/v2/__tests__/fmtDate.test.js +69 -0
  481. package/dist/v2/__tests__/fmtDate.test.js.map +1 -0
  482. package/dist/v2/__tests__/gap-leakage-refonte.test.js +221 -0
  483. package/dist/v2/__tests__/gap-leakage-refonte.test.js.map +1 -0
  484. package/dist/v2/__tests__/labels-merge.test.js +38 -46
  485. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  486. package/dist/v2/__tests__/locale-fallback.test.js +47 -52
  487. package/dist/v2/__tests__/locale-fallback.test.js.map +1 -1
  488. package/dist/v2/__tests__/reviveSavedCriteria.test.js +144 -0
  489. package/dist/v2/__tests__/reviveSavedCriteria.test.js.map +1 -0
  490. package/dist/v2/__tests__/rowActions.test.js +186 -0
  491. package/dist/v2/__tests__/rowActions.test.js.map +1 -0
  492. package/dist/v2/__tests__/useFocusOnRouteChange.test.js +156 -0
  493. package/dist/v2/__tests__/useFocusOnRouteChange.test.js.map +1 -0
  494. package/dist/v2/__tests__/useFocusTrap.test.js +270 -407
  495. package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -1
  496. package/dist/v2/__tests__/usePrefersReducedMotion.test.js +123 -0
  497. package/dist/v2/__tests__/usePrefersReducedMotion.test.js.map +1 -0
  498. package/dist/v2/components/Accordion.js +60 -82
  499. package/dist/v2/components/Accordion.js.map +1 -1
  500. package/dist/v2/components/ActionStrip.js +40 -52
  501. package/dist/v2/components/ActionStrip.js.map +1 -1
  502. package/dist/v2/components/Banner.js +42 -41
  503. package/dist/v2/components/Banner.js.map +1 -1
  504. package/dist/v2/components/Busy.js +22 -27
  505. package/dist/v2/components/Busy.js.map +1 -1
  506. package/dist/v2/components/Button.js +39 -50
  507. package/dist/v2/components/Button.js.map +1 -1
  508. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  509. package/dist/v2/components/CategoryTag.js +49 -32
  510. package/dist/v2/components/CategoryTag.js.map +1 -1
  511. package/dist/v2/components/Checkbox.js +39 -45
  512. package/dist/v2/components/Checkbox.js.map +1 -1
  513. package/dist/v2/components/Chip.js +29 -42
  514. package/dist/v2/components/Chip.js.map +1 -1
  515. package/dist/v2/components/Combobox.js +122 -144
  516. package/dist/v2/components/Combobox.js.map +1 -1
  517. package/dist/v2/components/CommandPalette.js +138 -225
  518. package/dist/v2/components/CommandPalette.js.map +1 -1
  519. package/dist/v2/components/ConfirmDialog.js +46 -56
  520. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  521. package/dist/v2/components/DatePicker.js +81 -86
  522. package/dist/v2/components/DatePicker.js.map +1 -1
  523. package/dist/v2/components/DateRangePicker.js +77 -87
  524. package/dist/v2/components/DateRangePicker.js.map +1 -1
  525. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  526. package/dist/v2/components/DateTimePicker.js +121 -95
  527. package/dist/v2/components/DateTimePicker.js.map +1 -1
  528. package/dist/v2/components/Drawer.d.ts.map +1 -1
  529. package/dist/v2/components/Drawer.js +93 -88
  530. package/dist/v2/components/Drawer.js.map +1 -1
  531. package/dist/v2/components/Dropzone.js +150 -196
  532. package/dist/v2/components/Dropzone.js.map +1 -1
  533. package/dist/v2/components/EmptyState.js +18 -20
  534. package/dist/v2/components/EmptyState.js.map +1 -1
  535. package/dist/v2/components/FavoriteToggle.js +28 -39
  536. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  537. package/dist/v2/components/Field.d.ts +121 -5
  538. package/dist/v2/components/Field.d.ts.map +1 -1
  539. package/dist/v2/components/Field.js +221 -62
  540. package/dist/v2/components/Field.js.map +1 -1
  541. package/dist/v2/components/FieldError.js +18 -21
  542. package/dist/v2/components/FieldError.js.map +1 -1
  543. package/dist/v2/components/FieldHelp.js +40 -60
  544. package/dist/v2/components/FieldHelp.js.map +1 -1
  545. package/dist/v2/components/FileCard.js +27 -31
  546. package/dist/v2/components/FileCard.js.map +1 -1
  547. package/dist/v2/components/FilterTab.js +30 -38
  548. package/dist/v2/components/FilterTab.js.map +1 -1
  549. package/dist/v2/components/ForbiddenPage.d.ts +25 -1
  550. package/dist/v2/components/ForbiddenPage.d.ts.map +1 -1
  551. package/dist/v2/components/ForbiddenPage.js +37 -17
  552. package/dist/v2/components/ForbiddenPage.js.map +1 -1
  553. package/dist/v2/components/FormGrid.js +53 -59
  554. package/dist/v2/components/FormGrid.js.map +1 -1
  555. package/dist/v2/components/FormikDisplay.d.ts +50 -1
  556. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  557. package/dist/v2/components/FormikDisplay.js +108 -33
  558. package/dist/v2/components/FormikDisplay.js.map +1 -1
  559. package/dist/v2/components/Input.d.ts +40 -0
  560. package/dist/v2/components/Input.d.ts.map +1 -1
  561. package/dist/v2/components/Input.js +81 -41
  562. package/dist/v2/components/Input.js.map +1 -1
  563. package/dist/v2/components/KPICard.js +57 -67
  564. package/dist/v2/components/KPICard.js.map +1 -1
  565. package/dist/v2/components/KPIStrip.js +16 -22
  566. package/dist/v2/components/KPIStrip.js.map +1 -1
  567. package/dist/v2/components/KV.js +25 -31
  568. package/dist/v2/components/KV.js.map +1 -1
  569. package/dist/v2/components/KVGrid.js +19 -26
  570. package/dist/v2/components/KVGrid.js.map +1 -1
  571. package/dist/v2/components/Layout.js +91 -120
  572. package/dist/v2/components/Layout.js.map +1 -1
  573. package/dist/v2/components/MobileRowCard.js +79 -91
  574. package/dist/v2/components/MobileRowCard.js.map +1 -1
  575. package/dist/v2/components/Modal.js +61 -69
  576. package/dist/v2/components/Modal.js.map +1 -1
  577. package/dist/v2/components/NetworkErrorPage.d.ts +19 -1
  578. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  579. package/dist/v2/components/NetworkErrorPage.js +38 -21
  580. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  581. package/dist/v2/components/NotFoundPage.d.ts +17 -1
  582. package/dist/v2/components/NotFoundPage.d.ts.map +1 -1
  583. package/dist/v2/components/NotFoundPage.js +37 -18
  584. package/dist/v2/components/NotFoundPage.js.map +1 -1
  585. package/dist/v2/components/NumberInput.js +88 -118
  586. package/dist/v2/components/NumberInput.js.map +1 -1
  587. package/dist/v2/components/OverflowMenu.js +38 -56
  588. package/dist/v2/components/OverflowMenu.js.map +1 -1
  589. package/dist/v2/components/PdfViewer.js +34 -45
  590. package/dist/v2/components/PdfViewer.js.map +1 -1
  591. package/dist/v2/components/ProgressBar.js +42 -49
  592. package/dist/v2/components/ProgressBar.js.map +1 -1
  593. package/dist/v2/components/Radio.js +59 -67
  594. package/dist/v2/components/Radio.js.map +1 -1
  595. package/dist/v2/components/SectionErrorBoundary.js +90 -135
  596. package/dist/v2/components/SectionErrorBoundary.js.map +1 -1
  597. package/dist/v2/components/SectionHeader.js +34 -41
  598. package/dist/v2/components/SectionHeader.js.map +1 -1
  599. package/dist/v2/components/Segmented.js +69 -93
  600. package/dist/v2/components/Segmented.js.map +1 -1
  601. package/dist/v2/components/Select.d.ts +26 -2
  602. package/dist/v2/components/Select.d.ts.map +1 -1
  603. package/dist/v2/components/Select.js +120 -155
  604. package/dist/v2/components/Select.js.map +1 -1
  605. package/dist/v2/components/ServerErrorPage.d.ts +27 -1
  606. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  607. package/dist/v2/components/ServerErrorPage.js +37 -20
  608. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  609. package/dist/v2/components/Skeleton.js +86 -100
  610. package/dist/v2/components/Skeleton.js.map +1 -1
  611. package/dist/v2/components/SkipLink.js +9 -12
  612. package/dist/v2/components/SkipLink.js.map +1 -1
  613. package/dist/v2/components/Spinner.js +16 -25
  614. package/dist/v2/components/Spinner.js.map +1 -1
  615. package/dist/v2/components/Status.js +18 -29
  616. package/dist/v2/components/Status.js.map +1 -1
  617. package/dist/v2/components/Stepper.js +80 -82
  618. package/dist/v2/components/Stepper.js.map +1 -1
  619. package/dist/v2/components/Surface.js +34 -49
  620. package/dist/v2/components/Surface.js.map +1 -1
  621. package/dist/v2/components/Switch.js +29 -37
  622. package/dist/v2/components/Switch.js.map +1 -1
  623. package/dist/v2/components/TabPanel.d.ts +17 -0
  624. package/dist/v2/components/TabPanel.d.ts.map +1 -0
  625. package/dist/v2/components/TabPanel.js +90 -0
  626. package/dist/v2/components/TabPanel.js.map +1 -0
  627. package/dist/v2/components/Tabs.d.ts +25 -0
  628. package/dist/v2/components/Tabs.d.ts.map +1 -1
  629. package/dist/v2/components/Tabs.js +53 -29
  630. package/dist/v2/components/Tabs.js.map +1 -1
  631. package/dist/v2/components/TelInput.js +80 -115
  632. package/dist/v2/components/TelInput.js.map +1 -1
  633. package/dist/v2/components/Textarea.js +26 -35
  634. package/dist/v2/components/Textarea.js.map +1 -1
  635. package/dist/v2/components/TimePicker.js +62 -74
  636. package/dist/v2/components/TimePicker.js.map +1 -1
  637. package/dist/v2/components/Toast.js +119 -174
  638. package/dist/v2/components/Toast.js.map +1 -1
  639. package/dist/v2/components/Tooltip.js +23 -38
  640. package/dist/v2/components/Tooltip.js.map +1 -1
  641. package/dist/v2/components/_ErrorPageBody.js +15 -16
  642. package/dist/v2/components/_ErrorPageBody.js.map +1 -1
  643. package/dist/v2/components/_pickerShared.js +5 -5
  644. package/dist/v2/components/_pickerShared.js.map +1 -1
  645. package/dist/v2/components/index.d.ts +67 -1
  646. package/dist/v2/components/index.d.ts.map +1 -1
  647. package/dist/v2/components/index.js +153 -136
  648. package/dist/v2/components/index.js.map +1 -1
  649. package/dist/v2/hooks/index.d.ts +65 -0
  650. package/dist/v2/hooks/index.d.ts.map +1 -1
  651. package/dist/v2/hooks/index.js +63 -24
  652. package/dist/v2/hooks/index.js.map +1 -1
  653. package/dist/v2/hooks/useAppliedFilters.d.ts +102 -0
  654. package/dist/v2/hooks/useAppliedFilters.d.ts.map +1 -0
  655. package/dist/v2/hooks/useAppliedFilters.js +117 -0
  656. package/dist/v2/hooks/useAppliedFilters.js.map +1 -0
  657. package/dist/v2/hooks/useDebouncedCallback.d.ts +64 -0
  658. package/dist/v2/hooks/useDebouncedCallback.d.ts.map +1 -0
  659. package/dist/v2/hooks/useDebouncedCallback.js +87 -0
  660. package/dist/v2/hooks/useDebouncedCallback.js.map +1 -0
  661. package/dist/v2/hooks/useDelayedFlag.js +6 -20
  662. package/dist/v2/hooks/useDelayedFlag.js.map +1 -1
  663. package/dist/v2/hooks/useDensity.d.ts.map +1 -1
  664. package/dist/v2/hooks/useDensity.js +14 -18
  665. package/dist/v2/hooks/useDensity.js.map +1 -1
  666. package/dist/v2/hooks/useFocusFirstError.js +26 -34
  667. package/dist/v2/hooks/useFocusFirstError.js.map +1 -1
  668. package/dist/v2/hooks/useFocusOnRouteChange.d.ts +65 -0
  669. package/dist/v2/hooks/useFocusOnRouteChange.d.ts.map +1 -0
  670. package/dist/v2/hooks/useFocusOnRouteChange.js +88 -0
  671. package/dist/v2/hooks/useFocusOnRouteChange.js.map +1 -0
  672. package/dist/v2/hooks/useFocusTrap.js +20 -24
  673. package/dist/v2/hooks/useFocusTrap.js.map +1 -1
  674. package/dist/v2/hooks/useFormAutoSave.d.ts +4 -4
  675. package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -1
  676. package/dist/v2/hooks/useFormAutoSave.js +39 -54
  677. package/dist/v2/hooks/useFormAutoSave.js.map +1 -1
  678. package/dist/v2/hooks/useFormCompletionProgress.d.ts +1 -1
  679. package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -1
  680. package/dist/v2/hooks/useFormCompletionProgress.js +33 -52
  681. package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -1
  682. package/dist/v2/hooks/useKeyboardShortcuts.d.ts +25 -0
  683. package/dist/v2/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  684. package/dist/v2/hooks/useKeyboardShortcuts.js +132 -0
  685. package/dist/v2/hooks/useKeyboardShortcuts.js.map +1 -0
  686. package/dist/v2/hooks/usePrefersReducedMotion.d.ts +56 -0
  687. package/dist/v2/hooks/usePrefersReducedMotion.d.ts.map +1 -0
  688. package/dist/v2/hooks/usePrefersReducedMotion.js +105 -0
  689. package/dist/v2/hooks/usePrefersReducedMotion.js.map +1 -0
  690. package/dist/v2/hooks/useResolvedDensity.js +5 -13
  691. package/dist/v2/hooks/useResolvedDensity.js.map +1 -1
  692. package/dist/v2/hooks/useSortedRows.js +4 -6
  693. package/dist/v2/hooks/useSortedRows.js.map +1 -1
  694. package/dist/v2/hooks/useTabLoading.js +7 -22
  695. package/dist/v2/hooks/useTabLoading.js.map +1 -1
  696. package/dist/v2/index.d.ts.map +1 -1
  697. package/dist/v2/index.js +143 -145
  698. package/dist/v2/index.js.map +1 -1
  699. package/dist/v2/modalContext.js +2 -2
  700. package/dist/v2/modalContext.js.map +1 -1
  701. package/dist/v2/models/favorite.d.ts +8 -9
  702. package/dist/v2/models/favorite.d.ts.map +1 -1
  703. package/dist/v2/models/favorite.js.map +1 -1
  704. package/dist/v2/models/index.js +4 -4
  705. package/dist/v2/models/index.js.map +1 -1
  706. package/dist/v2/models/personalization.d.ts +44 -48
  707. package/dist/v2/models/personalization.d.ts.map +1 -1
  708. package/dist/v2/models/personalization.js.map +1 -1
  709. package/dist/v2/models/referentiel.d.ts +32 -50
  710. package/dist/v2/models/referentiel.d.ts.map +1 -1
  711. package/dist/v2/models/referentiel.js.map +1 -1
  712. package/dist/v2/models/savedFilter.d.ts +8 -17
  713. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  714. package/dist/v2/models/savedFilter.js.map +1 -1
  715. package/dist/v2/patterns/ActionBar.js +152 -187
  716. package/dist/v2/patterns/ActionBar.js.map +1 -1
  717. package/dist/v2/patterns/AppMain.d.ts +109 -0
  718. package/dist/v2/patterns/AppMain.d.ts.map +1 -0
  719. package/dist/v2/patterns/AppMain.js +115 -0
  720. package/dist/v2/patterns/AppMain.js.map +1 -0
  721. package/dist/v2/patterns/BulkActionBar.js +40 -42
  722. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  723. package/dist/v2/patterns/ChartFigure.d.ts +124 -0
  724. package/dist/v2/patterns/ChartFigure.d.ts.map +1 -0
  725. package/dist/v2/patterns/ChartFigure.js +159 -0
  726. package/dist/v2/patterns/ChartFigure.js.map +1 -0
  727. package/dist/v2/patterns/CollapsibleDataGrid.js +138 -174
  728. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  729. package/dist/v2/patterns/ColumnsToggle.js +60 -94
  730. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  731. package/dist/v2/patterns/DataGrid.d.ts.map +1 -1
  732. package/dist/v2/patterns/DataGrid.js +262 -297
  733. package/dist/v2/patterns/DataGrid.js.map +1 -1
  734. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -0
  735. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  736. package/dist/v2/patterns/DataGridSettingsMenu.js +104 -121
  737. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  738. package/dist/v2/patterns/DataGridToolbar.js +103 -106
  739. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  740. package/dist/v2/patterns/DataGridVirtualized.js +179 -217
  741. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  742. package/dist/v2/patterns/DeleteResourceConfirmDialog.js +32 -35
  743. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  744. package/dist/v2/patterns/DetailSplit.d.ts +87 -0
  745. package/dist/v2/patterns/DetailSplit.d.ts.map +1 -0
  746. package/dist/v2/patterns/DetailSplit.js +116 -0
  747. package/dist/v2/patterns/DetailSplit.js.map +1 -0
  748. package/dist/v2/patterns/FavoriteColumn.d.ts +9 -9
  749. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  750. package/dist/v2/patterns/FavoriteColumn.js +32 -80
  751. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  752. package/dist/v2/patterns/FavoritesFilter.js +36 -44
  753. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  754. package/dist/v2/patterns/FilterTabBar.d.ts +28 -0
  755. package/dist/v2/patterns/FilterTabBar.d.ts.map +1 -0
  756. package/dist/v2/patterns/FilterTabBar.js +120 -0
  757. package/dist/v2/patterns/FilterTabBar.js.map +1 -0
  758. package/dist/v2/patterns/FormErrorSummary.js +20 -23
  759. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  760. package/dist/v2/patterns/FormPageShell.js +53 -50
  761. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  762. package/dist/v2/patterns/FormSection.d.ts +8 -3
  763. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  764. package/dist/v2/patterns/FormSection.js +44 -51
  765. package/dist/v2/patterns/FormSection.js.map +1 -1
  766. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  767. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  768. package/dist/v2/patterns/FormikCheckbox.js +138 -0
  769. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  770. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +17 -1
  771. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  772. package/dist/v2/patterns/FormikCheckboxGroup.js +62 -65
  773. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  774. package/dist/v2/patterns/FormikCombobox.d.ts +7 -1
  775. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  776. package/dist/v2/patterns/FormikCombobox.js +55 -69
  777. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  778. package/dist/v2/patterns/FormikDatePicker.d.ts +13 -1
  779. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  780. package/dist/v2/patterns/FormikDatePicker.js +59 -106
  781. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  782. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  783. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  784. package/dist/v2/patterns/FormikDateTimePicker.js +144 -0
  785. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  786. package/dist/v2/patterns/FormikErrorFocus.js +25 -26
  787. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  788. package/dist/v2/patterns/FormikErrorSummary.d.ts +74 -0
  789. package/dist/v2/patterns/FormikErrorSummary.d.ts.map +1 -0
  790. package/dist/v2/patterns/FormikErrorSummary.js +97 -0
  791. package/dist/v2/patterns/FormikErrorSummary.js.map +1 -0
  792. package/dist/v2/patterns/FormikFile.d.ts +14 -1
  793. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  794. package/dist/v2/patterns/FormikFile.js +99 -83
  795. package/dist/v2/patterns/FormikFile.js.map +1 -1
  796. package/dist/v2/patterns/FormikInput.d.ts +11 -1
  797. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  798. package/dist/v2/patterns/FormikInput.js +45 -55
  799. package/dist/v2/patterns/FormikInput.js.map +1 -1
  800. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  801. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  802. package/dist/v2/patterns/FormikRadioGroup.js +137 -0
  803. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  804. package/dist/v2/patterns/FormikReferentielField.d.ts +12 -1
  805. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  806. package/dist/v2/patterns/FormikReferentielField.js +54 -64
  807. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  808. package/dist/v2/patterns/FormikSelect.d.ts +9 -1
  809. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  810. package/dist/v2/patterns/FormikSelect.js +70 -89
  811. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  812. package/dist/v2/patterns/FormikTextarea.d.ts +9 -1
  813. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  814. package/dist/v2/patterns/FormikTextarea.js +35 -48
  815. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  816. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +14 -1
  817. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  818. package/dist/v2/patterns/KeyboardShortcutsHelp.js +71 -74
  819. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  820. package/dist/v2/patterns/NetworkErrorBanner.js +13 -16
  821. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  822. package/dist/v2/patterns/PageContent.js +17 -20
  823. package/dist/v2/patterns/PageContent.js.map +1 -1
  824. package/dist/v2/patterns/PreviewDrawer.d.ts +49 -0
  825. package/dist/v2/patterns/PreviewDrawer.d.ts.map +1 -0
  826. package/dist/v2/patterns/PreviewDrawer.js +159 -0
  827. package/dist/v2/patterns/PreviewDrawer.js.map +1 -0
  828. package/dist/v2/patterns/ReferentielField.d.ts +86 -2
  829. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  830. package/dist/v2/patterns/ReferentielField.js +347 -327
  831. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  832. package/dist/v2/patterns/RowFavoriteToggle.d.ts +98 -0
  833. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  834. package/dist/v2/patterns/RowFavoriteToggle.js +135 -0
  835. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  836. package/dist/v2/patterns/SaveFilterDialog.js +50 -77
  837. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  838. package/dist/v2/patterns/SavedFiltersMenu.js +89 -107
  839. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  840. package/dist/v2/patterns/SkeletonPageShell.js +122 -143
  841. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  842. package/dist/v2/patterns/SortableHeader.js +35 -57
  843. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  844. package/dist/v2/patterns/Tour.js +121 -142
  845. package/dist/v2/patterns/Tour.js.map +1 -1
  846. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  847. package/dist/v2/patterns/_dataGridShared.js +131 -147
  848. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  849. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  850. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  851. package/dist/v2/patterns/_pickerSerialisation.js +80 -0
  852. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  853. package/dist/v2/patterns/_sort.js +17 -33
  854. package/dist/v2/patterns/_sort.js.map +1 -1
  855. package/dist/v2/patterns/_useColumnReorder.js +124 -163
  856. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  857. package/dist/v2/patterns/_useColumnResize.js +80 -99
  858. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  859. package/dist/v2/patterns/filterCriteria.d.ts +78 -0
  860. package/dist/v2/patterns/filterCriteria.d.ts.map +1 -0
  861. package/dist/v2/patterns/filterCriteria.js +110 -0
  862. package/dist/v2/patterns/filterCriteria.js.map +1 -0
  863. package/dist/v2/patterns/index.d.ts +247 -0
  864. package/dist/v2/patterns/index.d.ts.map +1 -1
  865. package/dist/v2/patterns/index.js +182 -70
  866. package/dist/v2/patterns/index.js.map +1 -1
  867. package/dist/v2/patterns/rowActions.d.ts +150 -0
  868. package/dist/v2/patterns/rowActions.d.ts.map +1 -0
  869. package/dist/v2/patterns/rowActions.js +232 -0
  870. package/dist/v2/patterns/rowActions.js.map +1 -0
  871. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  872. package/dist/v2/personalization/PersonalizationProvider.js +57 -53
  873. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  874. package/dist/v2/personalization/adapters/_storageKey.js +5 -5
  875. package/dist/v2/personalization/adapters/_storageKey.js.map +1 -1
  876. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +25 -24
  877. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  878. package/dist/v2/personalization/adapters/createMemoryAdapter.js +14 -14
  879. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  880. package/dist/v2/personalization/adapters/index.js +5 -5
  881. package/dist/v2/personalization/adapters/index.js.map +1 -1
  882. package/dist/v2/personalization/capabilities/favorites.js +39 -62
  883. package/dist/v2/personalization/capabilities/favorites.js.map +1 -1
  884. package/dist/v2/personalization/capabilities/favoritesView.js +25 -37
  885. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  886. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  887. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  888. package/dist/v2/personalization/capabilities/gridPreferences.js +210 -0
  889. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  890. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  891. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  892. package/dist/v2/personalization/capabilities/index.js +23 -10
  893. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  894. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts +88 -0
  895. package/dist/v2/personalization/capabilities/reviveSavedCriteria.d.ts.map +1 -0
  896. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js +126 -0
  897. package/dist/v2/personalization/capabilities/reviveSavedCriteria.js.map +1 -0
  898. package/dist/v2/personalization/capabilities/savedFilters.js +93 -100
  899. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  900. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  901. package/dist/v2/personalization/createPersonalizationStore.js +81 -182
  902. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  903. package/dist/v2/personalization/index.d.ts +34 -0
  904. package/dist/v2/personalization/index.d.ts.map +1 -1
  905. package/dist/v2/personalization/index.js +41 -21
  906. package/dist/v2/personalization/index.js.map +1 -1
  907. package/dist/v2/personalization/personalizationContext.js +10 -12
  908. package/dist/v2/personalization/personalizationContext.js.map +1 -1
  909. package/dist/v2/personalization/schema.js +8 -9
  910. package/dist/v2/personalization/schema.js.map +1 -1
  911. package/dist/v2/referentiel/ReferentielProvider.js +31 -45
  912. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  913. package/dist/v2/referentiel/index.js +11 -13
  914. package/dist/v2/referentiel/index.js.map +1 -1
  915. package/dist/v2/referentiel/types.d.ts +105 -0
  916. package/dist/v2/referentiel/types.d.ts.map +1 -0
  917. package/dist/v2/referentiel/types.js +6 -0
  918. package/dist/v2/referentiel/types.js.map +1 -0
  919. package/dist/v2/referentiel/useReferentielClient.js +13 -16
  920. package/dist/v2/referentiel/useReferentielClient.js.map +1 -1
  921. package/dist/v2/referentiel/useReferentielOptions.d.ts +7 -17
  922. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  923. package/dist/v2/referentiel/useReferentielOptions.js +63 -120
  924. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  925. package/dist/v2/referentiel/useReferentielSearch.d.ts +7 -48
  926. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  927. package/dist/v2/referentiel/useReferentielSearch.js +40 -95
  928. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  929. package/dist/v2/theme/_brand.js +12 -26
  930. package/dist/v2/theme/_brand.js.map +1 -1
  931. package/dist/v2/theme/_brandSecondary.js +12 -26
  932. package/dist/v2/theme/_brandSecondary.js.map +1 -1
  933. package/dist/v2/theme/createPortnetTheme.js +41 -49
  934. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  935. package/dist/v2/theme/cssVariables.d.ts +3 -3
  936. package/dist/v2/theme/cssVariables.d.ts.map +1 -1
  937. package/dist/v2/theme/cssVariables.js +65 -70
  938. package/dist/v2/theme/cssVariables.js.map +1 -1
  939. package/dist/v2/theme/index.js +10 -10
  940. package/dist/v2/theme/index.js.map +1 -1
  941. package/dist/v2/tokens/breakpoints.js +16 -16
  942. package/dist/v2/tokens/breakpoints.js.map +1 -1
  943. package/dist/v2/tokens/chart.d.ts +103 -0
  944. package/dist/v2/tokens/chart.d.ts.map +1 -0
  945. package/dist/v2/tokens/chart.js +270 -0
  946. package/dist/v2/tokens/chart.js.map +1 -0
  947. package/dist/v2/tokens/colors.js +24 -24
  948. package/dist/v2/tokens/colors.js.map +1 -1
  949. package/dist/v2/tokens/density.d.ts +104 -0
  950. package/dist/v2/tokens/density.d.ts.map +1 -1
  951. package/dist/v2/tokens/density.js +67 -12
  952. package/dist/v2/tokens/density.js.map +1 -1
  953. package/dist/v2/tokens/index.d.ts +50 -1
  954. package/dist/v2/tokens/index.d.ts.map +1 -1
  955. package/dist/v2/tokens/index.js +116 -68
  956. package/dist/v2/tokens/index.js.map +1 -1
  957. package/dist/v2/tokens/motion.js +16 -22
  958. package/dist/v2/tokens/motion.js.map +1 -1
  959. package/dist/v2/tokens/radius.js +3 -3
  960. package/dist/v2/tokens/radius.js.map +1 -1
  961. package/dist/v2/tokens/shadows.js +8 -8
  962. package/dist/v2/tokens/shadows.js.map +1 -1
  963. package/dist/v2/tokens/spacing.js +4 -4
  964. package/dist/v2/tokens/spacing.js.map +1 -1
  965. package/dist/v2/tokens/state.js +3 -3
  966. package/dist/v2/tokens/state.js.map +1 -1
  967. package/dist/v2/tokens/statusPalette.js +21 -23
  968. package/dist/v2/tokens/statusPalette.js.map +1 -1
  969. package/dist/v2/tokens/tokens.json +6 -1
  970. package/dist/v2/tokens/typography.js +15 -15
  971. package/dist/v2/tokens/typography.js.map +1 -1
  972. package/dist/v2/tokens/zIndex.js +3 -3
  973. package/dist/v2/tokens/zIndex.js.map +1 -1
  974. package/dist/v2/types/datagrid.d.ts +9 -1
  975. package/dist/v2/types/datagrid.d.ts.map +1 -1
  976. package/dist/v2/types/datagrid.js.map +1 -1
  977. package/dist/v2/types/index.js +2 -2
  978. package/dist/v2/types/index.js.map +1 -1
  979. package/dist/v2/utils/apiError.js +16 -37
  980. package/dist/v2/utils/apiError.js.map +1 -1
  981. package/dist/v2/utils/contrast.js +31 -32
  982. package/dist/v2/utils/contrast.js.map +1 -1
  983. package/dist/v2/utils/cx.js +7 -27
  984. package/dist/v2/utils/cx.js.map +1 -1
  985. package/dist/v2/utils/fileDownload.js +25 -28
  986. package/dist/v2/utils/fileDownload.js.map +1 -1
  987. package/dist/v2/utils/fileValidation.d.ts +116 -0
  988. package/dist/v2/utils/fileValidation.d.ts.map +1 -0
  989. package/dist/v2/utils/fileValidation.js +220 -0
  990. package/dist/v2/utils/fileValidation.js.map +1 -0
  991. package/dist/v2/utils/fmtDate.d.ts +103 -0
  992. package/dist/v2/utils/fmtDate.d.ts.map +1 -0
  993. package/dist/v2/utils/fmtDate.js +119 -0
  994. package/dist/v2/utils/fmtDate.js.map +1 -0
  995. package/dist/v2/utils/fmtMoney.d.ts +3 -3
  996. package/dist/v2/utils/fmtMoney.d.ts.map +1 -1
  997. package/dist/v2/utils/fmtMoney.js +9 -11
  998. package/dist/v2/utils/fmtMoney.js.map +1 -1
  999. package/dist/v2/utils/formikErrors.d.ts +67 -0
  1000. package/dist/v2/utils/formikErrors.d.ts.map +1 -0
  1001. package/dist/v2/utils/formikErrors.js +85 -0
  1002. package/dist/v2/utils/formikErrors.js.map +1 -0
  1003. package/dist/v2/utils/index.d.ts +5 -0
  1004. package/dist/v2/utils/index.d.ts.map +1 -1
  1005. package/dist/v2/utils/index.js +67 -18
  1006. package/dist/v2/utils/index.js.map +1 -1
  1007. package/dist/v2/utils/mergeLabels.js +9 -14
  1008. package/dist/v2/utils/mergeLabels.js.map +1 -1
  1009. package/dist/v2/utils/networkStatus.js +14 -14
  1010. package/dist/v2/utils/networkStatus.js.map +1 -1
  1011. package/package.json +26 -9
@@ -1,18 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- var _excluded = ["value", "onChange", "defaultCountry", "preferredCountries", "disabled", "readOnly", "error", "id", "placeholder", "fullWidth", "labels", "aria-describedby", "aria-invalid", "aria-required"];
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9
- 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."); }
10
- 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); }
11
- 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; }
12
- 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; } }
13
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
- 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; }
15
- 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; }
16
1
  import * as React from "react";
17
2
  import { AsYouType, parsePhoneNumber, getCountries, getCountryCallingCode, isSupportedCountry } from "libphonenumber-js";
18
3
  import Combobox from "./Combobox";
@@ -59,27 +44,26 @@ import { mergeLabels } from "../utils/mergeLabels";
59
44
  * country Combobox additionally references the same describedby.
60
45
  */
61
46
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
62
- var REGIONAL_INDICATOR_BASE = 0x1f1e6; // 🇦
63
- var A_CHAR = "A".charCodeAt(0);
47
+ const REGIONAL_INDICATOR_BASE = 0x1f1e6; // 🇦
48
+ const A_CHAR = "A".charCodeAt(0);
64
49
 
65
50
  // Emoji flag from an ISO-3166-1 alpha-2 country code (zero-dependency).
66
51
  function flagEmoji(country) {
67
52
  if (!country || country.length !== 2) return "";
68
- var cc = country.toUpperCase();
53
+ const cc = country.toUpperCase();
69
54
  return String.fromCodePoint(REGIONAL_INDICATOR_BASE + (cc.charCodeAt(0) - A_CHAR)) + String.fromCodePoint(REGIONAL_INDICATOR_BASE + (cc.charCodeAt(1) - A_CHAR));
70
55
  }
71
56
 
72
57
  // Localized (French) region name, memoized, with a graceful fallback to the code.
73
- var regionNames = null;
58
+ let regionNames = null;
74
59
  function countryName(country) {
75
60
  if (typeof Intl !== "undefined" && typeof Intl.DisplayNames === "function") {
76
61
  try {
77
- var _regionNames;
78
- var rn = (_regionNames = regionNames) !== null && _regionNames !== void 0 ? _regionNames : regionNames = new Intl.DisplayNames(["fr"], {
62
+ const rn = regionNames ?? (regionNames = new Intl.DisplayNames(["fr"], {
79
63
  type: "region"
80
- });
64
+ }));
81
65
  return rn.of(country) || country;
82
- } catch (_unused) {
66
+ } catch {
83
67
  return country;
84
68
  }
85
69
  }
@@ -89,44 +73,39 @@ function countryName(country) {
89
73
  // Every supported country as a Combobox option, sorted by FR name (preferred
90
74
  // countries floated to the top). Returns clean { value, label } objects.
91
75
  function buildCountryOptions(preferred) {
92
- var preferredSet = new Set((preferred || []).map(function (c) {
93
- return c.toUpperCase();
76
+ const preferredSet = new Set((preferred || []).map(c => c.toUpperCase()));
77
+ const rows = getCountries().map(c => ({
78
+ value: c,
79
+ label: `${flagEmoji(c)} ${countryName(c)} (+${getCountryCallingCode(c)})`,
80
+ name: countryName(c),
81
+ preferred: preferredSet.has(c)
94
82
  }));
95
- var rows = getCountries().map(function (c) {
96
- return {
97
- value: c,
98
- label: "".concat(flagEmoji(c), " ").concat(countryName(c), " (+").concat(getCountryCallingCode(c), ")"),
99
- name: countryName(c),
100
- preferred: preferredSet.has(c)
101
- };
102
- });
103
- rows.sort(function (a, b) {
83
+ rows.sort((a, b) => {
104
84
  if (a.preferred !== b.preferred) return a.preferred ? -1 : 1;
105
85
  return a.name.localeCompare(b.name, "fr");
106
86
  });
107
- return rows.map(function (_ref) {
108
- var value = _ref.value,
109
- label = _ref.label;
110
- return {
111
- value: value,
112
- label: label
113
- };
114
- });
87
+ return rows.map(({
88
+ value,
89
+ label
90
+ }) => ({
91
+ value,
92
+ label
93
+ }));
115
94
  }
116
95
  function callingCodeOf(country) {
117
96
  try {
118
97
  return getCountryCallingCode(country);
119
- } catch (_unused2) {
98
+ } catch {
120
99
  return "";
121
100
  }
122
101
  }
123
102
  // Derive the E.164 + info object for a (country, national text) pair.
124
103
  function computeNumber(country, nationalText) {
125
- var ayt = new AsYouType(country);
126
- var formatted = ayt.input(nationalText || "");
127
- var num = ayt.getNumber();
104
+ const ayt = new AsYouType(country);
105
+ const formatted = ayt.input(nationalText || "");
106
+ const num = ayt.getNumber();
128
107
  return {
129
- formatted: formatted,
108
+ formatted,
130
109
  info: {
131
110
  countryCode: country,
132
111
  callingCode: callingCodeOf(country),
@@ -136,61 +115,46 @@ function computeNumber(country, nationalText) {
136
115
  }
137
116
  };
138
117
  }
139
- var DEFAULT_TEL_LABELS = Object.freeze({
118
+ const DEFAULT_TEL_LABELS = Object.freeze({
140
119
  countryAriaLabel: "Indicatif pays",
141
120
  noCountryFound: "Aucun pays trouvé"
142
121
  });
143
- function TelInput(_ref2) {
144
- var _ref2$value = _ref2.value,
145
- value = _ref2$value === void 0 ? "" : _ref2$value,
146
- onChange = _ref2.onChange,
147
- _ref2$defaultCountry = _ref2.defaultCountry,
148
- defaultCountry = _ref2$defaultCountry === void 0 ? "MA" : _ref2$defaultCountry,
149
- preferredCountries = _ref2.preferredCountries,
150
- _ref2$disabled = _ref2.disabled,
151
- disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
152
- _ref2$readOnly = _ref2.readOnly,
153
- readOnly = _ref2$readOnly === void 0 ? false : _ref2$readOnly,
154
- _ref2$error = _ref2.error,
155
- error = _ref2$error === void 0 ? false : _ref2$error,
156
- id = _ref2.id,
157
- placeholder = _ref2.placeholder,
158
- _ref2$fullWidth = _ref2.fullWidth,
159
- fullWidth = _ref2$fullWidth === void 0 ? true : _ref2$fullWidth,
160
- labels = _ref2.labels,
161
- ariaDescribedBy = _ref2["aria-describedby"],
162
- ariaInvalid = _ref2["aria-invalid"],
163
- ariaRequired = _ref2["aria-required"],
164
- rest = _objectWithoutProperties(_ref2, _excluded);
165
- var safeDefault = defaultCountry && isSupportedCountry(defaultCountry) ? defaultCountry : "MA";
166
- var L = mergeLabels(DEFAULT_TEL_LABELS, labels);
167
- var _React$useState = React.useState(safeDefault),
168
- _React$useState2 = _slicedToArray(_React$useState, 2),
169
- country = _React$useState2[0],
170
- setCountry = _React$useState2[1];
171
- var _React$useState3 = React.useState(""),
172
- _React$useState4 = _slicedToArray(_React$useState3, 2),
173
- national = _React$useState4[0],
174
- setNational = _React$useState4[1];
175
- var countryOptions = React.useMemo(function () {
176
- return buildCountryOptions(preferredCountries);
177
- }, [preferredCountries]);
178
- var callingCode = React.useMemo(function () {
179
- return callingCodeOf(country);
180
- }, [country]);
122
+ function TelInput({
123
+ value = "",
124
+ onChange,
125
+ defaultCountry = "MA",
126
+ preferredCountries,
127
+ disabled = false,
128
+ readOnly = false,
129
+ error = false,
130
+ id,
131
+ placeholder,
132
+ fullWidth = true,
133
+ labels,
134
+ "aria-describedby": ariaDescribedBy,
135
+ "aria-invalid": ariaInvalid,
136
+ "aria-required": ariaRequired,
137
+ ...rest
138
+ }) {
139
+ const safeDefault = defaultCountry && isSupportedCountry(defaultCountry) ? defaultCountry : "MA";
140
+ const L = mergeLabels(DEFAULT_TEL_LABELS, labels);
141
+ const [country, setCountry] = React.useState(safeDefault);
142
+ const [national, setNational] = React.useState("");
143
+ const countryOptions = React.useMemo(() => buildCountryOptions(preferredCountries), [preferredCountries]);
144
+ const callingCode = React.useMemo(() => callingCodeOf(country), [country]);
181
145
 
182
146
  // Sync internal state from an external `value` (E.164). Guarded so our own
183
147
  // emitted updates don't clobber what the user is typing.
184
- React.useEffect(function () {
185
- var incoming = value || "";
186
- var current = computeNumber(country, national).info.numberValue;
148
+ React.useEffect(() => {
149
+ const incoming = value || "";
150
+ const current = computeNumber(country, national).info.numberValue;
187
151
  if (incoming === current) return; // our own round-trip — nothing to do
188
152
  if (!incoming) {
189
153
  setNational("");
190
154
  return;
191
155
  }
192
156
  try {
193
- var parsed = parsePhoneNumber(incoming);
157
+ const parsed = parsePhoneNumber(incoming);
194
158
  if (parsed) {
195
159
  if (parsed.country && parsed.country !== country) {
196
160
  setCountry(parsed.country);
@@ -198,35 +162,37 @@ function TelInput(_ref2) {
198
162
  setNational(parsed.formatNational());
199
163
  return;
200
164
  }
201
- } catch (_unused3) {
165
+ } catch {
202
166
  /* unparseable — fall through */
203
167
  }
204
168
  setNational(incoming);
205
169
  // eslint-disable-next-line react-hooks/exhaustive-deps
206
170
  }, [value]);
207
- var emit = function emit(ctry, nationalText) {
208
- var _computeNumber = computeNumber(ctry, nationalText),
209
- formatted = _computeNumber.formatted,
210
- info = _computeNumber.info;
171
+ const emit = (ctry, nationalText) => {
172
+ const {
173
+ formatted,
174
+ info
175
+ } = computeNumber(ctry, nationalText);
211
176
  setNational(formatted);
212
- onChange === null || onChange === void 0 ? void 0 : onChange(info.numberValue, info);
177
+ onChange?.(info.numberValue, info);
213
178
  };
214
- var handleCountryChange = function handleCountryChange(val) {
215
- var next = val || safeDefault;
179
+ const handleCountryChange = val => {
180
+ const next = val || safeDefault;
216
181
  setCountry(next);
217
182
  emit(next, national);
218
183
  };
219
- var handleNumberChange = function handleNumberChange(e) {
184
+ const handleNumberChange = e => {
220
185
  emit(country, e.target.value);
221
186
  };
222
187
  return /*#__PURE__*/_jsxs("div", {
223
- style: _objectSpread({
188
+ style: {
224
189
  display: "flex",
225
190
  gap: "var(--s-2)",
226
- alignItems: "flex-start"
227
- }, fullWidth ? {
228
- width: "100%"
229
- } : {}),
191
+ alignItems: "flex-start",
192
+ ...(fullWidth ? {
193
+ width: "100%"
194
+ } : {})
195
+ },
230
196
  children: [/*#__PURE__*/_jsx("div", {
231
197
  style: {
232
198
  flex: "0 0 40%",
@@ -248,7 +214,7 @@ function TelInput(_ref2) {
248
214
  style: {
249
215
  flex: "1 1 auto"
250
216
  },
251
- children: /*#__PURE__*/_jsx(Input, _objectSpread({
217
+ children: /*#__PURE__*/_jsx(Input, {
252
218
  id: id,
253
219
  type: "tel",
254
220
  value: national,
@@ -258,15 +224,16 @@ function TelInput(_ref2) {
258
224
  error: error,
259
225
  fullWidth: true,
260
226
  placeholder: placeholder,
261
- prefix: callingCode ? "+".concat(callingCode) : undefined,
227
+ prefix: callingCode ? `+${callingCode}` : undefined,
262
228
  inputProps: {
263
229
  inputMode: "tel",
264
230
  autoComplete: "tel-national",
265
231
  "aria-describedby": ariaDescribedBy,
266
232
  "aria-invalid": ariaInvalid,
267
233
  "aria-required": ariaRequired
268
- }
269
- }, rest))
234
+ },
235
+ ...rest
236
+ })
270
237
  })]
271
238
  });
272
239
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TelInput.js","names":["React","AsYouType","parsePhoneNumber","getCountries","getCountryCallingCode","isSupportedCountry","Combobox","Input","mergeLabels","jsx","_jsx","jsxs","_jsxs","REGIONAL_INDICATOR_BASE","A_CHAR","charCodeAt","flagEmoji","country","length","cc","toUpperCase","String","fromCodePoint","regionNames","countryName","Intl","DisplayNames","_regionNames","rn","type","of","_unused","buildCountryOptions","preferred","preferredSet","Set","map","c","rows","value","label","concat","name","has","sort","a","b","localeCompare","_ref","callingCodeOf","_unused2","computeNumber","nationalText","ayt","formatted","input","num","getNumber","info","countryCode","callingCode","nationalNumber","replace","numberValue","number","isValid","DEFAULT_TEL_LABELS","Object","freeze","countryAriaLabel","noCountryFound","TelInput","_ref2","_ref2$value","onChange","_ref2$defaultCountry","defaultCountry","preferredCountries","_ref2$disabled","disabled","_ref2$readOnly","readOnly","_ref2$error","error","id","placeholder","_ref2$fullWidth","fullWidth","labels","ariaDescribedBy","ariaInvalid","ariaRequired","rest","_objectWithoutProperties","_excluded","safeDefault","L","_React$useState","useState","_React$useState2","_slicedToArray","setCountry","_React$useState3","_React$useState4","national","setNational","countryOptions","useMemo","useEffect","incoming","current","parsed","formatNational","_unused3","emit","ctry","_computeNumber","handleCountryChange","val","next","handleNumberChange","e","target","style","_objectSpread","display","gap","alignItems","width","children","flex","minWidth","options","noOptions","prefix","undefined","inputProps","inputMode","autoComplete"],"sources":["../../../../src/lib/v2/components/TelInput.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport {\r\n AsYouType,\r\n parsePhoneNumber,\r\n getCountries,\r\n getCountryCallingCode,\r\n isSupportedCountry,\r\n} from \"libphonenumber-js\";\r\nimport type { CountryCode } from \"libphonenumber-js\";\r\nimport Combobox from \"./Combobox\";\r\nimport type { ComboboxValue } from \"./Combobox\";\r\nimport Input from \"./Input\";\r\nimport type { InputProps } from \"./Input\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * TelInput — Portnet UI v2\r\n *\r\n * Charter §03 · International phone-number field. Full-international successor to\r\n * the removed `mui-tel-input`. Composes a searchable country Combobox + a national\r\n * number Input, backed by libphonenumber-js for calling codes, as-you-type\r\n * formatting, and per-country validation.\r\n *\r\n * CONTROLLED by the full E.164 `value` string; re-emits on every change:\r\n *\r\n * <Field label=\"Téléphone\">\r\n * <TelInput\r\n * value={phone}\r\n * onChange={(value, info) => setPhone(info.numberValue)}\r\n * defaultCountry=\"MA\"\r\n * />\r\n * </Field>\r\n *\r\n * onChange(value, info):\r\n * value E.164 string (\"+212612345678\") or \"\" when empty/incomplete\r\n * info.countryCode selected ISO-3166-1 alpha-2 (e.g. \"MA\")\r\n * info.callingCode numeric calling code, no \"+\" (e.g. \"212\")\r\n * info.nationalNumber national significant number (digits only)\r\n * info.numberValue === value — matches the mui-tel-input contract\r\n * info.isValid libphonenumber-js full validity for the country\r\n *\r\n * The selected country's calling code is always shown as a fixed prefix on the\r\n * number input (this is the old `forceCallingCode` behaviour, now the default in\r\n * the two-control layout). Wrap in <Field> for label / error / aria binding.\r\n *\r\n * Localisation (FR / EN / AR):\r\n * Pass `labels` to override the country selector's aria-label and the\r\n * dropdown \"no results\" text. Defaults are French.\r\n *\r\n * A11y: <Field> injects id / aria-describedby / aria-invalid / aria-required onto\r\n * this component. They are routed to the national Input's <input> via inputProps\r\n * (the label-associated control where the hint/error must be announced); the\r\n * country Combobox additionally references the same describedby.\r\n */\r\n\r\nconst REGIONAL_INDICATOR_BASE = 0x1f1e6; // 🇦\r\nconst A_CHAR = \"A\".charCodeAt(0);\r\n\r\n// Emoji flag from an ISO-3166-1 alpha-2 country code (zero-dependency).\r\nfunction flagEmoji(country: string): string {\r\n if (!country || country.length !== 2) return \"\";\r\n const cc = country.toUpperCase();\r\n return (\r\n String.fromCodePoint(REGIONAL_INDICATOR_BASE + (cc.charCodeAt(0) - A_CHAR)) +\r\n String.fromCodePoint(REGIONAL_INDICATOR_BASE + (cc.charCodeAt(1) - A_CHAR))\r\n );\r\n}\r\n\r\n// Localized (French) region name, memoized, with a graceful fallback to the code.\r\nlet regionNames: Intl.DisplayNames | null = null;\r\nfunction countryName(country: string): string {\r\n if (typeof Intl !== \"undefined\" && typeof Intl.DisplayNames === \"function\") {\r\n try {\r\n const rn = regionNames ?? (regionNames = new Intl.DisplayNames([\"fr\"], { type: \"region\" }));\r\n return rn.of(country) || country;\r\n } catch {\r\n return country;\r\n }\r\n }\r\n return country;\r\n}\r\n\r\n// Every supported country as a Combobox option, sorted by FR name (preferred\r\n// countries floated to the top). Returns clean { value, label } objects.\r\nfunction buildCountryOptions(\r\n preferred: readonly string[] | undefined\r\n): Array<{ value: CountryCode; label: string }> {\r\n const preferredSet = new Set((preferred || []).map((c) => c.toUpperCase()));\r\n const rows = getCountries().map((c) => ({\r\n value: c,\r\n label: `${flagEmoji(c)} ${countryName(c)} (+${getCountryCallingCode(c)})`,\r\n name: countryName(c),\r\n preferred: preferredSet.has(c),\r\n }));\r\n rows.sort((a, b) => {\r\n if (a.preferred !== b.preferred) return a.preferred ? -1 : 1;\r\n return a.name.localeCompare(b.name, \"fr\");\r\n });\r\n return rows.map(({ value, label }) => ({ value, label }));\r\n}\r\n\r\nfunction callingCodeOf(country: CountryCode): string {\r\n try {\r\n return getCountryCallingCode(country);\r\n } catch {\r\n return \"\";\r\n }\r\n}\r\n\r\nexport interface TelInputChangeInfo {\r\n countryCode: CountryCode;\r\n callingCode: string;\r\n nationalNumber: string;\r\n numberValue: string;\r\n isValid: boolean;\r\n}\r\n\r\n// Derive the E.164 + info object for a (country, national text) pair.\r\nfunction computeNumber(\r\n country: CountryCode,\r\n nationalText: string\r\n): { formatted: string; info: TelInputChangeInfo } {\r\n const ayt = new AsYouType(country);\r\n const formatted = ayt.input(nationalText || \"\");\r\n const num = ayt.getNumber();\r\n return {\r\n formatted,\r\n info: {\r\n countryCode: country,\r\n callingCode: callingCodeOf(country),\r\n nationalNumber: num\r\n ? num.nationalNumber\r\n : (nationalText || \"\").replace(/\\D/g, \"\"),\r\n numberValue: num ? num.number : \"\",\r\n isValid: num ? num.isValid() : false,\r\n },\r\n };\r\n}\r\n\r\nexport interface TelInputLabels {\r\n /** aria-label on the country selector combobox. */\r\n countryAriaLabel?: string | undefined;\r\n /** \"no results\" text shown in the country dropdown. */\r\n noCountryFound?: string | undefined;\r\n}\r\n\r\nexport interface TelInputProps\r\n extends Omit<InputProps, \"value\" | \"onChange\" | \"error\"> {\r\n /** Full E.164 phone number, e.g. \"+212612345678\". Controlled. */\r\n value?: string | undefined;\r\n /** (value: string, info) => void. info.numberValue is the E.164. */\r\n onChange?: ((value: string, info: TelInputChangeInfo) => void) | undefined;\r\n /** ISO-3166-1 alpha-2 fallback country when value carries no country. */\r\n defaultCountry?: CountryCode | undefined;\r\n /** ISO-2 codes floated to the top of the country list. */\r\n preferredCountries?: string[] | undefined;\r\n /** Boolean error state (injected by <Field>). */\r\n error?: boolean | undefined;\r\n /** Localisation overrides for the country selector (FR defaults). */\r\n labels?: TelInputLabels | undefined;\r\n}\r\n\r\nconst DEFAULT_TEL_LABELS = Object.freeze({\r\n countryAriaLabel: \"Indicatif pays\",\r\n noCountryFound: \"Aucun pays trouvé\",\r\n});\r\n\r\nfunction TelInput({\r\n value = \"\",\r\n onChange,\r\n defaultCountry = \"MA\",\r\n preferredCountries,\r\n disabled = false,\r\n readOnly = false,\r\n error = false,\r\n id,\r\n placeholder,\r\n fullWidth = true,\r\n labels,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n ...rest\r\n}: TelInputProps) {\r\n const safeDefault =\r\n defaultCountry && isSupportedCountry(defaultCountry) ? defaultCountry : \"MA\";\r\n\r\n const L = mergeLabels(DEFAULT_TEL_LABELS, labels);\r\n\r\n const [country, setCountry] = React.useState<CountryCode>(safeDefault);\r\n const [national, setNational] = React.useState(\"\");\r\n\r\n const countryOptions = React.useMemo(\r\n () => buildCountryOptions(preferredCountries),\r\n [preferredCountries]\r\n );\r\n\r\n const callingCode = React.useMemo(() => callingCodeOf(country), [country]);\r\n\r\n // Sync internal state from an external `value` (E.164). Guarded so our own\r\n // emitted updates don't clobber what the user is typing.\r\n React.useEffect(() => {\r\n const incoming = value || \"\";\r\n const current = computeNumber(country, national).info.numberValue;\r\n if (incoming === current) return; // our own round-trip — nothing to do\r\n if (!incoming) {\r\n setNational(\"\");\r\n return;\r\n }\r\n try {\r\n const parsed = parsePhoneNumber(incoming);\r\n if (parsed) {\r\n if (parsed.country && parsed.country !== country) {\r\n setCountry(parsed.country);\r\n }\r\n setNational(parsed.formatNational());\r\n return;\r\n }\r\n } catch {\r\n /* unparseable — fall through */\r\n }\r\n setNational(incoming);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [value]);\r\n\r\n const emit = (ctry: CountryCode, nationalText: string) => {\r\n const { formatted, info } = computeNumber(ctry, nationalText);\r\n setNational(formatted);\r\n onChange?.(info.numberValue, info);\r\n };\r\n\r\n const handleCountryChange = (val: ComboboxValue) => {\r\n const next = (val || safeDefault) as CountryCode;\r\n setCountry(next);\r\n emit(next, national);\r\n };\r\n\r\n const handleNumberChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n emit(country, e.target.value);\r\n };\r\n\r\n return (\r\n <div\r\n style={{\r\n display: \"flex\",\r\n gap: \"var(--s-2)\",\r\n alignItems: \"flex-start\",\r\n ...(fullWidth ? { width: \"100%\" } : {}),\r\n }}\r\n >\r\n <div style={{ flex: \"0 0 40%\", minWidth: \"9rem\" }}>\r\n <Combobox\r\n options={countryOptions}\r\n value={country}\r\n onChange={handleCountryChange}\r\n disabled={disabled || readOnly}\r\n error={error}\r\n aria-label={L.countryAriaLabel}\r\n aria-describedby={ariaDescribedBy}\r\n labels={{ noOptions: L.noCountryFound }}\r\n />\r\n </div>\r\n <div style={{ flex: \"1 1 auto\" }}>\r\n <Input\r\n id={id}\r\n type=\"tel\"\r\n value={national}\r\n onChange={handleNumberChange}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n error={error}\r\n fullWidth\r\n placeholder={placeholder}\r\n prefix={callingCode ? `+${callingCode}` : undefined}\r\n inputProps={{\r\n inputMode: \"tel\",\r\n autoComplete: \"tel-national\",\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n }}\r\n {...rest}\r\n />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TelInput;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"TelInput.js","names":["React","AsYouType","parsePhoneNumber","getCountries","getCountryCallingCode","isSupportedCountry","Combobox","Input","mergeLabels","jsx","_jsx","jsxs","_jsxs","REGIONAL_INDICATOR_BASE","A_CHAR","charCodeAt","flagEmoji","country","length","cc","toUpperCase","String","fromCodePoint","regionNames","countryName","Intl","DisplayNames","rn","type","of","buildCountryOptions","preferred","preferredSet","Set","map","c","rows","value","label","name","has","sort","a","b","localeCompare","callingCodeOf","computeNumber","nationalText","ayt","formatted","input","num","getNumber","info","countryCode","callingCode","nationalNumber","replace","numberValue","number","isValid","DEFAULT_TEL_LABELS","Object","freeze","countryAriaLabel","noCountryFound","TelInput","onChange","defaultCountry","preferredCountries","disabled","readOnly","error","id","placeholder","fullWidth","labels","ariaDescribedBy","ariaInvalid","ariaRequired","rest","safeDefault","L","setCountry","useState","national","setNational","countryOptions","useMemo","useEffect","incoming","current","parsed","formatNational","emit","ctry","handleCountryChange","val","next","handleNumberChange","e","target","style","display","gap","alignItems","width","children","flex","minWidth","options","noOptions","prefix","undefined","inputProps","inputMode","autoComplete"],"sources":["../../../../src/lib/v2/components/TelInput.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport {\r\n AsYouType,\r\n parsePhoneNumber,\r\n getCountries,\r\n getCountryCallingCode,\r\n isSupportedCountry,\r\n} from \"libphonenumber-js\";\r\nimport type { CountryCode } from \"libphonenumber-js\";\r\nimport Combobox from \"./Combobox\";\r\nimport type { ComboboxValue } from \"./Combobox\";\r\nimport Input from \"./Input\";\r\nimport type { InputProps } from \"./Input\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * TelInput — Portnet UI v2\r\n *\r\n * Charter §03 · International phone-number field. Full-international successor to\r\n * the removed `mui-tel-input`. Composes a searchable country Combobox + a national\r\n * number Input, backed by libphonenumber-js for calling codes, as-you-type\r\n * formatting, and per-country validation.\r\n *\r\n * CONTROLLED by the full E.164 `value` string; re-emits on every change:\r\n *\r\n * <Field label=\"Téléphone\">\r\n * <TelInput\r\n * value={phone}\r\n * onChange={(value, info) => setPhone(info.numberValue)}\r\n * defaultCountry=\"MA\"\r\n * />\r\n * </Field>\r\n *\r\n * onChange(value, info):\r\n * value E.164 string (\"+212612345678\") or \"\" when empty/incomplete\r\n * info.countryCode selected ISO-3166-1 alpha-2 (e.g. \"MA\")\r\n * info.callingCode numeric calling code, no \"+\" (e.g. \"212\")\r\n * info.nationalNumber national significant number (digits only)\r\n * info.numberValue === value — matches the mui-tel-input contract\r\n * info.isValid libphonenumber-js full validity for the country\r\n *\r\n * The selected country's calling code is always shown as a fixed prefix on the\r\n * number input (this is the old `forceCallingCode` behaviour, now the default in\r\n * the two-control layout). Wrap in <Field> for label / error / aria binding.\r\n *\r\n * Localisation (FR / EN / AR):\r\n * Pass `labels` to override the country selector's aria-label and the\r\n * dropdown \"no results\" text. Defaults are French.\r\n *\r\n * A11y: <Field> injects id / aria-describedby / aria-invalid / aria-required onto\r\n * this component. They are routed to the national Input's <input> via inputProps\r\n * (the label-associated control where the hint/error must be announced); the\r\n * country Combobox additionally references the same describedby.\r\n */\r\n\r\nconst REGIONAL_INDICATOR_BASE = 0x1f1e6; // 🇦\r\nconst A_CHAR = \"A\".charCodeAt(0);\r\n\r\n// Emoji flag from an ISO-3166-1 alpha-2 country code (zero-dependency).\r\nfunction flagEmoji(country: string): string {\r\n if (!country || country.length !== 2) return \"\";\r\n const cc = country.toUpperCase();\r\n return (\r\n String.fromCodePoint(REGIONAL_INDICATOR_BASE + (cc.charCodeAt(0) - A_CHAR)) +\r\n String.fromCodePoint(REGIONAL_INDICATOR_BASE + (cc.charCodeAt(1) - A_CHAR))\r\n );\r\n}\r\n\r\n// Localized (French) region name, memoized, with a graceful fallback to the code.\r\nlet regionNames: Intl.DisplayNames | null = null;\r\nfunction countryName(country: string): string {\r\n if (typeof Intl !== \"undefined\" && typeof Intl.DisplayNames === \"function\") {\r\n try {\r\n const rn = regionNames ?? (regionNames = new Intl.DisplayNames([\"fr\"], { type: \"region\" }));\r\n return rn.of(country) || country;\r\n } catch {\r\n return country;\r\n }\r\n }\r\n return country;\r\n}\r\n\r\n// Every supported country as a Combobox option, sorted by FR name (preferred\r\n// countries floated to the top). Returns clean { value, label } objects.\r\nfunction buildCountryOptions(\r\n preferred: readonly string[] | undefined\r\n): Array<{ value: CountryCode; label: string }> {\r\n const preferredSet = new Set((preferred || []).map((c) => c.toUpperCase()));\r\n const rows = getCountries().map((c) => ({\r\n value: c,\r\n label: `${flagEmoji(c)} ${countryName(c)} (+${getCountryCallingCode(c)})`,\r\n name: countryName(c),\r\n preferred: preferredSet.has(c),\r\n }));\r\n rows.sort((a, b) => {\r\n if (a.preferred !== b.preferred) return a.preferred ? -1 : 1;\r\n return a.name.localeCompare(b.name, \"fr\");\r\n });\r\n return rows.map(({ value, label }) => ({ value, label }));\r\n}\r\n\r\nfunction callingCodeOf(country: CountryCode): string {\r\n try {\r\n return getCountryCallingCode(country);\r\n } catch {\r\n return \"\";\r\n }\r\n}\r\n\r\nexport interface TelInputChangeInfo {\r\n countryCode: CountryCode;\r\n callingCode: string;\r\n nationalNumber: string;\r\n numberValue: string;\r\n isValid: boolean;\r\n}\r\n\r\n// Derive the E.164 + info object for a (country, national text) pair.\r\nfunction computeNumber(\r\n country: CountryCode,\r\n nationalText: string\r\n): { formatted: string; info: TelInputChangeInfo } {\r\n const ayt = new AsYouType(country);\r\n const formatted = ayt.input(nationalText || \"\");\r\n const num = ayt.getNumber();\r\n return {\r\n formatted,\r\n info: {\r\n countryCode: country,\r\n callingCode: callingCodeOf(country),\r\n nationalNumber: num\r\n ? num.nationalNumber\r\n : (nationalText || \"\").replace(/\\D/g, \"\"),\r\n numberValue: num ? num.number : \"\",\r\n isValid: num ? num.isValid() : false,\r\n },\r\n };\r\n}\r\n\r\nexport interface TelInputLabels {\r\n /** aria-label on the country selector combobox. */\r\n countryAriaLabel?: string | undefined;\r\n /** \"no results\" text shown in the country dropdown. */\r\n noCountryFound?: string | undefined;\r\n}\r\n\r\nexport interface TelInputProps\r\n extends Omit<InputProps, \"value\" | \"onChange\" | \"error\"> {\r\n /** Full E.164 phone number, e.g. \"+212612345678\". Controlled. */\r\n value?: string | undefined;\r\n /** (value: string, info) => void. info.numberValue is the E.164. */\r\n onChange?: ((value: string, info: TelInputChangeInfo) => void) | undefined;\r\n /** ISO-3166-1 alpha-2 fallback country when value carries no country. */\r\n defaultCountry?: CountryCode | undefined;\r\n /** ISO-2 codes floated to the top of the country list. */\r\n preferredCountries?: string[] | undefined;\r\n /** Boolean error state (injected by <Field>). */\r\n error?: boolean | undefined;\r\n /** Localisation overrides for the country selector (FR defaults). */\r\n labels?: TelInputLabels | undefined;\r\n}\r\n\r\nconst DEFAULT_TEL_LABELS = Object.freeze({\r\n countryAriaLabel: \"Indicatif pays\",\r\n noCountryFound: \"Aucun pays trouvé\",\r\n});\r\n\r\nfunction TelInput({\r\n value = \"\",\r\n onChange,\r\n defaultCountry = \"MA\",\r\n preferredCountries,\r\n disabled = false,\r\n readOnly = false,\r\n error = false,\r\n id,\r\n placeholder,\r\n fullWidth = true,\r\n labels,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n ...rest\r\n}: TelInputProps) {\r\n const safeDefault =\r\n defaultCountry && isSupportedCountry(defaultCountry) ? defaultCountry : \"MA\";\r\n\r\n const L = mergeLabels(DEFAULT_TEL_LABELS, labels);\r\n\r\n const [country, setCountry] = React.useState<CountryCode>(safeDefault);\r\n const [national, setNational] = React.useState(\"\");\r\n\r\n const countryOptions = React.useMemo(\r\n () => buildCountryOptions(preferredCountries),\r\n [preferredCountries]\r\n );\r\n\r\n const callingCode = React.useMemo(() => callingCodeOf(country), [country]);\r\n\r\n // Sync internal state from an external `value` (E.164). Guarded so our own\r\n // emitted updates don't clobber what the user is typing.\r\n React.useEffect(() => {\r\n const incoming = value || \"\";\r\n const current = computeNumber(country, national).info.numberValue;\r\n if (incoming === current) return; // our own round-trip — nothing to do\r\n if (!incoming) {\r\n setNational(\"\");\r\n return;\r\n }\r\n try {\r\n const parsed = parsePhoneNumber(incoming);\r\n if (parsed) {\r\n if (parsed.country && parsed.country !== country) {\r\n setCountry(parsed.country);\r\n }\r\n setNational(parsed.formatNational());\r\n return;\r\n }\r\n } catch {\r\n /* unparseable — fall through */\r\n }\r\n setNational(incoming);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [value]);\r\n\r\n const emit = (ctry: CountryCode, nationalText: string) => {\r\n const { formatted, info } = computeNumber(ctry, nationalText);\r\n setNational(formatted);\r\n onChange?.(info.numberValue, info);\r\n };\r\n\r\n const handleCountryChange = (val: ComboboxValue) => {\r\n const next = (val || safeDefault) as CountryCode;\r\n setCountry(next);\r\n emit(next, national);\r\n };\r\n\r\n const handleNumberChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\r\n emit(country, e.target.value);\r\n };\r\n\r\n return (\r\n <div\r\n style={{\r\n display: \"flex\",\r\n gap: \"var(--s-2)\",\r\n alignItems: \"flex-start\",\r\n ...(fullWidth ? { width: \"100%\" } : {}),\r\n }}\r\n >\r\n <div style={{ flex: \"0 0 40%\", minWidth: \"9rem\" }}>\r\n <Combobox\r\n options={countryOptions}\r\n value={country}\r\n onChange={handleCountryChange}\r\n disabled={disabled || readOnly}\r\n error={error}\r\n aria-label={L.countryAriaLabel}\r\n aria-describedby={ariaDescribedBy}\r\n labels={{ noOptions: L.noCountryFound }}\r\n />\r\n </div>\r\n <div style={{ flex: \"1 1 auto\" }}>\r\n <Input\r\n id={id}\r\n type=\"tel\"\r\n value={national}\r\n onChange={handleNumberChange}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n error={error}\r\n fullWidth\r\n placeholder={placeholder}\r\n prefix={callingCode ? `+${callingCode}` : undefined}\r\n inputProps={{\r\n inputMode: \"tel\",\r\n autoComplete: \"tel-national\",\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n }}\r\n {...rest}\r\n />\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport default TelInput;\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,3 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- var _excluded = ["value", "onChange", "onBlur", "placeholder", "disabled", "error", "readOnly", "fullWidth", "rows", "minRows", "maxRows", "inputProps", "sx"];
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
1
  import * as React from "react";
11
2
  import OutlinedInput from "@mui/material/OutlinedInput";
12
3
 
@@ -26,30 +17,29 @@ import OutlinedInput from "@mui/material/OutlinedInput";
26
17
  * silently ignored. Public API contract unchanged.
27
18
  */
28
19
  import { jsx as _jsx } from "react/jsx-runtime";
29
- var Textarea = /*#__PURE__*/React.forwardRef(function Textarea(_ref, ref) {
30
- var value = _ref.value,
31
- onChange = _ref.onChange,
32
- onBlur = _ref.onBlur,
33
- placeholder = _ref.placeholder,
34
- disabled = _ref.disabled,
35
- error = _ref.error,
36
- readOnly = _ref.readOnly,
37
- _ref$fullWidth = _ref.fullWidth,
38
- fullWidth = _ref$fullWidth === void 0 ? true : _ref$fullWidth,
39
- _ref$rows = _ref.rows,
40
- rows = _ref$rows === void 0 ? 3 : _ref$rows,
41
- minRows = _ref.minRows,
42
- maxRows = _ref.maxRows,
43
- inputProps = _ref.inputProps,
44
- sx = _ref.sx,
45
- rest = _objectWithoutProperties(_ref, _excluded);
46
- return /*#__PURE__*/_jsx(OutlinedInput, _objectSpread({
20
+ const Textarea = /*#__PURE__*/React.forwardRef(function Textarea({
21
+ value,
22
+ onChange,
23
+ onBlur,
24
+ placeholder,
25
+ disabled,
26
+ error,
27
+ readOnly,
28
+ fullWidth = true,
29
+ rows = 3,
30
+ minRows,
31
+ maxRows,
32
+ inputProps,
33
+ sx,
34
+ ...rest
35
+ }, ref) {
36
+ return /*#__PURE__*/_jsx(OutlinedInput, {
47
37
  ref: ref,
48
38
  multiline: true,
49
39
  rows: minRows || maxRows ? undefined : rows,
50
40
  minRows: minRows,
51
41
  maxRows: maxRows,
52
- value: value !== null && value !== void 0 ? value : "",
42
+ value: value ?? "",
53
43
  onChange: onChange,
54
44
  onBlur: onBlur,
55
45
  placeholder: placeholder,
@@ -65,8 +55,9 @@ var Textarea = /*#__PURE__*/React.forwardRef(function Textarea(_ref, ref) {
65
55
  slotProps: inputProps ? {
66
56
  input: inputProps
67
57
  } : undefined,
68
- sx: sx
69
- }, rest));
58
+ sx: sx,
59
+ ...rest
60
+ });
70
61
  });
71
62
  export default Textarea;
72
63
  //# sourceMappingURL=Textarea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","names":["React","OutlinedInput","jsx","_jsx","Textarea","forwardRef","_ref","ref","value","onChange","onBlur","placeholder","disabled","error","readOnly","_ref$fullWidth","fullWidth","_ref$rows","rows","minRows","maxRows","inputProps","sx","rest","_objectWithoutProperties","_excluded","_objectSpread","multiline","undefined","slotProps","input"],"sources":["../../../../src/lib/v2/components/Textarea.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport OutlinedInput from \"@mui/material/OutlinedInput\";\r\nimport type { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\r\n\r\n/**\r\n * Textarea - Portnet UI v2\r\n *\r\n * <Field label=\"Commentaire\">\r\n * <Textarea rows={4} value={v} onChange={onChange} />\r\n * </Field>\r\n *\r\n * MUI v9 surface notes (audit Batch 2 external):\r\n * The public `inputProps` is routed internally to slotProps.input -\r\n * MUI v9 idiomatic location for native <textarea/> attributes\r\n * (maxLength, autoComplete, aria-*, etc.). On OutlinedInput in v9,\r\n * `inputProps` is deprecated -> consumers passing common patterns\r\n * like `inputProps={{ maxLength: 500 }}` would otherwise have it\r\n * silently ignored. Public API contract unchanged.\r\n */\r\nexport interface TextareaProps extends Omit<OutlinedInputProps, \"value\"> {\r\n value?: string | undefined;\r\n}\r\n\r\nconst Textarea = React.forwardRef<React.ComponentRef<typeof OutlinedInput>, TextareaProps>(function Textarea(\r\n {\r\n value, onChange, onBlur,\r\n placeholder, disabled, error, readOnly,\r\n fullWidth = true,\r\n rows = 3,\r\n minRows, maxRows,\r\n inputProps,\r\n sx,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n return (\r\n <OutlinedInput\r\n ref={ref}\r\n multiline\r\n rows={minRows || maxRows ? undefined : rows}\r\n minRows={minRows}\r\n maxRows={maxRows}\r\n value={value ?? \"\"}\r\n onChange={onChange}\r\n onBlur={onBlur}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n error={!!error}\r\n fullWidth={fullWidth}\r\n // MUI v9: OutlinedInput inputProps -> slotProps.input. Aligns\r\n // Textarea with the v9-migrated v2.Input surface (audit Batch 3\r\n // B3-1). Emitted conditionally so we don't pass\r\n // `slotProps={{ input: undefined }}` when nothing is supplied.\r\n slotProps={inputProps ? { input: inputProps } : undefined}\r\n sx={sx}\r\n {...rest}\r\n />\r\n );\r\n});\r\n\r\nexport default Textarea;\r\n"],"mappings":";;;;;;;;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,aAAa,MAAM,6BAA6B;;AAGvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,SAAAC,GAAA,IAAAC,IAAA;AAmBA,IAAMC,QAAQ,gBAAGJ,KAAK,CAACK,UAAU,CAA0D,SAASD,QAAQA,CAAAE,IAAA,EAW1GC,GAAG,EACH;EAAA,IAVEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACvBC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAEC,KAAK,GAAAP,IAAA,CAALO,KAAK;IAAEC,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;IAAAC,cAAA,GAAAT,IAAA,CACtCU,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,IAAI,GAAAA,cAAA;IAAAE,SAAA,GAAAX,IAAA,CAChBY,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,GAAAA,SAAA;IACRE,OAAO,GAAAb,IAAA,CAAPa,OAAO;IAAEC,OAAO,GAAAd,IAAA,CAAPc,OAAO;IAChBC,UAAU,GAAAf,IAAA,CAAVe,UAAU;IACVC,EAAE,GAAAhB,IAAA,CAAFgB,EAAE;IACCC,IAAI,GAAAC,wBAAA,CAAAlB,IAAA,EAAAmB,SAAA;EAIT,oBACEtB,IAAA,CAACF,aAAa,EAAAyB,aAAA;IACZnB,GAAG,EAAEA,GAAI;IACToB,SAAS;IACTT,IAAI,EAAEC,OAAO,IAAIC,OAAO,GAAGQ,SAAS,GAAGV,IAAK;IAC5CC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBZ,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAG;IACnBC,QAAQ,EAAEA,QAAS;IACnBC,MAAM,EAAEA,MAAO;IACfC,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA,QAAS;IACnBE,QAAQ,EAAEA,QAAS;IACnBD,KAAK,EAAE,CAAC,CAACA,KAAM;IACfG,SAAS,EAAEA;IACX;IACA;IACA;IACA;IAAA;IACAa,SAAS,EAAER,UAAU,GAAG;MAAES,KAAK,EAAET;IAAW,CAAC,GAAGO,SAAU;IAC1DN,EAAE,EAAEA;EAAG,GACHC,IAAI,CACT,CAAC;AAEN,CAAC,CAAC;AAEF,eAAenB,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"Textarea.js","names":["React","OutlinedInput","jsx","_jsx","Textarea","forwardRef","value","onChange","onBlur","placeholder","disabled","error","readOnly","fullWidth","rows","minRows","maxRows","inputProps","sx","rest","ref","multiline","undefined","slotProps","input"],"sources":["../../../../src/lib/v2/components/Textarea.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport OutlinedInput from \"@mui/material/OutlinedInput\";\r\nimport type { OutlinedInputProps } from \"@mui/material/OutlinedInput\";\r\n\r\n/**\r\n * Textarea - Portnet UI v2\r\n *\r\n * <Field label=\"Commentaire\">\r\n * <Textarea rows={4} value={v} onChange={onChange} />\r\n * </Field>\r\n *\r\n * MUI v9 surface notes (audit Batch 2 external):\r\n * The public `inputProps` is routed internally to slotProps.input -\r\n * MUI v9 idiomatic location for native <textarea/> attributes\r\n * (maxLength, autoComplete, aria-*, etc.). On OutlinedInput in v9,\r\n * `inputProps` is deprecated -> consumers passing common patterns\r\n * like `inputProps={{ maxLength: 500 }}` would otherwise have it\r\n * silently ignored. Public API contract unchanged.\r\n */\r\nexport interface TextareaProps extends Omit<OutlinedInputProps, \"value\"> {\r\n value?: string | undefined;\r\n}\r\n\r\nconst Textarea = React.forwardRef<React.ComponentRef<typeof OutlinedInput>, TextareaProps>(function Textarea(\r\n {\r\n value, onChange, onBlur,\r\n placeholder, disabled, error, readOnly,\r\n fullWidth = true,\r\n rows = 3,\r\n minRows, maxRows,\r\n inputProps,\r\n sx,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n return (\r\n <OutlinedInput\r\n ref={ref}\r\n multiline\r\n rows={minRows || maxRows ? undefined : rows}\r\n minRows={minRows}\r\n maxRows={maxRows}\r\n value={value ?? \"\"}\r\n onChange={onChange}\r\n onBlur={onBlur}\r\n placeholder={placeholder}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n error={!!error}\r\n fullWidth={fullWidth}\r\n // MUI v9: OutlinedInput inputProps -> slotProps.input. Aligns\r\n // Textarea with the v9-migrated v2.Input surface (audit Batch 3\r\n // B3-1). Emitted conditionally so we don't pass\r\n // `slotProps={{ input: undefined }}` when nothing is supplied.\r\n slotProps={inputProps ? { input: inputProps } : undefined}\r\n sx={sx}\r\n {...rest}\r\n />\r\n );\r\n});\r\n\r\nexport default Textarea;\r\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,aAAa,MAAM,6BAA6B;;AAGvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAdA,SAAAC,GAAA,IAAAC,IAAA;AAmBA,MAAMC,QAAQ,gBAAGJ,KAAK,CAACK,UAAU,CAA0D,SAASD,QAAQA,CAC1G;EACEE,KAAK;EAAEC,QAAQ;EAAEC,MAAM;EACvBC,WAAW;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,QAAQ;EACtCC,SAAS,GAAG,IAAI;EAChBC,IAAI,GAAG,CAAC;EACRC,OAAO;EAAEC,OAAO;EAChBC,UAAU;EACVC,EAAE;EACF,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACA,oBACEjB,IAAA,CAACF,aAAa;IACZmB,GAAG,EAAEA,GAAI;IACTC,SAAS;IACTP,IAAI,EAAEC,OAAO,IAAIC,OAAO,GAAGM,SAAS,GAAGR,IAAK;IAC5CC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBV,KAAK,EAAEA,KAAK,IAAI,EAAG;IACnBC,QAAQ,EAAEA,QAAS;IACnBC,MAAM,EAAEA,MAAO;IACfC,WAAW,EAAEA,WAAY;IACzBC,QAAQ,EAAEA,QAAS;IACnBE,QAAQ,EAAEA,QAAS;IACnBD,KAAK,EAAE,CAAC,CAACA,KAAM;IACfE,SAAS,EAAEA;IACX;IACA;IACA;IACA;IAAA;IACAU,SAAS,EAAEN,UAAU,GAAG;MAAEO,KAAK,EAAEP;IAAW,CAAC,GAAGK,SAAU;IAC1DJ,EAAE,EAAEA,EAAG;IAAA,GACHC;EAAI,CACT,CAAC;AAEN,CAAC,CAAC;AAEF,eAAef,QAAQ","ignoreList":[]}