@portnet/ui 6.0.0 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (820) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/dist/esm/index.js +214 -0
  3. package/dist/esm/index.js.map +1 -0
  4. package/dist/esm/v2/__tests__/FieldError.test.js +159 -0
  5. package/dist/esm/v2/__tests__/FieldError.test.js.map +1 -0
  6. package/dist/esm/v2/__tests__/FieldWidth.test.js +146 -0
  7. package/dist/esm/v2/__tests__/FieldWidth.test.js.map +1 -0
  8. package/dist/esm/v2/__tests__/FileCard.test.js +143 -0
  9. package/dist/esm/v2/__tests__/FileCard.test.js.map +1 -0
  10. package/dist/esm/v2/__tests__/FormikCheckbox.test.js +265 -0
  11. package/dist/esm/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  12. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js +248 -0
  13. package/dist/esm/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  14. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js +380 -0
  15. package/dist/esm/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  16. package/dist/esm/v2/__tests__/MobileRowCard.test.js +332 -0
  17. package/dist/esm/v2/__tests__/MobileRowCard.test.js.map +1 -0
  18. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js +235 -0
  19. package/dist/esm/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  20. package/dist/esm/v2/__tests__/apiError.test.js +181 -0
  21. package/dist/esm/v2/__tests__/apiError.test.js.map +1 -0
  22. package/dist/esm/v2/__tests__/banned-patterns.test.js +270 -0
  23. package/dist/esm/v2/__tests__/banned-patterns.test.js.map +1 -0
  24. package/dist/esm/v2/__tests__/contrast-palette.test.js +224 -0
  25. package/dist/esm/v2/__tests__/contrast-palette.test.js.map +1 -0
  26. package/dist/esm/v2/__tests__/cssVariables.test.js +157 -0
  27. package/dist/esm/v2/__tests__/cssVariables.test.js.map +1 -0
  28. package/dist/esm/v2/__tests__/labels-merge.test.js +146 -0
  29. package/dist/esm/v2/__tests__/labels-merge.test.js.map +1 -0
  30. package/dist/esm/v2/__tests__/locale-fallback.test.js +109 -0
  31. package/dist/esm/v2/__tests__/locale-fallback.test.js.map +1 -0
  32. package/dist/esm/v2/__tests__/useFocusTrap.test.js +514 -0
  33. package/dist/esm/v2/__tests__/useFocusTrap.test.js.map +1 -0
  34. package/dist/esm/v2/components/Accordion.js +230 -0
  35. package/dist/esm/v2/components/Accordion.js.map +1 -0
  36. package/dist/esm/v2/components/ActionStrip.js +146 -0
  37. package/dist/esm/v2/components/ActionStrip.js.map +1 -0
  38. package/dist/esm/v2/components/Banner.js +254 -0
  39. package/dist/esm/v2/components/Banner.js.map +1 -0
  40. package/dist/esm/v2/components/Busy.js +97 -0
  41. package/dist/esm/v2/components/Busy.js.map +1 -0
  42. package/dist/esm/v2/components/Button.js +114 -0
  43. package/dist/esm/v2/components/Button.js.map +1 -0
  44. package/dist/esm/v2/components/CategoryTag.js +81 -0
  45. package/dist/esm/v2/components/CategoryTag.js.map +1 -0
  46. package/dist/esm/v2/components/Checkbox.js +124 -0
  47. package/dist/esm/v2/components/Checkbox.js.map +1 -0
  48. package/dist/esm/v2/components/Chip.js +124 -0
  49. package/dist/esm/v2/components/Chip.js.map +1 -0
  50. package/dist/esm/v2/components/Combobox.js +394 -0
  51. package/dist/esm/v2/components/Combobox.js.map +1 -0
  52. package/dist/esm/v2/components/CommandPalette.js +660 -0
  53. package/dist/esm/v2/components/CommandPalette.js.map +1 -0
  54. package/dist/esm/v2/components/ConfirmDialog.js +144 -0
  55. package/dist/esm/v2/components/ConfirmDialog.js.map +1 -0
  56. package/dist/esm/v2/components/DatePicker.js +200 -0
  57. package/dist/esm/v2/components/DatePicker.js.map +1 -0
  58. package/dist/esm/v2/components/DateRangePicker.js +289 -0
  59. package/dist/esm/v2/components/DateRangePicker.js.map +1 -0
  60. package/dist/esm/v2/components/DateTimePicker.js +215 -0
  61. package/dist/esm/v2/components/DateTimePicker.js.map +1 -0
  62. package/dist/esm/v2/components/Drawer.js +333 -0
  63. package/dist/esm/v2/components/Drawer.js.map +1 -0
  64. package/dist/esm/v2/components/Dropzone.js +540 -0
  65. package/dist/esm/v2/components/Dropzone.js.map +1 -0
  66. package/dist/esm/v2/components/EmptyState.js +102 -0
  67. package/dist/esm/v2/components/EmptyState.js.map +1 -0
  68. package/dist/esm/v2/components/FavoriteToggle.js +127 -0
  69. package/dist/esm/v2/components/FavoriteToggle.js.map +1 -0
  70. package/dist/esm/v2/components/Field.js +259 -0
  71. package/dist/esm/v2/components/Field.js.map +1 -0
  72. package/dist/esm/v2/components/FieldError.js +124 -0
  73. package/dist/esm/v2/components/FieldError.js.map +1 -0
  74. package/dist/esm/v2/components/FieldHelp.js +202 -0
  75. package/dist/esm/v2/components/FieldHelp.js.map +1 -0
  76. package/dist/esm/v2/components/FileCard.js +162 -0
  77. package/dist/esm/v2/components/FileCard.js.map +1 -0
  78. package/dist/esm/v2/components/FilterTab.js +138 -0
  79. package/dist/esm/v2/components/FilterTab.js.map +1 -0
  80. package/dist/esm/v2/components/ForbiddenPage.js +74 -0
  81. package/dist/esm/v2/components/ForbiddenPage.js.map +1 -0
  82. package/dist/esm/v2/components/FormGrid.js +179 -0
  83. package/dist/esm/v2/components/FormGrid.js.map +1 -0
  84. package/dist/esm/v2/components/FormikDisplay.js +118 -0
  85. package/dist/esm/v2/components/FormikDisplay.js.map +1 -0
  86. package/dist/esm/v2/components/Input.js +107 -0
  87. package/dist/esm/v2/components/Input.js.map +1 -0
  88. package/dist/esm/v2/components/KPICard.js +237 -0
  89. package/dist/esm/v2/components/KPICard.js.map +1 -0
  90. package/dist/esm/v2/components/KPIStrip.js +84 -0
  91. package/dist/esm/v2/components/KPIStrip.js.map +1 -0
  92. package/dist/esm/v2/components/KV.js +75 -0
  93. package/dist/esm/v2/components/KV.js.map +1 -0
  94. package/dist/esm/v2/components/KVGrid.js +74 -0
  95. package/dist/esm/v2/components/KVGrid.js.map +1 -0
  96. package/dist/esm/v2/components/Layout.js +284 -0
  97. package/dist/esm/v2/components/Layout.js.map +1 -0
  98. package/dist/esm/v2/components/MobileRowCard.js +314 -0
  99. package/dist/esm/v2/components/MobileRowCard.js.map +1 -0
  100. package/dist/esm/v2/components/Modal.js +276 -0
  101. package/dist/esm/v2/components/Modal.js.map +1 -0
  102. package/dist/esm/v2/components/NetworkErrorPage.js +78 -0
  103. package/dist/esm/v2/components/NetworkErrorPage.js.map +1 -0
  104. package/dist/esm/v2/components/NotFoundPage.js +58 -0
  105. package/dist/esm/v2/components/NotFoundPage.js.map +1 -0
  106. package/dist/esm/v2/components/NumberInput.js +309 -0
  107. package/dist/esm/v2/components/NumberInput.js.map +1 -0
  108. package/dist/esm/v2/components/OverflowMenu.js +184 -0
  109. package/dist/esm/v2/components/OverflowMenu.js.map +1 -0
  110. package/dist/esm/v2/components/PdfViewer.js +122 -0
  111. package/dist/esm/v2/components/PdfViewer.js.map +1 -0
  112. package/dist/esm/v2/components/ProgressBar.js +202 -0
  113. package/dist/esm/v2/components/ProgressBar.js.map +1 -0
  114. package/dist/esm/v2/components/Radio.js +228 -0
  115. package/dist/esm/v2/components/Radio.js.map +1 -0
  116. package/dist/esm/v2/components/SectionErrorBoundary.js +214 -0
  117. package/dist/esm/v2/components/SectionErrorBoundary.js.map +1 -0
  118. package/dist/esm/v2/components/SectionHeader.js +132 -0
  119. package/dist/esm/v2/components/SectionHeader.js.map +1 -0
  120. package/dist/esm/v2/components/Segmented.js +254 -0
  121. package/dist/esm/v2/components/Segmented.js.map +1 -0
  122. package/dist/esm/v2/components/Select.js +490 -0
  123. package/dist/esm/v2/components/Select.js.map +1 -0
  124. package/dist/esm/v2/components/ServerErrorPage.js +74 -0
  125. package/dist/esm/v2/components/ServerErrorPage.js.map +1 -0
  126. package/dist/esm/v2/components/Skeleton.js +269 -0
  127. package/dist/esm/v2/components/Skeleton.js.map +1 -0
  128. package/dist/esm/v2/components/SkipLink.js +49 -0
  129. package/dist/esm/v2/components/SkipLink.js.map +1 -0
  130. package/dist/esm/v2/components/Spinner.js +69 -0
  131. package/dist/esm/v2/components/Spinner.js.map +1 -0
  132. package/dist/esm/v2/components/Status.js +64 -0
  133. package/dist/esm/v2/components/Status.js.map +1 -0
  134. package/dist/esm/v2/components/Stepper.js +432 -0
  135. package/dist/esm/v2/components/Stepper.js.map +1 -0
  136. package/dist/esm/v2/components/Surface.js +159 -0
  137. package/dist/esm/v2/components/Surface.js.map +1 -0
  138. package/dist/esm/v2/components/Switch.js +128 -0
  139. package/dist/esm/v2/components/Switch.js.map +1 -0
  140. package/dist/esm/v2/components/Tabs.js +150 -0
  141. package/dist/esm/v2/components/Tabs.js.map +1 -0
  142. package/dist/esm/v2/components/TelInput.js +274 -0
  143. package/dist/esm/v2/components/TelInput.js.map +1 -0
  144. package/dist/esm/v2/components/Textarea.js +72 -0
  145. package/dist/esm/v2/components/Textarea.js.map +1 -0
  146. package/dist/esm/v2/components/TimePicker.js +134 -0
  147. package/dist/esm/v2/components/TimePicker.js.map +1 -0
  148. package/dist/esm/v2/components/Toast.js +376 -0
  149. package/dist/esm/v2/components/Toast.js.map +1 -0
  150. package/dist/esm/v2/components/Tooltip.js +161 -0
  151. package/dist/esm/v2/components/Tooltip.js.map +1 -0
  152. package/dist/esm/v2/components/_ErrorPageBody.js +85 -0
  153. package/dist/esm/v2/components/_ErrorPageBody.js.map +1 -0
  154. package/dist/esm/v2/components/_pickerShared.js +60 -0
  155. package/dist/esm/v2/components/_pickerShared.js.map +1 -0
  156. package/dist/esm/v2/components/index.js +271 -0
  157. package/dist/esm/v2/components/index.js.map +1 -0
  158. package/dist/esm/v2/hooks/index.js +10 -0
  159. package/dist/esm/v2/hooks/index.js.map +1 -0
  160. package/dist/esm/v2/hooks/useDelayedFlag.js +55 -0
  161. package/dist/esm/v2/hooks/useDelayedFlag.js.map +1 -0
  162. package/dist/esm/v2/hooks/useDensity.js +119 -0
  163. package/dist/esm/v2/hooks/useDensity.js.map +1 -0
  164. package/dist/esm/v2/hooks/useFocusFirstError.js +197 -0
  165. package/dist/esm/v2/hooks/useFocusFirstError.js.map +1 -0
  166. package/dist/esm/v2/hooks/useFocusTrap.js +202 -0
  167. package/dist/esm/v2/hooks/useFocusTrap.js.map +1 -0
  168. package/dist/esm/v2/hooks/useFormAutoSave.js +181 -0
  169. package/dist/esm/v2/hooks/useFormAutoSave.js.map +1 -0
  170. package/dist/esm/v2/hooks/useFormCompletionProgress.js +131 -0
  171. package/dist/esm/v2/hooks/useFormCompletionProgress.js.map +1 -0
  172. package/dist/esm/v2/hooks/useResolvedDensity.js +44 -0
  173. package/dist/esm/v2/hooks/useResolvedDensity.js.map +1 -0
  174. package/dist/esm/v2/hooks/useSortedRows.js +32 -0
  175. package/dist/esm/v2/hooks/useSortedRows.js.map +1 -0
  176. package/dist/esm/v2/hooks/useTabLoading.js +79 -0
  177. package/dist/esm/v2/hooks/useTabLoading.js.map +1 -0
  178. package/dist/esm/v2/index.js +132 -0
  179. package/dist/esm/v2/index.js.map +1 -0
  180. package/dist/esm/v2/modalContext.js +108 -0
  181. package/dist/esm/v2/modalContext.js.map +1 -0
  182. package/dist/esm/v2/models/favorite.js +2 -0
  183. package/dist/esm/v2/models/favorite.js.map +1 -0
  184. package/dist/esm/v2/models/index.js +12 -0
  185. package/dist/esm/v2/models/index.js.map +1 -0
  186. package/dist/esm/v2/models/personalization.js +2 -0
  187. package/dist/esm/v2/models/personalization.js.map +1 -0
  188. package/dist/esm/v2/models/referentiel.js +2 -0
  189. package/dist/esm/v2/models/referentiel.js.map +1 -0
  190. package/dist/esm/v2/models/savedFilter.js +2 -0
  191. package/dist/esm/v2/models/savedFilter.js.map +1 -0
  192. package/dist/esm/v2/patterns/ActionBar.js +603 -0
  193. package/dist/esm/v2/patterns/ActionBar.js.map +1 -0
  194. package/dist/esm/v2/patterns/BulkActionBar.js +147 -0
  195. package/dist/esm/v2/patterns/BulkActionBar.js.map +1 -0
  196. package/dist/esm/v2/patterns/CollapsibleDataGrid.js +303 -0
  197. package/dist/esm/v2/patterns/CollapsibleDataGrid.js.map +1 -0
  198. package/dist/esm/v2/patterns/ColumnsToggle.js +301 -0
  199. package/dist/esm/v2/patterns/ColumnsToggle.js.map +1 -0
  200. package/dist/esm/v2/patterns/DataGrid.js +820 -0
  201. package/dist/esm/v2/patterns/DataGrid.js.map +1 -0
  202. package/dist/esm/v2/patterns/DataGridSettingsMenu.js +375 -0
  203. package/dist/esm/v2/patterns/DataGridSettingsMenu.js.map +1 -0
  204. package/dist/esm/v2/patterns/DataGridToolbar.js +249 -0
  205. package/dist/esm/v2/patterns/DataGridToolbar.js.map +1 -0
  206. package/dist/esm/v2/patterns/DataGridVirtualized.js +523 -0
  207. package/dist/esm/v2/patterns/DataGridVirtualized.js.map +1 -0
  208. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js +70 -0
  209. package/dist/esm/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
  210. package/dist/esm/v2/patterns/FavoriteColumn.js +117 -0
  211. package/dist/esm/v2/patterns/FavoriteColumn.js.map +1 -0
  212. package/dist/esm/v2/patterns/FavoritesFilter.js +91 -0
  213. package/dist/esm/v2/patterns/FavoritesFilter.js.map +1 -0
  214. package/dist/esm/v2/patterns/FormErrorSummary.js +101 -0
  215. package/dist/esm/v2/patterns/FormErrorSummary.js.map +1 -0
  216. package/dist/esm/v2/patterns/FormPageShell.js +126 -0
  217. package/dist/esm/v2/patterns/FormPageShell.js.map +1 -0
  218. package/dist/esm/v2/patterns/FormSection.js +190 -0
  219. package/dist/esm/v2/patterns/FormSection.js.map +1 -0
  220. package/dist/esm/v2/patterns/FormikCheckbox.js +140 -0
  221. package/dist/esm/v2/patterns/FormikCheckbox.js.map +1 -0
  222. package/dist/esm/v2/patterns/FormikCheckboxGroup.js +110 -0
  223. package/dist/esm/v2/patterns/FormikCheckboxGroup.js.map +1 -0
  224. package/dist/esm/v2/patterns/FormikCombobox.js +118 -0
  225. package/dist/esm/v2/patterns/FormikCombobox.js.map +1 -0
  226. package/dist/esm/v2/patterns/FormikDatePicker.js +162 -0
  227. package/dist/esm/v2/patterns/FormikDatePicker.js.map +1 -0
  228. package/dist/esm/v2/patterns/FormikDateTimePicker.js +150 -0
  229. package/dist/esm/v2/patterns/FormikDateTimePicker.js.map +1 -0
  230. package/dist/esm/v2/patterns/FormikErrorFocus.js +77 -0
  231. package/dist/esm/v2/patterns/FormikErrorFocus.js.map +1 -0
  232. package/dist/esm/v2/patterns/FormikFile.js +148 -0
  233. package/dist/esm/v2/patterns/FormikFile.js.map +1 -0
  234. package/dist/esm/v2/patterns/FormikInput.js +130 -0
  235. package/dist/esm/v2/patterns/FormikInput.js.map +1 -0
  236. package/dist/esm/v2/patterns/FormikRadioGroup.js +141 -0
  237. package/dist/esm/v2/patterns/FormikRadioGroup.js.map +1 -0
  238. package/dist/esm/v2/patterns/FormikReferentielField.js +116 -0
  239. package/dist/esm/v2/patterns/FormikReferentielField.js.map +1 -0
  240. package/dist/esm/v2/patterns/FormikSelect.js +162 -0
  241. package/dist/esm/v2/patterns/FormikSelect.js.map +1 -0
  242. package/dist/esm/v2/patterns/FormikTextarea.js +79 -0
  243. package/dist/esm/v2/patterns/FormikTextarea.js.map +1 -0
  244. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js +212 -0
  245. package/dist/esm/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
  246. package/dist/esm/v2/patterns/NetworkErrorBanner.js +72 -0
  247. package/dist/esm/v2/patterns/NetworkErrorBanner.js.map +1 -0
  248. package/dist/esm/v2/patterns/PageContent.js +62 -0
  249. package/dist/esm/v2/patterns/PageContent.js.map +1 -0
  250. package/dist/esm/v2/patterns/ReferentielField.js +615 -0
  251. package/dist/esm/v2/patterns/ReferentielField.js.map +1 -0
  252. package/dist/esm/v2/patterns/RowFavoriteToggle.js +122 -0
  253. package/dist/esm/v2/patterns/RowFavoriteToggle.js.map +1 -0
  254. package/dist/esm/v2/patterns/SaveFilterDialog.js +197 -0
  255. package/dist/esm/v2/patterns/SaveFilterDialog.js.map +1 -0
  256. package/dist/esm/v2/patterns/SavedFiltersMenu.js +406 -0
  257. package/dist/esm/v2/patterns/SavedFiltersMenu.js.map +1 -0
  258. package/dist/esm/v2/patterns/SkeletonPageShell.js +342 -0
  259. package/dist/esm/v2/patterns/SkeletonPageShell.js.map +1 -0
  260. package/dist/esm/v2/patterns/SortableHeader.js +179 -0
  261. package/dist/esm/v2/patterns/SortableHeader.js.map +1 -0
  262. package/dist/esm/v2/patterns/Tour.js +471 -0
  263. package/dist/esm/v2/patterns/Tour.js.map +1 -0
  264. package/dist/esm/v2/patterns/_dataGridShared.js +431 -0
  265. package/dist/esm/v2/patterns/_dataGridShared.js.map +1 -0
  266. package/dist/esm/v2/patterns/_pickerSerialisation.js +74 -0
  267. package/dist/esm/v2/patterns/_pickerSerialisation.js.map +1 -0
  268. package/dist/esm/v2/patterns/_sort.js +112 -0
  269. package/dist/esm/v2/patterns/_sort.js.map +1 -0
  270. package/dist/esm/v2/patterns/_useColumnReorder.js +257 -0
  271. package/dist/esm/v2/patterns/_useColumnReorder.js.map +1 -0
  272. package/dist/esm/v2/patterns/_useColumnResize.js +191 -0
  273. package/dist/esm/v2/patterns/_useColumnResize.js.map +1 -0
  274. package/dist/esm/v2/patterns/index.js +178 -0
  275. package/dist/esm/v2/patterns/index.js.map +1 -0
  276. package/dist/esm/v2/personalization/PersonalizationProvider.js +168 -0
  277. package/dist/esm/v2/personalization/PersonalizationProvider.js.map +1 -0
  278. package/dist/esm/v2/personalization/adapters/_storageKey.js +60 -0
  279. package/dist/esm/v2/personalization/adapters/_storageKey.js.map +1 -0
  280. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js +124 -0
  281. package/dist/esm/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
  282. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js +70 -0
  283. package/dist/esm/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
  284. package/dist/esm/v2/personalization/adapters/index.js +11 -0
  285. package/dist/esm/v2/personalization/adapters/index.js.map +1 -0
  286. package/dist/esm/v2/personalization/capabilities/favorites.js +216 -0
  287. package/dist/esm/v2/personalization/capabilities/favorites.js.map +1 -0
  288. package/dist/esm/v2/personalization/capabilities/favoritesView.js +111 -0
  289. package/dist/esm/v2/personalization/capabilities/favoritesView.js.map +1 -0
  290. package/dist/esm/v2/personalization/capabilities/gridPreferences.js +209 -0
  291. package/dist/esm/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  292. package/dist/esm/v2/personalization/capabilities/index.js +22 -0
  293. package/dist/esm/v2/personalization/capabilities/index.js.map +1 -0
  294. package/dist/esm/v2/personalization/capabilities/savedFilters.js +291 -0
  295. package/dist/esm/v2/personalization/capabilities/savedFilters.js.map +1 -0
  296. package/dist/esm/v2/personalization/createPersonalizationStore.js +472 -0
  297. package/dist/esm/v2/personalization/createPersonalizationStore.js.map +1 -0
  298. package/dist/esm/v2/personalization/index.js +64 -0
  299. package/dist/esm/v2/personalization/index.js.map +1 -0
  300. package/dist/esm/v2/personalization/personalizationContext.js +108 -0
  301. package/dist/esm/v2/personalization/personalizationContext.js.map +1 -0
  302. package/dist/esm/v2/personalization/schema.js +92 -0
  303. package/dist/esm/v2/personalization/schema.js.map +1 -0
  304. package/dist/esm/v2/personalization/types.js +2 -0
  305. package/dist/esm/v2/personalization/types.js.map +1 -0
  306. package/dist/esm/v2/referentiel/ReferentielProvider.js +87 -0
  307. package/dist/esm/v2/referentiel/ReferentielProvider.js.map +1 -0
  308. package/dist/esm/v2/referentiel/index.js +15 -0
  309. package/dist/esm/v2/referentiel/index.js.map +1 -0
  310. package/dist/esm/v2/referentiel/useReferentielClient.js +37 -0
  311. package/dist/esm/v2/referentiel/useReferentielClient.js.map +1 -0
  312. package/dist/esm/v2/referentiel/useReferentielOptions.js +169 -0
  313. package/dist/esm/v2/referentiel/useReferentielOptions.js.map +1 -0
  314. package/dist/esm/v2/referentiel/useReferentielSearch.js +132 -0
  315. package/dist/esm/v2/referentiel/useReferentielSearch.js.map +1 -0
  316. package/dist/esm/v2/styles/base.css +425 -0
  317. package/dist/esm/v2/styles/css.d.ts +10 -0
  318. package/dist/esm/v2/styles/index.js +12 -0
  319. package/dist/esm/v2/styles/index.js.map +1 -0
  320. package/dist/esm/v2/theme/_brand.js +64 -0
  321. package/dist/esm/v2/theme/_brand.js.map +1 -0
  322. package/dist/esm/v2/theme/_brandSecondary.js +60 -0
  323. package/dist/esm/v2/theme/_brandSecondary.js.map +1 -0
  324. package/dist/esm/v2/theme/createPortnetTheme.js +548 -0
  325. package/dist/esm/v2/theme/createPortnetTheme.js.map +1 -0
  326. package/dist/esm/v2/theme/cssVariables.js +198 -0
  327. package/dist/esm/v2/theme/cssVariables.js.map +1 -0
  328. package/dist/esm/v2/theme/index.js +32 -0
  329. package/dist/esm/v2/theme/index.js.map +1 -0
  330. package/dist/esm/v2/tokens/breakpoints.js +106 -0
  331. package/dist/esm/v2/tokens/breakpoints.js.map +1 -0
  332. package/dist/esm/v2/tokens/colors.js +219 -0
  333. package/dist/esm/v2/tokens/colors.js.map +1 -0
  334. package/dist/esm/v2/tokens/density.js +98 -0
  335. package/dist/esm/v2/tokens/density.js.map +1 -0
  336. package/dist/esm/v2/tokens/index.js +80 -0
  337. package/dist/esm/v2/tokens/index.js.map +1 -0
  338. package/dist/esm/v2/tokens/motion.js +88 -0
  339. package/dist/esm/v2/tokens/motion.js.map +1 -0
  340. package/dist/esm/v2/tokens/radius.js +22 -0
  341. package/dist/esm/v2/tokens/radius.js.map +1 -0
  342. package/dist/esm/v2/tokens/shadows.js +40 -0
  343. package/dist/esm/v2/tokens/shadows.js.map +1 -0
  344. package/dist/esm/v2/tokens/spacing.js +51 -0
  345. package/dist/esm/v2/tokens/spacing.js.map +1 -0
  346. package/dist/esm/v2/tokens/state.js +41 -0
  347. package/dist/esm/v2/tokens/state.js.map +1 -0
  348. package/dist/esm/v2/tokens/statusPalette.js +66 -0
  349. package/dist/esm/v2/tokens/statusPalette.js.map +1 -0
  350. package/dist/esm/v2/tokens/tokens.json +153 -0
  351. package/dist/esm/v2/tokens/typography.js +149 -0
  352. package/dist/esm/v2/tokens/typography.js.map +1 -0
  353. package/dist/esm/v2/tokens/zIndex.js +44 -0
  354. package/dist/esm/v2/tokens/zIndex.js.map +1 -0
  355. package/dist/esm/v2/types/common.js +2 -0
  356. package/dist/esm/v2/types/common.js.map +1 -0
  357. package/dist/esm/v2/types/datagrid.js +2 -0
  358. package/dist/esm/v2/types/datagrid.js.map +1 -0
  359. package/dist/esm/v2/types/index.js +12 -0
  360. package/dist/esm/v2/types/index.js.map +1 -0
  361. package/dist/esm/v2/utils/apiError.js +281 -0
  362. package/dist/esm/v2/utils/apiError.js.map +1 -0
  363. package/dist/esm/v2/utils/contrast.js +157 -0
  364. package/dist/esm/v2/utils/contrast.js.map +1 -0
  365. package/dist/esm/v2/utils/cx.js +38 -0
  366. package/dist/esm/v2/utils/cx.js.map +1 -0
  367. package/dist/esm/v2/utils/fileDownload.js +226 -0
  368. package/dist/esm/v2/utils/fileDownload.js.map +1 -0
  369. package/dist/esm/v2/utils/fmtMoney.js +78 -0
  370. package/dist/esm/v2/utils/fmtMoney.js.map +1 -0
  371. package/dist/esm/v2/utils/index.js +43 -0
  372. package/dist/esm/v2/utils/index.js.map +1 -0
  373. package/dist/esm/v2/utils/mergeLabels.js +86 -0
  374. package/dist/esm/v2/utils/mergeLabels.js.map +1 -0
  375. package/dist/esm/v2/utils/networkStatus.js +114 -0
  376. package/dist/esm/v2/utils/networkStatus.js.map +1 -0
  377. package/dist/index.d.ts +5 -2
  378. package/dist/index.d.ts.map +1 -1
  379. package/dist/index.js +35 -0
  380. package/dist/index.js.map +1 -1
  381. package/dist/v2/__tests__/FieldError.test.js +160 -0
  382. package/dist/v2/__tests__/FieldError.test.js.map +1 -0
  383. package/dist/v2/__tests__/FieldWidth.test.js +150 -0
  384. package/dist/v2/__tests__/FieldWidth.test.js.map +1 -0
  385. package/dist/v2/__tests__/FileCard.test.js +144 -0
  386. package/dist/v2/__tests__/FileCard.test.js.map +1 -0
  387. package/dist/v2/__tests__/FormikCheckbox.test.js +268 -0
  388. package/dist/v2/__tests__/FormikCheckbox.test.js.map +1 -0
  389. package/dist/v2/__tests__/FormikDateTimePicker.test.js +247 -0
  390. package/dist/v2/__tests__/FormikDateTimePicker.test.js.map +1 -0
  391. package/dist/v2/__tests__/FormikRadioGroup.test.js +381 -0
  392. package/dist/v2/__tests__/FormikRadioGroup.test.js.map +1 -0
  393. package/dist/v2/__tests__/MobileRowCard.test.js +52 -56
  394. package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -1
  395. package/dist/v2/__tests__/SectionErrorBoundary.test.js +237 -0
  396. package/dist/v2/__tests__/SectionErrorBoundary.test.js.map +1 -0
  397. package/dist/v2/__tests__/labels-merge.test.js +20 -24
  398. package/dist/v2/__tests__/labels-merge.test.js.map +1 -1
  399. package/dist/v2/components/Accordion.d.ts +6 -6
  400. package/dist/v2/components/Accordion.d.ts.map +1 -1
  401. package/dist/v2/components/Accordion.js.map +1 -1
  402. package/dist/v2/components/ActionStrip.d.ts +12 -12
  403. package/dist/v2/components/ActionStrip.d.ts.map +1 -1
  404. package/dist/v2/components/ActionStrip.js.map +1 -1
  405. package/dist/v2/components/Banner.d.ts +48 -9
  406. package/dist/v2/components/Banner.d.ts.map +1 -1
  407. package/dist/v2/components/Banner.js +116 -35
  408. package/dist/v2/components/Banner.js.map +1 -1
  409. package/dist/v2/components/Busy.d.ts +3 -3
  410. package/dist/v2/components/Busy.d.ts.map +1 -1
  411. package/dist/v2/components/Busy.js.map +1 -1
  412. package/dist/v2/components/Button.d.ts +6 -6
  413. package/dist/v2/components/Button.d.ts.map +1 -1
  414. package/dist/v2/components/Button.js.map +1 -1
  415. package/dist/v2/components/CategoryTag.d.ts +3 -3
  416. package/dist/v2/components/CategoryTag.d.ts.map +1 -1
  417. package/dist/v2/components/CategoryTag.js.map +1 -1
  418. package/dist/v2/components/Checkbox.d.ts +11 -11
  419. package/dist/v2/components/Checkbox.d.ts.map +1 -1
  420. package/dist/v2/components/Checkbox.js.map +1 -1
  421. package/dist/v2/components/Chip.d.ts +8 -8
  422. package/dist/v2/components/Chip.d.ts.map +1 -1
  423. package/dist/v2/components/Chip.js +2 -1
  424. package/dist/v2/components/Chip.js.map +1 -1
  425. package/dist/v2/components/Combobox.d.ts +27 -27
  426. package/dist/v2/components/Combobox.d.ts.map +1 -1
  427. package/dist/v2/components/Combobox.js +3 -2
  428. package/dist/v2/components/Combobox.js.map +1 -1
  429. package/dist/v2/components/CommandPalette.d.ts +20 -20
  430. package/dist/v2/components/CommandPalette.d.ts.map +1 -1
  431. package/dist/v2/components/CommandPalette.js +2 -6
  432. package/dist/v2/components/CommandPalette.js.map +1 -1
  433. package/dist/v2/components/ConfirmDialog.d.ts +13 -13
  434. package/dist/v2/components/ConfirmDialog.d.ts.map +1 -1
  435. package/dist/v2/components/ConfirmDialog.js +2 -1
  436. package/dist/v2/components/ConfirmDialog.js.map +1 -1
  437. package/dist/v2/components/DatePicker.d.ts +11 -11
  438. package/dist/v2/components/DatePicker.d.ts.map +1 -1
  439. package/dist/v2/components/DatePicker.js.map +1 -1
  440. package/dist/v2/components/DateRangePicker.d.ts +16 -16
  441. package/dist/v2/components/DateRangePicker.d.ts.map +1 -1
  442. package/dist/v2/components/DateRangePicker.js +2 -1
  443. package/dist/v2/components/DateRangePicker.js.map +1 -1
  444. package/dist/v2/components/DateTimePicker.d.ts +11 -11
  445. package/dist/v2/components/DateTimePicker.d.ts.map +1 -1
  446. package/dist/v2/components/DateTimePicker.js +37 -4
  447. package/dist/v2/components/DateTimePicker.js.map +1 -1
  448. package/dist/v2/components/Drawer.d.ts +18 -18
  449. package/dist/v2/components/Drawer.d.ts.map +1 -1
  450. package/dist/v2/components/Drawer.js +2 -1
  451. package/dist/v2/components/Drawer.js.map +1 -1
  452. package/dist/v2/components/Dropzone.d.ts +34 -34
  453. package/dist/v2/components/Dropzone.d.ts.map +1 -1
  454. package/dist/v2/components/Dropzone.js +11 -3
  455. package/dist/v2/components/Dropzone.js.map +1 -1
  456. package/dist/v2/components/EmptyState.d.ts +7 -7
  457. package/dist/v2/components/EmptyState.d.ts.map +1 -1
  458. package/dist/v2/components/EmptyState.js.map +1 -1
  459. package/dist/v2/components/FavoriteToggle.d.ts +7 -7
  460. package/dist/v2/components/FavoriteToggle.d.ts.map +1 -1
  461. package/dist/v2/components/FavoriteToggle.js +2 -1
  462. package/dist/v2/components/FavoriteToggle.js.map +1 -1
  463. package/dist/v2/components/Field.d.ts +76 -13
  464. package/dist/v2/components/Field.d.ts.map +1 -1
  465. package/dist/v2/components/Field.js +87 -9
  466. package/dist/v2/components/Field.js.map +1 -1
  467. package/dist/v2/components/FieldError.d.ts +78 -0
  468. package/dist/v2/components/FieldError.d.ts.map +1 -0
  469. package/dist/v2/components/FieldError.js +131 -0
  470. package/dist/v2/components/FieldError.js.map +1 -0
  471. package/dist/v2/components/FieldHelp.d.ts +7 -7
  472. package/dist/v2/components/FieldHelp.d.ts.map +1 -1
  473. package/dist/v2/components/FieldHelp.js.map +1 -1
  474. package/dist/v2/components/FileCard.d.ts +75 -0
  475. package/dist/v2/components/FileCard.d.ts.map +1 -0
  476. package/dist/v2/components/FileCard.js +169 -0
  477. package/dist/v2/components/FileCard.js.map +1 -0
  478. package/dist/v2/components/FilterTab.d.ts +9 -9
  479. package/dist/v2/components/FilterTab.d.ts.map +1 -1
  480. package/dist/v2/components/FilterTab.js +2 -1
  481. package/dist/v2/components/FilterTab.js.map +1 -1
  482. package/dist/v2/components/FormGrid.d.ts +9 -4
  483. package/dist/v2/components/FormGrid.d.ts.map +1 -1
  484. package/dist/v2/components/FormGrid.js +11 -1
  485. package/dist/v2/components/FormGrid.js.map +1 -1
  486. package/dist/v2/components/FormikDisplay.d.ts +6 -6
  487. package/dist/v2/components/FormikDisplay.d.ts.map +1 -1
  488. package/dist/v2/components/FormikDisplay.js.map +1 -1
  489. package/dist/v2/components/Input.d.ts +6 -6
  490. package/dist/v2/components/Input.d.ts.map +1 -1
  491. package/dist/v2/components/Input.js.map +1 -1
  492. package/dist/v2/components/KPICard.d.ts +43 -13
  493. package/dist/v2/components/KPICard.d.ts.map +1 -1
  494. package/dist/v2/components/KPICard.js +53 -14
  495. package/dist/v2/components/KPICard.js.map +1 -1
  496. package/dist/v2/components/KPIStrip.d.ts +68 -0
  497. package/dist/v2/components/KPIStrip.d.ts.map +1 -0
  498. package/dist/v2/components/KPIStrip.js +92 -0
  499. package/dist/v2/components/KPIStrip.js.map +1 -0
  500. package/dist/v2/components/KV.d.ts +3 -3
  501. package/dist/v2/components/KV.d.ts.map +1 -1
  502. package/dist/v2/components/KV.js.map +1 -1
  503. package/dist/v2/components/KVGrid.d.ts +2 -2
  504. package/dist/v2/components/KVGrid.d.ts.map +1 -1
  505. package/dist/v2/components/KVGrid.js +8 -1
  506. package/dist/v2/components/KVGrid.js.map +1 -1
  507. package/dist/v2/components/Layout.d.ts +7 -7
  508. package/dist/v2/components/Layout.d.ts.map +1 -1
  509. package/dist/v2/components/Layout.js.map +1 -1
  510. package/dist/v2/components/MobileRowCard.d.ts +13 -13
  511. package/dist/v2/components/MobileRowCard.d.ts.map +1 -1
  512. package/dist/v2/components/MobileRowCard.js.map +1 -1
  513. package/dist/v2/components/Modal.d.ts +12 -12
  514. package/dist/v2/components/Modal.d.ts.map +1 -1
  515. package/dist/v2/components/Modal.js.map +1 -1
  516. package/dist/v2/components/NetworkErrorPage.d.ts +1 -1
  517. package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -1
  518. package/dist/v2/components/NetworkErrorPage.js.map +1 -1
  519. package/dist/v2/components/NumberInput.d.ts +14 -14
  520. package/dist/v2/components/NumberInput.d.ts.map +1 -1
  521. package/dist/v2/components/NumberInput.js +7 -6
  522. package/dist/v2/components/NumberInput.js.map +1 -1
  523. package/dist/v2/components/OverflowMenu.d.ts +14 -14
  524. package/dist/v2/components/OverflowMenu.d.ts.map +1 -1
  525. package/dist/v2/components/OverflowMenu.js +4 -8
  526. package/dist/v2/components/OverflowMenu.js.map +1 -1
  527. package/dist/v2/components/PdfViewer.d.ts +9 -9
  528. package/dist/v2/components/PdfViewer.d.ts.map +1 -1
  529. package/dist/v2/components/PdfViewer.js.map +1 -1
  530. package/dist/v2/components/ProgressBar.d.ts +10 -10
  531. package/dist/v2/components/ProgressBar.d.ts.map +1 -1
  532. package/dist/v2/components/ProgressBar.js.map +1 -1
  533. package/dist/v2/components/Radio.d.ts +7 -7
  534. package/dist/v2/components/Radio.d.ts.map +1 -1
  535. package/dist/v2/components/Radio.js.map +1 -1
  536. package/dist/v2/components/SectionErrorBoundary.d.ts +89 -0
  537. package/dist/v2/components/SectionErrorBoundary.d.ts.map +1 -0
  538. package/dist/v2/components/SectionErrorBoundary.js +221 -0
  539. package/dist/v2/components/SectionErrorBoundary.js.map +1 -0
  540. package/dist/v2/components/SectionHeader.d.ts +5 -5
  541. package/dist/v2/components/SectionHeader.d.ts.map +1 -1
  542. package/dist/v2/components/SectionHeader.js.map +1 -1
  543. package/dist/v2/components/Segmented.d.ts +11 -11
  544. package/dist/v2/components/Segmented.d.ts.map +1 -1
  545. package/dist/v2/components/Segmented.js.map +1 -1
  546. package/dist/v2/components/Select.d.ts +33 -15
  547. package/dist/v2/components/Select.d.ts.map +1 -1
  548. package/dist/v2/components/Select.js +147 -30
  549. package/dist/v2/components/Select.js.map +1 -1
  550. package/dist/v2/components/ServerErrorPage.d.ts +1 -1
  551. package/dist/v2/components/ServerErrorPage.d.ts.map +1 -1
  552. package/dist/v2/components/ServerErrorPage.js.map +1 -1
  553. package/dist/v2/components/Skeleton.d.ts +15 -15
  554. package/dist/v2/components/Skeleton.d.ts.map +1 -1
  555. package/dist/v2/components/Skeleton.js.map +1 -1
  556. package/dist/v2/components/SkipLink.d.ts +2 -2
  557. package/dist/v2/components/SkipLink.d.ts.map +1 -1
  558. package/dist/v2/components/SkipLink.js.map +1 -1
  559. package/dist/v2/components/Status.d.ts +3 -3
  560. package/dist/v2/components/Status.d.ts.map +1 -1
  561. package/dist/v2/components/Status.js.map +1 -1
  562. package/dist/v2/components/Stepper.d.ts +28 -22
  563. package/dist/v2/components/Stepper.d.ts.map +1 -1
  564. package/dist/v2/components/Stepper.js +31 -5
  565. package/dist/v2/components/Stepper.js.map +1 -1
  566. package/dist/v2/components/Surface.d.ts +94 -0
  567. package/dist/v2/components/Surface.d.ts.map +1 -0
  568. package/dist/v2/components/Surface.js +163 -0
  569. package/dist/v2/components/Surface.js.map +1 -0
  570. package/dist/v2/components/Switch.d.ts +4 -4
  571. package/dist/v2/components/Switch.d.ts.map +1 -1
  572. package/dist/v2/components/Switch.js.map +1 -1
  573. package/dist/v2/components/Tabs.d.ts +6 -6
  574. package/dist/v2/components/Tabs.d.ts.map +1 -1
  575. package/dist/v2/components/Tabs.js.map +1 -1
  576. package/dist/v2/components/TelInput.d.ts +8 -8
  577. package/dist/v2/components/TelInput.d.ts.map +1 -1
  578. package/dist/v2/components/TelInput.js +18 -18
  579. package/dist/v2/components/TelInput.js.map +1 -1
  580. package/dist/v2/components/Textarea.d.ts +1 -1
  581. package/dist/v2/components/Textarea.d.ts.map +1 -1
  582. package/dist/v2/components/Textarea.js.map +1 -1
  583. package/dist/v2/components/TimePicker.d.ts +11 -11
  584. package/dist/v2/components/TimePicker.d.ts.map +1 -1
  585. package/dist/v2/components/TimePicker.js.map +1 -1
  586. package/dist/v2/components/Toast.d.ts +6 -6
  587. package/dist/v2/components/Toast.d.ts.map +1 -1
  588. package/dist/v2/components/Toast.js +9 -8
  589. package/dist/v2/components/Toast.js.map +1 -1
  590. package/dist/v2/components/Tooltip.d.ts +1 -1
  591. package/dist/v2/components/Tooltip.d.ts.map +1 -1
  592. package/dist/v2/components/Tooltip.js.map +1 -1
  593. package/dist/v2/components/index.d.ts +170 -0
  594. package/dist/v2/components/index.d.ts.map +1 -1
  595. package/dist/v2/components/index.js +35 -0
  596. package/dist/v2/components/index.js.map +1 -1
  597. package/dist/v2/index.d.ts.map +1 -1
  598. package/dist/v2/index.js.map +1 -1
  599. package/dist/v2/models/favorite.d.ts +1 -1
  600. package/dist/v2/models/favorite.d.ts.map +1 -1
  601. package/dist/v2/models/favorite.js.map +1 -1
  602. package/dist/v2/models/personalization.d.ts +13 -13
  603. package/dist/v2/models/personalization.d.ts.map +1 -1
  604. package/dist/v2/models/personalization.js.map +1 -1
  605. package/dist/v2/models/referentiel.d.ts +11 -11
  606. package/dist/v2/models/referentiel.d.ts.map +1 -1
  607. package/dist/v2/models/referentiel.js.map +1 -1
  608. package/dist/v2/models/savedFilter.d.ts +8 -8
  609. package/dist/v2/models/savedFilter.d.ts.map +1 -1
  610. package/dist/v2/models/savedFilter.js.map +1 -1
  611. package/dist/v2/patterns/ActionBar.d.ts +33 -33
  612. package/dist/v2/patterns/ActionBar.d.ts.map +1 -1
  613. package/dist/v2/patterns/ActionBar.js +2 -1
  614. package/dist/v2/patterns/ActionBar.js.map +1 -1
  615. package/dist/v2/patterns/BulkActionBar.d.ts +12 -12
  616. package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -1
  617. package/dist/v2/patterns/BulkActionBar.js +2 -1
  618. package/dist/v2/patterns/BulkActionBar.js.map +1 -1
  619. package/dist/v2/patterns/CollapsibleDataGrid.d.ts +15 -15
  620. package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -1
  621. package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -1
  622. package/dist/v2/patterns/ColumnsToggle.d.ts +7 -7
  623. package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -1
  624. package/dist/v2/patterns/ColumnsToggle.js +4 -8
  625. package/dist/v2/patterns/ColumnsToggle.js.map +1 -1
  626. package/dist/v2/patterns/DataGridSettingsMenu.d.ts +12 -12
  627. package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -1
  628. package/dist/v2/patterns/DataGridSettingsMenu.js +9 -8
  629. package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -1
  630. package/dist/v2/patterns/DataGridToolbar.d.ts +40 -40
  631. package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -1
  632. package/dist/v2/patterns/DataGridToolbar.js +2 -1
  633. package/dist/v2/patterns/DataGridToolbar.js.map +1 -1
  634. package/dist/v2/patterns/DataGridVirtualized.d.ts +27 -27
  635. package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -1
  636. package/dist/v2/patterns/DataGridVirtualized.js.map +1 -1
  637. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +5 -5
  638. package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -1
  639. package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -1
  640. package/dist/v2/patterns/FavoriteColumn.d.ts +15 -15
  641. package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -1
  642. package/dist/v2/patterns/FavoriteColumn.js +14 -61
  643. package/dist/v2/patterns/FavoriteColumn.js.map +1 -1
  644. package/dist/v2/patterns/FavoritesFilter.d.ts +10 -10
  645. package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -1
  646. package/dist/v2/patterns/FavoritesFilter.js +2 -1
  647. package/dist/v2/patterns/FavoritesFilter.js.map +1 -1
  648. package/dist/v2/patterns/FormErrorSummary.d.ts +4 -4
  649. package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -1
  650. package/dist/v2/patterns/FormErrorSummary.js.map +1 -1
  651. package/dist/v2/patterns/FormPageShell.d.ts +4 -4
  652. package/dist/v2/patterns/FormPageShell.d.ts.map +1 -1
  653. package/dist/v2/patterns/FormPageShell.js.map +1 -1
  654. package/dist/v2/patterns/FormSection.d.ts +19 -8
  655. package/dist/v2/patterns/FormSection.d.ts.map +1 -1
  656. package/dist/v2/patterns/FormSection.js +106 -71
  657. package/dist/v2/patterns/FormSection.js.map +1 -1
  658. package/dist/v2/patterns/FormikCheckbox.d.ts +77 -0
  659. package/dist/v2/patterns/FormikCheckbox.d.ts.map +1 -0
  660. package/dist/v2/patterns/FormikCheckbox.js +147 -0
  661. package/dist/v2/patterns/FormikCheckbox.js.map +1 -0
  662. package/dist/v2/patterns/FormikCheckboxGroup.d.ts +6 -6
  663. package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -1
  664. package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -1
  665. package/dist/v2/patterns/FormikCombobox.d.ts +18 -12
  666. package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -1
  667. package/dist/v2/patterns/FormikCombobox.js +5 -2
  668. package/dist/v2/patterns/FormikCombobox.js.map +1 -1
  669. package/dist/v2/patterns/FormikDatePicker.d.ts +48 -8
  670. package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -1
  671. package/dist/v2/patterns/FormikDatePicker.js +58 -65
  672. package/dist/v2/patterns/FormikDatePicker.js.map +1 -1
  673. package/dist/v2/patterns/FormikDateTimePicker.d.ts +111 -0
  674. package/dist/v2/patterns/FormikDateTimePicker.d.ts.map +1 -0
  675. package/dist/v2/patterns/FormikDateTimePicker.js +158 -0
  676. package/dist/v2/patterns/FormikDateTimePicker.js.map +1 -0
  677. package/dist/v2/patterns/FormikErrorFocus.d.ts +3 -3
  678. package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -1
  679. package/dist/v2/patterns/FormikErrorFocus.js.map +1 -1
  680. package/dist/v2/patterns/FormikFile.d.ts +8 -8
  681. package/dist/v2/patterns/FormikFile.d.ts.map +1 -1
  682. package/dist/v2/patterns/FormikFile.js.map +1 -1
  683. package/dist/v2/patterns/FormikInput.d.ts +51 -6
  684. package/dist/v2/patterns/FormikInput.d.ts.map +1 -1
  685. package/dist/v2/patterns/FormikInput.js +53 -2
  686. package/dist/v2/patterns/FormikInput.js.map +1 -1
  687. package/dist/v2/patterns/FormikRadioGroup.d.ts +80 -0
  688. package/dist/v2/patterns/FormikRadioGroup.d.ts.map +1 -0
  689. package/dist/v2/patterns/FormikRadioGroup.js +148 -0
  690. package/dist/v2/patterns/FormikRadioGroup.js.map +1 -0
  691. package/dist/v2/patterns/FormikReferentielField.d.ts +8 -8
  692. package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -1
  693. package/dist/v2/patterns/FormikReferentielField.js.map +1 -1
  694. package/dist/v2/patterns/FormikSelect.d.ts +41 -12
  695. package/dist/v2/patterns/FormikSelect.d.ts.map +1 -1
  696. package/dist/v2/patterns/FormikSelect.js +32 -3
  697. package/dist/v2/patterns/FormikSelect.js.map +1 -1
  698. package/dist/v2/patterns/FormikTextarea.d.ts +14 -6
  699. package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -1
  700. package/dist/v2/patterns/FormikTextarea.js +5 -2
  701. package/dist/v2/patterns/FormikTextarea.js.map +1 -1
  702. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +21 -8
  703. package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -1
  704. package/dist/v2/patterns/KeyboardShortcutsHelp.js +27 -14
  705. package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -1
  706. package/dist/v2/patterns/NetworkErrorBanner.d.ts +4 -4
  707. package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -1
  708. package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -1
  709. package/dist/v2/patterns/PageContent.d.ts +3 -3
  710. package/dist/v2/patterns/PageContent.d.ts.map +1 -1
  711. package/dist/v2/patterns/PageContent.js.map +1 -1
  712. package/dist/v2/patterns/ReferentielField.d.ts +49 -49
  713. package/dist/v2/patterns/ReferentielField.d.ts.map +1 -1
  714. package/dist/v2/patterns/ReferentielField.js +2 -1
  715. package/dist/v2/patterns/ReferentielField.js.map +1 -1
  716. package/dist/v2/patterns/RowFavoriteToggle.d.ts +92 -0
  717. package/dist/v2/patterns/RowFavoriteToggle.d.ts.map +1 -0
  718. package/dist/v2/patterns/RowFavoriteToggle.js +127 -0
  719. package/dist/v2/patterns/RowFavoriteToggle.js.map +1 -0
  720. package/dist/v2/patterns/SaveFilterDialog.d.ts +10 -10
  721. package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -1
  722. package/dist/v2/patterns/SaveFilterDialog.js +9 -8
  723. package/dist/v2/patterns/SaveFilterDialog.js.map +1 -1
  724. package/dist/v2/patterns/SavedFiltersMenu.d.ts +7 -7
  725. package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -1
  726. package/dist/v2/patterns/SavedFiltersMenu.js +9 -8
  727. package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -1
  728. package/dist/v2/patterns/SkeletonPageShell.d.ts +7 -7
  729. package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -1
  730. package/dist/v2/patterns/SkeletonPageShell.js.map +1 -1
  731. package/dist/v2/patterns/SortableHeader.d.ts +1 -1
  732. package/dist/v2/patterns/SortableHeader.d.ts.map +1 -1
  733. package/dist/v2/patterns/SortableHeader.js.map +1 -1
  734. package/dist/v2/patterns/Tour.d.ts +12 -12
  735. package/dist/v2/patterns/Tour.d.ts.map +1 -1
  736. package/dist/v2/patterns/Tour.js +9 -8
  737. package/dist/v2/patterns/Tour.js.map +1 -1
  738. package/dist/v2/patterns/_dataGridShared.d.ts +25 -6
  739. package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -1
  740. package/dist/v2/patterns/_dataGridShared.js +37 -3
  741. package/dist/v2/patterns/_dataGridShared.js.map +1 -1
  742. package/dist/v2/patterns/_pickerSerialisation.d.ts +44 -0
  743. package/dist/v2/patterns/_pickerSerialisation.d.ts.map +1 -0
  744. package/dist/v2/patterns/_pickerSerialisation.js +81 -0
  745. package/dist/v2/patterns/_pickerSerialisation.js.map +1 -0
  746. package/dist/v2/patterns/_useColumnReorder.d.ts +1 -1
  747. package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -1
  748. package/dist/v2/patterns/_useColumnReorder.js.map +1 -1
  749. package/dist/v2/patterns/_useColumnResize.d.ts +1 -1
  750. package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -1
  751. package/dist/v2/patterns/_useColumnResize.js.map +1 -1
  752. package/dist/v2/patterns/index.d.ts +114 -0
  753. package/dist/v2/patterns/index.d.ts.map +1 -1
  754. package/dist/v2/patterns/index.js +34 -0
  755. package/dist/v2/patterns/index.js.map +1 -1
  756. package/dist/v2/personalization/PersonalizationProvider.d.ts +9 -9
  757. package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -1
  758. package/dist/v2/personalization/PersonalizationProvider.js.map +1 -1
  759. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +1 -1
  760. package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -1
  761. package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -1
  762. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +1 -1
  763. package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -1
  764. package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -1
  765. package/dist/v2/personalization/capabilities/favoritesView.d.ts +3 -3
  766. package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -1
  767. package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -1
  768. package/dist/v2/personalization/capabilities/gridPreferences.d.ts +100 -0
  769. package/dist/v2/personalization/capabilities/gridPreferences.d.ts.map +1 -0
  770. package/dist/v2/personalization/capabilities/gridPreferences.js +215 -0
  771. package/dist/v2/personalization/capabilities/gridPreferences.js.map +1 -0
  772. package/dist/v2/personalization/capabilities/index.d.ts +6 -0
  773. package/dist/v2/personalization/capabilities/index.d.ts.map +1 -1
  774. package/dist/v2/personalization/capabilities/index.js +13 -0
  775. package/dist/v2/personalization/capabilities/index.js.map +1 -1
  776. package/dist/v2/personalization/capabilities/savedFilters.d.ts +3 -3
  777. package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -1
  778. package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -1
  779. package/dist/v2/personalization/createPersonalizationStore.d.ts +8 -8
  780. package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -1
  781. package/dist/v2/personalization/createPersonalizationStore.js.map +1 -1
  782. package/dist/v2/personalization/index.d.ts +18 -0
  783. package/dist/v2/personalization/index.d.ts.map +1 -1
  784. package/dist/v2/personalization/index.js +13 -0
  785. package/dist/v2/personalization/index.js.map +1 -1
  786. package/dist/v2/personalization/schema.d.ts +2 -2
  787. package/dist/v2/personalization/schema.d.ts.map +1 -1
  788. package/dist/v2/personalization/schema.js.map +1 -1
  789. package/dist/v2/personalization/types.d.ts +19 -19
  790. package/dist/v2/personalization/types.d.ts.map +1 -1
  791. package/dist/v2/personalization/types.js.map +1 -1
  792. package/dist/v2/referentiel/ReferentielProvider.d.ts +4 -4
  793. package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -1
  794. package/dist/v2/referentiel/ReferentielProvider.js.map +1 -1
  795. package/dist/v2/referentiel/useReferentielOptions.d.ts +4 -4
  796. package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -1
  797. package/dist/v2/referentiel/useReferentielOptions.js.map +1 -1
  798. package/dist/v2/referentiel/useReferentielSearch.d.ts +3 -3
  799. package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -1
  800. package/dist/v2/referentiel/useReferentielSearch.js.map +1 -1
  801. package/dist/v2/theme/createPortnetTheme.d.ts +32 -7
  802. package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -1
  803. package/dist/v2/theme/createPortnetTheme.js +25 -1
  804. package/dist/v2/theme/createPortnetTheme.js.map +1 -1
  805. package/dist/v2/types/datagrid.d.ts +59 -59
  806. package/dist/v2/types/datagrid.d.ts.map +1 -1
  807. package/dist/v2/types/datagrid.js.map +1 -1
  808. package/dist/v2/utils/apiError.d.ts +65 -4
  809. package/dist/v2/utils/apiError.d.ts.map +1 -1
  810. package/dist/v2/utils/apiError.js +69 -6
  811. package/dist/v2/utils/apiError.js.map +1 -1
  812. package/dist/v2/utils/index.d.ts +1 -0
  813. package/dist/v2/utils/index.d.ts.map +1 -1
  814. package/dist/v2/utils/index.js +7 -0
  815. package/dist/v2/utils/index.js.map +1 -1
  816. package/dist/v2/utils/mergeLabels.d.ts +59 -0
  817. package/dist/v2/utils/mergeLabels.d.ts.map +1 -0
  818. package/dist/v2/utils/mergeLabels.js +93 -0
  819. package/dist/v2/utils/mergeLabels.js.map +1 -0
  820. package/package.json +23 -15
@@ -8,6 +8,7 @@ var React = _interopRequireWildcard(require("react"));
8
8
  var _Modal = _interopRequireDefault(require("./Modal"));
9
9
  var _Button = _interopRequireDefault(require("./Button"));
10
10
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
11
+ var _mergeLabels = require("../utils/mergeLabels");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -67,7 +68,7 @@ function ConfirmDialog(_ref) {
67
68
  impact = _ref.impact,
68
69
  labels = _ref.labels,
69
70
  children = _ref.children;
70
- var L = labels ? _objectSpread(_objectSpread({}, DEFAULT_LABELS), labels) : DEFAULT_LABELS;
71
+ var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
71
72
 
72
73
  // R-Ar.1 - stable id linking the impact heading to its <ul>
73
74
  // so SR users hear the relationship as a single semantic unit.
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmDialog.js","names":["React","_interopRequireWildcard","require","_Modal","_interopRequireDefault","_Button","_Box","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","impactHeading","ConfirmDialog","_ref","open","onClose","onConfirm","title","description","_ref$confirmLabel","confirmLabel","_ref$cancelLabel","cancelLabel","_ref$confirmVariant","confirmVariant","_ref$loading","loading","impact","labels","children","L","impactHeadingId","useId","hasImpact","jsxs","subtitle","size","footer","Fragment","jsx","variant","onClick","disabled","sx","background","border","borderRadius","padding","marginBottom","component","id","margin","fontSize","fontWeight","color","textTransform","letterSpacing","lineHeight","paddingInlineStart","map","item","_default","exports"],"sources":["../../../src/lib/v2/components/ConfirmDialog.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Modal from \"./Modal\";\r\nimport Button from \"./Button\";\r\nimport type { ButtonProps } from \"./Button\";\r\nimport Box from \"@mui/material/Box\";\r\n\r\n/**\r\n * ConfirmDialog - Portnet UI v2\r\n *\r\n * Charter §04.4 - confirmation pattern for irreversible actions.\r\n * Use whenever an action cannot be undone with a 5-s toast.\r\n *\r\n * R-5.1 - Action irréversible → ConfirmDialog avec récap des conséquences.\r\n * R-5.2 - Suppression multiple → forcer la saisie ou clic bouton danger.\r\n *\r\n * <ConfirmDialog\r\n * open={open}\r\n * onClose={close}\r\n * onConfirm={remove}\r\n * title=\"Supprimer ce titre ?\"\r\n * description=\"Cette action est définitive.\"\r\n * confirmLabel=\"Supprimer\"\r\n * confirmVariant=\"danger\"\r\n * impact={[\r\n * \"Le titre 2025-IM-0042 sera supprimé.\",\r\n * \"Les pièces jointes liées seront archivées.\",\r\n * ]}\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * confirmLabel / cancelLabel are direct overrides on the props.\r\n * The \"Conséquences\" heading rendered above the impact list is\r\n * localised via the `labels` prop:\r\n *\r\n * <ConfirmDialog labels={{ impactHeading: \"Consequences\" }} ... />\r\n */\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n impactHeading: \"Conséquences\",\r\n});\r\n\r\nexport interface ConfirmDialogLabels {\r\n impactHeading?: React.ReactNode;\r\n}\r\n\r\nexport interface ConfirmDialogProps {\r\n open?: boolean;\r\n onClose?: () => void;\r\n onConfirm?: () => void;\r\n title?: React.ReactNode;\r\n description?: React.ReactNode;\r\n confirmLabel?: React.ReactNode;\r\n cancelLabel?: React.ReactNode;\r\n confirmVariant?: ButtonProps[\"variant\"];\r\n loading?: boolean;\r\n impact?: React.ReactNode[];\r\n labels?: ConfirmDialogLabels;\r\n children?: React.ReactNode;\r\n}\r\n\r\nfunction ConfirmDialog({\r\n open,\r\n onClose,\r\n onConfirm,\r\n title,\r\n description,\r\n confirmLabel = \"Confirmer\",\r\n cancelLabel = \"Annuler\",\r\n confirmVariant = \"primary\",\r\n loading = false,\r\n impact, // optional list of bullet-point consequences\r\n labels,\r\n children,\r\n}: ConfirmDialogProps) {\r\n const L = labels ? { ...DEFAULT_LABELS, ...labels } : DEFAULT_LABELS;\r\n\r\n // R-Ar.1 - stable id linking the impact heading to its <ul>\r\n // so SR users hear the relationship as a single semantic unit.\r\n const impactHeadingId = React.useId();\r\n const hasImpact = !!(impact && impact.length > 0);\r\n\r\n return (\r\n <Modal\r\n title={title}\r\n subtitle={description}\r\n size=\"sm\"\r\n footer={\r\n <>\r\n <Button variant=\"ghost\" onClick={onClose} disabled={loading}>\r\n {cancelLabel}\r\n </Button>\r\n <Button variant={confirmVariant} loading={loading} onClick={onConfirm}>\r\n {confirmLabel}\r\n </Button>\r\n </>\r\n }\r\n {...(open !== undefined ? { open } : {})}\r\n {...(onClose !== undefined ? { onClose } : {})}\r\n >\r\n {hasImpact && (\r\n <Box\r\n sx={{\r\n background: \"var(--bg-subtle)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n marginBottom: children ? 2 : 0,\r\n }}\r\n >\r\n <Box\r\n component=\"h3\"\r\n id={impactHeadingId}\r\n sx={{\r\n // Modal title is <h2>; this is the correct next level. Visual\r\n // styling (uppercase caption) overrides the default <h3>.\r\n margin: 0,\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg-muted)\",\r\n marginBottom: 1,\r\n textTransform: \"uppercase\",\r\n /* A7-02 — was a raw \"0.04em\"; now the promoted token. */\r\n letterSpacing: \"var(--ls-wide)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n }}\r\n >\r\n {L.impactHeading}\r\n </Box>\r\n <Box\r\n component=\"ul\"\r\n aria-labelledby={impactHeadingId}\r\n sx={{\r\n margin: 0,\r\n // RTL-safe: paddingInlineStart resets correctly in both\r\n // LTR (left) and RTL (right). Was paddingLeft, which in\r\n // Arabic indented to the wrong side.\r\n paddingInlineStart: \"var(--s-5)\",\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg)\",\r\n }}\r\n >\r\n {impact?.map((item, i) => (\r\n <Box\r\n component=\"li\"\r\n key={i}\r\n sx={{ marginBottom: \"var(--s-1)\", lineHeight: \"var(--lh-normal)\" }}\r\n >\r\n {item}\r\n </Box>\r\n ))}\r\n </Box>\r\n </Box>\r\n )}\r\n {children}\r\n </Modal>\r\n );\r\n}\r\n\r\nexport default ConfirmDialog;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ConfirmDialog.js","names":["React","_interopRequireWildcard","require","_Modal","_interopRequireDefault","_Button","_Box","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","impactHeading","ConfirmDialog","_ref","open","onClose","onConfirm","title","description","_ref$confirmLabel","confirmLabel","_ref$cancelLabel","cancelLabel","_ref$confirmVariant","confirmVariant","_ref$loading","loading","impact","labels","children","L","mergeLabels","impactHeadingId","useId","hasImpact","jsxs","subtitle","size","footer","Fragment","jsx","variant","onClick","disabled","sx","background","border","borderRadius","padding","marginBottom","component","id","margin","fontSize","fontWeight","color","textTransform","letterSpacing","lineHeight","paddingInlineStart","map","item","_default","exports"],"sources":["../../../src/lib/v2/components/ConfirmDialog.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Modal from \"./Modal\";\r\nimport Button from \"./Button\";\r\nimport type { ButtonProps } from \"./Button\";\r\nimport Box from \"@mui/material/Box\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * ConfirmDialog - Portnet UI v2\r\n *\r\n * Charter §04.4 - confirmation pattern for irreversible actions.\r\n * Use whenever an action cannot be undone with a 5-s toast.\r\n *\r\n * R-5.1 - Action irréversible → ConfirmDialog avec récap des conséquences.\r\n * R-5.2 - Suppression multiple → forcer la saisie ou clic bouton danger.\r\n *\r\n * <ConfirmDialog\r\n * open={open}\r\n * onClose={close}\r\n * onConfirm={remove}\r\n * title=\"Supprimer ce titre ?\"\r\n * description=\"Cette action est définitive.\"\r\n * confirmLabel=\"Supprimer\"\r\n * confirmVariant=\"danger\"\r\n * impact={[\r\n * \"Le titre 2025-IM-0042 sera supprimé.\",\r\n * \"Les pièces jointes liées seront archivées.\",\r\n * ]}\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * confirmLabel / cancelLabel are direct overrides on the props.\r\n * The \"Conséquences\" heading rendered above the impact list is\r\n * localised via the `labels` prop:\r\n *\r\n * <ConfirmDialog labels={{ impactHeading: \"Consequences\" }} ... />\r\n */\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n impactHeading: \"Conséquences\",\r\n});\r\n\r\nexport interface ConfirmDialogLabels {\r\n impactHeading?: React.ReactNode | undefined;\r\n}\r\n\r\nexport interface ConfirmDialogProps {\r\n open?: boolean | undefined;\r\n onClose?: (() => void) | undefined;\r\n onConfirm?: (() => void) | undefined;\r\n title?: React.ReactNode | undefined;\r\n description?: React.ReactNode | undefined;\r\n confirmLabel?: React.ReactNode | undefined;\r\n cancelLabel?: React.ReactNode | undefined;\r\n confirmVariant?: ButtonProps[\"variant\"] | undefined;\r\n loading?: boolean | undefined;\r\n impact?: React.ReactNode[] | undefined;\r\n labels?: ConfirmDialogLabels | undefined;\r\n children?: React.ReactNode | undefined;\r\n}\r\n\r\nfunction ConfirmDialog({\r\n open,\r\n onClose,\r\n onConfirm,\r\n title,\r\n description,\r\n confirmLabel = \"Confirmer\",\r\n cancelLabel = \"Annuler\",\r\n confirmVariant = \"primary\",\r\n loading = false,\r\n impact, // optional list of bullet-point consequences\r\n labels,\r\n children,\r\n}: ConfirmDialogProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n\r\n // R-Ar.1 - stable id linking the impact heading to its <ul>\r\n // so SR users hear the relationship as a single semantic unit.\r\n const impactHeadingId = React.useId();\r\n const hasImpact = !!(impact && impact.length > 0);\r\n\r\n return (\r\n <Modal\r\n title={title}\r\n subtitle={description}\r\n size=\"sm\"\r\n footer={\r\n <>\r\n <Button variant=\"ghost\" onClick={onClose} disabled={loading}>\r\n {cancelLabel}\r\n </Button>\r\n <Button variant={confirmVariant} loading={loading} onClick={onConfirm}>\r\n {confirmLabel}\r\n </Button>\r\n </>\r\n }\r\n {...(open !== undefined ? { open } : {})}\r\n {...(onClose !== undefined ? { onClose } : {})}\r\n >\r\n {hasImpact && (\r\n <Box\r\n sx={{\r\n background: \"var(--bg-subtle)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n marginBottom: children ? 2 : 0,\r\n }}\r\n >\r\n <Box\r\n component=\"h3\"\r\n id={impactHeadingId}\r\n sx={{\r\n // Modal title is <h2>; this is the correct next level. Visual\r\n // styling (uppercase caption) overrides the default <h3>.\r\n margin: 0,\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg-muted)\",\r\n marginBottom: 1,\r\n textTransform: \"uppercase\",\r\n /* A7-02 — was a raw \"0.04em\"; now the promoted token. */\r\n letterSpacing: \"var(--ls-wide)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n }}\r\n >\r\n {L.impactHeading}\r\n </Box>\r\n <Box\r\n component=\"ul\"\r\n aria-labelledby={impactHeadingId}\r\n sx={{\r\n margin: 0,\r\n // RTL-safe: paddingInlineStart resets correctly in both\r\n // LTR (left) and RTL (right). Was paddingLeft, which in\r\n // Arabic indented to the wrong side.\r\n paddingInlineStart: \"var(--s-5)\",\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg)\",\r\n }}\r\n >\r\n {impact?.map((item, i) => (\r\n <Box\r\n component=\"li\"\r\n key={i}\r\n sx={{ marginBottom: \"var(--s-1)\", lineHeight: \"var(--lh-normal)\" }}\r\n >\r\n {item}\r\n </Box>\r\n ))}\r\n </Box>\r\n </Box>\r\n )}\r\n {children}\r\n </Modal>\r\n );\r\n}\r\n\r\nexport default ConfirmDialog;\r\n"],"mappings":"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","ignoreList":[]}
@@ -3,17 +3,17 @@ import type { DatePickerProps as MuiDatePickerProps } from "@mui/x-date-pickers/
3
3
  import "moment/locale/fr";
4
4
  import type { SxProps, Theme } from "@mui/material/styles";
5
5
  export interface DatePickerProps extends Omit<MuiDatePickerProps, "value" | "onChange" | "minDate" | "maxDate" | "slots" | "slotProps" | "sx" | "ref"> {
6
- value?: Date | null;
7
- onChange?: (value: Date | null) => void;
8
- onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
9
- minDate?: Date | null;
10
- maxDate?: Date | null;
11
- error?: boolean;
12
- placeholder?: string;
13
- fullWidth?: boolean;
14
- inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
15
- adapterLocale?: string;
16
- sx?: SxProps<Theme>;
6
+ value?: Date | null | undefined;
7
+ onChange?: ((value: Date | null) => void) | undefined;
8
+ onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
9
+ minDate?: Date | null | undefined;
10
+ maxDate?: Date | null | undefined;
11
+ error?: boolean | undefined;
12
+ placeholder?: string | undefined;
13
+ fullWidth?: boolean | undefined;
14
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;
15
+ adapterLocale?: string | undefined;
16
+ sx?: SxProps<Theme> | undefined;
17
17
  }
18
18
  declare const DatePicker: React.ForwardRefExoticComponent<DatePickerProps & React.RefAttributes<HTMLDivElement>>;
19
19
  export declare const DATE_FORMAT_CHARTER = "YYYY-MM-DD";
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAG5F,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA6E3D,MAAM,WAAW,eACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,CACpF;IACD,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,CAAC;IACzE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED,QAAA,MAAM,UAAU,wFA8Hd,CAAC;AAEH,eAAO,MAAM,mBAAmB,eAAiB,CAAC;AAElD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,eAAe,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAG5F,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA6E3D,MAAM,WAAW,eACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,CACpF;IACD,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACrF,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACrE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAED,QAAA,MAAM,UAAU,wFA8Hd,CAAC;AAEH,eAAO,MAAM,mBAAmB,eAAiB,CAAC;AAElD,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":["React","_interopRequireWildcard","require","_LocalizationProvider","_DatePicker","_AdapterMoment","_pickerShared","_jsxRuntime","_excluded","_excluded2","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","CHARTER_FORMAT","DatePicker","forwardRef","_ref","ref","onChange","onBlur","minDate","maxDate","_ref$disablePast","disablePast","_ref$disableFuture","disableFuture","_ref$disabled","disabled","_ref$readOnly","readOnly","error","_ref$placeholder","placeholder","_ref$fullWidth","fullWidth","inputProps","_ref$adapterLocale","adapterLocale","sx","rest","_ref2","fieldId","id","ariaDescribedby","ariaInvalid","ariaRequired","ariaLabelledby","domRest","handleChange","next","momentToDate","slotProps","useMemo","textField","size","fontVariantNumeric","htmlInput","minDateM","dateToMoment","maxDateM","jsx","LocalizationProvider","dateAdapter","AdapterMoment","children","format","DATE_FORMAT_CHARTER","exports","_default"],"sources":["../../../src/lib/v2/components/DatePicker.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\r\nimport { DatePicker as MuiDatePicker } from \"@mui/x-date-pickers/DatePicker\";\r\nimport type { DatePickerProps as MuiDatePickerProps } from \"@mui/x-date-pickers/DatePicker\";\r\nimport { AdapterMoment } from \"@mui/x-date-pickers/AdapterMoment\";\r\nimport type { Moment } from \"moment\";\r\nimport \"moment/locale/fr\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { dateToMoment, momentToDate } from \"./_pickerShared\";\r\n\r\n/**\r\n * DatePicker — Portnet UI v2\r\n *\r\n * Charter §03 · Component \"DatePicker\". Format AAAA-MM-JJ.\r\n *\r\n * <Field label=\"Date d'expiration\" required>\r\n * <DatePicker\r\n * value={expDate}\r\n * onChange={setExpDate}\r\n * minDate={new Date()}\r\n * />\r\n * </Field>\r\n *\r\n * Value contract:\r\n * - value/onChange exchange JavaScript Date objects (or null).\r\n * - Invalid dates (NaN, malformed user input) are coerced to null\r\n * so consumers never receive an \"Invalid Date\" instance.\r\n * - The component handles moment conversion internally.\r\n *\r\n * Locale:\r\n * Default `adapterLocale=\"fr\"` — picker reads month / weekday names\r\n * from moment's French locale data (imported here). Hosts wanting\r\n * other locales pass the BCP-47 / moment short tag AND import the\r\n * matching moment locale data themselves:\r\n *\r\n * import \"moment/locale/ar\";\r\n * <DatePicker adapterLocale=\"ar\" />\r\n *\r\n * This component does NOT mutate moment's GLOBAL locale on import\r\n * (older versions did via `moment.locale(\"fr\")` — that leaked the\r\n * library's preference into ALL host code using moment outside the\r\n * picker).\r\n *\r\n * Format:\r\n * - Display: AAAA-MM-JJ (charter convention). MUI X v6+ derives the\r\n * input mask from this format string automatically — no need for\r\n * the v5-era `mask=\"____-__-__\"` companion prop.\r\n * - The text input accepts user typing in the same format; partial\r\n * entries are tolerated until the user blurs or hits Enter.\r\n *\r\n * Constraints:\r\n * - minDate / maxDate accept Date objects or null.\r\n * - disablePast / disableFuture for relative bounds.\r\n *\r\n * Sibling pickers in the same family:\r\n * - DateTimePicker — adds time-of-day (HH:MM) on top of the date.\r\n * - TimePicker — time only (HH:MM), date portion ignored.\r\n * - DateRangePicker — paired start/end with cross-validation and\r\n * optional preset shortcuts.\r\n * All consume the same _pickerShared boundary helpers as this file\r\n * and follow the same MUI X v9 slots / slotProps surface.\r\n *\r\n * A11y (DP-1): when used inside <Field>, Field cloneElement-injects id +\r\n * aria-describedby / aria-invalid / aria-required (label + hint/error\r\n * association) onto this child. MUI X does NOT forward top-level aria/id to the\r\n * field <input>, so those are intercepted here and routed onto the input via\r\n * slotProps.htmlInput (the <input> element slot — see the v9 note below).\r\n * Explicit `inputProps` still win.\r\n *\r\n * MUI X v9 surface notes (migrated from v5 in Batch 4):\r\n * - The v5 `renderInput` callback + `inputFormat` + `mask` triad has\r\n * been REPLACED by the v6+ `slots`/`slotProps` API and the single\r\n * `format` prop. The textField slot is the canonical entry point\r\n * for any TextField prop override.\r\n * - Inside `slotProps.textField`, the `slotProps.htmlInput` nested\r\n * bag carries what used to be TextField's `inputProps={...}`\r\n * (placeholder, aria-*, min/max, etc.). This double-nesting\r\n * reflects MUI v9's own TextField API: the htmlInput slot is the\r\n * <input/> element target, distinct from the input slot (which\r\n * wraps it).\r\n */\r\n\r\nconst CHARTER_FORMAT = \"YYYY-MM-DD\";\r\n\r\nexport interface DatePickerProps\r\n extends Omit<\r\n MuiDatePickerProps,\r\n \"value\" | \"onChange\" | \"minDate\" | \"maxDate\" | \"slots\" | \"slotProps\" | \"sx\" | \"ref\"\r\n > {\r\n value?: Date | null;\r\n onChange?: (value: Date | null) => void;\r\n onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;\r\n minDate?: Date | null;\r\n maxDate?: Date | null;\r\n error?: boolean;\r\n placeholder?: string;\r\n fullWidth?: boolean;\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\r\n adapterLocale?: string;\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nconst DatePicker = React.forwardRef<HTMLDivElement, DatePickerProps>(function DatePicker(\r\n {\r\n value,\r\n onChange,\r\n onBlur,\r\n minDate,\r\n maxDate,\r\n disablePast = false,\r\n disableFuture = false,\r\n disabled = false,\r\n readOnly = false,\r\n error,\r\n placeholder = \"AAAA-MM-JJ\",\r\n fullWidth = true,\r\n inputProps,\r\n adapterLocale = \"fr\",\r\n sx,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n // DP-1 — Field cloneElement-injects the label + hint/error association props\r\n // onto this child; MUI X won't forward top-level aria/id to the field input,\r\n // so intercept them (cast — they aren't part of MuiDatePickerProps) and route\r\n // them onto the <input> via slotProps.htmlInput below. Everything else stays\r\n // in domRest for MuiDatePicker (real picker props: views, openTo, etc.).\r\n const {\r\n id: fieldId,\r\n \"aria-describedby\": ariaDescribedby,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n \"aria-labelledby\": ariaLabelledby,\r\n ...domRest\r\n } = rest as typeof rest & {\r\n id?: string;\r\n \"aria-describedby\"?: string;\r\n \"aria-invalid\"?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\";\r\n \"aria-required\"?: boolean | \"true\" | \"false\";\r\n \"aria-labelledby\"?: string;\r\n };\r\n\r\n const handleChange = (next: Moment | null) => {\r\n if (!onChange) return;\r\n onChange(momentToDate(next));\r\n };\r\n\r\n // MUI X v9: every input customisation flows through\r\n // slotProps.textField. The nested slotProps.htmlInput is the MUI v9\r\n // landing zone for what used to be TextField's `inputProps={...}`\r\n // (now the <input/> element slot) — and the DP-1 landing zone for the\r\n // Field-injected id + aria-* so the label / hint / error actually\r\n // associate with the date input. Memoised on the deps so the slotProps\r\n // object reference stays stable across renders.\r\n const slotProps = React.useMemo<NonNullable<MuiDatePickerProps[\"slotProps\"]>>(\r\n () => ({\r\n textField: {\r\n ref,\r\n error: !!error,\r\n fullWidth,\r\n size: \"small\",\r\n // onBlur: the textField slot types this as FocusEventHandler<HTMLDivElement>;\r\n // our public onBlur is input-based. Cast (type-only) and include only\r\n // when defined so no explicit undefined reaches the slot.\r\n ...(onBlur ? { onBlur: onBlur as unknown as React.FocusEventHandler<HTMLDivElement> } : {}),\r\n sx: {\r\n \"& .MuiOutlinedInput-input\": { fontVariantNumeric: \"tabular-nums\" },\r\n ...sx,\r\n },\r\n slotProps: {\r\n htmlInput: {\r\n placeholder,\r\n // DP-1 — Field-injected association attrs land on the <input>.\r\n ...(fieldId != null ? { id: fieldId } : {}),\r\n ...(ariaDescribedby != null\r\n ? { \"aria-describedby\": ariaDescribedby }\r\n : {}),\r\n ...(ariaInvalid != null ? { \"aria-invalid\": ariaInvalid } : {}),\r\n ...(ariaRequired != null ? { \"aria-required\": ariaRequired } : {}),\r\n ...(ariaLabelledby != null\r\n ? { \"aria-labelledby\": ariaLabelledby }\r\n : {}),\r\n // Explicit host inputProps win over the injected defaults.\r\n ...inputProps,\r\n },\r\n },\r\n },\r\n }),\r\n [\r\n ref,\r\n error,\r\n fullWidth,\r\n onBlur,\r\n sx,\r\n placeholder,\r\n inputProps,\r\n fieldId,\r\n ariaDescribedby,\r\n ariaInvalid,\r\n ariaRequired,\r\n ariaLabelledby,\r\n ],\r\n );\r\n\r\n // exactOptionalPropertyTypes: MUI's minDate/maxDate are `Moment` (not\r\n // `Moment | undefined`), so spread the key only when a bound is set\r\n // rather than passing an explicit `undefined`.\r\n const minDateM = minDate ? dateToMoment(minDate) : null;\r\n const maxDateM = maxDate ? dateToMoment(maxDate) : null;\r\n\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterMoment} adapterLocale={adapterLocale}>\r\n <MuiDatePicker\r\n value={dateToMoment(value)}\r\n onChange={handleChange}\r\n {...(minDateM ? { minDate: minDateM } : {})}\r\n {...(maxDateM ? { maxDate: maxDateM } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n format={CHARTER_FORMAT}\r\n slotProps={slotProps}\r\n {...domRest}\r\n />\r\n </LocalizationProvider>\r\n );\r\n});\r\n\r\nexport const DATE_FORMAT_CHARTER = CHARTER_FORMAT;\r\n\r\nexport default DatePicker;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatePicker.js","names":["React","_interopRequireWildcard","require","_LocalizationProvider","_DatePicker","_AdapterMoment","_pickerShared","_jsxRuntime","_excluded","_excluded2","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","CHARTER_FORMAT","DatePicker","forwardRef","_ref","ref","onChange","onBlur","minDate","maxDate","_ref$disablePast","disablePast","_ref$disableFuture","disableFuture","_ref$disabled","disabled","_ref$readOnly","readOnly","error","_ref$placeholder","placeholder","_ref$fullWidth","fullWidth","inputProps","_ref$adapterLocale","adapterLocale","sx","rest","_ref2","fieldId","id","ariaDescribedby","ariaInvalid","ariaRequired","ariaLabelledby","domRest","handleChange","next","momentToDate","slotProps","useMemo","textField","size","fontVariantNumeric","htmlInput","minDateM","dateToMoment","maxDateM","jsx","LocalizationProvider","dateAdapter","AdapterMoment","children","format","DATE_FORMAT_CHARTER","exports","_default"],"sources":["../../../src/lib/v2/components/DatePicker.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers/LocalizationProvider\";\r\nimport { DatePicker as MuiDatePicker } from \"@mui/x-date-pickers/DatePicker\";\r\nimport type { DatePickerProps as MuiDatePickerProps } from \"@mui/x-date-pickers/DatePicker\";\r\nimport { AdapterMoment } from \"@mui/x-date-pickers/AdapterMoment\";\r\nimport type { Moment } from \"moment\";\r\nimport \"moment/locale/fr\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { dateToMoment, momentToDate } from \"./_pickerShared\";\r\n\r\n/**\r\n * DatePicker — Portnet UI v2\r\n *\r\n * Charter §03 · Component \"DatePicker\". Format AAAA-MM-JJ.\r\n *\r\n * <Field label=\"Date d'expiration\" required>\r\n * <DatePicker\r\n * value={expDate}\r\n * onChange={setExpDate}\r\n * minDate={new Date()}\r\n * />\r\n * </Field>\r\n *\r\n * Value contract:\r\n * - value/onChange exchange JavaScript Date objects (or null).\r\n * - Invalid dates (NaN, malformed user input) are coerced to null\r\n * so consumers never receive an \"Invalid Date\" instance.\r\n * - The component handles moment conversion internally.\r\n *\r\n * Locale:\r\n * Default `adapterLocale=\"fr\"` — picker reads month / weekday names\r\n * from moment's French locale data (imported here). Hosts wanting\r\n * other locales pass the BCP-47 / moment short tag AND import the\r\n * matching moment locale data themselves:\r\n *\r\n * import \"moment/locale/ar\";\r\n * <DatePicker adapterLocale=\"ar\" />\r\n *\r\n * This component does NOT mutate moment's GLOBAL locale on import\r\n * (older versions did via `moment.locale(\"fr\")` — that leaked the\r\n * library's preference into ALL host code using moment outside the\r\n * picker).\r\n *\r\n * Format:\r\n * - Display: AAAA-MM-JJ (charter convention). MUI X v6+ derives the\r\n * input mask from this format string automatically — no need for\r\n * the v5-era `mask=\"____-__-__\"` companion prop.\r\n * - The text input accepts user typing in the same format; partial\r\n * entries are tolerated until the user blurs or hits Enter.\r\n *\r\n * Constraints:\r\n * - minDate / maxDate accept Date objects or null.\r\n * - disablePast / disableFuture for relative bounds.\r\n *\r\n * Sibling pickers in the same family:\r\n * - DateTimePicker — adds time-of-day (HH:MM) on top of the date.\r\n * - TimePicker — time only (HH:MM), date portion ignored.\r\n * - DateRangePicker — paired start/end with cross-validation and\r\n * optional preset shortcuts.\r\n * All consume the same _pickerShared boundary helpers as this file\r\n * and follow the same MUI X v9 slots / slotProps surface.\r\n *\r\n * A11y (DP-1): when used inside <Field>, Field cloneElement-injects id +\r\n * aria-describedby / aria-invalid / aria-required (label + hint/error\r\n * association) onto this child. MUI X does NOT forward top-level aria/id to the\r\n * field <input>, so those are intercepted here and routed onto the input via\r\n * slotProps.htmlInput (the <input> element slot — see the v9 note below).\r\n * Explicit `inputProps` still win.\r\n *\r\n * MUI X v9 surface notes (migrated from v5 in Batch 4):\r\n * - The v5 `renderInput` callback + `inputFormat` + `mask` triad has\r\n * been REPLACED by the v6+ `slots`/`slotProps` API and the single\r\n * `format` prop. The textField slot is the canonical entry point\r\n * for any TextField prop override.\r\n * - Inside `slotProps.textField`, the `slotProps.htmlInput` nested\r\n * bag carries what used to be TextField's `inputProps={...}`\r\n * (placeholder, aria-*, min/max, etc.). This double-nesting\r\n * reflects MUI v9's own TextField API: the htmlInput slot is the\r\n * <input/> element target, distinct from the input slot (which\r\n * wraps it).\r\n */\r\n\r\nconst CHARTER_FORMAT = \"YYYY-MM-DD\";\r\n\r\nexport interface DatePickerProps\r\n extends Omit<\r\n MuiDatePickerProps,\r\n \"value\" | \"onChange\" | \"minDate\" | \"maxDate\" | \"slots\" | \"slotProps\" | \"sx\" | \"ref\"\r\n > {\r\n value?: Date | null | undefined;\r\n onChange?: ((value: Date | null) => void) | undefined;\r\n onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;\r\n minDate?: Date | null | undefined;\r\n maxDate?: Date | null | undefined;\r\n error?: boolean | undefined;\r\n placeholder?: string | undefined;\r\n fullWidth?: boolean | undefined;\r\n inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;\r\n adapterLocale?: string | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst DatePicker = React.forwardRef<HTMLDivElement, DatePickerProps>(function DatePicker(\r\n {\r\n value,\r\n onChange,\r\n onBlur,\r\n minDate,\r\n maxDate,\r\n disablePast = false,\r\n disableFuture = false,\r\n disabled = false,\r\n readOnly = false,\r\n error,\r\n placeholder = \"AAAA-MM-JJ\",\r\n fullWidth = true,\r\n inputProps,\r\n adapterLocale = \"fr\",\r\n sx,\r\n ...rest\r\n },\r\n ref,\r\n) {\r\n // DP-1 — Field cloneElement-injects the label + hint/error association props\r\n // onto this child; MUI X won't forward top-level aria/id to the field input,\r\n // so intercept them (cast — they aren't part of MuiDatePickerProps) and route\r\n // them onto the <input> via slotProps.htmlInput below. Everything else stays\r\n // in domRest for MuiDatePicker (real picker props: views, openTo, etc.).\r\n const {\r\n id: fieldId,\r\n \"aria-describedby\": ariaDescribedby,\r\n \"aria-invalid\": ariaInvalid,\r\n \"aria-required\": ariaRequired,\r\n \"aria-labelledby\": ariaLabelledby,\r\n ...domRest\r\n } = rest as typeof rest & {\r\n id?: string;\r\n \"aria-describedby\"?: string;\r\n \"aria-invalid\"?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\";\r\n \"aria-required\"?: boolean | \"true\" | \"false\";\r\n \"aria-labelledby\"?: string;\r\n };\r\n\r\n const handleChange = (next: Moment | null) => {\r\n if (!onChange) return;\r\n onChange(momentToDate(next));\r\n };\r\n\r\n // MUI X v9: every input customisation flows through\r\n // slotProps.textField. The nested slotProps.htmlInput is the MUI v9\r\n // landing zone for what used to be TextField's `inputProps={...}`\r\n // (now the <input/> element slot) — and the DP-1 landing zone for the\r\n // Field-injected id + aria-* so the label / hint / error actually\r\n // associate with the date input. Memoised on the deps so the slotProps\r\n // object reference stays stable across renders.\r\n const slotProps = React.useMemo<NonNullable<MuiDatePickerProps[\"slotProps\"]>>(\r\n () => ({\r\n textField: {\r\n ref,\r\n error: !!error,\r\n fullWidth,\r\n size: \"small\",\r\n // onBlur: the textField slot types this as FocusEventHandler<HTMLDivElement>;\r\n // our public onBlur is input-based. Cast (type-only) and include only\r\n // when defined so no explicit undefined reaches the slot.\r\n ...(onBlur ? { onBlur: onBlur as unknown as React.FocusEventHandler<HTMLDivElement> } : {}),\r\n sx: {\r\n \"& .MuiOutlinedInput-input\": { fontVariantNumeric: \"tabular-nums\" },\r\n ...sx,\r\n },\r\n slotProps: {\r\n htmlInput: {\r\n placeholder,\r\n // DP-1 — Field-injected association attrs land on the <input>.\r\n ...(fieldId != null ? { id: fieldId } : {}),\r\n ...(ariaDescribedby != null\r\n ? { \"aria-describedby\": ariaDescribedby }\r\n : {}),\r\n ...(ariaInvalid != null ? { \"aria-invalid\": ariaInvalid } : {}),\r\n ...(ariaRequired != null ? { \"aria-required\": ariaRequired } : {}),\r\n ...(ariaLabelledby != null\r\n ? { \"aria-labelledby\": ariaLabelledby }\r\n : {}),\r\n // Explicit host inputProps win over the injected defaults.\r\n ...inputProps,\r\n },\r\n },\r\n },\r\n }),\r\n [\r\n ref,\r\n error,\r\n fullWidth,\r\n onBlur,\r\n sx,\r\n placeholder,\r\n inputProps,\r\n fieldId,\r\n ariaDescribedby,\r\n ariaInvalid,\r\n ariaRequired,\r\n ariaLabelledby,\r\n ],\r\n );\r\n\r\n // exactOptionalPropertyTypes: MUI's minDate/maxDate are `Moment` (not\r\n // `Moment | undefined`), so spread the key only when a bound is set\r\n // rather than passing an explicit `undefined`.\r\n const minDateM = minDate ? dateToMoment(minDate) : null;\r\n const maxDateM = maxDate ? dateToMoment(maxDate) : null;\r\n\r\n return (\r\n <LocalizationProvider dateAdapter={AdapterMoment} adapterLocale={adapterLocale}>\r\n <MuiDatePicker\r\n value={dateToMoment(value)}\r\n onChange={handleChange}\r\n {...(minDateM ? { minDate: minDateM } : {})}\r\n {...(maxDateM ? { maxDate: maxDateM } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n format={CHARTER_FORMAT}\r\n slotProps={slotProps}\r\n {...domRest}\r\n />\r\n </LocalizationProvider>\r\n );\r\n});\r\n\r\nexport const DATE_FORMAT_CHARTER = CHARTER_FORMAT;\r\n\r\nexport default DatePicker;\r\n"],"mappings":"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","ignoreList":[]}
@@ -52,29 +52,29 @@ export interface DateRangeValue {
52
52
  endDate: Date | null;
53
53
  }
54
54
  export interface DateRangePreset {
55
- id?: string | number;
55
+ id?: string | number | undefined;
56
56
  label: React.ReactNode;
57
57
  from: Date;
58
58
  to: Date;
59
59
  }
60
60
  export interface DateRangeLabels {
61
- startLabel?: React.ReactNode;
62
- endLabel?: React.ReactNode;
63
- presetsAria?: string;
61
+ startLabel?: React.ReactNode | undefined;
62
+ endLabel?: React.ReactNode | undefined;
63
+ presetsAria?: string | undefined;
64
64
  }
65
65
  export interface DateRangePickerProps {
66
- value?: DateRangeValue | null;
67
- onChange?: (value: DateRangeValue) => void;
68
- minDate?: Date | null;
69
- maxDate?: Date | null;
70
- disablePast?: boolean;
71
- disableFuture?: boolean;
72
- disabled?: boolean;
73
- readOnly?: boolean;
74
- presets?: DateRangePreset[];
75
- adapterLocale?: string;
76
- labels?: DateRangeLabels;
77
- sx?: SxProps<Theme>;
66
+ value?: DateRangeValue | null | undefined;
67
+ onChange?: ((value: DateRangeValue) => void) | undefined;
68
+ minDate?: Date | null | undefined;
69
+ maxDate?: Date | null | undefined;
70
+ disablePast?: boolean | undefined;
71
+ disableFuture?: boolean | undefined;
72
+ disabled?: boolean | undefined;
73
+ readOnly?: boolean | undefined;
74
+ presets?: DateRangePreset[] | undefined;
75
+ adapterLocale?: string | undefined;
76
+ labels?: DateRangeLabels | undefined;
77
+ sx?: SxProps<Theme> | undefined;
78
78
  }
79
79
  declare function DateRangePicker({ value, onChange, minDate, maxDate, disablePast, disableFuture, disabled, readOnly, presets, adapterLocale, labels, sx, }: DateRangePickerProps): React.JSX.Element;
80
80
  export default DateRangePicker;
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;CACV;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAwFD,iBAAS,eAAe,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAmB,EACnB,aAAqB,EACrB,QAAgB,EAChB,QAAgB,EAChB,OAAO,EACP,aAAoB,EACpB,MAAM,EACN,EAAE,GACH,EAAE,oBAAoB,qBAkGtB;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,EAAE,EAAE,IAAI,CAAC;CACV;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACzD,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAwFD,iBAAS,eAAe,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,EACP,WAAmB,EACnB,aAAqB,EACrB,QAAgB,EAChB,QAAgB,EAChB,OAAO,EACP,aAAoB,EACpB,MAAM,EACN,EAAE,GACH,EAAE,oBAAoB,qBAkGtB;AAED,eAAe,eAAe,CAAC"}
@@ -7,6 +7,7 @@ exports["default"] = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _Box = _interopRequireDefault(require("@mui/material/Box"));
9
9
  var _DatePicker = _interopRequireDefault(require("./DatePicker"));
10
+ var _mergeLabels = require("../utils/mergeLabels");
10
11
  var _jsxRuntime = require("react/jsx-runtime");
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -176,7 +177,7 @@ function DateRangePicker(_ref) {
176
177
  adapterLocale = _ref$adapterLocale === void 0 ? "fr" : _ref$adapterLocale,
177
178
  labels = _ref.labels,
178
179
  sx = _ref.sx;
179
- var L = labels ? _objectSpread(_objectSpread({}, DEFAULT_LABELS), labels) : DEFAULT_LABELS;
180
+ var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
180
181
  var startDate = (_value$startDate = value === null || value === void 0 ? void 0 : value.startDate) !== null && _value$startDate !== void 0 ? _value$startDate : null;
181
182
  var endDate = (_value$endDate = value === null || value === void 0 ? void 0 : value.endDate) !== null && _value$endDate !== void 0 ? _value$endDate : null;
182
183
  var startInputId = React.useId();
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_DatePicker","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","startLabel","endLabel","presetsAria","ROOT_SX","display","flexDirection","xs","sm","gap","PRESETS_GROUP_SX","flexWrap","minWidth","PICKERS_ROW_SX","flex","alignItems","FIELD_BLOCK_SX","FIELD_LABEL_SX","fontSize","fontWeight","color","marginBottom","SEPARATOR_SX","paddingBottom","transform","PRESET_BUTTON_SX","font","background","border","padding","borderRadius","cursor","textAlign","whiteSpace","minHeight","borderColor","outline","outlineOffset","opacity","DateRangePicker","_ref","_value$startDate","_value$endDate","onChange","minDate","maxDate","_ref$disablePast","disablePast","_ref$disableFuture","disableFuture","_ref$disabled","disabled","_ref$readOnly","readOnly","presets","_ref$adapterLocale","adapterLocale","labels","sx","L","startDate","endDate","startInputId","useId","endInputId","setStart","next","newEnd","setEnd","newStart","applyPreset","preset","from","to","endEffectiveMinDate","jsxs","children","jsx","role","map","p","_p$id","component","type","onClick","label","id","htmlFor","inputProps","_default","exports"],"sources":["../../../src/lib/v2/components/DateRangePicker.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport DatePicker from \"./DatePicker\";\r\n\r\n/**\r\n * DateRangePicker — Portnet UI v2\r\n *\r\n * Two DatePicker instances side-by-side with cross-validation and\r\n * optional preset shortcuts. Built without @mui/x-date-pickers-pro —\r\n * see commit message for rationale.\r\n *\r\n * <Field label=\"Période\">\r\n * <DateRangePicker\r\n * value={{ startDate: from, endDate: to }}\r\n * onChange={({ startDate, endDate }) => setRange({ from: startDate, to: endDate })}\r\n * presets={[\r\n * { label: \"Aujourd'hui\", from: today, to: today },\r\n * { label: \"7 derniers jours\", from: weekAgo, to: today },\r\n * { label: \"Ce mois\", from: monthStart, to: monthEnd },\r\n * ]}\r\n * />\r\n * </Field>\r\n *\r\n * Value contract:\r\n * - value: { startDate: Date|null, endDate: Date|null } | null\r\n * - onChange({ startDate, endDate }) — both fields always included.\r\n * - Invalid dates from inner pickers come through as null; the\r\n * range stays consistent.\r\n *\r\n * Cross-validation:\r\n * - Picking startDate > endDate clamps endDate to startDate.\r\n * - Picking endDate < startDate clamps startDate to endDate.\r\n * - The end picker's effective minDate is max(startDate, minDate\r\n * prop) so the calendar dialog itself prevents invalid selection.\r\n *\r\n * Presets:\r\n * - Host-supplied. Shape: { id?, label, from, to }.\r\n * - Clicking a preset fires onChange with the preset's range.\r\n * - Lib ships NO default presets (locale + business meaning vary).\r\n *\r\n * A11y:\r\n * - Each inner DatePicker carries its own label via React.useId\r\n * plumbed through inputProps.id + <label htmlFor>.\r\n * - The presets group is wrapped in role=\"group\" with an\r\n * aria-label so SR users hear \"Raccourcis\" before the buttons.\r\n *\r\n * Locale + i18n:\r\n * - adapterLocale forwards to BOTH inner pickers.\r\n * - labels.{startLabel, endLabel} override the FR defaults.\r\n * - presets.label is host-controlled, host owns translation.\r\n */\r\n\r\nexport interface DateRangeValue {\r\n startDate: Date | null;\r\n endDate: Date | null;\r\n}\r\n\r\nexport interface DateRangePreset {\r\n id?: string | number;\r\n label: React.ReactNode;\r\n from: Date;\r\n to: Date;\r\n}\r\n\r\nexport interface DateRangeLabels {\r\n startLabel?: React.ReactNode;\r\n endLabel?: React.ReactNode;\r\n presetsAria?: string;\r\n}\r\n\r\nexport interface DateRangePickerProps {\r\n value?: DateRangeValue | null;\r\n onChange?: (value: DateRangeValue) => void;\r\n minDate?: Date | null;\r\n maxDate?: Date | null;\r\n disablePast?: boolean;\r\n disableFuture?: boolean;\r\n disabled?: boolean;\r\n readOnly?: boolean;\r\n presets?: DateRangePreset[];\r\n adapterLocale?: string;\r\n labels?: DateRangeLabels;\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n startLabel: \"Du\",\r\n endLabel: \"Au\",\r\n presetsAria: \"Raccourcis\",\r\n});\r\n\r\n// Hoisted sx for visible elements that don't depend on props. The\r\n// preset button sx is hoisted too — same emotion-cache rationale as\r\n// Batch 14 D5.\r\nconst ROOT_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n gap: \"var(--s-3)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PRESETS_GROUP_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"row\", sm: \"column\" },\r\n gap: \"var(--s-1)\",\r\n flexWrap: \"wrap\",\r\n minWidth: { sm: 140 },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PICKERS_ROW_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n gap: \"var(--s-2)\",\r\n flex: 1,\r\n alignItems: { sm: \"flex-end\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst FIELD_BLOCK_SX = Object.freeze({\r\n flex: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst FIELD_LABEL_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg-muted)\",\r\n display: \"block\",\r\n marginBottom: \"var(--s-1)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n// Visual range separator. transform: scaleX(...) flips on [dir=\"rtl\"]\r\n// via --pui-rtl-flip (declared in base.css). Hidden from SR — the\r\n// labels Du / Au already convey the relationship.\r\nconst SEPARATOR_SX = Object.freeze({\r\n flex: \"0 0 auto\",\r\n color: \"var(--fg-muted)\",\r\n fontSize: \"var(--text-sm)\",\r\n // align with the inputs (which sit at the bottom of FIELD_BLOCK_SX\r\n // because the label is above them in the same column).\r\n paddingBottom: \"var(--s-2)\",\r\n transform: \"scaleX(var(--pui-rtl-flip, 1))\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PRESET_BUTTON_SX = Object.freeze({\r\n font: \"inherit\",\r\n background: \"transparent\",\r\n border: \"1px solid var(--border)\",\r\n color: \"var(--fg)\",\r\n padding: \"var(--s-1) var(--s-3)\",\r\n borderRadius: \"var(--r-sm)\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n cursor: \"pointer\",\r\n textAlign: \"start\", // RTL-safe equivalent of \"left\"\r\n whiteSpace: \"nowrap\",\r\n minHeight: \"var(--tactile-min)\",\r\n \"&:hover:not(:disabled)\": {\r\n background: \"var(--bg-hover)\",\r\n borderColor: \"var(--accent)\",\r\n color: \"var(--accent)\",\r\n },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.5,\r\n cursor: \"not-allowed\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction DateRangePicker({\r\n value,\r\n onChange,\r\n minDate,\r\n maxDate,\r\n disablePast = false,\r\n disableFuture = false,\r\n disabled = false,\r\n readOnly = false,\r\n presets,\r\n adapterLocale = \"fr\",\r\n labels,\r\n sx,\r\n}: DateRangePickerProps) {\r\n const L = labels ? { ...DEFAULT_LABELS, ...labels } : DEFAULT_LABELS;\r\n const startDate = value?.startDate ?? null;\r\n const endDate = value?.endDate ?? null;\r\n\r\n const startInputId = React.useId();\r\n const endInputId = React.useId();\r\n\r\n const setStart = (next: Date | null) => {\r\n if (!onChange) return;\r\n let newEnd = endDate;\r\n // Cross-validation: clamp end UP if the new start exceeds it.\r\n if (next && endDate && next > endDate) newEnd = next;\r\n onChange({ startDate: next, endDate: newEnd });\r\n };\r\n\r\n const setEnd = (next: Date | null) => {\r\n if (!onChange) return;\r\n let newStart = startDate;\r\n // Cross-validation: clamp start DOWN if the new end precedes it.\r\n if (next && startDate && next < startDate) newStart = next;\r\n onChange({ startDate: newStart, endDate: next });\r\n };\r\n\r\n const applyPreset = (preset: DateRangePreset) => {\r\n if (!onChange) return;\r\n onChange({ startDate: preset.from, endDate: preset.to });\r\n };\r\n\r\n // The end picker's effective minDate is max(startDate, props.minDate).\r\n // Computing it here means the calendar dialog itself disables dates\r\n // before the start — the cross-validation in setEnd is the fallback\r\n // for direct text-typing.\r\n const endEffectiveMinDate =\r\n startDate && minDate\r\n ? (startDate > minDate ? startDate : minDate)\r\n : (startDate || minDate);\r\n\r\n return (\r\n <Box sx={sx ? { ...ROOT_SX, ...sx } : ROOT_SX}>\r\n {presets && presets.length > 0 && (\r\n <Box role=\"group\" aria-label={L.presetsAria} sx={PRESETS_GROUP_SX}>\r\n {presets.map((p, i) => (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n key={p.id ?? i}\r\n onClick={() => applyPreset(p)}\r\n disabled={disabled || readOnly}\r\n sx={PRESET_BUTTON_SX}\r\n >\r\n {p.label}\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n\r\n <Box sx={PICKERS_ROW_SX}>\r\n <Box sx={FIELD_BLOCK_SX}>\r\n <Box component=\"label\" htmlFor={startInputId} sx={FIELD_LABEL_SX}>\r\n {L.startLabel}\r\n </Box>\r\n <DatePicker\r\n value={startDate}\r\n onChange={setStart}\r\n {...(minDate != null ? { minDate } : {})}\r\n {...(maxDate != null ? { maxDate } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n adapterLocale={adapterLocale}\r\n inputProps={{ id: startInputId }}\r\n />\r\n </Box>\r\n\r\n <Box aria-hidden=\"true\" sx={SEPARATOR_SX}>→</Box>\r\n\r\n <Box sx={FIELD_BLOCK_SX}>\r\n <Box component=\"label\" htmlFor={endInputId} sx={FIELD_LABEL_SX}>\r\n {L.endLabel}\r\n </Box>\r\n <DatePicker\r\n value={endDate}\r\n onChange={setEnd}\r\n {...(endEffectiveMinDate != null ? { minDate: endEffectiveMinDate } : {})}\r\n {...(maxDate != null ? { maxDate } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n adapterLocale={adapterLocale}\r\n inputProps={{ id: endInputId }}\r\n />\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default DateRangePicker;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DateRangePicker.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_DatePicker","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DEFAULT_LABELS","freeze","startLabel","endLabel","presetsAria","ROOT_SX","display","flexDirection","xs","sm","gap","PRESETS_GROUP_SX","flexWrap","minWidth","PICKERS_ROW_SX","flex","alignItems","FIELD_BLOCK_SX","FIELD_LABEL_SX","fontSize","fontWeight","color","marginBottom","SEPARATOR_SX","paddingBottom","transform","PRESET_BUTTON_SX","font","background","border","padding","borderRadius","cursor","textAlign","whiteSpace","minHeight","borderColor","outline","outlineOffset","opacity","DateRangePicker","_ref","_value$startDate","_value$endDate","onChange","minDate","maxDate","_ref$disablePast","disablePast","_ref$disableFuture","disableFuture","_ref$disabled","disabled","_ref$readOnly","readOnly","presets","_ref$adapterLocale","adapterLocale","labels","sx","L","mergeLabels","startDate","endDate","startInputId","useId","endInputId","setStart","next","newEnd","setEnd","newStart","applyPreset","preset","from","to","endEffectiveMinDate","jsxs","children","jsx","role","map","p","_p$id","component","type","onClick","label","id","htmlFor","inputProps","_default","exports"],"sources":["../../../src/lib/v2/components/DateRangePicker.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport DatePicker from \"./DatePicker\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * DateRangePicker — Portnet UI v2\r\n *\r\n * Two DatePicker instances side-by-side with cross-validation and\r\n * optional preset shortcuts. Built without @mui/x-date-pickers-pro —\r\n * see commit message for rationale.\r\n *\r\n * <Field label=\"Période\">\r\n * <DateRangePicker\r\n * value={{ startDate: from, endDate: to }}\r\n * onChange={({ startDate, endDate }) => setRange({ from: startDate, to: endDate })}\r\n * presets={[\r\n * { label: \"Aujourd'hui\", from: today, to: today },\r\n * { label: \"7 derniers jours\", from: weekAgo, to: today },\r\n * { label: \"Ce mois\", from: monthStart, to: monthEnd },\r\n * ]}\r\n * />\r\n * </Field>\r\n *\r\n * Value contract:\r\n * - value: { startDate: Date|null, endDate: Date|null } | null\r\n * - onChange({ startDate, endDate }) — both fields always included.\r\n * - Invalid dates from inner pickers come through as null; the\r\n * range stays consistent.\r\n *\r\n * Cross-validation:\r\n * - Picking startDate > endDate clamps endDate to startDate.\r\n * - Picking endDate < startDate clamps startDate to endDate.\r\n * - The end picker's effective minDate is max(startDate, minDate\r\n * prop) so the calendar dialog itself prevents invalid selection.\r\n *\r\n * Presets:\r\n * - Host-supplied. Shape: { id?, label, from, to }.\r\n * - Clicking a preset fires onChange with the preset's range.\r\n * - Lib ships NO default presets (locale + business meaning vary).\r\n *\r\n * A11y:\r\n * - Each inner DatePicker carries its own label via React.useId\r\n * plumbed through inputProps.id + <label htmlFor>.\r\n * - The presets group is wrapped in role=\"group\" with an\r\n * aria-label so SR users hear \"Raccourcis\" before the buttons.\r\n *\r\n * Locale + i18n:\r\n * - adapterLocale forwards to BOTH inner pickers.\r\n * - labels.{startLabel, endLabel} override the FR defaults.\r\n * - presets.label is host-controlled, host owns translation.\r\n */\r\n\r\nexport interface DateRangeValue {\r\n startDate: Date | null;\r\n endDate: Date | null;\r\n}\r\n\r\nexport interface DateRangePreset {\r\n id?: string | number | undefined;\r\n label: React.ReactNode;\r\n from: Date;\r\n to: Date;\r\n}\r\n\r\nexport interface DateRangeLabels {\r\n startLabel?: React.ReactNode | undefined;\r\n endLabel?: React.ReactNode | undefined;\r\n presetsAria?: string | undefined;\r\n}\r\n\r\nexport interface DateRangePickerProps {\r\n value?: DateRangeValue | null | undefined;\r\n onChange?: ((value: DateRangeValue) => void) | undefined;\r\n minDate?: Date | null | undefined;\r\n maxDate?: Date | null | undefined;\r\n disablePast?: boolean | undefined;\r\n disableFuture?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n readOnly?: boolean | undefined;\r\n presets?: DateRangePreset[] | undefined;\r\n adapterLocale?: string | undefined;\r\n labels?: DateRangeLabels | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n startLabel: \"Du\",\r\n endLabel: \"Au\",\r\n presetsAria: \"Raccourcis\",\r\n});\r\n\r\n// Hoisted sx for visible elements that don't depend on props. The\r\n// preset button sx is hoisted too — same emotion-cache rationale as\r\n// Batch 14 D5.\r\nconst ROOT_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n gap: \"var(--s-3)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PRESETS_GROUP_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"row\", sm: \"column\" },\r\n gap: \"var(--s-1)\",\r\n flexWrap: \"wrap\",\r\n minWidth: { sm: 140 },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PICKERS_ROW_SX = Object.freeze({\r\n display: \"flex\",\r\n flexDirection: { xs: \"column\", sm: \"row\" },\r\n gap: \"var(--s-2)\",\r\n flex: 1,\r\n alignItems: { sm: \"flex-end\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nconst FIELD_BLOCK_SX = Object.freeze({\r\n flex: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst FIELD_LABEL_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg-muted)\",\r\n display: \"block\",\r\n marginBottom: \"var(--s-1)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n// Visual range separator. transform: scaleX(...) flips on [dir=\"rtl\"]\r\n// via --pui-rtl-flip (declared in base.css). Hidden from SR — the\r\n// labels Du / Au already convey the relationship.\r\nconst SEPARATOR_SX = Object.freeze({\r\n flex: \"0 0 auto\",\r\n color: \"var(--fg-muted)\",\r\n fontSize: \"var(--text-sm)\",\r\n // align with the inputs (which sit at the bottom of FIELD_BLOCK_SX\r\n // because the label is above them in the same column).\r\n paddingBottom: \"var(--s-2)\",\r\n transform: \"scaleX(var(--pui-rtl-flip, 1))\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PRESET_BUTTON_SX = Object.freeze({\r\n font: \"inherit\",\r\n background: \"transparent\",\r\n border: \"1px solid var(--border)\",\r\n color: \"var(--fg)\",\r\n padding: \"var(--s-1) var(--s-3)\",\r\n borderRadius: \"var(--r-sm)\",\r\n fontSize: \"var(--text-xs)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n cursor: \"pointer\",\r\n textAlign: \"start\", // RTL-safe equivalent of \"left\"\r\n whiteSpace: \"nowrap\",\r\n minHeight: \"var(--tactile-min)\",\r\n \"&:hover:not(:disabled)\": {\r\n background: \"var(--bg-hover)\",\r\n borderColor: \"var(--accent)\",\r\n color: \"var(--accent)\",\r\n },\r\n \"&:focus-visible\": {\r\n outline: \"2px solid var(--accent)\",\r\n outlineOffset: \"var(--pui-outline-offset)\",\r\n },\r\n \"&:disabled\": {\r\n opacity: 0.5,\r\n cursor: \"not-allowed\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction DateRangePicker({\r\n value,\r\n onChange,\r\n minDate,\r\n maxDate,\r\n disablePast = false,\r\n disableFuture = false,\r\n disabled = false,\r\n readOnly = false,\r\n presets,\r\n adapterLocale = \"fr\",\r\n labels,\r\n sx,\r\n}: DateRangePickerProps) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const startDate = value?.startDate ?? null;\r\n const endDate = value?.endDate ?? null;\r\n\r\n const startInputId = React.useId();\r\n const endInputId = React.useId();\r\n\r\n const setStart = (next: Date | null) => {\r\n if (!onChange) return;\r\n let newEnd = endDate;\r\n // Cross-validation: clamp end UP if the new start exceeds it.\r\n if (next && endDate && next > endDate) newEnd = next;\r\n onChange({ startDate: next, endDate: newEnd });\r\n };\r\n\r\n const setEnd = (next: Date | null) => {\r\n if (!onChange) return;\r\n let newStart = startDate;\r\n // Cross-validation: clamp start DOWN if the new end precedes it.\r\n if (next && startDate && next < startDate) newStart = next;\r\n onChange({ startDate: newStart, endDate: next });\r\n };\r\n\r\n const applyPreset = (preset: DateRangePreset) => {\r\n if (!onChange) return;\r\n onChange({ startDate: preset.from, endDate: preset.to });\r\n };\r\n\r\n // The end picker's effective minDate is max(startDate, props.minDate).\r\n // Computing it here means the calendar dialog itself disables dates\r\n // before the start — the cross-validation in setEnd is the fallback\r\n // for direct text-typing.\r\n const endEffectiveMinDate =\r\n startDate && minDate\r\n ? (startDate > minDate ? startDate : minDate)\r\n : (startDate || minDate);\r\n\r\n return (\r\n <Box sx={sx ? { ...ROOT_SX, ...sx } : ROOT_SX}>\r\n {presets && presets.length > 0 && (\r\n <Box role=\"group\" aria-label={L.presetsAria} sx={PRESETS_GROUP_SX}>\r\n {presets.map((p, i) => (\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n key={p.id ?? i}\r\n onClick={() => applyPreset(p)}\r\n disabled={disabled || readOnly}\r\n sx={PRESET_BUTTON_SX}\r\n >\r\n {p.label}\r\n </Box>\r\n ))}\r\n </Box>\r\n )}\r\n\r\n <Box sx={PICKERS_ROW_SX}>\r\n <Box sx={FIELD_BLOCK_SX}>\r\n <Box component=\"label\" htmlFor={startInputId} sx={FIELD_LABEL_SX}>\r\n {L.startLabel}\r\n </Box>\r\n <DatePicker\r\n value={startDate}\r\n onChange={setStart}\r\n {...(minDate != null ? { minDate } : {})}\r\n {...(maxDate != null ? { maxDate } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n adapterLocale={adapterLocale}\r\n inputProps={{ id: startInputId }}\r\n />\r\n </Box>\r\n\r\n <Box aria-hidden=\"true\" sx={SEPARATOR_SX}>→</Box>\r\n\r\n <Box sx={FIELD_BLOCK_SX}>\r\n <Box component=\"label\" htmlFor={endInputId} sx={FIELD_LABEL_SX}>\r\n {L.endLabel}\r\n </Box>\r\n <DatePicker\r\n value={endDate}\r\n onChange={setEnd}\r\n {...(endEffectiveMinDate != null ? { minDate: endEffectiveMinDate } : {})}\r\n {...(maxDate != null ? { maxDate } : {})}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n disabled={disabled}\r\n readOnly={readOnly}\r\n adapterLocale={adapterLocale}\r\n inputProps={{ id: endInputId }}\r\n />\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n\r\nexport default DateRangePicker;\r\n"],"mappings":"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","ignoreList":[]}
@@ -3,17 +3,17 @@ import type { DateTimePickerProps as MuiDateTimePickerProps } from "@mui/x-date-
3
3
  import "moment/locale/fr";
4
4
  import type { SxProps, Theme } from "@mui/material/styles";
5
5
  export interface DateTimePickerProps extends Omit<MuiDateTimePickerProps, "value" | "onChange" | "minDate" | "maxDate" | "slots" | "slotProps" | "sx" | "ref"> {
6
- value?: Date | null;
7
- onChange?: (value: Date | null) => void;
8
- onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement>;
9
- minDate?: Date | null;
10
- maxDate?: Date | null;
11
- error?: boolean;
12
- placeholder?: string;
13
- fullWidth?: boolean;
14
- inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
15
- adapterLocale?: string;
16
- sx?: SxProps<Theme>;
6
+ value?: Date | null | undefined;
7
+ onChange?: ((value: Date | null) => void) | undefined;
8
+ onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
9
+ minDate?: Date | null | undefined;
10
+ maxDate?: Date | null | undefined;
11
+ error?: boolean | undefined;
12
+ placeholder?: string | undefined;
13
+ fullWidth?: boolean | undefined;
14
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;
15
+ adapterLocale?: string | undefined;
16
+ sx?: SxProps<Theme> | undefined;
17
17
  }
18
18
  declare const DateTimePicker: React.ForwardRefExoticComponent<DateTimePickerProps & React.RefAttributes<HTMLDivElement>>;
19
19
  export declare const DATETIME_FORMAT_CHARTER = "YYYY-MM-DD HH:mm";
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DateTimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGxG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAuD3D,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,sBAAsB,EACtB,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,CACpF;IACD,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,CAAC;IACzE,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED,QAAA,MAAM,cAAc,4FAgIlB,CAAC;AAEH,eAAO,MAAM,uBAAuB,qBAAiB,CAAC;AAEtD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"DateTimePicker.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/DateTimePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,IAAI,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGxG,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAwF3D,MAAM,WAAW,mBACf,SAAQ,IAAI,CACV,sBAAsB,EACtB,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,GAAG,KAAK,CACpF;IACD,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACtD,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,SAAS,CAAC;IACrF,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACrE,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACjC;AAED,QAAA,MAAM,cAAc,4FAgIlB,CAAC;AAEH,eAAO,MAAM,uBAAuB,qBAAiB,CAAC;AAEtD,eAAe,cAAc,CAAC"}
@@ -51,10 +51,43 @@ var _excluded = ["value", "onChange", "onBlur", "minDate", "maxDate", "disablePa
51
51
  * the picker dialog also lets the user choose hours/minutes within
52
52
  * the resulting day.
53
53
  *
54
- * A11y (DP-1): as with DatePicker, when used inside <Field> the injected id +
55
- * aria-describedby / aria-invalid / aria-required are intercepted and routed
56
- * onto the field <input> via slotProps.htmlInput (MUI X does not forward
57
- * top-level aria/id to the input). Explicit `inputProps` still win.
54
+ * A11y (DP-1) : when used inside <Field> the injected id + aria-describedby /
55
+ * aria-invalid / aria-required are intercepted and routed onto the field
56
+ * <input> via slotProps.htmlInput (MUI X does not forward top-level aria/id to
57
+ * the input). Explicit `inputProps` still win.
58
+ *
59
+ * ── KNOWN A11Y DEFECT, NOT FIXED HERE (opened as G-F, deferred) ────
60
+ *
61
+ * DP-1's routing lands on the value <input>, and MUI X v9 marks that input
62
+ * `aria-hidden="true"`. The visible field is a `role="group"` of one
63
+ * `role="spinbutton"` per section (Year, Month, Day, Hours, Minutes).
64
+ *
65
+ * So all four association attributes are INERT, on every date field of the
66
+ * platform, and none of it is visible on screen:
67
+ * — the `<label htmlFor>` names nothing: a screen reader announces « Year »,
68
+ * « Month », « Hours » without ever saying of WHAT (R-I.1) ;
69
+ * — a hint or an error message rendered by Field is never announced
70
+ * (R-I.3, R-4.1) ;
71
+ * — a required field does not report itself as required (R-I.2).
72
+ *
73
+ * Found while writing the tests for gap G-E: the DOM dump showed `role="group"`
74
+ * with `Name ""` beside a correctly wired `<label for>`.
75
+ *
76
+ * TWO ATTEMPTS FAILED, and both are worth recording so the next person does
77
+ * not repeat them:
78
+ * 1. routing the attrs through `slotProps.textField.InputProps` — accepted
79
+ * by the types, lands nowhere. `InputProps` is not the v9 anchor for the
80
+ * group element.
81
+ * 2. switching the Formik bridge to `Field`'s `group` mode — `Field` does
82
+ * emit `aria-labelledby` (verified in its source), but with (1) failing
83
+ * nothing carries it to the group, AND group mode drops the `<label
84
+ * for>`, so the label-click-to-focus is lost for no gain. A net
85
+ * regression.
86
+ *
87
+ * The fix needs the real v9 anchor for the `PickersInputBase` root, and it
88
+ * touches DatePicker AND DateTimePicker, hence every date field in the
89
+ * portfolio. It belongs to a pass with time to investigate the slot chain —
90
+ * Batch 10 (accessibility certification), not a side effect of G-E.
58
91
  *
59
92
  * MUI X v9 surface notes (migrated from v5 in Batch 4):
60
93
  * See DatePicker.tsx for the same rationale — renderInput +