@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":"Tour.js","names":["React","_interopRequireWildcard","require","_reactDom","_Box","_interopRequireDefault","_IconButton","_Close","_Button","_useFocusTrap","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","name","Array","from","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","isArray","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","apply","_objectSpread","target","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","PADDING","TOOLTIP_GAP","TOOLTIP_WIDTH","TOOLTIP_MAX_HEIGHT","VIEWPORT_MARGIN","DEFAULT_LABELS","freeze","prev","skip","finish","closeAria","stepCounter","cur","total","concat","getElementRect","selector","document","el","querySelector","r","getBoundingClientRect","top","left","right","bottom","width","height","_unused","computeTooltipPosition","targetRect","placement","vw","vh","p","space","best","entries","sort","a","b","Math","max","min","SPOTLIGHT_BG","SPOTLIGHT_BASE_SX","position","background","zIndex","pointerEvents","BACKDROP_FALLBACK_SX","inset","TOOLTIP_BASE_SX","maxHeight","overflowY","border","borderRadius","boxShadow","padding","TOOLTIP_HEADER_SX","display","alignItems","justifyContent","gap","marginBottom","TOOLTIP_TITLE_SX","fontSize","fontWeight","color","TOOLTIP_CLOSE_SX","marginRight","marginTop","TOOLTIP_CONTENT_SX","lineHeight","TOOLTIP_FOOTER_SX","STEP_COUNTER_SX","fontVariantNumeric","NAV_BUTTONS_SX","Tour","_ref","open","steps","onClose","onComplete","labels","L","useMemo","_React$useState","useState","_React$useState2","stepIdx","setStepIdx","_React$useState3","_React$useState4","setTargetRect","_React$useState5","_React$useState6","tooltipPos","setTooltipPos","_React$useState7","w","h","_React$useState8","viewport","setViewport","tooltipRef","useRef","titleId","useId","contentId","currentStep","useFocusTrap","useEffect","recompute","window","innerWidth","innerHeight","rect","initialEl","_unused2","scrollIntoView","block","behavior","rafId","onViewportChange","requestAnimationFrame","addEventListener","removeEventListener","cancelAnimationFrame","onKey","e","preventDefault","isFirst","isLast","goNext","goPrev","spotlight","jsxs","Fragment","children","jsx","onClick","sx","backdropFallback","tooltip","ref","role","id","title","size","content","variant","createPortal","body","_default","exports"],"sources":["../../../src/lib/v2/patterns/Tour.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport Button from \"../components/Button\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/**\r\n * Tour - Portnet UI v2 (pattern)\r\n *\r\n * Charter §07 · \"First-run tooltips\" / onboarding. Step-by-step guided tour\r\n * anchored to specific DOM elements with spotlight + tooltip nav.\r\n *\r\n * <Tour\r\n * open={tourOpen}\r\n * steps={[\r\n * { target: \"#nav-dashboard\", title: \"Accueil\", content: \"...\" },\r\n * { target: \"[data-tour='kpi']\", title: \"KPIs\", content: \"...\", placement: \"bottom\" },\r\n * ]}\r\n * onClose={() => setTourOpen(false)}\r\n * onComplete={() => markTourSeen()}\r\n * />\r\n *\r\n * Step state is INTERNAL (resets to 0 on every `open` → true transition).\r\n * Host owns `open` and the \"user has seen the tour\" persistence.\r\n *\r\n * A11y: role=\"dialog\" aria-modal=\"true\"; aria-labelledby / aria-describedby;\r\n * step counter in role=\"status\" aria-live=\"polite\"; step title + content are\r\n * polite/atomic live regions so each step change is announced (TOUR-1); Esc\r\n * closes; focus trapped.\r\n *\r\n * Target-not-found fallback: if the CSS selector doesn't match, the spotlight\r\n * falls back to a full-screen dimmed backdrop and the tooltip renders centered.\r\n */\r\n\r\nexport type TourPlacement = \"top\" | \"bottom\" | \"left\" | \"right\" | \"auto\";\r\n\r\nexport interface TourStep {\r\n /** CSS selector for the element to highlight. */\r\n target: string;\r\n title: React.ReactNode;\r\n content: React.ReactNode;\r\n /** Preferred side; \"auto\" (default) picks the side with the most space. */\r\n placement?: TourPlacement;\r\n}\r\n\r\nexport interface TourLabels {\r\n prev?: React.ReactNode;\r\n next?: React.ReactNode;\r\n skip?: React.ReactNode;\r\n finish?: React.ReactNode;\r\n closeAria?: string;\r\n stepCounter?: (cur: number, total: number) => React.ReactNode;\r\n}\r\n\r\nexport interface TourProps {\r\n open?: boolean;\r\n steps?: TourStep[];\r\n onClose?: () => void;\r\n onComplete?: () => void;\r\n labels?: TourLabels;\r\n}\r\n\r\n/** Resolved target geometry (plus the element, for potential callers). */\r\ninterface TargetRect {\r\n top: number;\r\n left: number;\r\n right: number;\r\n bottom: number;\r\n width: number;\r\n height: number;\r\n el: Element;\r\n}\r\n\r\n/** Resolved tooltip position; `placement` is the chosen side (or \"center\"). */\r\ninterface TooltipPosition {\r\n top: number;\r\n left: number;\r\n placement: string;\r\n}\r\n\r\nconst PADDING = 8; // spotlight extra around target bbox\r\nconst TOOLTIP_GAP = 12; // distance from target to tooltip edge\r\nconst TOOLTIP_WIDTH = 320;\r\nconst TOOLTIP_MAX_HEIGHT = 360;\r\nconst VIEWPORT_MARGIN = 8; // min distance from viewport edges\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n prev: \"Précédent\",\r\n next: \"Suivant\",\r\n skip: \"Ignorer\",\r\n finish: \"Terminer\",\r\n closeAria: \"Fermer la visite guidée\",\r\n stepCounter: (cur: number, total: number) => `${cur} sur ${total}`,\r\n});\r\n\r\n/**\r\n * Try to resolve a CSS selector to its element's bounding rect. Returns null\r\n * on any failure (selector invalid, element absent). Defensive — host typos\r\n * shouldn't crash the tour.\r\n */\r\nfunction getElementRect(selector: string): TargetRect | null {\r\n if (!selector || typeof document === \"undefined\") return null;\r\n try {\r\n const el = document.querySelector(selector);\r\n if (!el) return null;\r\n const r = el.getBoundingClientRect();\r\n return {\r\n top: r.top,\r\n left: r.left,\r\n right: r.right,\r\n bottom: r.bottom,\r\n width: r.width,\r\n height: r.height,\r\n el,\r\n };\r\n } catch {\r\n // Invalid selector syntax → catch SyntaxError, return null.\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * Compute the tooltip's top/left given a target rect, a placement preference,\r\n * and the viewport bounds. Auto picks the side with the most clearance;\r\n * clamps to viewport.\r\n */\r\nfunction computeTooltipPosition(\r\n targetRect: TargetRect,\r\n placement: TourPlacement | undefined,\r\n vw: number,\r\n vh: number\r\n): TooltipPosition {\r\n let p: string = placement || \"auto\";\r\n if (p === \"auto\") {\r\n const space = {\r\n top: targetRect.top,\r\n bottom: vh - targetRect.bottom,\r\n left: targetRect.left,\r\n right: vw - targetRect.right,\r\n };\r\n // Pick the side with the most clearance. Stable on ties — first entry\r\n // wins (Object.entries order is insertion order, ES2015+).\r\n const best = Object.entries(space).sort((a, b) => b[1] - a[1])[0];\r\n if (best) p = best[0];\r\n }\r\n\r\n let top: number;\r\n let left: number;\r\n switch (p) {\r\n case \"top\":\r\n top = targetRect.top - TOOLTIP_GAP - TOOLTIP_MAX_HEIGHT;\r\n left = targetRect.left + targetRect.width / 2 - TOOLTIP_WIDTH / 2;\r\n break;\r\n case \"bottom\":\r\n top = targetRect.bottom + TOOLTIP_GAP;\r\n left = targetRect.left + targetRect.width / 2 - TOOLTIP_WIDTH / 2;\r\n break;\r\n case \"left\":\r\n top = targetRect.top + targetRect.height / 2 - TOOLTIP_MAX_HEIGHT / 2;\r\n left = targetRect.left - TOOLTIP_GAP - TOOLTIP_WIDTH;\r\n break;\r\n case \"right\":\r\n top = targetRect.top + targetRect.height / 2 - TOOLTIP_MAX_HEIGHT / 2;\r\n left = targetRect.right + TOOLTIP_GAP;\r\n break;\r\n default:\r\n top = targetRect.bottom + TOOLTIP_GAP;\r\n left = targetRect.left;\r\n }\r\n\r\n // Clamp to viewport with a small margin so the tooltip never touches the edge.\r\n left = Math.max(\r\n VIEWPORT_MARGIN,\r\n Math.min(left, vw - TOOLTIP_WIDTH - VIEWPORT_MARGIN)\r\n );\r\n top = Math.max(\r\n VIEWPORT_MARGIN,\r\n Math.min(top, vh - TOOLTIP_MAX_HEIGHT - VIEWPORT_MARGIN)\r\n );\r\n\r\n return { top, left, placement: p };\r\n}\r\n\r\n/* ── Hoisted sx (Batch 14 D5 pattern) ─────────────────────────────── */\r\n\r\nconst SPOTLIGHT_BG = \"color-mix(in srgb, var(--fg) 60%, transparent)\";\r\n\r\nconst SPOTLIGHT_BASE_SX = Object.freeze({\r\n position: \"fixed\",\r\n background: SPOTLIGHT_BG,\r\n zIndex: \"var(--z-modal)\",\r\n pointerEvents: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst BACKDROP_FALLBACK_SX = Object.freeze({\r\n position: \"fixed\",\r\n inset: 0,\r\n background: SPOTLIGHT_BG,\r\n zIndex: \"var(--z-modal)\",\r\n pointerEvents: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_BASE_SX = Object.freeze({\r\n position: \"fixed\",\r\n width: TOOLTIP_WIDTH,\r\n maxHeight: TOOLTIP_MAX_HEIGHT,\r\n overflowY: \"auto\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n padding: \"var(--s-4)\",\r\n zIndex: \"var(--z-tooltip)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_HEADER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n marginBottom: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_TITLE_SX = Object.freeze({\r\n fontSize: \"var(--text-h4)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n});\r\n\r\nconst TOOLTIP_CLOSE_SX = Object.freeze({\r\n color: \"var(--fg-muted)\",\r\n marginRight: \"calc(-1 * var(--s-1))\",\r\n marginTop: \"calc(-1 * var(--s-1))\",\r\n});\r\n\r\nconst TOOLTIP_CONTENT_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n marginBottom: \"var(--s-3)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n});\r\n\r\nconst TOOLTIP_FOOTER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst STEP_COUNTER_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n});\r\n\r\nconst NAV_BUTTONS_SX = Object.freeze({\r\n display: \"flex\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction Tour({ open, steps, onClose, onComplete, labels }: TourProps) {\r\n const L = React.useMemo(\r\n () => (labels ? { ...DEFAULT_LABELS, ...labels } : DEFAULT_LABELS),\r\n [labels]\r\n );\r\n\r\n const [stepIdx, setStepIdx] = React.useState(0);\r\n const [targetRect, setTargetRect] = React.useState<TargetRect | null>(null);\r\n const [tooltipPos, setTooltipPos] = React.useState<TooltipPosition | null>(\r\n null\r\n );\r\n const [viewport, setViewport] = React.useState({ w: 0, h: 0 });\r\n\r\n const tooltipRef = React.useRef<HTMLDivElement>(null);\r\n const titleId = React.useId();\r\n const contentId = React.useId();\r\n\r\n const currentStep = steps && steps[stepIdx];\r\n\r\n // Focus trap activates ONLY after tooltipPos is computed (tooltip actually\r\n // mounted with a non-null ref). On first open, tooltipPos is null until the\r\n // position effect runs, so the trap would otherwise activate against a null ref.\r\n useFocusTrap(tooltipRef, !!open && tooltipPos != null);\r\n\r\n // Reset to step 0 on each open transition.\r\n React.useEffect(() => {\r\n if (open) setStepIdx(0);\r\n }, [open]);\r\n\r\n // Compute target rect + tooltip position. Re-runs on step change and on\r\n // window scroll/resize.\r\n React.useEffect(() => {\r\n if (!open || !currentStep) return undefined;\r\n\r\n const recompute = () => {\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n setViewport({ w, h });\r\n const rect = getElementRect(currentStep.target);\r\n setTargetRect(rect);\r\n if (rect) {\r\n setTooltipPos(\r\n computeTooltipPosition(rect, currentStep.placement, w, h)\r\n );\r\n } else {\r\n // Fallback: center the tooltip when target not found.\r\n setTooltipPos({\r\n top: Math.max(VIEWPORT_MARGIN, (h - TOOLTIP_MAX_HEIGHT) / 2),\r\n left: Math.max(VIEWPORT_MARGIN, (w - TOOLTIP_WIDTH) / 2),\r\n placement: \"center\",\r\n });\r\n }\r\n };\r\n\r\n recompute();\r\n\r\n // Scroll the target into view on each step change; no-ops if not found.\r\n const initialEl =\r\n typeof document !== \"undefined\"\r\n ? (() => {\r\n try {\r\n return document.querySelector(currentStep.target);\r\n } catch {\r\n return null;\r\n }\r\n })()\r\n : null;\r\n if (initialEl && typeof initialEl.scrollIntoView === \"function\") {\r\n initialEl.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\r\n }\r\n\r\n // TOUR-2 (perf) — coalesce scroll/resize into ONE recompute per frame.\r\n // recompute() does a querySelector + getBoundingClientRect + up to 4\r\n // setState calls, so running it on every raw scroll event is wasteful;\r\n // rAF-throttle to at most once per animation frame. `true` (capture)\r\n // catches scroll on any ancestor (default scroll events don't bubble).\r\n let rafId: number | null = null;\r\n const onViewportChange = () => {\r\n if (rafId != null) return; // a frame is already scheduled\r\n rafId = window.requestAnimationFrame(() => {\r\n rafId = null;\r\n recompute();\r\n });\r\n };\r\n window.addEventListener(\"scroll\", onViewportChange, true);\r\n window.addEventListener(\"resize\", onViewportChange);\r\n return () => {\r\n window.removeEventListener(\"scroll\", onViewportChange, true);\r\n window.removeEventListener(\"resize\", onViewportChange);\r\n if (rafId != null) window.cancelAnimationFrame(rafId);\r\n };\r\n }, [open, currentStep]);\r\n\r\n // Esc closes the tour. Window-bound — same pattern as Modal / Drawer.\r\n React.useEffect(() => {\r\n if (!open) return undefined;\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n onClose?.();\r\n }\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [open, onClose]);\r\n\r\n if (!open || !steps || steps.length === 0 || !currentStep) return null;\r\n\r\n const total = steps.length;\r\n const isFirst = stepIdx === 0;\r\n const isLast = stepIdx === total - 1;\r\n\r\n const goNext = () => {\r\n if (isLast) {\r\n onComplete?.();\r\n onClose?.();\r\n } else {\r\n setStepIdx(stepIdx + 1);\r\n }\r\n };\r\n const goPrev = () => {\r\n if (!isFirst) setStepIdx(stepIdx - 1);\r\n };\r\n const skip = () => {\r\n onClose?.();\r\n };\r\n\r\n // Spotlight: 4 dark overlays around the target bbox. Each is clickable → skip.\r\n const spotlight = targetRect && (\r\n <>\r\n {/* Top */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: 0,\r\n width: \"100vw\",\r\n height: Math.max(0, targetRect.top - PADDING),\r\n }}\r\n />\r\n {/* Left */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: Math.max(0, targetRect.top - PADDING),\r\n width: Math.max(0, targetRect.left - PADDING),\r\n height: targetRect.height + 2 * PADDING,\r\n }}\r\n />\r\n {/* Right */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: targetRect.right + PADDING,\r\n top: Math.max(0, targetRect.top - PADDING),\r\n width: Math.max(0, viewport.w - (targetRect.right + PADDING)),\r\n height: targetRect.height + 2 * PADDING,\r\n }}\r\n />\r\n {/* Bottom */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: targetRect.bottom + PADDING,\r\n width: \"100vw\",\r\n height: Math.max(0, viewport.h - (targetRect.bottom + PADDING)),\r\n }}\r\n />\r\n </>\r\n );\r\n\r\n // Backdrop fallback when target not found — full-screen dimmed overlay.\r\n const backdropFallback = !targetRect && (\r\n <Box onClick={skip} sx={BACKDROP_FALLBACK_SX} />\r\n );\r\n\r\n // Tooltip — only renders once tooltipPos is computed.\r\n const tooltip = tooltipPos && (\r\n <Box\r\n ref={tooltipRef}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={titleId}\r\n aria-describedby={contentId}\r\n sx={{\r\n ...TOOLTIP_BASE_SX,\r\n top: tooltipPos.top,\r\n left: tooltipPos.left,\r\n }}\r\n >\r\n <Box sx={TOOLTIP_HEADER_SX}>\r\n {/* TOUR-1 — polite/atomic so a step change announces the new title. */}\r\n <Box\r\n id={titleId}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={TOOLTIP_TITLE_SX}\r\n >\r\n {currentStep.title}\r\n </Box>\r\n <IconButton\r\n size=\"small\"\r\n onClick={skip}\r\n aria-label={L.closeAria}\r\n sx={TOOLTIP_CLOSE_SX}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n\r\n {/* TOUR-1 — polite/atomic so a step change announces the new content. */}\r\n <Box\r\n id={contentId}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={TOOLTIP_CONTENT_SX}\r\n >\r\n {currentStep.content}\r\n </Box>\r\n\r\n <Box sx={TOOLTIP_FOOTER_SX}>\r\n <Box role=\"status\" aria-live=\"polite\" sx={STEP_COUNTER_SX}>\r\n {L.stepCounter(stepIdx + 1, total)}\r\n </Box>\r\n <Box sx={NAV_BUTTONS_SX}>\r\n {!isFirst && (\r\n <Button variant=\"ghost\" size=\"sm\" onClick={goPrev}>\r\n {L.prev}\r\n </Button>\r\n )}\r\n <Button variant=\"ghost\" size=\"sm\" onClick={skip}>\r\n {L.skip}\r\n </Button>\r\n <Button variant=\"primary\" size=\"sm\" onClick={goNext}>\r\n {isLast ? L.finish : L.next}\r\n </Button>\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n\r\n // Portal to document.body so the tour escapes any host overflow/transform\r\n // context that would clip absolute positioning.\r\n if (typeof document === \"undefined\") return null;\r\n return createPortal(\r\n <>\r\n {spotlight}\r\n {backdropFallback}\r\n {tooltip}\r\n </>,\r\n document.body\r\n );\r\n}\r\n\r\nexport default Tour;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Tour.js","names":["React","_interopRequireWildcard","require","_reactDom","_Box","_interopRequireDefault","_IconButton","_Close","_Button","_useFocusTrap","_mergeLabels","_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","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","err","isArray","PADDING","TOOLTIP_GAP","TOOLTIP_WIDTH","TOOLTIP_MAX_HEIGHT","VIEWPORT_MARGIN","DEFAULT_LABELS","freeze","prev","skip","finish","closeAria","stepCounter","cur","total","concat","getElementRect","selector","document","el","querySelector","r","getBoundingClientRect","top","left","right","bottom","width","height","_unused","computeTooltipPosition","targetRect","placement","vw","vh","p","space","best","entries","sort","a","b","Math","max","min","SPOTLIGHT_BG","SPOTLIGHT_BASE_SX","position","background","zIndex","pointerEvents","BACKDROP_FALLBACK_SX","inset","TOOLTIP_BASE_SX","maxHeight","overflowY","border","borderRadius","boxShadow","padding","TOOLTIP_HEADER_SX","display","alignItems","justifyContent","gap","marginBottom","TOOLTIP_TITLE_SX","fontSize","fontWeight","color","TOOLTIP_CLOSE_SX","marginRight","marginTop","TOOLTIP_CONTENT_SX","lineHeight","TOOLTIP_FOOTER_SX","STEP_COUNTER_SX","fontVariantNumeric","NAV_BUTTONS_SX","Tour","_ref","open","steps","onClose","onComplete","labels","L","useMemo","mergeLabels","_React$useState","useState","_React$useState2","stepIdx","setStepIdx","_React$useState3","_React$useState4","setTargetRect","_React$useState5","_React$useState6","tooltipPos","setTooltipPos","_React$useState7","w","h","_React$useState8","viewport","setViewport","tooltipRef","useRef","titleId","useId","contentId","currentStep","useFocusTrap","useEffect","recompute","window","innerWidth","innerHeight","rect","initialEl","_unused2","scrollIntoView","block","behavior","rafId","onViewportChange","requestAnimationFrame","addEventListener","removeEventListener","cancelAnimationFrame","onKey","e","preventDefault","isFirst","isLast","goNext","goPrev","spotlight","jsxs","Fragment","children","jsx","onClick","sx","backdropFallback","tooltip","ref","role","id","title","size","content","variant","createPortal","body","_default","exports"],"sources":["../../../src/lib/v2/patterns/Tour.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport Button from \"../components/Button\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\nimport { mergeLabels } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Tour - Portnet UI v2 (pattern)\r\n *\r\n * Charter §07 · \"First-run tooltips\" / onboarding. Step-by-step guided tour\r\n * anchored to specific DOM elements with spotlight + tooltip nav.\r\n *\r\n * <Tour\r\n * open={tourOpen}\r\n * steps={[\r\n * { target: \"#nav-dashboard\", title: \"Accueil\", content: \"...\" },\r\n * { target: \"[data-tour='kpi']\", title: \"KPIs\", content: \"...\", placement: \"bottom\" },\r\n * ]}\r\n * onClose={() => setTourOpen(false)}\r\n * onComplete={() => markTourSeen()}\r\n * />\r\n *\r\n * Step state is INTERNAL (resets to 0 on every `open` → true transition).\r\n * Host owns `open` and the \"user has seen the tour\" persistence.\r\n *\r\n * A11y: role=\"dialog\" aria-modal=\"true\"; aria-labelledby / aria-describedby;\r\n * step counter in role=\"status\" aria-live=\"polite\"; step title + content are\r\n * polite/atomic live regions so each step change is announced (TOUR-1); Esc\r\n * closes; focus trapped.\r\n *\r\n * Target-not-found fallback: if the CSS selector doesn't match, the spotlight\r\n * falls back to a full-screen dimmed backdrop and the tooltip renders centered.\r\n */\r\n\r\nexport type TourPlacement = \"top\" | \"bottom\" | \"left\" | \"right\" | \"auto\";\r\n\r\nexport interface TourStep {\r\n /** CSS selector for the element to highlight. */\r\n target: string;\r\n title: React.ReactNode;\r\n content: React.ReactNode;\r\n /** Preferred side; \"auto\" (default) picks the side with the most space. */\r\n placement?: TourPlacement | undefined;\r\n}\r\n\r\nexport interface TourLabels {\r\n prev?: React.ReactNode | undefined;\r\n next?: React.ReactNode | undefined;\r\n skip?: React.ReactNode | undefined;\r\n finish?: React.ReactNode | undefined;\r\n closeAria?: string | undefined;\r\n stepCounter?: ((cur: number, total: number) => React.ReactNode) | undefined;\r\n}\r\n\r\nexport interface TourProps {\r\n open?: boolean | undefined;\r\n steps?: TourStep[] | undefined;\r\n onClose?: (() => void) | undefined;\r\n onComplete?: (() => void) | undefined;\r\n labels?: TourLabels | undefined;\r\n}\r\n\r\n/** Resolved target geometry (plus the element, for potential callers). */\r\ninterface TargetRect {\r\n top: number;\r\n left: number;\r\n right: number;\r\n bottom: number;\r\n width: number;\r\n height: number;\r\n el: Element;\r\n}\r\n\r\n/** Resolved tooltip position; `placement` is the chosen side (or \"center\"). */\r\ninterface TooltipPosition {\r\n top: number;\r\n left: number;\r\n placement: string;\r\n}\r\n\r\nconst PADDING = 8; // spotlight extra around target bbox\r\nconst TOOLTIP_GAP = 12; // distance from target to tooltip edge\r\nconst TOOLTIP_WIDTH = 320;\r\nconst TOOLTIP_MAX_HEIGHT = 360;\r\nconst VIEWPORT_MARGIN = 8; // min distance from viewport edges\r\n\r\nconst DEFAULT_LABELS = Object.freeze({\r\n prev: \"Précédent\",\r\n next: \"Suivant\",\r\n skip: \"Ignorer\",\r\n finish: \"Terminer\",\r\n closeAria: \"Fermer la visite guidée\",\r\n stepCounter: (cur: number, total: number) => `${cur} sur ${total}`,\r\n});\r\n\r\n/**\r\n * Try to resolve a CSS selector to its element's bounding rect. Returns null\r\n * on any failure (selector invalid, element absent). Defensive — host typos\r\n * shouldn't crash the tour.\r\n */\r\nfunction getElementRect(selector: string): TargetRect | null {\r\n if (!selector || typeof document === \"undefined\") return null;\r\n try {\r\n const el = document.querySelector(selector);\r\n if (!el) return null;\r\n const r = el.getBoundingClientRect();\r\n return {\r\n top: r.top,\r\n left: r.left,\r\n right: r.right,\r\n bottom: r.bottom,\r\n width: r.width,\r\n height: r.height,\r\n el,\r\n };\r\n } catch {\r\n // Invalid selector syntax → catch SyntaxError, return null.\r\n return null;\r\n }\r\n}\r\n\r\n/**\r\n * Compute the tooltip's top/left given a target rect, a placement preference,\r\n * and the viewport bounds. Auto picks the side with the most clearance;\r\n * clamps to viewport.\r\n */\r\nfunction computeTooltipPosition(\r\n targetRect: TargetRect,\r\n placement: TourPlacement | undefined,\r\n vw: number,\r\n vh: number\r\n): TooltipPosition {\r\n let p: string = placement || \"auto\";\r\n if (p === \"auto\") {\r\n const space = {\r\n top: targetRect.top,\r\n bottom: vh - targetRect.bottom,\r\n left: targetRect.left,\r\n right: vw - targetRect.right,\r\n };\r\n // Pick the side with the most clearance. Stable on ties — first entry\r\n // wins (Object.entries order is insertion order, ES2015+).\r\n const best = Object.entries(space).sort((a, b) => b[1] - a[1])[0];\r\n if (best) p = best[0];\r\n }\r\n\r\n let top: number;\r\n let left: number;\r\n switch (p) {\r\n case \"top\":\r\n top = targetRect.top - TOOLTIP_GAP - TOOLTIP_MAX_HEIGHT;\r\n left = targetRect.left + targetRect.width / 2 - TOOLTIP_WIDTH / 2;\r\n break;\r\n case \"bottom\":\r\n top = targetRect.bottom + TOOLTIP_GAP;\r\n left = targetRect.left + targetRect.width / 2 - TOOLTIP_WIDTH / 2;\r\n break;\r\n case \"left\":\r\n top = targetRect.top + targetRect.height / 2 - TOOLTIP_MAX_HEIGHT / 2;\r\n left = targetRect.left - TOOLTIP_GAP - TOOLTIP_WIDTH;\r\n break;\r\n case \"right\":\r\n top = targetRect.top + targetRect.height / 2 - TOOLTIP_MAX_HEIGHT / 2;\r\n left = targetRect.right + TOOLTIP_GAP;\r\n break;\r\n default:\r\n top = targetRect.bottom + TOOLTIP_GAP;\r\n left = targetRect.left;\r\n }\r\n\r\n // Clamp to viewport with a small margin so the tooltip never touches the edge.\r\n left = Math.max(\r\n VIEWPORT_MARGIN,\r\n Math.min(left, vw - TOOLTIP_WIDTH - VIEWPORT_MARGIN)\r\n );\r\n top = Math.max(\r\n VIEWPORT_MARGIN,\r\n Math.min(top, vh - TOOLTIP_MAX_HEIGHT - VIEWPORT_MARGIN)\r\n );\r\n\r\n return { top, left, placement: p };\r\n}\r\n\r\n/* ── Hoisted sx (Batch 14 D5 pattern) ─────────────────────────────── */\r\n\r\nconst SPOTLIGHT_BG = \"color-mix(in srgb, var(--fg) 60%, transparent)\";\r\n\r\nconst SPOTLIGHT_BASE_SX = Object.freeze({\r\n position: \"fixed\",\r\n background: SPOTLIGHT_BG,\r\n zIndex: \"var(--z-modal)\",\r\n pointerEvents: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst BACKDROP_FALLBACK_SX = Object.freeze({\r\n position: \"fixed\",\r\n inset: 0,\r\n background: SPOTLIGHT_BG,\r\n zIndex: \"var(--z-modal)\",\r\n pointerEvents: \"auto\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_BASE_SX = Object.freeze({\r\n position: \"fixed\",\r\n width: TOOLTIP_WIDTH,\r\n maxHeight: TOOLTIP_MAX_HEIGHT,\r\n overflowY: \"auto\",\r\n background: \"var(--surface)\",\r\n border: \"1px solid var(--border)\",\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n padding: \"var(--s-4)\",\r\n zIndex: \"var(--z-tooltip)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_HEADER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n marginBottom: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TOOLTIP_TITLE_SX = Object.freeze({\r\n fontSize: \"var(--text-h4)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n});\r\n\r\nconst TOOLTIP_CLOSE_SX = Object.freeze({\r\n color: \"var(--fg-muted)\",\r\n marginRight: \"calc(-1 * var(--s-1))\",\r\n marginTop: \"calc(-1 * var(--s-1))\",\r\n});\r\n\r\nconst TOOLTIP_CONTENT_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n marginBottom: \"var(--s-3)\",\r\n lineHeight: \"var(--lh-normal)\",\r\n});\r\n\r\nconst TOOLTIP_FOOTER_SX = Object.freeze({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst STEP_COUNTER_SX = Object.freeze({\r\n fontSize: \"var(--text-xs)\",\r\n color: \"var(--fg-subtle)\",\r\n fontVariantNumeric: \"tabular-nums\",\r\n});\r\n\r\nconst NAV_BUTTONS_SX = Object.freeze({\r\n display: \"flex\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nfunction Tour({ open, steps, onClose, onComplete, labels }: TourProps) {\r\n const L = React.useMemo(\r\n () => (mergeLabels(DEFAULT_LABELS, labels)),\r\n [labels]\r\n );\r\n\r\n const [stepIdx, setStepIdx] = React.useState(0);\r\n const [targetRect, setTargetRect] = React.useState<TargetRect | null>(null);\r\n const [tooltipPos, setTooltipPos] = React.useState<TooltipPosition | null>(\r\n null\r\n );\r\n const [viewport, setViewport] = React.useState({ w: 0, h: 0 });\r\n\r\n const tooltipRef = React.useRef<HTMLDivElement>(null);\r\n const titleId = React.useId();\r\n const contentId = React.useId();\r\n\r\n const currentStep = steps && steps[stepIdx];\r\n\r\n // Focus trap activates ONLY after tooltipPos is computed (tooltip actually\r\n // mounted with a non-null ref). On first open, tooltipPos is null until the\r\n // position effect runs, so the trap would otherwise activate against a null ref.\r\n useFocusTrap(tooltipRef, !!open && tooltipPos != null);\r\n\r\n // Reset to step 0 on each open transition.\r\n React.useEffect(() => {\r\n if (open) setStepIdx(0);\r\n }, [open]);\r\n\r\n // Compute target rect + tooltip position. Re-runs on step change and on\r\n // window scroll/resize.\r\n React.useEffect(() => {\r\n if (!open || !currentStep) return undefined;\r\n\r\n const recompute = () => {\r\n const w = window.innerWidth;\r\n const h = window.innerHeight;\r\n setViewport({ w, h });\r\n const rect = getElementRect(currentStep.target);\r\n setTargetRect(rect);\r\n if (rect) {\r\n setTooltipPos(\r\n computeTooltipPosition(rect, currentStep.placement, w, h)\r\n );\r\n } else {\r\n // Fallback: center the tooltip when target not found.\r\n setTooltipPos({\r\n top: Math.max(VIEWPORT_MARGIN, (h - TOOLTIP_MAX_HEIGHT) / 2),\r\n left: Math.max(VIEWPORT_MARGIN, (w - TOOLTIP_WIDTH) / 2),\r\n placement: \"center\",\r\n });\r\n }\r\n };\r\n\r\n recompute();\r\n\r\n // Scroll the target into view on each step change; no-ops if not found.\r\n const initialEl =\r\n typeof document !== \"undefined\"\r\n ? (() => {\r\n try {\r\n return document.querySelector(currentStep.target);\r\n } catch {\r\n return null;\r\n }\r\n })()\r\n : null;\r\n if (initialEl && typeof initialEl.scrollIntoView === \"function\") {\r\n initialEl.scrollIntoView({ block: \"center\", behavior: \"smooth\" });\r\n }\r\n\r\n // TOUR-2 (perf) — coalesce scroll/resize into ONE recompute per frame.\r\n // recompute() does a querySelector + getBoundingClientRect + up to 4\r\n // setState calls, so running it on every raw scroll event is wasteful;\r\n // rAF-throttle to at most once per animation frame. `true` (capture)\r\n // catches scroll on any ancestor (default scroll events don't bubble).\r\n let rafId: number | null = null;\r\n const onViewportChange = () => {\r\n if (rafId != null) return; // a frame is already scheduled\r\n rafId = window.requestAnimationFrame(() => {\r\n rafId = null;\r\n recompute();\r\n });\r\n };\r\n window.addEventListener(\"scroll\", onViewportChange, true);\r\n window.addEventListener(\"resize\", onViewportChange);\r\n return () => {\r\n window.removeEventListener(\"scroll\", onViewportChange, true);\r\n window.removeEventListener(\"resize\", onViewportChange);\r\n if (rafId != null) window.cancelAnimationFrame(rafId);\r\n };\r\n }, [open, currentStep]);\r\n\r\n // Esc closes the tour. Window-bound — same pattern as Modal / Drawer.\r\n React.useEffect(() => {\r\n if (!open) return undefined;\r\n const onKey = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n onClose?.();\r\n }\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [open, onClose]);\r\n\r\n if (!open || !steps || steps.length === 0 || !currentStep) return null;\r\n\r\n const total = steps.length;\r\n const isFirst = stepIdx === 0;\r\n const isLast = stepIdx === total - 1;\r\n\r\n const goNext = () => {\r\n if (isLast) {\r\n onComplete?.();\r\n onClose?.();\r\n } else {\r\n setStepIdx(stepIdx + 1);\r\n }\r\n };\r\n const goPrev = () => {\r\n if (!isFirst) setStepIdx(stepIdx - 1);\r\n };\r\n const skip = () => {\r\n onClose?.();\r\n };\r\n\r\n // Spotlight: 4 dark overlays around the target bbox. Each is clickable → skip.\r\n const spotlight = targetRect && (\r\n <>\r\n {/* Top */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: 0,\r\n width: \"100vw\",\r\n height: Math.max(0, targetRect.top - PADDING),\r\n }}\r\n />\r\n {/* Left */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: Math.max(0, targetRect.top - PADDING),\r\n width: Math.max(0, targetRect.left - PADDING),\r\n height: targetRect.height + 2 * PADDING,\r\n }}\r\n />\r\n {/* Right */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: targetRect.right + PADDING,\r\n top: Math.max(0, targetRect.top - PADDING),\r\n width: Math.max(0, viewport.w - (targetRect.right + PADDING)),\r\n height: targetRect.height + 2 * PADDING,\r\n }}\r\n />\r\n {/* Bottom */}\r\n <Box\r\n onClick={skip}\r\n sx={{\r\n ...SPOTLIGHT_BASE_SX,\r\n left: 0,\r\n top: targetRect.bottom + PADDING,\r\n width: \"100vw\",\r\n height: Math.max(0, viewport.h - (targetRect.bottom + PADDING)),\r\n }}\r\n />\r\n </>\r\n );\r\n\r\n // Backdrop fallback when target not found — full-screen dimmed overlay.\r\n const backdropFallback = !targetRect && (\r\n <Box onClick={skip} sx={BACKDROP_FALLBACK_SX} />\r\n );\r\n\r\n // Tooltip — only renders once tooltipPos is computed.\r\n const tooltip = tooltipPos && (\r\n <Box\r\n ref={tooltipRef}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={titleId}\r\n aria-describedby={contentId}\r\n sx={{\r\n ...TOOLTIP_BASE_SX,\r\n top: tooltipPos.top,\r\n left: tooltipPos.left,\r\n }}\r\n >\r\n <Box sx={TOOLTIP_HEADER_SX}>\r\n {/* TOUR-1 — polite/atomic so a step change announces the new title. */}\r\n <Box\r\n id={titleId}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={TOOLTIP_TITLE_SX}\r\n >\r\n {currentStep.title}\r\n </Box>\r\n <IconButton\r\n size=\"small\"\r\n onClick={skip}\r\n aria-label={L.closeAria}\r\n sx={TOOLTIP_CLOSE_SX}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </Box>\r\n\r\n {/* TOUR-1 — polite/atomic so a step change announces the new content. */}\r\n <Box\r\n id={contentId}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n sx={TOOLTIP_CONTENT_SX}\r\n >\r\n {currentStep.content}\r\n </Box>\r\n\r\n <Box sx={TOOLTIP_FOOTER_SX}>\r\n <Box role=\"status\" aria-live=\"polite\" sx={STEP_COUNTER_SX}>\r\n {L.stepCounter(stepIdx + 1, total)}\r\n </Box>\r\n <Box sx={NAV_BUTTONS_SX}>\r\n {!isFirst && (\r\n <Button variant=\"ghost\" size=\"sm\" onClick={goPrev}>\r\n {L.prev}\r\n </Button>\r\n )}\r\n <Button variant=\"ghost\" size=\"sm\" onClick={skip}>\r\n {L.skip}\r\n </Button>\r\n <Button variant=\"primary\" size=\"sm\" onClick={goNext}>\r\n {isLast ? L.finish : L.next}\r\n </Button>\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n\r\n // Portal to document.body so the tour escapes any host overflow/transform\r\n // context that would clip absolute positioning.\r\n if (typeof document === \"undefined\") return null;\r\n return createPortal(\r\n <>\r\n {spotlight}\r\n {backdropFallback}\r\n {tooltip}\r\n </>,\r\n document.body\r\n );\r\n}\r\n\r\nexport default Tour;\r\n"],"mappings":"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","ignoreList":[]}
@@ -5,14 +5,32 @@ import * as React from "react";
5
5
  import type { SxProps, Theme } from "@mui/material/styles";
6
6
  import type { Density } from "../types/common";
7
7
  import type { DataGridLabels, DataGridPaginationLabels } from "../types/datagrid";
8
+ /**
9
+ * Strips optionality AND an explicitly-declared `| undefined`.
10
+ *
11
+ * `Required<T>` is NOT sufficient here, and the difference is invisible until it
12
+ * bites. `-?` removes `undefined` only when it was IMPLIED by the `?` marker.
13
+ * Under `exactOptionalPropertyTypes` — mandatory platform-wide — the public label
14
+ * shapes declare `?: T | undefined` explicitly, so that `undefined` is part of
15
+ * the declared type and survives `Required<>`. The "fully-resolved" shapes below
16
+ * silently stopped being resolved, and every renderer that read them without an
17
+ * optional check became a type error (three of them).
18
+ *
19
+ * `Exclude<T[K], undefined>` removes it for real. Behaviour is identical to what
20
+ * `Required<>` produced BEFORE the optional props were widened — this restores
21
+ * the original intent rather than changing it.
22
+ */
23
+ type Concrete<T> = {
24
+ [K in keyof T]-?: Exclude<T[K], undefined>;
25
+ };
8
26
  /**
9
27
  * Fully-resolved (all-present) label shapes. The public DataGridLabels /
10
28
  * DataGridPaginationLabels (../types/datagrid) are the OVERRIDE shapes (every
11
29
  * field optional). After mergeLabels every field is guaranteed present, so the
12
30
  * renderers (Pagination, DataGrid) read them without optional access.
13
31
  */
14
- export type ResolvedDataGridPaginationLabels = Required<DataGridPaginationLabels>;
15
- export type ResolvedDataGridLabels = Required<Omit<DataGridLabels, "pagination">> & {
32
+ export type ResolvedDataGridPaginationLabels = Concrete<DataGridPaginationLabels>;
33
+ export type ResolvedDataGridLabels = Concrete<Omit<DataGridLabels, "pagination">> & {
16
34
  pagination: ResolvedDataGridPaginationLabels;
17
35
  };
18
36
  export declare const DEFAULT_PAGE_SIZES: number[];
@@ -115,11 +133,12 @@ export interface PaginationProps {
115
133
  pageSize: number;
116
134
  total: number;
117
135
  onPageChange: (page: number) => void;
118
- onPageSizeChange?: (pageSize: number) => void;
119
- pageSizes?: number[];
120
- loading?: boolean;
121
- locale?: string;
136
+ onPageSizeChange?: ((pageSize: number) => void) | undefined;
137
+ pageSizes?: number[] | undefined;
138
+ loading?: boolean | undefined;
139
+ locale?: string | undefined;
122
140
  labels: ResolvedDataGridPaginationLabels;
123
141
  }
124
142
  export declare function Pagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizes, loading, locale, labels }: PaginationProps): React.JSX.Element;
143
+ export {};
125
144
  //# sourceMappingURL=_dataGridShared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_dataGridShared.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAS,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElF;;;;;GAKG;AACH,MAAM,MAAM,gCAAgC,GAAG,QAAQ,CAAC,wBAAwB,CAAC,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,GAAG;IAClF,UAAU,EAAE,gCAAgC,CAAC;CAC9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAgB,CAAC;AAChD,eAAO,MAAM,uBAAuB,SAAS,CAAC;AAE9C,eAAO,MAAM,cAAc,EAAE,sBAe3B,CAAC;AAEH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,sBAAsB,CAO3E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,YAAY,CAGtE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACxD,OAAO,EAAE,CAAC,EAAE,EACZ,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GACvC,CAAC,EAAE,CAUL;AASD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB9D;AAED,eAAO,MAAM,kBAAkB;;EAAiE,CAAC;AACjG,eAAO,MAAM,YAAY;;;EAA4F,CAAC;AAwCtH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAM3D,CAAC;AAYH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAIF,CAAC;AAE5B,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;EAA0F,CAAC;AAErH,eAAO,MAAM,uBAAuB;;;;;EAAiH,CAAC;AACtJ,eAAO,MAAM,qBAAqB;;EAAmD,CAAC;AAEtF,eAAO,MAAM,kBAAkB;;;;;;;;;EAK7B,CAAC;AAEH,eAAO,MAAM,aAAa;;;EAAuD,CAAC;AAClF,eAAO,MAAM,cAAc;;EAA2C,CAAC;AAEvE,eAAO,MAAM,cAAc;;;EAAyE,CAAC;AACrG,eAAO,MAAM,mBAAmB;;;;;;;EAGL,CAAC;AAuB5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,gCAAgC,CAAC;CAC1C;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAA8B,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,eAAe,qBAiC7J"}
1
+ {"version":3,"file":"_dataGridShared.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ var _FirstPage = _interopRequireDefault(require("@mui/icons-material/FirstPage")
19
19
  var _LastPage = _interopRequireDefault(require("@mui/icons-material/LastPage"));
20
20
  var _Select = _interopRequireDefault(require("@mui/material/Select"));
21
21
  var _MenuItem = _interopRequireDefault(require("@mui/material/MenuItem"));
22
+ var _mergeLabels = require("../utils/mergeLabels");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
24
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -34,6 +35,20 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
34
35
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /**
35
36
  * _dataGridShared — Portnet UI v2 (private)
36
37
  */ /**
38
+ * Strips optionality AND an explicitly-declared `| undefined`.
39
+ *
40
+ * `Required<T>` is NOT sufficient here, and the difference is invisible until it
41
+ * bites. `-?` removes `undefined` only when it was IMPLIED by the `?` marker.
42
+ * Under `exactOptionalPropertyTypes` — mandatory platform-wide — the public label
43
+ * shapes declare `?: T | undefined` explicitly, so that `undefined` is part of
44
+ * the declared type and survives `Required<>`. The "fully-resolved" shapes below
45
+ * silently stopped being resolved, and every renderer that read them without an
46
+ * optional check became a type error (three of them).
47
+ *
48
+ * `Exclude<T[K], undefined>` removes it for real. Behaviour is identical to what
49
+ * `Required<>` produced BEFORE the optional props were widened — this restores
50
+ * the original intent rather than changing it.
51
+ */ /**
37
52
  * Fully-resolved (all-present) label shapes. The public DataGridLabels /
38
53
  * DataGridPaginationLabels (../types/datagrid) are the OVERRIDE shapes (every
39
54
  * field optional). After mergeLabels every field is guaranteed present, so the
@@ -63,9 +78,28 @@ var DEFAULT_LABELS = exports.DEFAULT_LABELS = Object.freeze({
63
78
  });
64
79
  function mergeLabels(labels) {
65
80
  if (!labels) return DEFAULT_LABELS;
66
- return _objectSpread(_objectSpread(_objectSpread({}, DEFAULT_LABELS), labels), {}, {
67
- pagination: _objectSpread(_objectSpread({}, DEFAULT_LABELS.pagination), labels.pagination || {})
68
- });
81
+ /*
82
+ * Both levels go through the shared undefined-safe merge. A spread does not skip
83
+ * explicit `undefined`, so the previous form — a bare object spread of the
84
+ * overrides over the defaults — let a consumer passing `selectRow: undefined`
85
+ * DELETE the default and crash the renderer. The old `|| {}` guarded the nested
86
+ * `pagination` object against being undefined, but not its individual VALUES —
87
+ * same hazard, one level down.
88
+ *
89
+ * The broken form is described rather than quoted, deliberately:
90
+ * scripts/fix-label-merge.mjs is a text scan, and a verbatim copy here matched it
91
+ * — so the codemod offered to rewrite this COMMENT. Same lesson KPICard already
92
+ * records for the banned-patterns guard.
93
+ *
94
+ * `pagination` is merged at its OWN level, deliberately, rather than through a
95
+ * recursive deep merge: two explicit levels can be read, whereas a recursive
96
+ * helper hides how deep it goes and raises the question of what it does to
97
+ * arrays. Convention for the whole library: a nested label dictionary is
98
+ * merged at its own level.
99
+ */
100
+ return (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS, _objectSpread(_objectSpread({}, labels), {}, {
101
+ pagination: (0, _mergeLabels.mergeLabels)(DEFAULT_LABELS.pagination, labels.pagination)
102
+ }));
69
103
  }
70
104
  function makeNumberFormatter(locale) {
71
105
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"_dataGridShared.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_KeyboardArrowLeft","_KeyboardArrowRight","_FirstPage","_LastPage","_Select","_MenuItem","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_createForOfIteratorHelper","o","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","DEFAULT_PAGE_SIZES","exports","DEFAULT_MAX_BODY_HEIGHT","DEFAULT_LABELS","freeze","tableAria","selectAll","selectRow","id","concat","actionsHeader","pagination","loading","rowsPerPage","firstPage","previousPage","nextPage","lastPage","navLabel","rangeOf","to","total","fmt","mergeLabels","labels","makeNumberFormatter","locale","Intl","NumberFormat","_unused","applyColumnOrder","columns","columnOrder","byKey","Map","map","c","ordered","_iterator","_step","col","_iterator2","values","_step2","columnsSignature","join","useColumnsStabilityWarn","prevColumnsRef","useRef","warnedRef","useEffect","process","env","current","prevSig","nextSig","console","warn","PAGINATION_ICON_SX","transform","CONTAINER_SX","background","overflow","TABLE_BASE_SX","borderCollapse","borderSpacing","backgroundColor","color","fontWeight","fontSize","textTransform","letterSpacing","borderBottom","padding","whiteSpace","TABLE_BY_DENSITY","comfortable","compact","ROW_HOVER_SELECTED_SX","boxShadow","ROW_CLICKABLE_SX","cursor","outline","outlineOffset","ROW_STATIC_SX","HEADER_CHECKBOX_CELL_SX","width","position","top","zIndex","BODY_CHECKBOX_CELL_SX","HOVER_ONLY_CELL_SX","opacity","transition","ERROR_CELL_SX","ERROR_INNER_SX","FILLER_CELL_SX","FILLER_HEAD_CELL_SX","PAGINATION_CONTAINER_SX","display","alignItems","flexWrap","gap","borderTop","PAGINATION_RANGE_SX","flex","fontVariantNumeric","PAGINATION_PAGESIZE_GROUP_SX","PAGINATION_NAV_GROUP_SX","PAGINATION_PAGE_OF_SX","minWidth","textAlign","PAGINATION_SELECT_SX","height","Pagination","_ref","page","pageSize","onPageChange","onPageSizeChange","_ref$pageSizes","pageSizes","pages","Math","max","ceil","min","go","p","useMemo","nf","format","jsxs","component","sx","children","jsx","role","size","onChange","inputProps","onClick","disabled"],"sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"sourcesContent":["/**\r\n * _dataGridShared — Portnet UI v2 (private)\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport KeyboardArrowLeftIcon from \"@mui/icons-material/KeyboardArrowLeft\";\r\nimport KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\";\r\nimport FirstPageIcon from \"@mui/icons-material/FirstPage\";\r\nimport LastPageIcon from \"@mui/icons-material/LastPage\";\r\nimport Select from \"@mui/material/Select\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { Density, RowId } from \"../types/common\";\r\nimport type { DataGridLabels, DataGridPaginationLabels } from \"../types/datagrid\";\r\n\r\n/**\r\n * Fully-resolved (all-present) label shapes. The public DataGridLabels /\r\n * DataGridPaginationLabels (../types/datagrid) are the OVERRIDE shapes (every\r\n * field optional). After mergeLabels every field is guaranteed present, so the\r\n * renderers (Pagination, DataGrid) read them without optional access.\r\n */\r\nexport type ResolvedDataGridPaginationLabels = Required<DataGridPaginationLabels>;\r\nexport type ResolvedDataGridLabels = Required<Omit<DataGridLabels, \"pagination\">> & {\r\n pagination: ResolvedDataGridPaginationLabels;\r\n};\r\n\r\nexport const DEFAULT_PAGE_SIZES = [25, 50, 100];\r\nexport const DEFAULT_MAX_BODY_HEIGHT = \"70vh\";\r\n\r\nexport const DEFAULT_LABELS: ResolvedDataGridLabels = Object.freeze({\r\n tableAria: \"Tableau\",\r\n selectAll: \"Tout sélectionner\",\r\n selectRow: (id: RowId) => `Sélectionner la ligne ${id}`,\r\n actionsHeader: \"Actions\",\r\n pagination: Object.freeze({\r\n loading: \"Chargement…\",\r\n rowsPerPage: \"Lignes par page\",\r\n firstPage: \"Première page\",\r\n previousPage: \"Page précédente\",\r\n nextPage: \"Page suivante\",\r\n lastPage: \"Dernière page\",\r\n navLabel: \"Pagination\",\r\n rangeOf: (from: number, to: number, total: number, fmt: (n: number) => string) => `${from}–${to} sur ${fmt(total)}`,\r\n }),\r\n});\r\n\r\nexport function mergeLabels(labels?: DataGridLabels): ResolvedDataGridLabels {\r\n if (!labels) return DEFAULT_LABELS;\r\n return {\r\n ...DEFAULT_LABELS,\r\n ...labels,\r\n pagination: { ...DEFAULT_LABELS.pagination, ...(labels.pagination || {}) },\r\n };\r\n}\r\n\r\nexport function makeNumberFormatter(locale?: string): Intl.NumberFormat {\r\n try { return new Intl.NumberFormat(locale); }\r\n catch { return new Intl.NumberFormat(\"fr-FR\"); }\r\n}\r\n\r\nexport function applyColumnOrder<C extends { key: string }>(\r\n columns: C[],\r\n columnOrder: string[] | null | undefined\r\n): C[] {\r\n if (!columnOrder || columnOrder.length === 0) return columns;\r\n const byKey = new Map<string, C>(columns.map((c): [string, C] => [c.key, c]));\r\n const ordered: C[] = [];\r\n for (const key of columnOrder) {\r\n const col = byKey.get(key);\r\n if (col !== undefined) { ordered.push(col); byKey.delete(key); }\r\n }\r\n for (const col of byKey.values()) ordered.push(col);\r\n return ordered;\r\n}\r\n\r\nfunction columnsSignature(columns: unknown): string {\r\n if (!Array.isArray(columns)) return \"\";\r\n return (columns as unknown[])\r\n .map((c) => (c && typeof c === \"object\" ? (c as { key?: unknown }).key : c))\r\n .join(\"|\");\r\n}\r\n\r\nexport function useColumnsStabilityWarn(columns: unknown): void {\r\n const prevColumnsRef = React.useRef(columns);\r\n const warnedRef = React.useRef(false);\r\n React.useEffect(() => {\r\n if (process.env[\"NODE_ENV\"] === \"production\") return;\r\n if (warnedRef.current) return;\r\n if (prevColumnsRef.current === columns) return;\r\n const prevSig = columnsSignature(prevColumnsRef.current);\r\n const nextSig = columnsSignature(columns);\r\n if (prevSig && prevSig === nextSig) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"[@portnet/ui v2] DataGrid received a new `columns` reference with identical column keys. Define columns outside render or wrap in useMemo.\");\r\n warnedRef.current = true;\r\n }\r\n prevColumnsRef.current = columns;\r\n });\r\n}\r\n\r\nexport const PAGINATION_ICON_SX = Object.freeze({ transform: \"scaleX(var(--pui-rtl-flip, 1))\" });\r\nexport const CONTAINER_SX = Object.freeze({ background: \"transparent\", overflow: \"hidden\" } satisfies SxProps<Theme>);\r\n\r\n/*\r\n * TABLE_BASE_SX — applied to the MUI <Table> via the sx prop.\r\n *\r\n * textTransform: \"none\" is INTENTIONALLY EXPLICIT here.\r\n *\r\n * Why not rely on the MUI theme (MuiTableCell.head.textTransform: \"none\")?\r\n *\r\n * Emotion injects sx-prop rules AFTER theme styleOverrides. Both rules\r\n * target <th> with equal specificity (1 class + 1 element). The last\r\n * one injected wins. sx wins over theme → the sx value is the truth.\r\n *\r\n * The old bug: this object had textTransform:\"uppercase\" which silently\r\n * overrode the theme's \"none\". The fix: keep explicit \"none\" here so\r\n * the correct value wins unconditionally, regardless of injection order.\r\n *\r\n * letterSpacing is reset to \"normal\" because all-caps text uses wider\r\n * tracking which looks wrong on title-case column headers.\r\n */\r\nconst TABLE_BASE_SX = Object.freeze({\r\n borderCollapse: \"separate\",\r\n borderSpacing: 0,\r\n \"& thead th\": {\r\n backgroundColor: \"var(--bg-subtle)\",\r\n color: \"var(--fg-muted)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontSize: \"var(--text-xs)\",\r\n textTransform: \"none\", // EXPLICIT — beats emotion injection order\r\n letterSpacing: \"normal\", // reset all-caps tracking\r\n borderBottom: \"1px solid var(--border)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n whiteSpace: \"nowrap\",\r\n },\r\n \"& tbody td\": {\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const TABLE_BY_DENSITY: Record<Density, SxProps<Theme>> = Object.freeze({\r\n comfortable: TABLE_BASE_SX,\r\n compact: Object.freeze({\r\n ...TABLE_BASE_SX,\r\n \"& tbody td\": { ...TABLE_BASE_SX[\"& tbody td\"], padding: \"var(--s-2) var(--s-4)\" },\r\n } satisfies SxProps<Theme>),\r\n});\r\n\r\nconst ROW_HOVER_SELECTED_SX = Object.freeze({\r\n \"&:nth-of-type(even)\": { backgroundColor: \"var(--bg-subtle)\" },\r\n \"&:hover\": { backgroundColor: \"var(--bg-hover)\" },\r\n \"&[data-selected]\": { backgroundColor: \"var(--accent-soft)\" },\r\n \"&[data-active]\": {\r\n backgroundColor: \"var(--accent-soft)\",\r\n \"& > td:first-of-type\": { boxShadow: \"inset calc(3px * var(--pui-rtl-flip, 1)) 0 0 var(--accent)\" },\r\n },\r\n});\r\n\r\nexport const ROW_CLICKABLE_SX = Object.freeze({\r\n ...ROW_HOVER_SELECTED_SX,\r\n cursor: \"pointer\",\r\n \"&:focus-visible\": { outline: \"2px solid var(--accent)\", outlineOffset: \"var(--pui-outline-offset-inset)\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const ROW_STATIC_SX = Object.freeze({ ...ROW_HOVER_SELECTED_SX, cursor: \"default\" } satisfies SxProps<Theme>);\r\n\r\nexport const HEADER_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\", position: \"sticky\", top: 0, zIndex: 2 } satisfies SxProps<Theme>);\r\nexport const BODY_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\" });\r\n\r\nexport const HOVER_ONLY_CELL_SX = Object.freeze({\r\n opacity: 0,\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n \"tr:hover &, tr:focus-within &\": { opacity: 1 },\r\n \"@media (pointer: coarse)\": { opacity: 1 },\r\n});\r\n\r\nexport const ERROR_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"none\" });\r\nexport const ERROR_INNER_SX = Object.freeze({ padding: \"var(--s-4)\" });\r\n\r\nexport const FILLER_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"1px solid var(--border)\" });\r\nexport const FILLER_HEAD_CELL_SX = Object.freeze({\r\n padding: 0, position: \"sticky\", top: 0, zIndex: 1,\r\n background: \"var(--bg-subtle)\", borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* ── Pagination ─────────────────────────────────────────────────── */\r\n\r\nconst PAGINATION_CONTAINER_SX = Object.freeze({\r\n display: \"flex\", alignItems: \"center\",\r\n // R-RS / WCAG 1.4.10 — the control groups (range / page-size / nav)\r\n // must wrap onto extra lines on narrow viewports. Their combined fixed\r\n // width (~400px+) exceeds a 320–375px phone, so without flexWrap the\r\n // bar overflowed its container and pushed the nav buttons off-screen.\r\n // rowGap (s2) keeps wrapped rows tight; columnGap (s4) is the original\r\n // inter-group spacing on a single row.\r\n flexWrap: \"wrap\", gap: \"var(--s-2) var(--s-4)\",\r\n padding: \"var(--s-2) var(--s-4)\", borderTop: \"1px solid var(--border)\",\r\n background: \"var(--surface)\", fontSize: \"var(--text-xs)\", color: \"var(--fg-muted)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PAGINATION_RANGE_SX = Object.freeze({ flex: 1, fontVariantNumeric: \"tabular-nums\" });\r\nconst PAGINATION_PAGESIZE_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_NAV_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_PAGE_OF_SX = Object.freeze({ minWidth: 56, textAlign: \"center\", fontVariantNumeric: \"tabular-nums\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_SELECT_SX = Object.freeze({ fontSize: \"var(--text-xs)\", height: 28 });\r\n\r\nexport interface PaginationProps {\r\n page: number;\r\n pageSize: number;\r\n total: number;\r\n onPageChange: (page: number) => void;\r\n onPageSizeChange?: (pageSize: number) => void;\r\n pageSizes?: number[];\r\n loading?: boolean;\r\n locale?: string;\r\n labels: ResolvedDataGridPaginationLabels;\r\n}\r\n\r\nexport function Pagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizes = DEFAULT_PAGE_SIZES, loading, locale, labels }: PaginationProps) {\r\n const pages = Math.max(1, Math.ceil(total / pageSize));\r\n const from = total === 0 ? 0 : (page - 1) * pageSize + 1;\r\n const to = Math.min(total, page * pageSize);\r\n const go = (p: number) => onPageChange(Math.min(pages, Math.max(1, p)));\r\n\r\n const fmt = React.useMemo(() => {\r\n const nf = makeNumberFormatter(locale);\r\n return (n: number) => nf.format(n);\r\n }, [locale]);\r\n\r\n return (\r\n <Box component=\"nav\" aria-label={labels.navLabel} sx={PAGINATION_CONTAINER_SX}>\r\n {/* PAGE-2 — polite, atomic live region so SR users hear the position\r\n change (\"1–25 sur 100\" → \"26–50 sur 100\") as they page. */}\r\n <Box role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" sx={PAGINATION_RANGE_SX}>{loading ? labels.loading : labels.rangeOf(from, to, total, fmt)}</Box>\r\n {onPageSizeChange && (\r\n <Box sx={PAGINATION_PAGESIZE_GROUP_SX}>\r\n <span>{labels.rowsPerPage}</span>\r\n <Select size=\"small\" value={pageSize} onChange={(e) => onPageSizeChange(Number(e.target.value))} inputProps={{ \"aria-label\": String(labels.rowsPerPage) }} sx={PAGINATION_SELECT_SX}>\r\n {pageSizes.map((s) => <MenuItem key={s} value={s}>{s}</MenuItem>)}\r\n </Select>\r\n </Box>\r\n )}\r\n <Box sx={PAGINATION_NAV_GROUP_SX}>\r\n <IconButton size=\"small\" onClick={() => go(1)} disabled={page <= 1} aria-label={labels.firstPage}><FirstPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(page - 1)} disabled={page <= 1} aria-label={labels.previousPage}><KeyboardArrowLeftIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <Box sx={PAGINATION_PAGE_OF_SX}>{page} / {pages}</Box>\r\n <IconButton size=\"small\" onClick={() => go(page + 1)} disabled={page >= pages} aria-label={labels.nextPage}><KeyboardArrowRightIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(pages)} disabled={page >= pages} aria-label={labels.lastPage}><LastPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"_dataGridShared.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_KeyboardArrowLeft","_KeyboardArrowRight","_FirstPage","_LastPage","_Select","_MenuItem","_mergeLabels","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_createForOfIteratorHelper","o","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","DEFAULT_PAGE_SIZES","exports","DEFAULT_MAX_BODY_HEIGHT","DEFAULT_LABELS","freeze","tableAria","selectAll","selectRow","id","concat","actionsHeader","pagination","loading","rowsPerPage","firstPage","previousPage","nextPage","lastPage","navLabel","rangeOf","to","total","fmt","mergeLabels","labels","mergeLabelDict","makeNumberFormatter","locale","Intl","NumberFormat","_unused","applyColumnOrder","columns","columnOrder","byKey","Map","map","c","ordered","_iterator","_step","col","_iterator2","values","_step2","columnsSignature","join","useColumnsStabilityWarn","prevColumnsRef","useRef","warnedRef","useEffect","process","env","current","prevSig","nextSig","console","warn","PAGINATION_ICON_SX","transform","CONTAINER_SX","background","overflow","TABLE_BASE_SX","borderCollapse","borderSpacing","backgroundColor","color","fontWeight","fontSize","textTransform","letterSpacing","borderBottom","padding","whiteSpace","TABLE_BY_DENSITY","comfortable","compact","ROW_HOVER_SELECTED_SX","boxShadow","ROW_CLICKABLE_SX","cursor","outline","outlineOffset","ROW_STATIC_SX","HEADER_CHECKBOX_CELL_SX","width","position","top","zIndex","BODY_CHECKBOX_CELL_SX","HOVER_ONLY_CELL_SX","opacity","transition","ERROR_CELL_SX","ERROR_INNER_SX","FILLER_CELL_SX","FILLER_HEAD_CELL_SX","PAGINATION_CONTAINER_SX","display","alignItems","flexWrap","gap","borderTop","PAGINATION_RANGE_SX","flex","fontVariantNumeric","PAGINATION_PAGESIZE_GROUP_SX","PAGINATION_NAV_GROUP_SX","PAGINATION_PAGE_OF_SX","minWidth","textAlign","PAGINATION_SELECT_SX","height","Pagination","_ref","page","pageSize","onPageChange","onPageSizeChange","_ref$pageSizes","pageSizes","pages","Math","max","ceil","min","go","p","useMemo","nf","format","jsxs","component","sx","children","jsx","role","size","onChange","inputProps","onClick","disabled"],"sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"sourcesContent":["/**\r\n * _dataGridShared — Portnet UI v2 (private)\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport KeyboardArrowLeftIcon from \"@mui/icons-material/KeyboardArrowLeft\";\r\nimport KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\";\r\nimport FirstPageIcon from \"@mui/icons-material/FirstPage\";\r\nimport LastPageIcon from \"@mui/icons-material/LastPage\";\r\nimport Select from \"@mui/material/Select\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { Density, RowId } from \"../types/common\";\r\nimport type { DataGridLabels, DataGridPaginationLabels } from \"../types/datagrid\";\r\nimport { mergeLabels as mergeLabelDict } from \"../utils/mergeLabels\";\r\n\r\n/**\r\n * Strips optionality AND an explicitly-declared `| undefined`.\r\n *\r\n * `Required<T>` is NOT sufficient here, and the difference is invisible until it\r\n * bites. `-?` removes `undefined` only when it was IMPLIED by the `?` marker.\r\n * Under `exactOptionalPropertyTypes` — mandatory platform-wide — the public label\r\n * shapes declare `?: T | undefined` explicitly, so that `undefined` is part of\r\n * the declared type and survives `Required<>`. The \"fully-resolved\" shapes below\r\n * silently stopped being resolved, and every renderer that read them without an\r\n * optional check became a type error (three of them).\r\n *\r\n * `Exclude<T[K], undefined>` removes it for real. Behaviour is identical to what\r\n * `Required<>` produced BEFORE the optional props were widened — this restores\r\n * the original intent rather than changing it.\r\n */\r\ntype Concrete<T> = { [K in keyof T]-?: Exclude<T[K], undefined> };\r\n\r\n/**\r\n * Fully-resolved (all-present) label shapes. The public DataGridLabels /\r\n * DataGridPaginationLabels (../types/datagrid) are the OVERRIDE shapes (every\r\n * field optional). After mergeLabels every field is guaranteed present, so the\r\n * renderers (Pagination, DataGrid) read them without optional access.\r\n */\r\nexport type ResolvedDataGridPaginationLabels = Concrete<DataGridPaginationLabels>;\r\nexport type ResolvedDataGridLabels = Concrete<Omit<DataGridLabels, \"pagination\">> & {\r\n pagination: ResolvedDataGridPaginationLabels;\r\n};\r\n\r\nexport const DEFAULT_PAGE_SIZES = [25, 50, 100];\r\nexport const DEFAULT_MAX_BODY_HEIGHT = \"70vh\";\r\n\r\nexport const DEFAULT_LABELS: ResolvedDataGridLabels = Object.freeze({\r\n tableAria: \"Tableau\",\r\n selectAll: \"Tout sélectionner\",\r\n selectRow: (id: RowId) => `Sélectionner la ligne ${id}`,\r\n actionsHeader: \"Actions\",\r\n pagination: Object.freeze({\r\n loading: \"Chargement…\",\r\n rowsPerPage: \"Lignes par page\",\r\n firstPage: \"Première page\",\r\n previousPage: \"Page précédente\",\r\n nextPage: \"Page suivante\",\r\n lastPage: \"Dernière page\",\r\n navLabel: \"Pagination\",\r\n rangeOf: (from: number, to: number, total: number, fmt: (n: number) => string) => `${from}–${to} sur ${fmt(total)}`,\r\n }),\r\n});\r\n\r\nexport function mergeLabels(labels?: DataGridLabels): ResolvedDataGridLabels {\r\n if (!labels) return DEFAULT_LABELS;\r\n /*\r\n * Both levels go through the shared undefined-safe merge. A spread does not skip\r\n * explicit `undefined`, so the previous form — a bare object spread of the\r\n * overrides over the defaults — let a consumer passing `selectRow: undefined`\r\n * DELETE the default and crash the renderer. The old `|| {}` guarded the nested\r\n * `pagination` object against being undefined, but not its individual VALUES —\r\n * same hazard, one level down.\r\n *\r\n * The broken form is described rather than quoted, deliberately:\r\n * scripts/fix-label-merge.mjs is a text scan, and a verbatim copy here matched it\r\n * — so the codemod offered to rewrite this COMMENT. Same lesson KPICard already\r\n * records for the banned-patterns guard.\r\n *\r\n * `pagination` is merged at its OWN level, deliberately, rather than through a\r\n * recursive deep merge: two explicit levels can be read, whereas a recursive\r\n * helper hides how deep it goes and raises the question of what it does to\r\n * arrays. Convention for the whole library: a nested label dictionary is\r\n * merged at its own level.\r\n */\r\n return mergeLabelDict(DEFAULT_LABELS, {\r\n ...labels,\r\n pagination: mergeLabelDict(DEFAULT_LABELS.pagination, labels.pagination),\r\n });\r\n}\r\n\r\nexport function makeNumberFormatter(locale?: string): Intl.NumberFormat {\r\n try { return new Intl.NumberFormat(locale); }\r\n catch { return new Intl.NumberFormat(\"fr-FR\"); }\r\n}\r\n\r\nexport function applyColumnOrder<C extends { key: string }>(\r\n columns: C[],\r\n columnOrder: string[] | null | undefined\r\n): C[] {\r\n if (!columnOrder || columnOrder.length === 0) return columns;\r\n const byKey = new Map<string, C>(columns.map((c): [string, C] => [c.key, c]));\r\n const ordered: C[] = [];\r\n for (const key of columnOrder) {\r\n const col = byKey.get(key);\r\n if (col !== undefined) { ordered.push(col); byKey.delete(key); }\r\n }\r\n for (const col of byKey.values()) ordered.push(col);\r\n return ordered;\r\n}\r\n\r\nfunction columnsSignature(columns: unknown): string {\r\n if (!Array.isArray(columns)) return \"\";\r\n return (columns as unknown[])\r\n .map((c) => (c && typeof c === \"object\" ? (c as { key?: unknown }).key : c))\r\n .join(\"|\");\r\n}\r\n\r\nexport function useColumnsStabilityWarn(columns: unknown): void {\r\n const prevColumnsRef = React.useRef(columns);\r\n const warnedRef = React.useRef(false);\r\n React.useEffect(() => {\r\n if (process.env[\"NODE_ENV\"] === \"production\") return;\r\n if (warnedRef.current) return;\r\n if (prevColumnsRef.current === columns) return;\r\n const prevSig = columnsSignature(prevColumnsRef.current);\r\n const nextSig = columnsSignature(columns);\r\n if (prevSig && prevSig === nextSig) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"[@portnet/ui v2] DataGrid received a new `columns` reference with identical column keys. Define columns outside render or wrap in useMemo.\");\r\n warnedRef.current = true;\r\n }\r\n prevColumnsRef.current = columns;\r\n });\r\n}\r\n\r\nexport const PAGINATION_ICON_SX = Object.freeze({ transform: \"scaleX(var(--pui-rtl-flip, 1))\" });\r\nexport const CONTAINER_SX = Object.freeze({ background: \"transparent\", overflow: \"hidden\" } satisfies SxProps<Theme>);\r\n\r\n/*\r\n * TABLE_BASE_SX — applied to the MUI <Table> via the sx prop.\r\n *\r\n * textTransform: \"none\" is INTENTIONALLY EXPLICIT here.\r\n *\r\n * Why not rely on the MUI theme (MuiTableCell.head.textTransform: \"none\")?\r\n *\r\n * Emotion injects sx-prop rules AFTER theme styleOverrides. Both rules\r\n * target <th> with equal specificity (1 class + 1 element). The last\r\n * one injected wins. sx wins over theme → the sx value is the truth.\r\n *\r\n * The old bug: this object had textTransform:\"uppercase\" which silently\r\n * overrode the theme's \"none\". The fix: keep explicit \"none\" here so\r\n * the correct value wins unconditionally, regardless of injection order.\r\n *\r\n * letterSpacing is reset to \"normal\" because all-caps text uses wider\r\n * tracking which looks wrong on title-case column headers.\r\n */\r\nconst TABLE_BASE_SX = Object.freeze({\r\n borderCollapse: \"separate\",\r\n borderSpacing: 0,\r\n \"& thead th\": {\r\n backgroundColor: \"var(--bg-subtle)\",\r\n color: \"var(--fg-muted)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontSize: \"var(--text-xs)\",\r\n textTransform: \"none\", // EXPLICIT — beats emotion injection order\r\n letterSpacing: \"normal\", // reset all-caps tracking\r\n borderBottom: \"1px solid var(--border)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n whiteSpace: \"nowrap\",\r\n },\r\n \"& tbody td\": {\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const TABLE_BY_DENSITY: Record<Density, SxProps<Theme>> = Object.freeze({\r\n comfortable: TABLE_BASE_SX,\r\n compact: Object.freeze({\r\n ...TABLE_BASE_SX,\r\n \"& tbody td\": { ...TABLE_BASE_SX[\"& tbody td\"], padding: \"var(--s-2) var(--s-4)\" },\r\n } satisfies SxProps<Theme>),\r\n});\r\n\r\nconst ROW_HOVER_SELECTED_SX = Object.freeze({\r\n \"&:nth-of-type(even)\": { backgroundColor: \"var(--bg-subtle)\" },\r\n \"&:hover\": { backgroundColor: \"var(--bg-hover)\" },\r\n \"&[data-selected]\": { backgroundColor: \"var(--accent-soft)\" },\r\n \"&[data-active]\": {\r\n backgroundColor: \"var(--accent-soft)\",\r\n \"& > td:first-of-type\": { boxShadow: \"inset calc(3px * var(--pui-rtl-flip, 1)) 0 0 var(--accent)\" },\r\n },\r\n});\r\n\r\nexport const ROW_CLICKABLE_SX = Object.freeze({\r\n ...ROW_HOVER_SELECTED_SX,\r\n cursor: \"pointer\",\r\n \"&:focus-visible\": { outline: \"2px solid var(--accent)\", outlineOffset: \"var(--pui-outline-offset-inset)\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const ROW_STATIC_SX = Object.freeze({ ...ROW_HOVER_SELECTED_SX, cursor: \"default\" } satisfies SxProps<Theme>);\r\n\r\nexport const HEADER_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\", position: \"sticky\", top: 0, zIndex: 2 } satisfies SxProps<Theme>);\r\nexport const BODY_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\" });\r\n\r\nexport const HOVER_ONLY_CELL_SX = Object.freeze({\r\n opacity: 0,\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n \"tr:hover &, tr:focus-within &\": { opacity: 1 },\r\n \"@media (pointer: coarse)\": { opacity: 1 },\r\n});\r\n\r\nexport const ERROR_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"none\" });\r\nexport const ERROR_INNER_SX = Object.freeze({ padding: \"var(--s-4)\" });\r\n\r\nexport const FILLER_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"1px solid var(--border)\" });\r\nexport const FILLER_HEAD_CELL_SX = Object.freeze({\r\n padding: 0, position: \"sticky\", top: 0, zIndex: 1,\r\n background: \"var(--bg-subtle)\", borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* ── Pagination ─────────────────────────────────────────────────── */\r\n\r\nconst PAGINATION_CONTAINER_SX = Object.freeze({\r\n display: \"flex\", alignItems: \"center\",\r\n // R-RS / WCAG 1.4.10 — the control groups (range / page-size / nav)\r\n // must wrap onto extra lines on narrow viewports. Their combined fixed\r\n // width (~400px+) exceeds a 320–375px phone, so without flexWrap the\r\n // bar overflowed its container and pushed the nav buttons off-screen.\r\n // rowGap (s2) keeps wrapped rows tight; columnGap (s4) is the original\r\n // inter-group spacing on a single row.\r\n flexWrap: \"wrap\", gap: \"var(--s-2) var(--s-4)\",\r\n padding: \"var(--s-2) var(--s-4)\", borderTop: \"1px solid var(--border)\",\r\n background: \"var(--surface)\", fontSize: \"var(--text-xs)\", color: \"var(--fg-muted)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PAGINATION_RANGE_SX = Object.freeze({ flex: 1, fontVariantNumeric: \"tabular-nums\" });\r\nconst PAGINATION_PAGESIZE_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_NAV_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_PAGE_OF_SX = Object.freeze({ minWidth: 56, textAlign: \"center\", fontVariantNumeric: \"tabular-nums\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_SELECT_SX = Object.freeze({ fontSize: \"var(--text-xs)\", height: 28 });\r\n\r\nexport interface PaginationProps {\r\n page: number;\r\n pageSize: number;\r\n total: number;\r\n onPageChange: (page: number) => void;\r\n onPageSizeChange?: ((pageSize: number) => void) | undefined;\r\n pageSizes?: number[] | undefined;\r\n loading?: boolean | undefined;\r\n locale?: string | undefined;\r\n labels: ResolvedDataGridPaginationLabels;\r\n}\r\n\r\nexport function Pagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizes = DEFAULT_PAGE_SIZES, loading, locale, labels }: PaginationProps) {\r\n const pages = Math.max(1, Math.ceil(total / pageSize));\r\n const from = total === 0 ? 0 : (page - 1) * pageSize + 1;\r\n const to = Math.min(total, page * pageSize);\r\n const go = (p: number) => onPageChange(Math.min(pages, Math.max(1, p)));\r\n\r\n const fmt = React.useMemo(() => {\r\n const nf = makeNumberFormatter(locale);\r\n return (n: number) => nf.format(n);\r\n }, [locale]);\r\n\r\n return (\r\n <Box component=\"nav\" aria-label={labels.navLabel} sx={PAGINATION_CONTAINER_SX}>\r\n {/* PAGE-2 — polite, atomic live region so SR users hear the position\r\n change (\"1–25 sur 100\" → \"26–50 sur 100\") as they page. */}\r\n <Box role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" sx={PAGINATION_RANGE_SX}>{loading ? labels.loading : labels.rangeOf(from, to, total, fmt)}</Box>\r\n {onPageSizeChange && (\r\n <Box sx={PAGINATION_PAGESIZE_GROUP_SX}>\r\n <span>{labels.rowsPerPage}</span>\r\n <Select size=\"small\" value={pageSize} onChange={(e) => onPageSizeChange(Number(e.target.value))} inputProps={{ \"aria-label\": String(labels.rowsPerPage) }} sx={PAGINATION_SELECT_SX}>\r\n {pageSizes.map((s) => <MenuItem key={s} value={s}>{s}</MenuItem>)}\r\n </Select>\r\n </Box>\r\n )}\r\n <Box sx={PAGINATION_NAV_GROUP_SX}>\r\n <IconButton size=\"small\" onClick={() => go(1)} disabled={page <= 1} aria-label={labels.firstPage}><FirstPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(page - 1)} disabled={page <= 1} aria-label={labels.previousPage}><KeyboardArrowLeftIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <Box sx={PAGINATION_PAGE_OF_SX}>{page} / {pages}</Box>\r\n <IconButton size=\"small\" onClick={() => go(page + 1)} disabled={page >= pages} aria-label={labels.nextPage}><KeyboardArrowRightIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(pages)} disabled={page >= pages} aria-label={labels.lastPage}><LastPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * _pickerSerialisation — lecture / ecriture partagees des ponts Formik de date.
3
+ *
4
+ * ── POURQUOI CE MODULE EXISTE ────────────────────────────────────────
5
+ *
6
+ * `FormikDatePicker` portait ces deux fonctions en prive. L'arrivee d'un
7
+ * SECOND pont (`FormikDateTimePicker`, gap G-E) posait le choix : les recopier,
8
+ * ou les partager.
9
+ *
10
+ * Les recopier aurait reproduit exactement la situation que la note S-03 de
11
+ * `FormikDatePicker` raconte. Rappel de ce qu'elle dit : ce pont serialisait
12
+ * VERS moment mais relisait DEPUIS `new Date(raw)`, en ignorant
13
+ * `outputFormat`. L'asymetrie corrompait silencieusement tout format non ISO —
14
+ * `new Date("31-12-2026")` donne Invalid Date, `new Date("05-03-2026")` donne
15
+ * le 3 mai au lieu du 5 mars. Le chemin d'ECRITURE fonctionnait, donc un
16
+ * formulaire rempli puis soumis se comportait correctement : le degat
17
+ * n'apparaissait qu'a la RELECTURE, c'est-a-dire en modification. Un module a
18
+ * livre ce defaut pendant sept lots sous un typecheck strict.
19
+ *
20
+ * Une asymetrie de ce genre entre DEUX ponts serait encore moins visible : ils
21
+ * se ressemblent, personne ne les compare, et chacun a l'air correct
22
+ * isolement. La seule garantie est qu'il n'y ait qu'un exemplaire du couple
23
+ * lecture / ecriture.
24
+ *
25
+ * Module INTERNE : non exporte par la surface publique (prefixe `_`).
26
+ */
27
+ /**
28
+ * Relit une valeur stockee par Formik vers un `Date`.
29
+ *
30
+ * `outputFormat` est passe pour que la lecture soit SYMETRIQUE de
31
+ * `serialiseDate` : on parse avec le format qui a servi a ecrire, en mode
32
+ * STRICT. Une valeur stockee qui ne correspond pas rend `null` plutot que la
33
+ * meilleure approximation de moment — une date absente est recuperable, une
34
+ * date fausse de deux mois ne l'est pas.
35
+ */
36
+ export declare const coerceToDate: (raw: unknown, outputFormat?: string) => Date | null;
37
+ /**
38
+ * Serialise un `Date` vers le format demande.
39
+ * undefined -> rend le `Date` tel quel (defaut, compatible)
40
+ * "iso" -> `Date.toISOString()`
41
+ * toute autre chaine -> `moment(date).format(outputFormat)`
42
+ */
43
+ export declare function serialiseDate(date: Date | null, outputFormat: string | undefined): Date | string | null;
44
+ //# sourceMappingURL=_pickerSerialisation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_pickerSerialisation.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/_pickerSerialisation.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,KAAK,OAAO,EACZ,eAAe,MAAM,KACpB,IAAI,GAAG,IAwBT,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,YAAY,EAAE,MAAM,GAAG,SAAS,GAC/B,IAAI,GAAG,MAAM,GAAG,IAAI,CAOtB"}