@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
@@ -1 +1 @@
1
- {"version":3,"file":"Dropzone.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_CloudUpload","_Close","_InsertDriveFileOutlined","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","Array","isArray","_createForOfIteratorHelper","o","allowArrayLike","it","F","s","n","e","_e2","f","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","len","arr2","defaultFormatBytes","isFinite","concat","Math","round","toFixed","DEFAULT_REASONS","freeze","defaultBuildRejectMessage","rejected","reasons","total","noun","head","tally","_iterator","_step","r","label","reason","buckets","entries","only","parts","map","_ref","_ref2","join","DEFAULT_LABELS","ariaLabel","formatBytes","buildRejectMessage","addedSingle","addedMultiple","removeItem","matchesAccept","file","accept","tokens","split","t","trim","Boolean","some","startsWith","toLowerCase","endsWith","prefix","type","Dropzone","_ref3","maxSize","maxFiles","_ref3$multiple","multiple","_ref3$disabled","disabled","_ref3$value","onAdd","onRemove","onReject","ariaLabelProp","labels","sx","id","_ref3$error","error","ariaInvalidProp","ariaDescribedByProp","L","useMemo","dropLabel","inputRef","useRef","liveRef","_React$useState","useState","_React$useState2","dragOver","setDragOver","hintId","useId","isInvalid","describedBy","announce","msg","current","textContent","validate","useCallback","incoming","accepted","remainingSlots","max","Infinity","_iterator2","_step2","size","handleFiles","fileList","files","_validate","_accepted","first","onInputChange","openPicker","_inputRef$current","click","onDragOver","preventDefault","stopPropagation","onDragLeave","currentTarget","contains","relatedTarget","onDrop","_e$dataTransfer","dataTransfer","borderColor","jsxs","width","children","component","onClick","onDragEnter","font","color","display","flexDirection","alignItems","justifyContent","gap","padding","background","border","borderRadius","cursor","opacity","textAlign","transition","outline","outlineOffset","jsx","style","fontSize","fontWeight","ref","onChange","tabIndex","position","height","margin","overflow","clipPath","role","className","listStyle","_ref4","_f$id","_f$size","status","progress","flex","minWidth","textOverflow","whiteSpace","fontVariantNumeric","NaN","_default","exports"],"sources":["../../../src/lib/v2/components/Dropzone.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloudUploadIcon from \"@mui/icons-material/CloudUpload\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport InsertDriveFileIcon from \"@mui/icons-material/InsertDriveFileOutlined\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * Dropzone - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Dropzone / FileUpload\". Drop area + click/keyboard\r\n * to open the OS file picker. Stateless wrt upload progress - the caller owns\r\n * the upload state and feeds it back via `value`.\r\n *\r\n * <Dropzone\r\n * accept=\"application/pdf,image/png,image/jpeg\"\r\n * maxSize={5 * 1024 * 1024}\r\n * multiple\r\n * value={files} // [{ id, name, size, progress, status, error }]\r\n * onAdd={handleNewFiles}\r\n * onRemove={(id) => removeFile(id)}\r\n * onReject={(rejections) => showErrors(rejections)}\r\n * hint=\"Formats acceptés : PDF, PNG, JPG. Max 5 Mo par fichier.\"\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <Dropzone labels={{\r\n * label: \"Drag files here or click to browse\",\r\n * ariaLabel: \"File drop zone\",\r\n * formatBytes: (n) => `${(n / 1024 / 1024).toFixed(1)} MB`,\r\n * reasons: {\r\n * \"max-size\": \"too large\",\r\n * \"type\": \"wrong type\",\r\n * \"max-files\": \"limit reached\",\r\n * },\r\n * buildRejectMessage: (rejected) => `${rejected.length} file(s) rejected`,\r\n * addedSingle: (name) => `Added: ${name}`,\r\n * addedMultiple: (n) => `${n} files added`,\r\n * removeItem: (name) => `Remove ${name}`,\r\n * }} />\r\n *\r\n * ── INSIDE A <Field> (R-I.1, R-I.3) ──────────────────────────────────\r\n *\r\n * Wrap it to get a visible label, required marker and error message:\r\n *\r\n * <Field label=\"Facture\" required error={fileError} htmlFor=\"facture-file\">\r\n * <Dropzone value={…} onAdd={…} />\r\n * </Field>\r\n *\r\n * Field clones its child with `id`, `aria-invalid`, `aria-describedby` and\r\n * `error`. This component ACCEPTS all four and forwards them to the drop\r\n * <button> — which is the canonical accessibility handle, not the hidden\r\n * input. Before that forwarding existed the props were dropped silently:\r\n * Field's <label htmlFor> pointed at an id present on no element, so the\r\n * label named nothing and the button's accessible name was only the generic\r\n * \"Zone de dépôt de fichiers\"; and a host-set error rendered its message\r\n * while the control stayed valid to AT.\r\n *\r\n * `htmlFor` is worth passing explicitly when the field must be addressable\r\n * from outside — Field otherwise generates a `useId`-based id, which is\r\n * stable across renders but not predictable, so it cannot be targeted by\r\n * focusFieldByName after a failed submit.\r\n *\r\n * A11y note (R-Ar.1):\r\n * The drop target is a native <button>, not <div role=\"button\">.\r\n * Enter/Space activation, disabled state, and AT exposure come for\r\n * free from the platform. The hidden <input type=\"file\"> nested\r\n * inside the button is aria-hidden - the button is the canonical\r\n * accessibility handle.\r\n *\r\n * A11y note (R-A.1, live region):\r\n * Acceptances and rejections are announced via a polite live region.\r\n * Rejections are broken down by reason so SR users learn WHY without\r\n * needing a host-side toast. aria-relevant is set explicitly to\r\n * \"additions text\" — the spec default, but some SR + browser combos\r\n * (NVDA + Firefox notably) skip announcements without it.\r\n */\r\n\r\nexport type DropzoneFileStatus = \"ready\" | \"uploading\" | \"done\" | \"error\";\r\n\r\nexport interface DropzoneFile {\r\n id?: string | number;\r\n name: string;\r\n size?: number;\r\n progress?: number;\r\n status?: DropzoneFileStatus;\r\n error?: string;\r\n}\r\n\r\nexport type DropzoneRejectReason = \"max-size\" | \"type\" | \"max-files\";\r\n\r\nexport interface DropzoneRejection {\r\n file: File;\r\n reason: DropzoneRejectReason;\r\n}\r\n\r\nexport interface DropzoneReasons {\r\n \"max-size\"?: string;\r\n \"type\"?: string;\r\n \"max-files\"?: string;\r\n}\r\n\r\nexport interface DropzoneLabels {\r\n label?: React.ReactNode;\r\n ariaLabel?: string;\r\n formatBytes?: (n: number) => string;\r\n reasons?: DropzoneReasons;\r\n buildRejectMessage?: (rejected: DropzoneRejection[], reasons: DropzoneReasons) => string;\r\n addedSingle?: (name: string) => string;\r\n addedMultiple?: (n: number) => string;\r\n removeItem?: (name: string) => string;\r\n}\r\n\r\nexport interface DropzoneProps {\r\n accept?: string;\r\n maxSize?: number;\r\n maxFiles?: number;\r\n multiple?: boolean;\r\n disabled?: boolean;\r\n value?: DropzoneFile[];\r\n onAdd?: (files: File[]) => void;\r\n onRemove?: (id: string | number) => void;\r\n onReject?: (rejections: DropzoneRejection[]) => void;\r\n // Legacy/back-compat per-prop overrides; win over labels.* when both passed.\r\n label?: React.ReactNode;\r\n \"aria-label\"?: string;\r\n hint?: React.ReactNode;\r\n labels?: DropzoneLabels;\r\n sx?: SxProps<Theme>;\r\n /**\r\n * Id for the drop <button>. Injected by Field from `htmlFor || name`, so\r\n * its <label htmlFor> resolves to a real element (R-I.1).\r\n *\r\n * Pass a stable value through Field's `htmlFor` when the field needs to be\r\n * addressable from outside the component — focusFieldByName resolves\r\n * `[id=…]` first, and that is how a failed submit reaches a Dropzone\r\n * (R-F.3).\r\n */\r\n id?: string;\r\n /**\r\n * Invalid state. Injected by Field as `error={hasError}`.\r\n *\r\n * Drives both the danger border and `aria-invalid`, so the state is\r\n * conveyed visually AND programmatically rather than by the helper text\r\n * alone (R-4.1 / R-I.3).\r\n */\r\n error?: boolean;\r\n /**\r\n * Injected by Field. Accepted explicitly so an aria-invalid passed without\r\n * `error` still lands — the two are separate props on Field's clone and a\r\n * host can legitimately set either.\r\n */\r\n \"aria-invalid\"?: boolean | \"true\" | \"false\";\r\n /**\r\n * Injected by Field, pointing at its hint and/or error message. MERGED with\r\n * this component's own internal hint id rather than replacing it — both\r\n * descriptions are real and the user needs both.\r\n */\r\n \"aria-describedby\"?: string;\r\n}\r\n\r\n// ─── Default FR formatters ───────────────────────────────────────────\r\n\r\nfunction defaultFormatBytes(n: number): string {\r\n if (!Number.isFinite(n)) return \"—\";\r\n if (n < 1024) return `${n} o`;\r\n if (n < 1024 * 1024) return `${Math.round(n / 1024)} Ko`;\r\n return `${(n / 1024 / 1024).toFixed(1)} Mo`;\r\n}\r\n\r\nconst DEFAULT_REASONS = Object.freeze({\r\n \"max-size\": \"trop volumineux\",\r\n \"type\": \"type non autorisé\",\r\n \"max-files\": \"limite atteinte\",\r\n});\r\n\r\n/**\r\n * Build a SR-friendly French sentence summarising a rejection bundle.\r\n * Examples:\r\n * 1 file, max-size → \"1 fichier refusé : trop volumineux.\"\r\n * 3 files, mixed reasons → \"3 fichiers refusés : 1 trop volumineux,\r\n * 2 type non autorisé.\"\r\n */\r\nfunction defaultBuildRejectMessage(rejected: DropzoneRejection[], reasons: DropzoneReasons): string {\r\n const total = rejected.length;\r\n if (total === 0) return \"\";\r\n const noun = total > 1 ? \"fichiers refusés\" : \"fichier refusé\";\r\n const head = `${total} ${noun}`;\r\n\r\n const tally: Record<string, number> = {};\r\n for (const r of rejected) {\r\n const label = reasons[r.reason];\r\n if (!label) continue;\r\n tally[label] = (tally[label] || 0) + 1;\r\n }\r\n const buckets = Object.entries(tally);\r\n if (buckets.length === 0) return `${head}.`;\r\n\r\n if (buckets.length === 1) {\r\n const only = buckets[0];\r\n return only ? `${head} : ${only[0]}.` : `${head}.`;\r\n }\r\n const parts = buckets.map(([label, n]) => `${n} ${label}`);\r\n return `${head} : ${parts.join(\", \")}.`;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n label: \"Glissez vos fichiers ici ou cliquez pour parcourir\",\r\n ariaLabel: \"Zone de dépôt de fichiers\",\r\n formatBytes: defaultFormatBytes,\r\n reasons: DEFAULT_REASONS,\r\n buildRejectMessage: defaultBuildRejectMessage,\r\n addedSingle: (name: string) => `Fichier ajouté : ${name}`,\r\n addedMultiple: (n: number) => `${n} fichiers ajoutés`,\r\n removeItem: (name: string) => `Retirer ${name}`,\r\n});\r\n\r\n// ─── Helpers ──────────────────────────────────────────────────────────\r\n\r\nfunction matchesAccept(file: File, accept: string | undefined): boolean {\r\n if (!accept) return true;\r\n const tokens = accept.split(\",\").map((t) => t.trim()).filter(Boolean);\r\n if (tokens.length === 0) return true;\r\n return tokens.some((t) => {\r\n if (t.startsWith(\".\")) {\r\n return file.name.toLowerCase().endsWith(t.toLowerCase());\r\n }\r\n if (t.endsWith(\"/*\")) {\r\n const prefix = t.slice(0, -1); // \"image/\"\r\n return file.type.startsWith(prefix);\r\n }\r\n return file.type === t;\r\n });\r\n}\r\n\r\n// ─── Component ────────────────────────────────────────────────────────\r\n\r\nfunction Dropzone({\r\n accept,\r\n maxSize,\r\n maxFiles,\r\n multiple = false,\r\n disabled = false,\r\n value = [],\r\n onAdd,\r\n onRemove,\r\n onReject,\r\n // Legacy prop names: kept for back-compat. When the consumer passes\r\n // either, it wins over labels.* with the same role.\r\n label,\r\n \"aria-label\": ariaLabelProp,\r\n hint,\r\n labels,\r\n sx,\r\n // Injected by Field (R-I.1 / R-I.3). Forwarded to the drop <button>\r\n // below — see the \"INSIDE A <Field>\" note in the module docstring.\r\n id,\r\n error = false,\r\n \"aria-invalid\": ariaInvalidProp,\r\n \"aria-describedby\": ariaDescribedByProp,\r\n}: DropzoneProps) {\r\n const L = React.useMemo(() => {\r\n if (!labels) return DEFAULT_LABELS;\r\n return {\r\n ...DEFAULT_LABELS,\r\n ...labels,\r\n reasons: { ...DEFAULT_LABELS.reasons, ...(labels.reasons || {}) },\r\n };\r\n }, [labels]);\r\n\r\n const dropLabel = label != null ? label : L.label;\r\n const ariaLabel = ariaLabelProp != null ? ariaLabelProp : L.ariaLabel;\r\n\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const liveRef = React.useRef<HTMLDivElement>(null);\r\n const [dragOver, setDragOver] = React.useState(false);\r\n // Stable, per-instance, collision-safe id for the hint association.\r\n const hintId = React.useId();\r\n\r\n /*\r\n * R-I.3 — invalid when Field said so via `error`, or when a host set the\r\n * attribute directly. Either alone is sufficient; Field passes both, other\r\n * callers may pass one.\r\n */\r\n const isInvalid =\r\n error || ariaInvalidProp === true || ariaInvalidProp === \"true\";\r\n\r\n /*\r\n * MERGED, not replaced. Field's value points at its hint and/or its error\r\n * message; hintId points at this component's own hint, rendered inside the\r\n * button. Dropping either would lose a real description — which is what\r\n * happened while this prop was not accepted at all.\r\n */\r\n const describedBy =\r\n [ariaDescribedByProp, hint ? hintId : null].filter(Boolean).join(\" \") ||\r\n undefined;\r\n\r\n const announce = (msg: string) => {\r\n if (liveRef.current) {\r\n // Setting via DOM (not state) avoids re-renders that would re-trigger\r\n // SR announcements for unrelated UI updates.\r\n liveRef.current.textContent = msg;\r\n }\r\n };\r\n\r\n const validate = React.useCallback(\r\n (incoming: File[]): { accepted: File[]; rejected: DropzoneRejection[] } => {\r\n const accepted: File[] = [];\r\n const rejected: DropzoneRejection[] = [];\r\n const remainingSlots = maxFiles != null ? Math.max(0, maxFiles - value.length) : Infinity;\r\n\r\n for (const file of incoming) {\r\n if (accepted.length >= remainingSlots) {\r\n rejected.push({ file, reason: \"max-files\" });\r\n continue;\r\n }\r\n if (maxSize != null && file.size > maxSize) {\r\n rejected.push({ file, reason: \"max-size\" });\r\n continue;\r\n }\r\n if (!matchesAccept(file, accept)) {\r\n rejected.push({ file, reason: \"type\" });\r\n continue;\r\n }\r\n accepted.push(file);\r\n if (!multiple) break; // single mode: only first valid\r\n }\r\n return { accepted, rejected };\r\n },\r\n [accept, maxSize, maxFiles, multiple, value.length]\r\n );\r\n\r\n const handleFiles = (fileList: FileList | File[] | null | undefined) => {\r\n if (disabled) return;\r\n const files = Array.from(fileList || []);\r\n if (files.length === 0) return;\r\n const { accepted, rejected } = validate(files);\r\n if (accepted.length > 0) {\r\n onAdd?.(accepted);\r\n const [first] = accepted;\r\n announce(\r\n accepted.length === 1 && first\r\n ? L.addedSingle(first.name)\r\n : L.addedMultiple(accepted.length)\r\n );\r\n }\r\n if (rejected.length > 0) {\r\n onReject?.(rejected);\r\n announce(L.buildRejectMessage(rejected, L.reasons));\r\n }\r\n };\r\n\r\n const onInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n handleFiles(e.target.files);\r\n // reset so the same file can be re-added after removal\r\n e.target.value = \"\";\r\n };\r\n\r\n const openPicker = () => {\r\n if (disabled) return;\r\n inputRef.current?.click();\r\n };\r\n\r\n const onDragOver = (e: React.DragEvent) => {\r\n if (disabled) return;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (!dragOver) setDragOver(true);\r\n };\r\n const onDragLeave = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n // Only clear when leaving the wrapper itself, not crossing a child.\r\n if (e.currentTarget.contains(e.relatedTarget as Node | null)) return;\r\n setDragOver(false);\r\n };\r\n const onDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setDragOver(false);\r\n if (disabled) return;\r\n handleFiles(e.dataTransfer?.files);\r\n };\r\n\r\n /*\r\n * Border colour precedence: dragOver > invalid > resting.\r\n *\r\n * Drag feedback wins deliberately — while a file is over the target the\r\n * user needs to know the drop will land, and the invalid state is about to\r\n * be resolved by that very drop.\r\n */\r\n const borderColor = dragOver\r\n ? \"var(--accent)\"\r\n : isInvalid\r\n ? \"var(--danger)\"\r\n : \"var(--border-strong)\";\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", ...sx }}>\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n {...(id !== undefined ? { id } : {})}\r\n disabled={disabled}\r\n aria-label={ariaLabel}\r\n {...(isInvalid ? { \"aria-invalid\": true } : {})}\r\n aria-describedby={describedBy}\r\n onClick={openPicker}\r\n onDragOver={onDragOver}\r\n onDragEnter={onDragOver}\r\n onDragLeave={onDragLeave}\r\n onDrop={onDrop}\r\n sx={{\r\n // <button> reset - neutralise UA defaults so the drop target\r\n // visually matches the previous Box-based design.\r\n font: \"inherit\",\r\n color: \"inherit\",\r\n width: \"100%\",\r\n // Layout\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: 1,\r\n padding: \"var(--s-5) var(--s-4)\",\r\n background: dragOver ? \"var(--accent-soft)\" : \"var(--bg-subtle)\",\r\n border: `2px dashed ${borderColor}`,\r\n borderRadius: \"var(--r-lg)\",\r\n cursor: disabled ? \"not-allowed\" : \"pointer\",\r\n opacity: disabled ? 0.55 : 1,\r\n textAlign: \"center\",\r\n transition:\r\n \"background var(--duration-fast, 80ms) ease, border-color var(--duration-fast, 80ms) ease\",\r\n \"&:hover\": (!disabled && !dragOver)\r\n ? { background: \"var(--bg-hover)\", borderColor: \"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 }}\r\n >\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n color: dragOver\r\n ? \"var(--accent)\"\r\n : isInvalid\r\n ? \"var(--danger)\"\r\n : \"var(--fg-muted)\",\r\n display: \"inline-flex\",\r\n }}\r\n >\r\n <CloudUploadIcon style={{ fontSize: 32 }} />\r\n </Box>\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n }}\r\n >\r\n {dropLabel}\r\n </Box>\r\n {hint && (\r\n <Box\r\n id={hintId}\r\n sx={{ fontSize: \"var(--text-xs)\", color: \"var(--fg-muted)\" }}\r\n >\r\n {hint}\r\n </Box>\r\n )}\r\n {/* visually-hidden, accessibility-tree-hidden native input.\r\n The wrapping <button> is the canonical a11y handle; the input\r\n is just the bridge to the OS file picker.\r\n C2 — clipPath: inset(50%) (modern) replaces the deprecated\r\n clip: rect(0,0,0,0) so a strict CSP that disables `clip`\r\n cannot leak the input on screen. */}\r\n <input\r\n ref={inputRef}\r\n type=\"file\"\r\n accept={accept}\r\n multiple={multiple}\r\n disabled={disabled}\r\n onChange={onInputChange}\r\n tabIndex={-1}\r\n aria-hidden=\"true\"\r\n style={{\r\n position: \"absolute\",\r\n width: 1, height: 1, padding: 0, margin: -1,\r\n overflow: \"hidden\", clipPath: \"inset(50%)\", border: 0,\r\n }}\r\n />\r\n </Box>\r\n\r\n {/* Live region — newly-added file announcements + rejection summary.\r\n C3 — aria-relevant explicit (defense-in-depth for NVDA+Firefox). */}\r\n <Box\r\n ref={liveRef}\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n aria-relevant=\"additions text\"\r\n className=\"pui-sr-only\"\r\n />\r\n\r\n {/* file list */}\r\n {value.length > 0 && (\r\n <Box\r\n component=\"ul\"\r\n /* Explicit role — several screen readers strip list semantics when\r\n CSS list-style:none is applied. Same reason FormErrorSummary sets\r\n it. */\r\n role=\"list\"\r\n sx={{\r\n listStyle: \"none\",\r\n padding: 0,\r\n margin: \"var(--s-3) 0 0\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-1)\",\r\n }}\r\n >\r\n {value.map((f, i) => {\r\n const id = f.id ?? f.name ?? i;\r\n const status = f.status || (f.error ? \"error\" : f.progress === 100 ? \"done\" : f.progress != null ? \"uploading\" : \"ready\");\r\n const color =\r\n status === \"error\" ? \"var(--danger)\" :\r\n status === \"done\" ? \"var(--success)\" : \"var(--fg-muted)\";\r\n return (\r\n <Box\r\n component=\"li\"\r\n role=\"listitem\"\r\n key={id}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-2) var(--s-3)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n }}\r\n >\r\n <Box aria-hidden=\"true\" sx={{ color, display: \"inline-flex\" }}>\r\n <InsertDriveFileIcon fontSize=\"small\" />\r\n </Box>\r\n <Box sx={{ flex: 1, minWidth: 0 }}>\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg)\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {f.name}\r\n </Box>\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: status === \"error\" ? \"var(--danger)\" : \"var(--fg-subtle)\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n }}\r\n >\r\n {status === \"error\" && f.error\r\n ? f.error\r\n : `${L.formatBytes(f.size ?? NaN)}${f.progress != null ? ` · ${Math.round(f.progress)}%` : \"\"}`}\r\n </Box>\r\n </Box>\r\n {onRemove && (\r\n <IconButton\r\n size=\"small\"\r\n onClick={(e) => { e.stopPropagation(); onRemove(id); }}\r\n aria-label={L.removeItem(f.name)}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n )}\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Dropzone;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Dropzone.js","names":["React","_interopRequireWildcard","require","_mergeLabels","_Box","_interopRequireDefault","_IconButton","_CloudUpload","_Close","_InsertDriveFileOutlined","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","Array","isArray","_createForOfIteratorHelper","o","allowArrayLike","it","F","s","n","e","_e2","f","normalCompletion","didErr","step","_e3","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","len","arr2","defaultFormatBytes","isFinite","concat","Math","round","toFixed","DEFAULT_REASONS","freeze","defaultBuildRejectMessage","rejected","reasons","total","noun","head","tally","_iterator","_step","r","label","reason","buckets","entries","only","parts","map","_ref","_ref2","join","DEFAULT_LABELS","ariaLabel","formatBytes","buildRejectMessage","addedSingle","addedMultiple","removeItem","matchesAccept","file","accept","tokens","split","t","trim","Boolean","some","startsWith","toLowerCase","endsWith","prefix","type","Dropzone","_ref3","maxSize","maxFiles","_ref3$multiple","multiple","_ref3$disabled","disabled","_ref3$value","onAdd","onRemove","onReject","ariaLabelProp","labels","sx","id","_ref3$error","error","ariaInvalidProp","ariaDescribedByProp","L","useMemo","mergeLabels","dropLabel","inputRef","useRef","liveRef","_React$useState","useState","_React$useState2","dragOver","setDragOver","hintId","useId","isInvalid","describedBy","announce","msg","current","textContent","validate","useCallback","incoming","accepted","remainingSlots","max","Infinity","_iterator2","_step2","size","handleFiles","fileList","files","_validate","_accepted","first","onInputChange","openPicker","_inputRef$current","click","onDragOver","preventDefault","stopPropagation","onDragLeave","currentTarget","contains","relatedTarget","onDrop","_e$dataTransfer","dataTransfer","borderColor","jsxs","width","children","component","onClick","onDragEnter","font","color","display","flexDirection","alignItems","justifyContent","gap","padding","background","border","borderRadius","cursor","opacity","textAlign","transition","outline","outlineOffset","jsx","style","fontSize","fontWeight","ref","onChange","tabIndex","position","height","margin","overflow","clipPath","role","className","listStyle","_ref4","_f$id","_f$size","status","progress","flex","minWidth","textOverflow","whiteSpace","fontVariantNumeric","NaN","_default","exports"],"sources":["../../../src/lib/v2/components/Dropzone.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloudUploadIcon from \"@mui/icons-material/CloudUpload\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport InsertDriveFileIcon from \"@mui/icons-material/InsertDriveFileOutlined\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\n\r\n/**\r\n * Dropzone - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Dropzone / FileUpload\". Drop area + click/keyboard\r\n * to open the OS file picker. Stateless wrt upload progress - the caller owns\r\n * the upload state and feeds it back via `value`.\r\n *\r\n * <Dropzone\r\n * accept=\"application/pdf,image/png,image/jpeg\"\r\n * maxSize={5 * 1024 * 1024}\r\n * multiple\r\n * value={files} // [{ id, name, size, progress, status, error }]\r\n * onAdd={handleNewFiles}\r\n * onRemove={(id) => removeFile(id)}\r\n * onReject={(rejections) => showErrors(rejections)}\r\n * hint=\"Formats acceptés : PDF, PNG, JPG. Max 5 Mo par fichier.\"\r\n * />\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <Dropzone labels={{\r\n * label: \"Drag files here or click to browse\",\r\n * ariaLabel: \"File drop zone\",\r\n * formatBytes: (n) => `${(n / 1024 / 1024).toFixed(1)} MB`,\r\n * reasons: {\r\n * \"max-size\": \"too large\",\r\n * \"type\": \"wrong type\",\r\n * \"max-files\": \"limit reached\",\r\n * },\r\n * buildRejectMessage: (rejected) => `${rejected.length} file(s) rejected`,\r\n * addedSingle: (name) => `Added: ${name}`,\r\n * addedMultiple: (n) => `${n} files added`,\r\n * removeItem: (name) => `Remove ${name}`,\r\n * }} />\r\n *\r\n * ── INSIDE A <Field> (R-I.1, R-I.3) ──────────────────────────────────\r\n *\r\n * Wrap it to get a visible label, required marker and error message:\r\n *\r\n * <Field label=\"Facture\" required error={fileError} htmlFor=\"facture-file\">\r\n * <Dropzone value={…} onAdd={…} />\r\n * </Field>\r\n *\r\n * Field clones its child with `id`, `aria-invalid`, `aria-describedby` and\r\n * `error`. This component ACCEPTS all four and forwards them to the drop\r\n * <button> — which is the canonical accessibility handle, not the hidden\r\n * input. Before that forwarding existed the props were dropped silently:\r\n * Field's <label htmlFor> pointed at an id present on no element, so the\r\n * label named nothing and the button's accessible name was only the generic\r\n * \"Zone de dépôt de fichiers\"; and a host-set error rendered its message\r\n * while the control stayed valid to AT.\r\n *\r\n * `htmlFor` is worth passing explicitly when the field must be addressable\r\n * from outside — Field otherwise generates a `useId`-based id, which is\r\n * stable across renders but not predictable, so it cannot be targeted by\r\n * focusFieldByName after a failed submit.\r\n *\r\n * A11y note (R-Ar.1):\r\n * The drop target is a native <button>, not <div role=\"button\">.\r\n * Enter/Space activation, disabled state, and AT exposure come for\r\n * free from the platform. The hidden <input type=\"file\"> nested\r\n * inside the button is aria-hidden - the button is the canonical\r\n * accessibility handle.\r\n *\r\n * A11y note (R-A.1, live region):\r\n * Acceptances and rejections are announced via a polite live region.\r\n * Rejections are broken down by reason so SR users learn WHY without\r\n * needing a host-side toast. aria-relevant is set explicitly to\r\n * \"additions text\" — the spec default, but some SR + browser combos\r\n * (NVDA + Firefox notably) skip announcements without it.\r\n */\r\n\r\nexport type DropzoneFileStatus = \"ready\" | \"uploading\" | \"done\" | \"error\";\r\n\r\nexport interface DropzoneFile {\r\n id?: string | number | undefined;\r\n name: string;\r\n size?: number | undefined;\r\n progress?: number | undefined;\r\n status?: DropzoneFileStatus | undefined;\r\n error?: string | undefined;\r\n}\r\n\r\nexport type DropzoneRejectReason = \"max-size\" | \"type\" | \"max-files\";\r\n\r\nexport interface DropzoneRejection {\r\n file: File;\r\n reason: DropzoneRejectReason;\r\n}\r\n\r\nexport interface DropzoneReasons {\r\n \"max-size\"?: string | undefined;\r\n \"type\"?: string | undefined;\r\n \"max-files\"?: string | undefined;\r\n}\r\n\r\nexport interface DropzoneLabels {\r\n label?: React.ReactNode | undefined;\r\n ariaLabel?: string | undefined;\r\n formatBytes?: ((n: number) => string) | undefined;\r\n reasons?: DropzoneReasons | undefined;\r\n buildRejectMessage?: ((rejected: DropzoneRejection[], reasons: DropzoneReasons) => string) | undefined;\r\n addedSingle?: ((name: string) => string) | undefined;\r\n addedMultiple?: ((n: number) => string) | undefined;\r\n removeItem?: ((name: string) => string) | undefined;\r\n}\r\n\r\nexport interface DropzoneProps {\r\n accept?: string | undefined;\r\n maxSize?: number | undefined;\r\n maxFiles?: number | undefined;\r\n multiple?: boolean | undefined;\r\n disabled?: boolean | undefined;\r\n value?: DropzoneFile[] | undefined;\r\n onAdd?: ((files: File[]) => void) | undefined;\r\n onRemove?: ((id: string | number) => void) | undefined;\r\n onReject?: ((rejections: DropzoneRejection[]) => void) | undefined;\r\n // Legacy/back-compat per-prop overrides; win over labels.* when both passed.\r\n label?: React.ReactNode | undefined;\r\n \"aria-label\"?: string | undefined;\r\n hint?: React.ReactNode | undefined;\r\n labels?: DropzoneLabels | undefined;\r\n sx?: SxProps<Theme> | undefined;\r\n /**\r\n * Id for the drop <button>. Injected by Field from `htmlFor || name`, so\r\n * its <label htmlFor> resolves to a real element (R-I.1).\r\n *\r\n * Pass a stable value through Field's `htmlFor` when the field needs to be\r\n * addressable from outside the component — focusFieldByName resolves\r\n * `[id=…]` first, and that is how a failed submit reaches a Dropzone\r\n * (R-F.3).\r\n */\r\n id?: string | undefined;\r\n /**\r\n * Invalid state. Injected by Field as `error={hasError}`.\r\n *\r\n * Drives both the danger border and `aria-invalid`, so the state is\r\n * conveyed visually AND programmatically rather than by the helper text\r\n * alone (R-4.1 / R-I.3).\r\n */\r\n error?: boolean | undefined;\r\n /**\r\n * Injected by Field. Accepted explicitly so an aria-invalid passed without\r\n * `error` still lands — the two are separate props on Field's clone and a\r\n * host can legitimately set either.\r\n */\r\n \"aria-invalid\"?: boolean | \"true\" | \"false\" | undefined;\r\n /**\r\n * Injected by Field, pointing at its hint and/or error message. MERGED with\r\n * this component's own internal hint id rather than replacing it — both\r\n * descriptions are real and the user needs both.\r\n */\r\n \"aria-describedby\"?: string | undefined;\r\n}\r\n\r\n// ─── Default FR formatters ───────────────────────────────────────────\r\n\r\nfunction defaultFormatBytes(n: number): string {\r\n if (!Number.isFinite(n)) return \"—\";\r\n if (n < 1024) return `${n} o`;\r\n if (n < 1024 * 1024) return `${Math.round(n / 1024)} Ko`;\r\n return `${(n / 1024 / 1024).toFixed(1)} Mo`;\r\n}\r\n\r\nconst DEFAULT_REASONS = Object.freeze({\r\n \"max-size\": \"trop volumineux\",\r\n \"type\": \"type non autorisé\",\r\n \"max-files\": \"limite atteinte\",\r\n});\r\n\r\n/**\r\n * Build a SR-friendly French sentence summarising a rejection bundle.\r\n * Examples:\r\n * 1 file, max-size → \"1 fichier refusé : trop volumineux.\"\r\n * 3 files, mixed reasons → \"3 fichiers refusés : 1 trop volumineux,\r\n * 2 type non autorisé.\"\r\n */\r\nfunction defaultBuildRejectMessage(rejected: DropzoneRejection[], reasons: DropzoneReasons): string {\r\n const total = rejected.length;\r\n if (total === 0) return \"\";\r\n const noun = total > 1 ? \"fichiers refusés\" : \"fichier refusé\";\r\n const head = `${total} ${noun}`;\r\n\r\n const tally: Record<string, number> = {};\r\n for (const r of rejected) {\r\n const label = reasons[r.reason];\r\n if (!label) continue;\r\n tally[label] = (tally[label] || 0) + 1;\r\n }\r\n const buckets = Object.entries(tally);\r\n if (buckets.length === 0) return `${head}.`;\r\n\r\n if (buckets.length === 1) {\r\n const only = buckets[0];\r\n return only ? `${head} : ${only[0]}.` : `${head}.`;\r\n }\r\n const parts = buckets.map(([label, n]) => `${n} ${label}`);\r\n return `${head} : ${parts.join(\", \")}.`;\r\n}\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n label: \"Glissez vos fichiers ici ou cliquez pour parcourir\",\r\n ariaLabel: \"Zone de dépôt de fichiers\",\r\n formatBytes: defaultFormatBytes,\r\n reasons: DEFAULT_REASONS,\r\n buildRejectMessage: defaultBuildRejectMessage,\r\n addedSingle: (name: string) => `Fichier ajouté : ${name}`,\r\n addedMultiple: (n: number) => `${n} fichiers ajoutés`,\r\n removeItem: (name: string) => `Retirer ${name}`,\r\n});\r\n\r\n// ─── Helpers ──────────────────────────────────────────────────────────\r\n\r\nfunction matchesAccept(file: File, accept: string | undefined): boolean {\r\n if (!accept) return true;\r\n const tokens = accept.split(\",\").map((t) => t.trim()).filter(Boolean);\r\n if (tokens.length === 0) return true;\r\n return tokens.some((t) => {\r\n if (t.startsWith(\".\")) {\r\n return file.name.toLowerCase().endsWith(t.toLowerCase());\r\n }\r\n if (t.endsWith(\"/*\")) {\r\n const prefix = t.slice(0, -1); // \"image/\"\r\n return file.type.startsWith(prefix);\r\n }\r\n return file.type === t;\r\n });\r\n}\r\n\r\n// ─── Component ────────────────────────────────────────────────────────\r\n\r\nfunction Dropzone({\r\n accept,\r\n maxSize,\r\n maxFiles,\r\n multiple = false,\r\n disabled = false,\r\n value = [],\r\n onAdd,\r\n onRemove,\r\n onReject,\r\n // Legacy prop names: kept for back-compat. When the consumer passes\r\n // either, it wins over labels.* with the same role.\r\n label,\r\n \"aria-label\": ariaLabelProp,\r\n hint,\r\n labels,\r\n sx,\r\n // Injected by Field (R-I.1 / R-I.3). Forwarded to the drop <button>\r\n // below — see the \"INSIDE A <Field>\" note in the module docstring.\r\n id,\r\n error = false,\r\n \"aria-invalid\": ariaInvalidProp,\r\n \"aria-describedby\": ariaDescribedByProp,\r\n}: DropzoneProps) {\r\n const L = React.useMemo(() => {\r\n if (!labels) return DEFAULT_LABELS;\r\n return mergeLabels(DEFAULT_LABELS, {\r\n ...labels,\r\n /*\r\n * `reasons` is a NESTED dictionary and needs its own merge, at its own\r\n * level. Merging only at the top would replace the whole sub-object, so a\r\n * consumer overriding ONE reason would delete the others — and the\r\n * previous `|| {}` guarded the sub-object against being undefined without\r\n * guarding its VALUES, which is the same hazard one level down.\r\n */\r\n reasons: mergeLabels(DEFAULT_REASONS, labels.reasons),\r\n });\r\n }, [labels]);\r\n\r\n const dropLabel = label != null ? label : L.label;\r\n const ariaLabel = ariaLabelProp != null ? ariaLabelProp : L.ariaLabel;\r\n\r\n const inputRef = React.useRef<HTMLInputElement>(null);\r\n const liveRef = React.useRef<HTMLDivElement>(null);\r\n const [dragOver, setDragOver] = React.useState(false);\r\n // Stable, per-instance, collision-safe id for the hint association.\r\n const hintId = React.useId();\r\n\r\n /*\r\n * R-I.3 — invalid when Field said so via `error`, or when a host set the\r\n * attribute directly. Either alone is sufficient; Field passes both, other\r\n * callers may pass one.\r\n */\r\n const isInvalid =\r\n error || ariaInvalidProp === true || ariaInvalidProp === \"true\";\r\n\r\n /*\r\n * MERGED, not replaced. Field's value points at its hint and/or its error\r\n * message; hintId points at this component's own hint, rendered inside the\r\n * button. Dropping either would lose a real description — which is what\r\n * happened while this prop was not accepted at all.\r\n */\r\n const describedBy =\r\n [ariaDescribedByProp, hint ? hintId : null].filter(Boolean).join(\" \") ||\r\n undefined;\r\n\r\n const announce = (msg: string) => {\r\n if (liveRef.current) {\r\n // Setting via DOM (not state) avoids re-renders that would re-trigger\r\n // SR announcements for unrelated UI updates.\r\n liveRef.current.textContent = msg;\r\n }\r\n };\r\n\r\n const validate = React.useCallback(\r\n (incoming: File[]): { accepted: File[]; rejected: DropzoneRejection[] } => {\r\n const accepted: File[] = [];\r\n const rejected: DropzoneRejection[] = [];\r\n const remainingSlots = maxFiles != null ? Math.max(0, maxFiles - value.length) : Infinity;\r\n\r\n for (const file of incoming) {\r\n if (accepted.length >= remainingSlots) {\r\n rejected.push({ file, reason: \"max-files\" });\r\n continue;\r\n }\r\n if (maxSize != null && file.size > maxSize) {\r\n rejected.push({ file, reason: \"max-size\" });\r\n continue;\r\n }\r\n if (!matchesAccept(file, accept)) {\r\n rejected.push({ file, reason: \"type\" });\r\n continue;\r\n }\r\n accepted.push(file);\r\n if (!multiple) break; // single mode: only first valid\r\n }\r\n return { accepted, rejected };\r\n },\r\n [accept, maxSize, maxFiles, multiple, value.length]\r\n );\r\n\r\n const handleFiles = (fileList: FileList | File[] | null | undefined) => {\r\n if (disabled) return;\r\n const files = Array.from(fileList || []);\r\n if (files.length === 0) return;\r\n const { accepted, rejected } = validate(files);\r\n if (accepted.length > 0) {\r\n onAdd?.(accepted);\r\n const [first] = accepted;\r\n announce(\r\n accepted.length === 1 && first\r\n ? L.addedSingle(first.name)\r\n : L.addedMultiple(accepted.length)\r\n );\r\n }\r\n if (rejected.length > 0) {\r\n onReject?.(rejected);\r\n announce(L.buildRejectMessage(rejected, L.reasons));\r\n }\r\n };\r\n\r\n const onInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n handleFiles(e.target.files);\r\n // reset so the same file can be re-added after removal\r\n e.target.value = \"\";\r\n };\r\n\r\n const openPicker = () => {\r\n if (disabled) return;\r\n inputRef.current?.click();\r\n };\r\n\r\n const onDragOver = (e: React.DragEvent) => {\r\n if (disabled) return;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (!dragOver) setDragOver(true);\r\n };\r\n const onDragLeave = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n // Only clear when leaving the wrapper itself, not crossing a child.\r\n if (e.currentTarget.contains(e.relatedTarget as Node | null)) return;\r\n setDragOver(false);\r\n };\r\n const onDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setDragOver(false);\r\n if (disabled) return;\r\n handleFiles(e.dataTransfer?.files);\r\n };\r\n\r\n /*\r\n * Border colour precedence: dragOver > invalid > resting.\r\n *\r\n * Drag feedback wins deliberately — while a file is over the target the\r\n * user needs to know the drop will land, and the invalid state is about to\r\n * be resolved by that very drop.\r\n */\r\n const borderColor = dragOver\r\n ? \"var(--accent)\"\r\n : isInvalid\r\n ? \"var(--danger)\"\r\n : \"var(--border-strong)\";\r\n\r\n return (\r\n <Box sx={{ width: \"100%\", ...sx }}>\r\n <Box\r\n component=\"button\"\r\n type=\"button\"\r\n {...(id !== undefined ? { id } : {})}\r\n disabled={disabled}\r\n aria-label={ariaLabel}\r\n {...(isInvalid ? { \"aria-invalid\": true } : {})}\r\n aria-describedby={describedBy}\r\n onClick={openPicker}\r\n onDragOver={onDragOver}\r\n onDragEnter={onDragOver}\r\n onDragLeave={onDragLeave}\r\n onDrop={onDrop}\r\n sx={{\r\n // <button> reset - neutralise UA defaults so the drop target\r\n // visually matches the previous Box-based design.\r\n font: \"inherit\",\r\n color: \"inherit\",\r\n width: \"100%\",\r\n // Layout\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: 1,\r\n padding: \"var(--s-5) var(--s-4)\",\r\n background: dragOver ? \"var(--accent-soft)\" : \"var(--bg-subtle)\",\r\n border: `2px dashed ${borderColor}`,\r\n borderRadius: \"var(--r-lg)\",\r\n cursor: disabled ? \"not-allowed\" : \"pointer\",\r\n opacity: disabled ? 0.55 : 1,\r\n textAlign: \"center\",\r\n transition:\r\n \"background var(--duration-fast, 80ms) ease, border-color var(--duration-fast, 80ms) ease\",\r\n \"&:hover\": (!disabled && !dragOver)\r\n ? { background: \"var(--bg-hover)\", borderColor: \"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 }}\r\n >\r\n <Box\r\n aria-hidden=\"true\"\r\n sx={{\r\n color: dragOver\r\n ? \"var(--accent)\"\r\n : isInvalid\r\n ? \"var(--danger)\"\r\n : \"var(--fg-muted)\",\r\n display: \"inline-flex\",\r\n }}\r\n >\r\n <CloudUploadIcon style={{ fontSize: 32 }} />\r\n </Box>\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n }}\r\n >\r\n {dropLabel}\r\n </Box>\r\n {hint && (\r\n <Box\r\n id={hintId}\r\n sx={{ fontSize: \"var(--text-xs)\", color: \"var(--fg-muted)\" }}\r\n >\r\n {hint}\r\n </Box>\r\n )}\r\n {/* visually-hidden, accessibility-tree-hidden native input.\r\n The wrapping <button> is the canonical a11y handle; the input\r\n is just the bridge to the OS file picker.\r\n C2 — clipPath: inset(50%) (modern) replaces the deprecated\r\n clip: rect(0,0,0,0) so a strict CSP that disables `clip`\r\n cannot leak the input on screen. */}\r\n <input\r\n ref={inputRef}\r\n type=\"file\"\r\n accept={accept}\r\n multiple={multiple}\r\n disabled={disabled}\r\n onChange={onInputChange}\r\n tabIndex={-1}\r\n aria-hidden=\"true\"\r\n style={{\r\n position: \"absolute\",\r\n width: 1, height: 1, padding: 0, margin: -1,\r\n overflow: \"hidden\", clipPath: \"inset(50%)\", border: 0,\r\n }}\r\n />\r\n </Box>\r\n\r\n {/* Live region — newly-added file announcements + rejection summary.\r\n C3 — aria-relevant explicit (defense-in-depth for NVDA+Firefox). */}\r\n <Box\r\n ref={liveRef}\r\n role=\"status\"\r\n aria-live=\"polite\"\r\n aria-relevant=\"additions text\"\r\n className=\"pui-sr-only\"\r\n />\r\n\r\n {/* file list */}\r\n {value.length > 0 && (\r\n <Box\r\n component=\"ul\"\r\n /* Explicit role — several screen readers strip list semantics when\r\n CSS list-style:none is applied. Same reason FormErrorSummary sets\r\n it. */\r\n role=\"list\"\r\n sx={{\r\n listStyle: \"none\",\r\n padding: 0,\r\n margin: \"var(--s-3) 0 0\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: \"var(--s-1)\",\r\n }}\r\n >\r\n {value.map((f, i) => {\r\n const id = f.id ?? f.name ?? i;\r\n const status = f.status || (f.error ? \"error\" : f.progress === 100 ? \"done\" : f.progress != null ? \"uploading\" : \"ready\");\r\n const color =\r\n status === \"error\" ? \"var(--danger)\" :\r\n status === \"done\" ? \"var(--success)\" : \"var(--fg-muted)\";\r\n return (\r\n <Box\r\n component=\"li\"\r\n role=\"listitem\"\r\n key={id}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: \"var(--s-2)\",\r\n padding: \"var(--s-2) var(--s-3)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-md)\",\r\n }}\r\n >\r\n <Box aria-hidden=\"true\" sx={{ color, display: \"inline-flex\" }}>\r\n <InsertDriveFileIcon fontSize=\"small\" />\r\n </Box>\r\n <Box sx={{ flex: 1, minWidth: 0 }}>\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n fontWeight: \"var(--fw-medium)\",\r\n color: \"var(--fg)\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {f.name}\r\n </Box>\r\n <Box\r\n sx={{\r\n fontSize: \"var(--text-xs)\",\r\n color: status === \"error\" ? \"var(--danger)\" : \"var(--fg-subtle)\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n }}\r\n >\r\n {status === \"error\" && f.error\r\n ? f.error\r\n : `${L.formatBytes(f.size ?? NaN)}${f.progress != null ? ` · ${Math.round(f.progress)}%` : \"\"}`}\r\n </Box>\r\n </Box>\r\n {onRemove && (\r\n <IconButton\r\n size=\"small\"\r\n onClick={(e) => { e.stopPropagation(); onRemove(id); }}\r\n aria-label={L.removeItem(f.name)}\r\n sx={{ color: \"var(--fg-muted)\" }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n )}\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default Dropzone;\r\n"],"mappings":"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","ignoreList":[]}
@@ -20,16 +20,16 @@ import type { ButtonProps } from "./Button";
20
20
  export type EmptyStateVariant = "initial" | "filtered" | "error";
21
21
  export interface EmptyStateAction {
22
22
  label: React.ReactNode;
23
- onClick?: () => void;
24
- icon?: React.ReactNode;
25
- variant?: ButtonProps["variant"];
23
+ onClick?: (() => void) | undefined;
24
+ icon?: React.ReactNode | undefined;
25
+ variant?: ButtonProps["variant"] | undefined;
26
26
  }
27
27
  export interface EmptyStateProps {
28
- variant?: EmptyStateVariant;
29
- icon?: React.ReactNode;
28
+ variant?: EmptyStateVariant | undefined;
29
+ icon?: React.ReactNode | undefined;
30
30
  title: React.ReactNode;
31
- description?: React.ReactNode;
32
- action?: EmptyStateAction;
31
+ description?: React.ReactNode | undefined;
32
+ action?: EmptyStateAction | undefined;
33
33
  }
34
34
  declare function EmptyState({ variant, icon, title, description, action, }: EmptyStateProps): React.JSX.Element;
35
35
  export default EmptyState;
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,iBAAS,UAAU,CAAC,EAClB,OAAmB,EACnB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,MAAM,GACP,EAAE,eAAe,qBA0EjB;AAED,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/EmptyState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C,MAAM,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACvC;AAED,iBAAS,UAAU,CAAC,EAClB,OAAmB,EACnB,IAAI,EACJ,KAAK,EACL,WAAW,EACX,MAAM,GACP,EAAE,eAAe,qBA0EjB;AAED,eAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyState.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Typography","_Button","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EmptyState","_ref","_ref$variant","variant","icon","title","description","action","variantStyle","initial","iconColor","filtered","error","buttonVariant","jsxs","role","undefined","sx","display","flexDirection","alignItems","textAlign","padding","background","border","borderRadius","children","jsx","width","height","placeItems","color","marginBottom","fontSize","component","fontWeight","lineHeight","maxWidth","onClick","label","_default","exports"],"sources":["../../../src/lib/v2/components/EmptyState.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport Button from \"./Button\";\r\nimport type { ButtonProps } from \"./Button\";\r\n\r\n/**\r\n * EmptyState — Portnet UI v2\r\n *\r\n * Charter §04.3 · 3 variants required:\r\n * - initial → primary CTA (e.g. \"+ Nouveau titre\")\r\n * - filtered → \"Réinitialiser filtres\"\r\n * - error → \"Réessayer\"\r\n *\r\n * Anti-pattern: generic clipart illustration. A single icon suffices (R-Em.2).\r\n *\r\n * <EmptyState\r\n * icon={<DescriptionIcon />}\r\n * title=\"Aucun titre d'importation\"\r\n * description=\"Créez votre premier titre pour commencer.\"\r\n * action={{ label: \"Nouveau titre\", onClick: createNew }}\r\n * />\r\n */\r\n\r\nexport type EmptyStateVariant = \"initial\" | \"filtered\" | \"error\";\r\n\r\nexport interface EmptyStateAction {\r\n label: React.ReactNode;\r\n onClick?: () => void;\r\n icon?: React.ReactNode;\r\n variant?: ButtonProps[\"variant\"];\r\n}\r\n\r\nexport interface EmptyStateProps {\r\n variant?: EmptyStateVariant;\r\n icon?: React.ReactNode;\r\n title: React.ReactNode;\r\n description?: React.ReactNode;\r\n action?: EmptyStateAction;\r\n}\r\n\r\nfunction EmptyState({\r\n variant = \"initial\",\r\n icon,\r\n title,\r\n description,\r\n action,\r\n}: EmptyStateProps) {\r\n const variantStyle = {\r\n initial: { iconColor: \"var(--fg-subtle)\" },\r\n filtered: { iconColor: \"var(--fg-subtle)\" },\r\n error: { iconColor: \"var(--danger)\" },\r\n }[variant] || { iconColor: \"var(--fg-subtle)\" };\r\n\r\n const buttonVariant = variant === \"error\" ? \"secondary\" : \"primary\";\r\n\r\n return (\r\n <Box\r\n role={variant === \"error\" ? \"alert\" : undefined}\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n padding: \"var(--s-9) var(--s-6)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n {icon && (\r\n <Box\r\n sx={{\r\n // Icon halo size — visual element dimensions, not spacing.\r\n // Intentionally literal (not promoted to a spacing token).\r\n width: 48,\r\n height: 48,\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--bg-subtle)\",\r\n display: \"grid\",\r\n placeItems: \"center\",\r\n color: variantStyle.iconColor,\r\n marginBottom: \"var(--s-3)\",\r\n \"& svg\": { fontSize: 24 }, // intrinsic icon size\r\n }}\r\n >\r\n {icon}\r\n </Box>\r\n )}\r\n <Typography\r\n component=\"h3\"\r\n sx={{\r\n fontSize: \"var(--text-h4)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n marginBottom: \"var(--s-1)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n }}\r\n >\r\n {title}\r\n </Typography>\r\n {description && (\r\n <Typography\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n // Readable measure (~50–60ch). Not a spacing-scale value.\r\n maxWidth: 360,\r\n marginBottom: \"var(--s-3)\",\r\n }}\r\n >\r\n {description}\r\n </Typography>\r\n )}\r\n {action && (\r\n <Button variant={action.variant || buttonVariant} icon={action.icon} onClick={action.onClick}>\r\n {action.label}\r\n </Button>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default EmptyState;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EmptyState.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_Typography","_Button","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","EmptyState","_ref","_ref$variant","variant","icon","title","description","action","variantStyle","initial","iconColor","filtered","error","buttonVariant","jsxs","role","undefined","sx","display","flexDirection","alignItems","textAlign","padding","background","border","borderRadius","children","jsx","width","height","placeItems","color","marginBottom","fontSize","component","fontWeight","lineHeight","maxWidth","onClick","label","_default","exports"],"sources":["../../../src/lib/v2/components/EmptyState.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport Button from \"./Button\";\r\nimport type { ButtonProps } from \"./Button\";\r\n\r\n/**\r\n * EmptyState — Portnet UI v2\r\n *\r\n * Charter §04.3 · 3 variants required:\r\n * - initial → primary CTA (e.g. \"+ Nouveau titre\")\r\n * - filtered → \"Réinitialiser filtres\"\r\n * - error → \"Réessayer\"\r\n *\r\n * Anti-pattern: generic clipart illustration. A single icon suffices (R-Em.2).\r\n *\r\n * <EmptyState\r\n * icon={<DescriptionIcon />}\r\n * title=\"Aucun titre d'importation\"\r\n * description=\"Créez votre premier titre pour commencer.\"\r\n * action={{ label: \"Nouveau titre\", onClick: createNew }}\r\n * />\r\n */\r\n\r\nexport type EmptyStateVariant = \"initial\" | \"filtered\" | \"error\";\r\n\r\nexport interface EmptyStateAction {\r\n label: React.ReactNode;\r\n onClick?: (() => void) | undefined;\r\n icon?: React.ReactNode | undefined;\r\n variant?: ButtonProps[\"variant\"] | undefined;\r\n}\r\n\r\nexport interface EmptyStateProps {\r\n variant?: EmptyStateVariant | undefined;\r\n icon?: React.ReactNode | undefined;\r\n title: React.ReactNode;\r\n description?: React.ReactNode | undefined;\r\n action?: EmptyStateAction | undefined;\r\n}\r\n\r\nfunction EmptyState({\r\n variant = \"initial\",\r\n icon,\r\n title,\r\n description,\r\n action,\r\n}: EmptyStateProps) {\r\n const variantStyle = {\r\n initial: { iconColor: \"var(--fg-subtle)\" },\r\n filtered: { iconColor: \"var(--fg-subtle)\" },\r\n error: { iconColor: \"var(--danger)\" },\r\n }[variant] || { iconColor: \"var(--fg-subtle)\" };\r\n\r\n const buttonVariant = variant === \"error\" ? \"secondary\" : \"primary\";\r\n\r\n return (\r\n <Box\r\n role={variant === \"error\" ? \"alert\" : undefined}\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n padding: \"var(--s-9) var(--s-6)\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n }}\r\n >\r\n {icon && (\r\n <Box\r\n sx={{\r\n // Icon halo size — visual element dimensions, not spacing.\r\n // Intentionally literal (not promoted to a spacing token).\r\n width: 48,\r\n height: 48,\r\n borderRadius: \"var(--r-full)\",\r\n background: \"var(--bg-subtle)\",\r\n display: \"grid\",\r\n placeItems: \"center\",\r\n color: variantStyle.iconColor,\r\n marginBottom: \"var(--s-3)\",\r\n \"& svg\": { fontSize: 24 }, // intrinsic icon size\r\n }}\r\n >\r\n {icon}\r\n </Box>\r\n )}\r\n <Typography\r\n component=\"h3\"\r\n sx={{\r\n fontSize: \"var(--text-h4)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n color: \"var(--fg)\",\r\n marginBottom: \"var(--s-1)\",\r\n lineHeight: \"var(--lh-snug)\",\r\n }}\r\n >\r\n {title}\r\n </Typography>\r\n {description && (\r\n <Typography\r\n sx={{\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n // Readable measure (~50–60ch). Not a spacing-scale value.\r\n maxWidth: 360,\r\n marginBottom: \"var(--s-3)\",\r\n }}\r\n >\r\n {description}\r\n </Typography>\r\n )}\r\n {action && (\r\n <Button variant={action.variant || buttonVariant} icon={action.icon} onClick={action.onClick}>\r\n {action.label}\r\n </Button>\r\n )}\r\n </Box>\r\n );\r\n}\r\n\r\nexport default EmptyState;\r\n"],"mappings":"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","ignoreList":[]}
@@ -2,20 +2,20 @@ import * as React from "react";
2
2
  import type { IconButtonProps } from "@mui/material/IconButton";
3
3
  export type FavoriteToggleSize = "xs" | "sm" | "md" | "lg";
4
4
  export interface FavoriteToggleLabels {
5
- addFavorite?: string;
6
- removeFavorite?: string;
5
+ addFavorite?: string | undefined;
6
+ removeFavorite?: string | undefined;
7
7
  }
8
8
  export interface FavoriteToggleProps extends Omit<IconButtonProps, "onChange" | "size"> {
9
9
  /** Current follow state. */
10
- pressed?: boolean;
10
+ pressed?: boolean | undefined;
11
11
  /** Activation handler: (nextPressed, event) => void. */
12
- onChange?: (nextPressed: boolean, event: React.MouseEvent<HTMLButtonElement>) => void;
12
+ onChange?: ((nextPressed: boolean, event: React.MouseEvent<HTMLButtonElement>) => void) | undefined;
13
13
  /** Touch-target size. */
14
- size?: FavoriteToggleSize;
14
+ size?: FavoriteToggleSize | undefined;
15
15
  /** Localised action labels (FR default; EN/AR supported). */
16
- labels?: FavoriteToggleLabels;
16
+ labels?: FavoriteToggleLabels | undefined;
17
17
  /** Explicit accessible name; overrides the labels-derived one. */
18
- "aria-label"?: string;
18
+ "aria-label"?: string | undefined;
19
19
  }
20
20
  declare const FavoriteToggle: React.ForwardRefExoticComponent<Omit<FavoriteToggleProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
21
21
  export default FavoriteToggle;
@@ -1 +1 @@
1
- {"version":3,"file":"FavoriteToggle.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FavoriteToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AA6ChE,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAgB3D,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,CAAC;IAClD,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACtF,yBAAyB;IACzB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,6DAA6D;IAC7D,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,QAAA,MAAM,cAAc,4GAoDnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"FavoriteToggle.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/FavoriteToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AA8ChE,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAgB3D,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,MAAM,CAAC;IAClD,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACpG,yBAAyB;IACzB,IAAI,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACtC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC1C,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,QAAA,MAAM,cAAc,4GAoDnB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -9,6 +9,7 @@ var React = _interopRequireWildcard(require("react"));
9
9
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
10
10
  var _StarRounded = _interopRequireDefault(require("@mui/icons-material/StarRounded"));
11
11
  var _StarBorderRounded = _interopRequireDefault(require("@mui/icons-material/StarBorderRounded"));
12
+ var _mergeLabels = require("../utils/mergeLabels");
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  var _excluded = ["pressed", "onChange", "size", "disabled", "labels", "sx", "aria-label"];
14
15
  /**
@@ -91,7 +92,7 @@ var FavoriteToggle = /*#__PURE__*/React.forwardRef(function FavoriteToggle(_ref,
91
92
  sx = _ref.sx,
92
93
  ariaLabel = _ref["aria-label"],
93
94
  rest = _objectWithoutProperties(_ref, _excluded);
94
- var L = labels ? _objectSpread(_objectSpread({}, DEFAULT_LABELS), labels) : DEFAULT_LABELS;
95
+ var L = (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, labels);
95
96
  var dims = SIZE_MAP[size] || SIZE_MAP.md;
96
97
  // Toggle-button convention: the accessible name describes the ACTION
97
98
  // activation performs; aria-pressed conveys the current state. Hosts can
@@ -1 +1 @@
1
- {"version":3,"file":"FavoriteToggle.js","names":["React","_interopRequireWildcard","require","_IconButton","_interopRequireDefault","_StarRounded","_StarBorderRounded","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","DEFAULT_LABELS","freeze","addFavorite","removeFavorite","SIZE_MAP","xs","box","glyph","sm","md","lg","FavoriteToggle","forwardRef","_ref","ref","_ref$pressed","pressed","onChange","_ref$size","size","disabled","labels","sx","ariaLabel","rest","L","dims","computedAria","handleClick","e","Star","StarRoundedIcon","StarBorderRoundedIcon","jsx","onClick","width","height","fontSize","color","boxShadow","transition","children","_default","exports"],"sources":["../../../src/lib/v2/components/FavoriteToggle.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport type { IconButtonProps } from \"@mui/material/IconButton\";\r\nimport StarRoundedIcon from \"@mui/icons-material/StarRounded\";\r\nimport StarBorderRoundedIcon from \"@mui/icons-material/StarBorderRounded\";\r\n\r\n/**\r\n * FavoriteToggle - Portnet UI v2\r\n *\r\n * Charter §03 · presentational ☆/★ follow (\"suivi\") toggle. A CONTROLLED\r\n * `<button aria-pressed>` with a star glyph. The glyph is decorative\r\n * (MUI SvgIcon is aria-hidden by default); state is conveyed by\r\n * `aria-pressed` AND by glyph SHAPE (outline ☆ vs filled ★), so it never\r\n * relies on colour alone (WCAG 1.4.1 Use of Color).\r\n *\r\n * Presentational and provider-FREE by design — it keeps the leaf-vs-\r\n * personalization boundary clean and stays usable outside the foundation.\r\n * Wire it to the favorites capability:\r\n *\r\n * const { isFavorite, toggle } = useIsFavorite(\"ti:list\", row.id);\r\n * <FavoriteToggle pressed={isFavorite} onChange={toggle} size=\"sm\" />\r\n *\r\n * …or drive it from any state:\r\n *\r\n * <FavoriteToggle pressed={on} onChange={(next) => setOn(next)} />\r\n *\r\n * Touch target: md (default) = 44px (WCAG 2.5.5 AAA); sm = 32px for dense\r\n * DataGrid rows (meets 2.5.8 AA ≥ 24px, with headroom); lg = 48px; xs =\r\n * 24px — the WCAG 2.5.8 AA floor exactly, with NO headroom left. Reserve\r\n * xs for genuinely space-constrained columns where sm's 32px still\r\n * doesn't fit (e.g. a compact favorites column under a table's\r\n * table-layout:auto, where an explicit column width can't shrink the\r\n * cell below the toggle's own intrinsic box) — don't reach for it over\r\n * sm by default. The toggle renders itself unconditionally; the DataGrid\r\n * follow column (makeFavoriteColumn) wraps it with the Gmail-style hover\r\n * reveal for unfollowed rows.\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <FavoriteToggle labels={{ addFavorite: \"Follow\",\r\n * removeFavorite: \"Unfollow\" }} />\r\n */\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n addFavorite: \"Suivre\",\r\n removeFavorite: \"Ne plus suivre\",\r\n});\r\n\r\nexport type FavoriteToggleSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface SizeDims {\r\n box: number;\r\n glyph: number;\r\n}\r\n\r\n// Box = interactive hit area (px, like OverflowMenu's minWidth); glyph =\r\n// icon font-size inherited by the SvgIcon via fontSize=\"inherit\".\r\nconst SIZE_MAP: Record<FavoriteToggleSize, SizeDims> = Object.freeze({\r\n xs: Object.freeze({ box: 24, glyph: 16 }),\r\n sm: Object.freeze({ box: 32, glyph: 20 }),\r\n md: Object.freeze({ box: 44, glyph: 24 }),\r\n lg: Object.freeze({ box: 48, glyph: 28 }),\r\n});\r\n\r\nexport interface FavoriteToggleLabels {\r\n addFavorite?: string;\r\n removeFavorite?: string;\r\n}\r\n\r\nexport interface FavoriteToggleProps\r\n extends Omit<IconButtonProps, \"onChange\" | \"size\"> {\r\n /** Current follow state. */\r\n pressed?: boolean;\r\n /** Activation handler: (nextPressed, event) => void. */\r\n onChange?: (nextPressed: boolean, event: React.MouseEvent<HTMLButtonElement>) => void;\r\n /** Touch-target size. */\r\n size?: FavoriteToggleSize;\r\n /** Localised action labels (FR default; EN/AR supported). */\r\n labels?: FavoriteToggleLabels;\r\n /** Explicit accessible name; overrides the labels-derived one. */\r\n \"aria-label\"?: string;\r\n}\r\n\r\nconst FavoriteToggle = React.forwardRef<HTMLButtonElement, FavoriteToggleProps>(\r\n function FavoriteToggle(\r\n {\r\n pressed = false,\r\n onChange,\r\n size = \"md\",\r\n disabled,\r\n labels,\r\n sx,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n },\r\n ref\r\n ) {\r\n const L = labels ? { ...DEFAULT_LABELS, ...labels } : DEFAULT_LABELS;\r\n const dims = SIZE_MAP[size] || SIZE_MAP.md;\r\n // Toggle-button convention: the accessible name describes the ACTION\r\n // activation performs; aria-pressed conveys the current state. Hosts can\r\n // override with a richer per-row name via the `aria-label` prop.\r\n const computedAria = ariaLabel || (pressed ? L.removeFavorite : L.addFavorite);\r\n\r\n const handleClick = function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n if (disabled) return;\r\n if (typeof onChange === \"function\") onChange(!pressed, e);\r\n };\r\n\r\n const Star = pressed ? StarRoundedIcon : StarBorderRoundedIcon;\r\n\r\n return (\r\n <IconButton\r\n ref={ref}\r\n onClick={handleClick}\r\n disabled={disabled}\r\n aria-pressed={!!pressed}\r\n aria-label={computedAria}\r\n sx={{\r\n width: dims.box,\r\n height: dims.box,\r\n fontSize: dims.glyph,\r\n color: pressed ? \"var(--accent)\" : \"var(--fg-muted)\",\r\n \"&:hover\": { color: pressed ? \"var(--accent)\" : \"var(--fg)\" },\r\n // Reuse the canonical focus halo token (same as Switch / R-AI.1).\r\n \"&.Mui-focusVisible\": { boxShadow: \"var(--shadow-focus)\" },\r\n \"@media (prefers-reduced-motion: reduce)\": { transition: \"none\" },\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n <Star fontSize=\"inherit\" />\r\n </IconButton>\r\n );\r\n }\r\n);\r\n\r\nexport default FavoriteToggle;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FavoriteToggle.js","names":["React","_interopRequireWildcard","require","_IconButton","_interopRequireDefault","_StarRounded","_StarBorderRounded","_mergeLabels","_jsxRuntime","_excluded","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","DEFAULT_LABELS","freeze","addFavorite","removeFavorite","SIZE_MAP","xs","box","glyph","sm","md","lg","FavoriteToggle","forwardRef","_ref","ref","_ref$pressed","pressed","onChange","_ref$size","size","disabled","labels","sx","ariaLabel","rest","L","mergeLabels","dims","computedAria","handleClick","e","Star","StarRoundedIcon","StarBorderRoundedIcon","jsx","onClick","width","height","fontSize","color","boxShadow","transition","children","_default","exports"],"sources":["../../../src/lib/v2/components/FavoriteToggle.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport type { IconButtonProps } from \"@mui/material/IconButton\";\r\nimport StarRoundedIcon from \"@mui/icons-material/StarRounded\";\r\nimport StarBorderRoundedIcon from \"@mui/icons-material/StarBorderRounded\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * FavoriteToggle - Portnet UI v2\r\n *\r\n * Charter §03 · presentational ☆/★ follow (\"suivi\") toggle. A CONTROLLED\r\n * `<button aria-pressed>` with a star glyph. The glyph is decorative\r\n * (MUI SvgIcon is aria-hidden by default); state is conveyed by\r\n * `aria-pressed` AND by glyph SHAPE (outline ☆ vs filled ★), so it never\r\n * relies on colour alone (WCAG 1.4.1 Use of Color).\r\n *\r\n * Presentational and provider-FREE by design — it keeps the leaf-vs-\r\n * personalization boundary clean and stays usable outside the foundation.\r\n * Wire it to the favorites capability:\r\n *\r\n * const { isFavorite, toggle } = useIsFavorite(\"ti:list\", row.id);\r\n * <FavoriteToggle pressed={isFavorite} onChange={toggle} size=\"sm\" />\r\n *\r\n * …or drive it from any state:\r\n *\r\n * <FavoriteToggle pressed={on} onChange={(next) => setOn(next)} />\r\n *\r\n * Touch target: md (default) = 44px (WCAG 2.5.5 AAA); sm = 32px for dense\r\n * DataGrid rows (meets 2.5.8 AA ≥ 24px, with headroom); lg = 48px; xs =\r\n * 24px — the WCAG 2.5.8 AA floor exactly, with NO headroom left. Reserve\r\n * xs for genuinely space-constrained columns where sm's 32px still\r\n * doesn't fit (e.g. a compact favorites column under a table's\r\n * table-layout:auto, where an explicit column width can't shrink the\r\n * cell below the toggle's own intrinsic box) — don't reach for it over\r\n * sm by default. The toggle renders itself unconditionally; the DataGrid\r\n * follow column (makeFavoriteColumn) wraps it with the Gmail-style hover\r\n * reveal for unfollowed rows.\r\n *\r\n * Localisation (FR / EN / AR):\r\n * <FavoriteToggle labels={{ addFavorite: \"Follow\",\r\n * removeFavorite: \"Unfollow\" }} />\r\n */\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n addFavorite: \"Suivre\",\r\n removeFavorite: \"Ne plus suivre\",\r\n});\r\n\r\nexport type FavoriteToggleSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\r\n\r\ninterface SizeDims {\r\n box: number;\r\n glyph: number;\r\n}\r\n\r\n// Box = interactive hit area (px, like OverflowMenu's minWidth); glyph =\r\n// icon font-size inherited by the SvgIcon via fontSize=\"inherit\".\r\nconst SIZE_MAP: Record<FavoriteToggleSize, SizeDims> = Object.freeze({\r\n xs: Object.freeze({ box: 24, glyph: 16 }),\r\n sm: Object.freeze({ box: 32, glyph: 20 }),\r\n md: Object.freeze({ box: 44, glyph: 24 }),\r\n lg: Object.freeze({ box: 48, glyph: 28 }),\r\n});\r\n\r\nexport interface FavoriteToggleLabels {\r\n addFavorite?: string | undefined;\r\n removeFavorite?: string | undefined;\r\n}\r\n\r\nexport interface FavoriteToggleProps\r\n extends Omit<IconButtonProps, \"onChange\" | \"size\"> {\r\n /** Current follow state. */\r\n pressed?: boolean | undefined;\r\n /** Activation handler: (nextPressed, event) => void. */\r\n onChange?: ((nextPressed: boolean, event: React.MouseEvent<HTMLButtonElement>) => void) | undefined;\r\n /** Touch-target size. */\r\n size?: FavoriteToggleSize | undefined;\r\n /** Localised action labels (FR default; EN/AR supported). */\r\n labels?: FavoriteToggleLabels | undefined;\r\n /** Explicit accessible name; overrides the labels-derived one. */\r\n \"aria-label\"?: string | undefined;\r\n}\r\n\r\nconst FavoriteToggle = React.forwardRef<HTMLButtonElement, FavoriteToggleProps>(\r\n function FavoriteToggle(\r\n {\r\n pressed = false,\r\n onChange,\r\n size = \"md\",\r\n disabled,\r\n labels,\r\n sx,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n },\r\n ref\r\n ) {\r\n const L = mergeLabels(DEFAULT_LABELS, labels);\r\n const dims = SIZE_MAP[size] || SIZE_MAP.md;\r\n // Toggle-button convention: the accessible name describes the ACTION\r\n // activation performs; aria-pressed conveys the current state. Hosts can\r\n // override with a richer per-row name via the `aria-label` prop.\r\n const computedAria = ariaLabel || (pressed ? L.removeFavorite : L.addFavorite);\r\n\r\n const handleClick = function handleClick(e: React.MouseEvent<HTMLButtonElement>) {\r\n if (disabled) return;\r\n if (typeof onChange === \"function\") onChange(!pressed, e);\r\n };\r\n\r\n const Star = pressed ? StarRoundedIcon : StarBorderRoundedIcon;\r\n\r\n return (\r\n <IconButton\r\n ref={ref}\r\n onClick={handleClick}\r\n disabled={disabled}\r\n aria-pressed={!!pressed}\r\n aria-label={computedAria}\r\n sx={{\r\n width: dims.box,\r\n height: dims.box,\r\n fontSize: dims.glyph,\r\n color: pressed ? \"var(--accent)\" : \"var(--fg-muted)\",\r\n \"&:hover\": { color: pressed ? \"var(--accent)\" : \"var(--fg)\" },\r\n // Reuse the canonical focus halo token (same as Switch / R-AI.1).\r\n \"&.Mui-focusVisible\": { boxShadow: \"var(--shadow-focus)\" },\r\n \"@media (prefers-reduced-motion: reduce)\": { transition: \"none\" },\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n <Star fontSize=\"inherit\" />\r\n </IconButton>\r\n );\r\n }\r\n);\r\n\r\nexport default FavoriteToggle;\r\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,12 @@ import type { SxProps, Theme } from "@mui/material/styles";
12
12
  * R-I.2 — Required adds the asterisk + `aria-required`.
13
13
  * R-I.3 — Error: `aria-invalid` + `aria-describedby` linking the message.
14
14
  * Field MERGES with the child's existing `aria-describedby` so a
15
- * consumer-supplied external help id is never lost.
15
+ * consumer-supplied external help id is never lost. The message
16
+ * itself is rendered by the shared `FieldError` primitive, which
17
+ * carries the R-4.1 MUST icon (gap G-18) — previously this component
18
+ * rendered a bare red `FormHelperText` with no icon, so the canonical
19
+ * field wrapper did not satisfy a MUST and every module inherited the
20
+ * gap on every form.
16
21
  * R-I.4 — Validation in `blur`, not `change` (caller's responsibility).
17
22
  * R-I.6 — Hint visible above error; never both at once.
18
23
  *
@@ -30,29 +35,87 @@ import type { SxProps, Theme } from "@mui/material/styles";
30
35
  * <Field label="Genre" group error={errors.genre}>
31
36
  * <RadioGroup … />
32
37
  * </Field>
38
+ *
39
+ * ── LARGEUR SEMANTIQUE (gap G-H) ──────────────────────────────
40
+ *
41
+ * `width` rattache le champ a l'un des cinq gabarits imposes par la section
42
+ * « Form Field Width & Layout Standards » des Platform Mandatory UX Patterns.
43
+ * Le standard y interdit explicitement les « arbitrary input field widths » et
44
+ * les « jagged alignment fields within forms », et impose de mapper chaque
45
+ * champ a un gabarit d'apres sa contrainte de CARACTERES :
46
+ *
47
+ * xs 1 a 5 caracteres code postal, CVV, age
48
+ * s 6 a 15 telephone, montant, date, identifiant court
49
+ * m 16 a 60 nom, courriel, ville, liste simple
50
+ * l 61 a 256 adresse, recherche complexe, longue liste
51
+ * xl 257 et plus zone de texte, description, editeur
52
+ *
53
+ * POURQUOI SUR `Field` ET NON SUR CHAQUE CONTROLE. Le gabarit est une
54
+ * contrainte de MISE EN PAGE, pas une propriete de l'input : c'est la boite du
55
+ * champ - libelle, controle, indication, erreur - qui doit etre bornee, sinon
56
+ * le message d'erreur s'etale sur toute la cellule pendant que l'input est
57
+ * borne. `Field` est le seul endroit qui voit cette boite entiere.
58
+ *
59
+ * POURQUOI UN PLAFOND ET NON UNE LARGEUR FIXE. Le standard exige aussi que les
60
+ * champs soient empiles « 100% grid width » sur mobile, et que des champs
61
+ * heterogenes s'alignent sur des fractions de colonnes. Un `maxWidth`
62
+ * n'est donc pose qu'a partir de `sm` : la grille continue de decider des
63
+ * COLONNES, le gabarit borne le champ DANS sa cellule. Les deux regles
64
+ * coexistent au lieu de se contredire.
65
+ *
66
+ * >>> LES CINQ VALEURS SONT UNE DECISION DE DESIGN, PAS UNE LECTURE. Le
67
+ * >>> standard donne des FOURCHETTES (« ~80px to 120px max »). J'ai retenu le
68
+ * >>> HAUT de chaque fourchette, ces largeurs etant des plafonds : prendre le
69
+ * >>> bas tronquerait des valeurs qui tiennent dans la contrainte de
70
+ * >>> caracteres annoncee. A confirmer par l'equipe design ; les cinq nombres
71
+ * >>> sont exposes en variables CSS pour etre revus sans toucher au code. <<<
33
72
  */
73
+ /**
74
+ * Gabarits de largeur semantique (G-H). Voir la note en tete de fichier.
75
+ *
76
+ * Les valeurs passent par des variables CSS pour que l'equipe design puisse
77
+ * les revoir sans modification de code. Les replis sont le HAUT de chaque
78
+ * fourchette du standard, ces largeurs etant des plafonds.
79
+ */
80
+ export type FieldWidth = "xs" | "s" | "m" | "l" | "xl";
81
+ /**
82
+ * Exporte pour etre TESTABLE : le plafond ne s'applique qu'a partir de `sm`,
83
+ * donc via une requete media qu'`emotion` injecte dans la feuille de style et
84
+ * que jsdom ne resout pas. Un test de rendu ne peut donc pas lire la largeur
85
+ * effective ; il peut en revanche epingler les cinq valeurs, ce qui est le
86
+ * point sensible (elles sont une decision de design, voir la note ci-dessus).
87
+ */
88
+ export declare const FIELD_MAX_WIDTH: Record<FieldWidth, string>;
34
89
  export interface FieldProps {
35
- label?: React.ReactNode;
36
- required?: boolean;
37
- hint?: React.ReactNode;
38
- error?: React.ReactNode;
39
- htmlFor?: string;
40
- fullWidth?: boolean;
41
- disabled?: boolean;
90
+ label?: React.ReactNode | undefined;
91
+ required?: boolean | undefined;
92
+ hint?: React.ReactNode | undefined;
93
+ error?: React.ReactNode | undefined;
94
+ htmlFor?: string | undefined;
95
+ fullWidth?: boolean | undefined;
96
+ disabled?: boolean | undefined;
42
97
  /**
43
98
  * The wrapped child is an ARIA group (RadioGroup / CheckboxGroup) rather than
44
99
  * a single labelable control. Associates the label via `aria-labelledby`
45
100
  * instead of `htmlFor` / `id`.
46
101
  */
47
- group?: boolean;
102
+ group?: boolean | undefined;
103
+ /**
104
+ * Gabarit de largeur semantique (G-H) : `xs` | `s` | `m` | `l` | `xl`,
105
+ * choisi d'apres la contrainte de CARACTERES du champ. Voir la note en tete
106
+ * de fichier. Omis = aucun plafond, la cellule de grille decide seule -
107
+ * c'est le comportement d'avant G-H, donc rien ne change pour les appelants
108
+ * existants.
109
+ */
110
+ width?: FieldWidth | undefined;
48
111
  /** Optional <FieldHelp> element rendered next to the label. */
49
- helpAdornment?: React.ReactNode;
112
+ helpAdornment?: React.ReactNode | undefined;
50
113
  /** The single form-control element to wrap. */
51
114
  children: React.ReactElement;
52
- sx?: SxProps<Theme>;
53
- className?: string;
115
+ sx?: SxProps<Theme> | undefined;
116
+ className?: string | undefined;
54
117
  }
55
- declare function Field({ label, required, hint, error, htmlFor, fullWidth, disabled, group, children, helpAdornment, // optional <FieldHelp> element
118
+ declare function Field({ label, required, hint, error, htmlFor, fullWidth, disabled, group, width, children, helpAdornment, // optional <FieldHelp> element
56
119
  sx, className, }: FieldProps): React.JSX.Element;
57
120
  export default Field;
58
121
  //# sourceMappingURL=Field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,KAAK,CAAC,EACb,KAAK,EACL,QAAgB,EAChB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,SAAgB,EAChB,QAAQ,EACR,KAAa,EACb,QAAQ,EACR,aAAa,EAAE,+BAA+B;AAC9C,EAAE,EACF,SAAS,GACV,EAAE,UAAU,qBA8IZ;AAED,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAMtD,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B,+DAA+D;IAC/D,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5C,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,iBAAS,KAAK,CAAC,EACb,KAAK,EACL,QAAgB,EAChB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,SAAgB,EAChB,QAAQ,EACR,KAAa,EACb,KAAK,EACL,QAAQ,EACR,aAAa,EAAE,+BAA+B;AAC9C,EAAE,EACF,SAAS,GACV,EAAE,UAAU,qBAyJZ;AAED,eAAe,KAAK,CAAC"}