@12-apps/ui 6.78.4 → 6.80.0

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 (1203) hide show
  1. package/dist/_internal/components/data-display/Alert/Alert.js +3 -3
  2. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +3 -2
  3. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.parts.js +2 -1
  4. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +7 -5
  5. package/dist/_internal/components/data-display/Avatar/Avatar.js +5 -4
  6. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  7. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +4 -4
  8. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +12 -11
  9. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -7
  10. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +5 -2
  11. package/dist/_internal/components/data-display/Carousel/Carousel.js +7 -4
  12. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +4 -1
  13. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  14. package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
  15. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  16. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  17. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  18. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +55 -53
  19. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +76 -74
  20. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +4 -3
  21. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +10 -9
  22. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +8 -7
  23. package/dist/_internal/components/data-display/DataViews/base-card.js +5 -5
  24. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +3 -3
  25. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +3 -3
  26. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +3 -3
  27. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
  28. package/dist/_internal/components/data-display/DataViews/base-list-card.js +10 -10
  29. package/dist/_internal/components/data-display/DataViews/data-views-card-body.js +2 -2
  30. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +17 -15
  31. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +2 -2
  32. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
  33. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +24 -22
  34. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +8 -8
  35. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +1 -1
  36. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +50 -48
  37. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +25 -23
  38. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +22 -20
  39. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +23 -21
  40. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
  41. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +4 -3
  42. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +13 -11
  43. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +25 -23
  44. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +12 -10
  45. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +1 -1
  46. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  47. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +5 -5
  48. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +3 -2
  49. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -1
  50. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +11 -8
  51. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +10 -7
  52. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +1 -1
  53. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +16 -12
  54. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
  55. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  56. package/dist/_internal/components/data-display/LazyImage/LazyImage.hooks.js +1 -1
  57. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -2
  58. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
  59. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -1
  60. package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +5 -1
  61. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +7 -3
  62. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +5 -1
  63. package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +6 -1
  64. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +9 -6
  65. package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
  66. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +6 -4
  67. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +3 -2
  68. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  69. package/dist/_internal/components/data-display/Sheet/Sheet.js +6 -5
  70. package/dist/_internal/components/data-display/Sheet/Sheet.parts.js +2 -1
  71. package/dist/_internal/components/data-display/Stepper/Stepper.js +3 -1
  72. package/dist/_internal/components/data-display/Table/Table.helpers.js +1 -1
  73. package/dist/_internal/components/data-display/Table/Table.js +6 -4
  74. package/dist/_internal/components/data-display/Table/TableParts.hooks.js +4 -2
  75. package/dist/_internal/components/data-display/Table/TableParts.js +4 -2
  76. package/dist/_internal/components/data-display/Timeline/Timeline.js +4 -2
  77. package/dist/_internal/components/data-display/Timeline/TimelineRow.js +1 -1
  78. package/dist/_internal/components/data-display/index.js +73 -68
  79. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +5 -4
  80. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +4 -3
  81. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +6 -5
  82. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +5 -4
  83. package/dist/_internal/components/feedback/Dialog/Dialog.js +3 -2
  84. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +4 -4
  85. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +12 -11
  86. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +6 -6
  87. package/dist/_internal/components/feedback/Sonner/Sonner.js +3 -2
  88. package/dist/_internal/components/feedback/Sonner/SonnerToast.js +1 -1
  89. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +7 -6
  90. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +2 -1
  91. package/dist/_internal/components/feedback/Toast/Toast.js +2 -1
  92. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +3 -2
  93. package/dist/_internal/components/feedback/TutorialOverlay/TutorialStepBody.js +2 -1
  94. package/dist/_internal/components/feedback/index.js +34 -32
  95. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.helpers.js +3 -1
  96. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +8 -6
  97. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +12 -10
  98. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +4 -2
  99. package/dist/_internal/components/form/AddressAutocomplete/useAddressPredictions.js +4 -2
  100. package/dist/_internal/components/form/AddressAutocomplete/useAddressSelection.js +1 -1
  101. package/dist/_internal/components/form/AddressAutocomplete/useCurrentLocation.js +1 -1
  102. package/dist/_internal/components/form/AddressAutocomplete/useGoogleMapsAPI.js +1 -1
  103. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  104. package/dist/_internal/components/form/Calendar/Calendar.hooks.js +2 -2
  105. package/dist/_internal/components/form/Calendar/Calendar.js +6 -6
  106. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  107. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  108. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
  109. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  110. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  111. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +9 -9
  112. package/dist/_internal/components/form/Checkbox/Checkbox.js +2 -2
  113. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
  114. package/dist/_internal/components/form/Command/Command.hooks.js +2 -1
  115. package/dist/_internal/components/form/Command/Command.js +4 -3
  116. package/dist/_internal/components/form/Command/Command.parts.js +2 -1
  117. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +3 -2
  118. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +12 -11
  119. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +2 -1
  120. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +3 -2
  121. package/dist/_internal/components/form/InputOTP/InputOTP.js +2 -2
  122. package/dist/_internal/components/form/Menubar/Menubar.js +2 -2
  123. package/dist/_internal/components/form/PhoneInput/PhoneInput.hooks.js +2 -2
  124. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +4 -3
  125. package/dist/_internal/components/form/PhoneInput/countries.js +7 -3
  126. package/dist/_internal/components/form/PickerSheet/PickerSheet.js +4 -4
  127. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.dom.js +2 -1
  128. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.format.js +3 -2
  129. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.hooks.js +4 -3
  130. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +7 -5
  131. package/dist/_internal/components/form/RichTextEditor/RichTextEditorToolbar.js +1 -1
  132. package/dist/_internal/components/form/Switch/Switch.js +4 -4
  133. package/dist/_internal/components/form/Switch/Switch.parts.js +3 -3
  134. package/dist/_internal/components/form/Switch/Switch.styles.js +2 -2
  135. package/dist/_internal/components/form/Textarea/Textarea.js +1 -1
  136. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js +4 -1
  137. package/dist/_internal/components/form/Textarea/TextareaRichEditor.js.map +1 -1
  138. package/dist/_internal/components/form/UploadButton/UploadButton.hooks.js +2 -1
  139. package/dist/_internal/components/form/UploadButton/UploadButton.js +3 -2
  140. package/dist/_internal/components/form/index.js +53 -50
  141. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +10 -10
  142. package/dist/_internal/components/form/total-form/Fields/index.js +13 -13
  143. package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -2
  144. package/dist/_internal/components/index.js +214 -205
  145. package/dist/_internal/components/layout/Card/Card.js +2 -2
  146. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +2 -1
  147. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -1
  148. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +2 -1
  149. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +2 -1
  150. package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -1
  151. package/dist/_internal/components/layout/Drawer/Drawer.js +2 -1
  152. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +3 -3
  153. package/dist/_internal/components/layout/SettingCard/SettingCard.js +4 -4
  154. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +3 -3
  155. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +10 -10
  156. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +8 -8
  157. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +10 -10
  158. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +7 -6
  159. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.rail.js +1 -1
  160. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +3 -3
  161. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +2 -2
  162. package/dist/_internal/components/layout/TableFilter/TableFilter.js +2 -1
  163. package/dist/_internal/components/layout/index.js +38 -36
  164. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +9 -8
  165. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -1
  166. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +2 -1
  167. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.helpers.js +2 -1
  168. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.hooks.js +3 -2
  169. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +6 -4
  170. package/dist/_internal/components/navigation/CommandPalette/CommandPaletteResults.js +3 -1
  171. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +4 -4
  172. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +7 -6
  173. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.shell.js +1 -1
  174. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  175. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +5 -4
  176. package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
  177. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +4 -3
  178. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +6 -5
  179. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +3 -2
  180. package/dist/_internal/components/navigation/index.js +34 -30
  181. package/dist/_internal/components/typography/Code/Code.js +2 -1
  182. package/dist/_internal/components/typography/index.js +2 -1
  183. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +2 -1
  184. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +3 -2
  185. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.parts.js +2 -1
  186. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
  187. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +7 -3
  188. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +6 -4
  189. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +4 -2
  190. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +5 -3
  191. package/dist/_internal/components/utility/index.js +11 -9
  192. package/dist/_internal/copy/labels.js +1 -0
  193. package/dist/_internal/en-US.data-display.js +1 -1
  194. package/dist/_internal/en-US.feedback.js +1 -1
  195. package/dist/_internal/en-US.form.js +1 -1
  196. package/dist/_internal/en-US.labels.js +8 -0
  197. package/dist/_internal/en-US.navigation.js +1 -1
  198. package/dist/_internal/en-US.utility.js +1 -1
  199. package/dist/_internal/pt-BR.data-display.js +1 -1
  200. package/dist/_internal/pt-BR.feedback.js +1 -1
  201. package/dist/_internal/pt-BR.form.js +1 -1
  202. package/dist/_internal/pt-BR.labels.js +8 -0
  203. package/dist/_internal/pt-BR.labels.js.map +1 -0
  204. package/dist/_internal/pt-BR.navigation.js +1 -1
  205. package/dist/_internal/pt-BR.utility.js +1 -1
  206. package/dist/_internal/social-login-button/social-login-button.js +5 -4
  207. package/dist/_internal/user-avatar/user-avatar.js +9 -7
  208. package/dist/_internal/utils/resolve-labels.js +8 -0
  209. package/dist/_internal/utils/resolve-labels.js.map +1 -0
  210. package/dist/charts.js +11 -11
  211. package/dist/{chunk-OPP6USJC.js → chunk-2FQF4CNE.js} +2 -2
  212. package/dist/{chunk-BWFQEASG.js → chunk-2P5ZBBTL.js} +5 -5
  213. package/dist/{chunk-SV6IQ2YO.js → chunk-3B7EJIG7.js} +6 -4
  214. package/dist/chunk-3B7EJIG7.js.map +1 -0
  215. package/dist/{chunk-GHXW6O5T.js → chunk-3LQLLL2J.js} +4 -4
  216. package/dist/chunk-3LQLLL2J.js.map +1 -0
  217. package/dist/{chunk-4MQ6XTIJ.js → chunk-3OWFUFZL.js} +27 -13
  218. package/dist/chunk-3OWFUFZL.js.map +1 -0
  219. package/dist/{chunk-QVO4SIS7.js → chunk-3W2B7IZG.js} +2 -2
  220. package/dist/{chunk-AYP6ICAY.js → chunk-44FY2YZL.js} +11 -10
  221. package/dist/chunk-44FY2YZL.js.map +1 -0
  222. package/dist/{chunk-Q6PRGXR2.js → chunk-4HBCWKIX.js} +4 -4
  223. package/dist/{chunk-RA6W37NZ.js → chunk-4JV46KXS.js} +11 -8
  224. package/dist/chunk-4JV46KXS.js.map +1 -0
  225. package/dist/{chunk-2QO3BKUQ.js → chunk-4NVEUJXK.js} +5 -5
  226. package/dist/{chunk-O6SAU5JA.js → chunk-4OTJ66ID.js} +4 -4
  227. package/dist/{chunk-PBMCRDZI.js → chunk-4PREA2R5.js} +5 -2
  228. package/dist/chunk-4PREA2R5.js.map +1 -0
  229. package/dist/{chunk-YZX4DVRS.js → chunk-52UVUVYQ.js} +6 -3
  230. package/dist/chunk-52UVUVYQ.js.map +1 -0
  231. package/dist/{chunk-PIP7XII2.js → chunk-5JDY5W7O.js} +3 -3
  232. package/dist/{chunk-XICRCPEQ.js → chunk-5U7LBO2V.js} +5 -4
  233. package/dist/chunk-5U7LBO2V.js.map +1 -0
  234. package/dist/{chunk-JE6RZ5L6.js → chunk-5ZOJLYD2.js} +4 -4
  235. package/dist/{chunk-KT3TF2LT.js → chunk-634Z7HGN.js} +10 -5
  236. package/dist/chunk-634Z7HGN.js.map +1 -0
  237. package/dist/{chunk-LG52LMAM.js → chunk-6B7VZFAO.js} +3 -3
  238. package/dist/{chunk-ALREWFRX.js → chunk-6DGNMASB.js} +4 -4
  239. package/dist/{chunk-LH4VKUZC.js → chunk-6EERXU6R.js} +13 -7
  240. package/dist/chunk-6EERXU6R.js.map +1 -0
  241. package/dist/{chunk-MA6SUE7F.js → chunk-6EZQLNPK.js} +5 -3
  242. package/dist/chunk-6EZQLNPK.js.map +1 -0
  243. package/dist/{chunk-555TUQ7E.js → chunk-6IVR5HFI.js} +6 -6
  244. package/dist/{chunk-VRPCZ3IE.js → chunk-6JKECOZ2.js} +7 -6
  245. package/dist/chunk-6JKECOZ2.js.map +1 -0
  246. package/dist/{chunk-J26ZWYQI.js → chunk-6KCJNERH.js} +2 -2
  247. package/dist/{chunk-5752357K.js → chunk-6N2U67KF.js} +4 -4
  248. package/dist/{chunk-AXZCCX7O.js → chunk-6S7CFH6V.js} +2 -2
  249. package/dist/{chunk-PMRLFNBT.js → chunk-763AHWKU.js} +4 -4
  250. package/dist/{chunk-6DAIC2MG.js → chunk-775LIZXS.js} +4 -4
  251. package/dist/{chunk-XKSA4L2X.js → chunk-7DODMQRK.js} +11 -3
  252. package/dist/chunk-7DODMQRK.js.map +1 -0
  253. package/dist/{chunk-7HA7UH7O.js → chunk-7H5BIZ33.js} +4 -4
  254. package/dist/{chunk-VEBNL5MG.js → chunk-7HYLXERK.js} +4 -4
  255. package/dist/{chunk-M3DSPEZ3.js → chunk-7S3NG2AO.js} +6 -6
  256. package/dist/{chunk-EUACQR6N.js → chunk-7UDQJOZZ.js} +7 -5
  257. package/dist/chunk-7UDQJOZZ.js.map +1 -0
  258. package/dist/{chunk-CSD6SWBZ.js → chunk-A3Z7ZXLM.js} +6 -6
  259. package/dist/{chunk-3ZWCKCZC.js → chunk-A7LBWRRW.js} +5 -2
  260. package/dist/chunk-A7LBWRRW.js.map +1 -0
  261. package/dist/{chunk-LBZEPWYK.js → chunk-ABJOW7EK.js} +4 -4
  262. package/dist/{chunk-44PBCQ7E.js → chunk-ABQZFK7M.js} +6 -6
  263. package/dist/{chunk-ZFBFQK2Y.js → chunk-AFSXC5FU.js} +11 -12
  264. package/dist/chunk-AFSXC5FU.js.map +1 -0
  265. package/dist/{chunk-PY3RW5LC.js → chunk-AISCD6W6.js} +24 -10
  266. package/dist/chunk-AISCD6W6.js.map +1 -0
  267. package/dist/{chunk-EIMFA7KP.js → chunk-ANUO67JQ.js} +2 -2
  268. package/dist/{chunk-PTQRJEPN.js → chunk-AOBQ3KYY.js} +2 -2
  269. package/dist/{chunk-LODYTVOO.js → chunk-B25SHVWP.js} +4 -4
  270. package/dist/{chunk-ZYKDUKAH.js → chunk-B2RNNJRO.js} +7 -4
  271. package/dist/chunk-B2RNNJRO.js.map +1 -0
  272. package/dist/{chunk-HPEBSLYP.js → chunk-B67KUCWU.js} +2 -2
  273. package/dist/{chunk-GTT5UKKO.js → chunk-BDJIP4HG.js} +4 -4
  274. package/dist/{chunk-TTCVYY2B.js → chunk-BFBCTF2Y.js} +22 -7
  275. package/dist/chunk-BFBCTF2Y.js.map +1 -0
  276. package/dist/{chunk-RS576GOH.js → chunk-BIUT3K6A.js} +4 -4
  277. package/dist/{chunk-A5NXBOWS.js → chunk-BLHSLB5D.js} +5 -5
  278. package/dist/{chunk-RHKQ2RSY.js → chunk-BLVFHVDM.js} +17 -17
  279. package/dist/{chunk-DYHOBKPU.js → chunk-BLZDSCIZ.js} +6 -6
  280. package/dist/{chunk-XQWUVQ2F.js → chunk-BMVLTTTC.js} +10 -3
  281. package/dist/chunk-BMVLTTTC.js.map +1 -0
  282. package/dist/{chunk-CZV6NVCA.js → chunk-BTDY2NYV.js} +10 -7
  283. package/dist/chunk-BTDY2NYV.js.map +1 -0
  284. package/dist/{chunk-E53MMMDA.js → chunk-BX6CF2UG.js} +3 -3
  285. package/dist/{chunk-RUF7TOAZ.js → chunk-C2I7NQC4.js} +3 -2
  286. package/dist/{chunk-RUF7TOAZ.js.map → chunk-C2I7NQC4.js.map} +1 -1
  287. package/dist/{chunk-WVZBYTIK.js → chunk-C465AAD5.js} +29 -19
  288. package/dist/chunk-C465AAD5.js.map +1 -0
  289. package/dist/{chunk-XYFBJH6F.js → chunk-C7LHIDVB.js} +19 -9
  290. package/dist/chunk-C7LHIDVB.js.map +1 -0
  291. package/dist/{chunk-Z24VOTA7.js → chunk-CCWE6DBC.js} +4 -2
  292. package/dist/{chunk-Z24VOTA7.js.map → chunk-CCWE6DBC.js.map} +1 -1
  293. package/dist/{chunk-7K23NEZO.js → chunk-CFDYQSN6.js} +8 -8
  294. package/dist/{chunk-YLSDFW5O.js → chunk-CN4JS57H.js} +35 -5
  295. package/dist/chunk-CN4JS57H.js.map +1 -0
  296. package/dist/{chunk-4NQXHPQR.js → chunk-D4LMRSY7.js} +11 -2
  297. package/dist/chunk-D4LMRSY7.js.map +1 -0
  298. package/dist/{chunk-O36MIQIO.js → chunk-DB7OJM6X.js} +2 -2
  299. package/dist/{chunk-GSXYXMCV.js → chunk-DD3VFDB2.js} +2 -2
  300. package/dist/{chunk-KARMRTTM.js → chunk-DE2GWZ6X.js} +10 -7
  301. package/dist/chunk-DE2GWZ6X.js.map +1 -0
  302. package/dist/{chunk-FT6HBP5E.js → chunk-DE7E2GBP.js} +11 -8
  303. package/dist/chunk-DE7E2GBP.js.map +1 -0
  304. package/dist/{chunk-QWVETTIY.js → chunk-DJMVBIFD.js} +21 -12
  305. package/dist/chunk-DJMVBIFD.js.map +1 -0
  306. package/dist/{chunk-JKNKGGOG.js → chunk-DKRMOIX2.js} +7 -1
  307. package/dist/chunk-DKRMOIX2.js.map +1 -0
  308. package/dist/{chunk-3HLKTBEO.js → chunk-DQ22UKMZ.js} +4 -2
  309. package/dist/{chunk-3HLKTBEO.js.map → chunk-DQ22UKMZ.js.map} +1 -1
  310. package/dist/{chunk-IQ2U5MVO.js → chunk-DT22MDC3.js} +9 -9
  311. package/dist/{chunk-INGPH3YQ.js → chunk-DVRNW33K.js} +28 -5
  312. package/dist/chunk-DVRNW33K.js.map +1 -0
  313. package/dist/{chunk-C5JCARNE.js → chunk-DWCH6GH5.js} +7 -4
  314. package/dist/chunk-DWCH6GH5.js.map +1 -0
  315. package/dist/{chunk-NTO5DALI.js → chunk-DWLSYFQW.js} +5 -2
  316. package/dist/chunk-DWLSYFQW.js.map +1 -0
  317. package/dist/{chunk-7XSCEHGA.js → chunk-EOQ6EKTS.js} +7 -7
  318. package/dist/{chunk-UGH2DDST.js → chunk-ETSASQXI.js} +4 -2
  319. package/dist/chunk-ETSASQXI.js.map +1 -0
  320. package/dist/{chunk-F742IMLQ.js → chunk-EXKK73UN.js} +5 -2
  321. package/dist/chunk-EXKK73UN.js.map +1 -0
  322. package/dist/{chunk-HN3PZTUK.js → chunk-F5SUBK42.js} +9 -6
  323. package/dist/chunk-F5SUBK42.js.map +1 -0
  324. package/dist/chunk-FB4GLQQO.js +102 -0
  325. package/dist/chunk-FB4GLQQO.js.map +1 -0
  326. package/dist/{chunk-5KNDAC24.js → chunk-FCCOUOP7.js} +8 -2
  327. package/dist/chunk-FCCOUOP7.js.map +1 -0
  328. package/dist/{chunk-WC3W36AM.js → chunk-FKUVFPQZ.js} +26 -12
  329. package/dist/chunk-FKUVFPQZ.js.map +1 -0
  330. package/dist/{chunk-VEKTKCSB.js → chunk-FLJ3RIRP.js} +5 -5
  331. package/dist/{chunk-2ARVNCVU.js → chunk-FZUAB2KS.js} +8 -6
  332. package/dist/chunk-FZUAB2KS.js.map +1 -0
  333. package/dist/{chunk-Z5WUSI47.js → chunk-G3JFESKD.js} +6 -6
  334. package/dist/{chunk-KZXOIRUP.js → chunk-G3SWMBZS.js} +43 -12
  335. package/dist/chunk-G3SWMBZS.js.map +1 -0
  336. package/dist/{chunk-XRDH24J7.js → chunk-G6ET2DRL.js} +2 -2
  337. package/dist/{chunk-KIL3OVLI.js → chunk-G76PIGF7.js} +6 -2
  338. package/dist/chunk-G76PIGF7.js.map +1 -0
  339. package/dist/{chunk-7JOLSD2W.js → chunk-GHTVBYFA.js} +3 -3
  340. package/dist/{chunk-Y7YJYUNV.js → chunk-GLAAX5JJ.js} +16 -4
  341. package/dist/chunk-GLAAX5JJ.js.map +1 -0
  342. package/dist/{chunk-U4G3KY6L.js → chunk-GMU5AA3R.js} +8 -7
  343. package/dist/chunk-GMU5AA3R.js.map +1 -0
  344. package/dist/{chunk-XLTHZI5W.js → chunk-GX2LIB4T.js} +6 -3
  345. package/dist/chunk-GX2LIB4T.js.map +1 -0
  346. package/dist/{chunk-RKVS5AA6.js → chunk-H3NXDKFH.js} +7 -4
  347. package/dist/chunk-H3NXDKFH.js.map +1 -0
  348. package/dist/{chunk-47VRDPR2.js → chunk-HFZE2PGM.js} +5 -2
  349. package/dist/chunk-HFZE2PGM.js.map +1 -0
  350. package/dist/{chunk-AMLHEKSV.js → chunk-HI7JPDD6.js} +5 -5
  351. package/dist/{chunk-5MMAV7XK.js → chunk-HWKBCLKD.js} +4 -2
  352. package/dist/chunk-HWKBCLKD.js.map +1 -0
  353. package/dist/{chunk-5J7SA4CZ.js → chunk-HWUFOII2.js} +28 -10
  354. package/dist/chunk-HWUFOII2.js.map +1 -0
  355. package/dist/{chunk-N34AOGK3.js → chunk-I3OKAQ5L.js} +7 -7
  356. package/dist/{chunk-AEYLFBZT.js → chunk-I4NDZFTB.js} +2 -2
  357. package/dist/{chunk-2ZRZTGWP.js → chunk-ISW5K72V.js} +5 -5
  358. package/dist/{chunk-ICRVLGWD.js → chunk-J7CIRTWQ.js} +14 -3
  359. package/dist/chunk-J7CIRTWQ.js.map +1 -0
  360. package/dist/{chunk-FTPTPASD.js → chunk-JBYFBPI6.js} +2 -5
  361. package/dist/{chunk-FTPTPASD.js.map → chunk-JBYFBPI6.js.map} +1 -1
  362. package/dist/{chunk-AYJ44VTJ.js → chunk-JJNY5MZL.js} +15 -13
  363. package/dist/chunk-JJNY5MZL.js.map +1 -0
  364. package/dist/{chunk-4M5GEKPM.js → chunk-JL4I7OQE.js} +4 -4
  365. package/dist/{chunk-EF4DVYD2.js → chunk-JMUZ5JZA.js} +2 -2
  366. package/dist/chunk-JQLQOIB3.js +1 -0
  367. package/dist/chunk-JQLQOIB3.js.map +1 -0
  368. package/dist/{chunk-FIOBPQL2.js → chunk-JQSF3CUR.js} +16 -4
  369. package/dist/chunk-JQSF3CUR.js.map +1 -0
  370. package/dist/{chunk-HQCZT6TO.js → chunk-JVOEVTCZ.js} +5 -5
  371. package/dist/{chunk-MBMZNSBP.js → chunk-JW7MN4DG.js} +3 -3
  372. package/dist/{chunk-FCVPVEAS.js → chunk-KSOIFQJ6.js} +7 -7
  373. package/dist/{chunk-GBVNY2LG.js → chunk-KTXJQ4YJ.js} +6 -6
  374. package/dist/{chunk-NBXG3SQ3.js → chunk-KW2KCPZF.js} +6 -6
  375. package/dist/{chunk-4VRDFZ4G.js → chunk-KYTFGW4R.js} +7 -3
  376. package/dist/chunk-KYTFGW4R.js.map +1 -0
  377. package/dist/{chunk-3V3Z4EML.js → chunk-L4FWEI2P.js} +5 -5
  378. package/dist/{chunk-7VRCGWQL.js → chunk-L7N4AFZD.js} +6 -5
  379. package/dist/chunk-L7N4AFZD.js.map +1 -0
  380. package/dist/{chunk-T743IIER.js → chunk-LDPN55AA.js} +8 -4
  381. package/dist/chunk-LDPN55AA.js.map +1 -0
  382. package/dist/{chunk-2TSGRQ2J.js → chunk-LHJJZ462.js} +4 -2
  383. package/dist/chunk-LHJJZ462.js.map +1 -0
  384. package/dist/{chunk-OE3SQOZV.js → chunk-LHRAHDJF.js} +13 -7
  385. package/dist/chunk-LHRAHDJF.js.map +1 -0
  386. package/dist/chunk-LL2BWQPM.js +11 -0
  387. package/dist/chunk-LL2BWQPM.js.map +1 -0
  388. package/dist/{chunk-56JF5PZK.js → chunk-LYVTJLCF.js} +4 -4
  389. package/dist/{chunk-MNZ6MCOK.js → chunk-MKRJUT5O.js} +9 -9
  390. package/dist/{chunk-BGYLL467.js → chunk-N3W6FZOC.js} +4 -4
  391. package/dist/{chunk-B2JYQBO4.js → chunk-NF5TATKP.js} +11 -6
  392. package/dist/chunk-NF5TATKP.js.map +1 -0
  393. package/dist/{chunk-BWFUZ4N2.js → chunk-NGXDOWUP.js} +4 -4
  394. package/dist/{chunk-MTGEJRE4.js → chunk-NNKIM73H.js} +17 -4
  395. package/dist/chunk-NNKIM73H.js.map +1 -0
  396. package/dist/{chunk-OHXAJUO5.js → chunk-NPPO7G2B.js} +5 -3
  397. package/dist/{chunk-OHXAJUO5.js.map → chunk-NPPO7G2B.js.map} +1 -1
  398. package/dist/{chunk-3VXS7O3X.js → chunk-NSS3X7FK.js} +17 -3
  399. package/dist/chunk-NSS3X7FK.js.map +1 -0
  400. package/dist/{chunk-VNVV6Y2X.js → chunk-NWNHSASQ.js} +4 -2
  401. package/dist/chunk-NWNHSASQ.js.map +1 -0
  402. package/dist/chunk-O2RXSXSF.js +145 -0
  403. package/dist/chunk-O2RXSXSF.js.map +1 -0
  404. package/dist/{chunk-VMN6KG2U.js → chunk-OCLEKMBP.js} +3 -3
  405. package/dist/chunk-OCLEKMBP.js.map +1 -0
  406. package/dist/{chunk-HBP2OU4Q.js → chunk-OOCD2QR3.js} +4 -3
  407. package/dist/chunk-OOCD2QR3.js.map +1 -0
  408. package/dist/{chunk-NYWAAXDX.js → chunk-OT4HIG7S.js} +3 -3
  409. package/dist/{chunk-ZPACE34U.js → chunk-OTION43A.js} +16 -12
  410. package/dist/chunk-OTION43A.js.map +1 -0
  411. package/dist/{chunk-GRMBCJS6.js → chunk-PAKLYZ6G.js} +4 -4
  412. package/dist/{chunk-PU3HEWSG.js → chunk-PF2A2IM7.js} +13 -4
  413. package/dist/chunk-PF2A2IM7.js.map +1 -0
  414. package/dist/{chunk-5M2NWXN4.js → chunk-PGBIUO2A.js} +2 -2
  415. package/dist/{chunk-RCTHCXS6.js → chunk-PJNIJIE6.js} +2 -2
  416. package/dist/{chunk-6ATXOJVQ.js → chunk-QADTI63U.js} +4 -4
  417. package/dist/{chunk-SUZXPDUQ.js → chunk-QJLOWBFW.js} +12 -6
  418. package/dist/chunk-QJLOWBFW.js.map +1 -0
  419. package/dist/{chunk-FRGNTTPA.js → chunk-QK3XXPBA.js} +15 -10
  420. package/dist/chunk-QK3XXPBA.js.map +1 -0
  421. package/dist/chunk-QNAB53N3.js +1 -0
  422. package/dist/chunk-QNAB53N3.js.map +1 -0
  423. package/dist/{chunk-7ZROYGUG.js → chunk-QOTMQLMW.js} +2 -2
  424. package/dist/{chunk-NQCTANF3.js → chunk-QVDEGBME.js} +7 -7
  425. package/dist/{chunk-LI6XSM5D.js → chunk-QVEJGFRP.js} +3 -3
  426. package/dist/{chunk-HEBZ7Q7O.js → chunk-QVYBRD6U.js} +7 -6
  427. package/dist/chunk-QVYBRD6U.js.map +1 -0
  428. package/dist/{chunk-JJVIZR6C.js → chunk-RIPG3QIN.js} +24 -13
  429. package/dist/chunk-RIPG3QIN.js.map +1 -0
  430. package/dist/{chunk-VD72JGHA.js → chunk-RMZQHJEP.js} +3 -3
  431. package/dist/{chunk-VBGC7G4F.js → chunk-RQ3IS5NQ.js} +2 -2
  432. package/dist/{chunk-3JDP5OUR.js → chunk-RQY5ONSF.js} +6 -2
  433. package/dist/chunk-RQY5ONSF.js.map +1 -0
  434. package/dist/{chunk-33LAPBYB.js → chunk-SCQARHMU.js} +9 -5
  435. package/dist/chunk-SCQARHMU.js.map +1 -0
  436. package/dist/chunk-SEUJNFOD.js +119 -0
  437. package/dist/chunk-SEUJNFOD.js.map +1 -0
  438. package/dist/{chunk-YNDTLBOH.js → chunk-SM2O6D5F.js} +2 -2
  439. package/dist/{chunk-WA6F4NOO.js → chunk-SMANO5OD.js} +4 -4
  440. package/dist/{chunk-7SYYGXC7.js → chunk-SSCEX5NY.js} +6 -2
  441. package/dist/chunk-SSCEX5NY.js.map +1 -0
  442. package/dist/{chunk-YJBWDDW7.js → chunk-SXNGH56D.js} +12 -12
  443. package/dist/{chunk-HZK4DRGF.js → chunk-SYZVXWEQ.js} +6 -4
  444. package/dist/chunk-SYZVXWEQ.js.map +1 -0
  445. package/dist/{chunk-VQYR64QB.js → chunk-TAR5LSGT.js} +8 -3
  446. package/dist/chunk-TAR5LSGT.js.map +1 -0
  447. package/dist/{chunk-NDGA7ZE6.js → chunk-TGMMUKOF.js} +3 -3
  448. package/dist/{chunk-RZCXYKY4.js → chunk-TGZ6GPYQ.js} +7 -3
  449. package/dist/chunk-TGZ6GPYQ.js.map +1 -0
  450. package/dist/{chunk-SB2SEGR6.js → chunk-TIM4PXWN.js} +3 -3
  451. package/dist/{chunk-2ILXXBMG.js → chunk-TLVKJBPM.js} +12 -6
  452. package/dist/chunk-TLVKJBPM.js.map +1 -0
  453. package/dist/{chunk-BGTG7G54.js → chunk-TLZR6UPJ.js} +6 -3
  454. package/dist/chunk-TLZR6UPJ.js.map +1 -0
  455. package/dist/{chunk-MHLYX6QW.js → chunk-TRAMTVIO.js} +5 -5
  456. package/dist/{chunk-QO7UJXXO.js → chunk-TVMSXL3R.js} +2 -2
  457. package/dist/{chunk-XLCVMRSO.js → chunk-U67CX4FL.js} +12 -4
  458. package/dist/chunk-U67CX4FL.js.map +1 -0
  459. package/dist/{chunk-DXFKPY2K.js → chunk-UCQRJTCI.js} +4 -4
  460. package/dist/{chunk-CW6Y32N2.js → chunk-UF4JFRLE.js} +6 -6
  461. package/dist/{chunk-HHPJXK4Z.js → chunk-UHQZ5XPW.js} +2 -2
  462. package/dist/{chunk-FTDGFWB5.js → chunk-UK3DSFMK.js} +5 -5
  463. package/dist/{chunk-EERUSI52.js → chunk-URAX2JPM.js} +6 -3
  464. package/dist/chunk-URAX2JPM.js.map +1 -0
  465. package/dist/{chunk-GBKIGUNP.js → chunk-UYNJ3FYE.js} +3 -3
  466. package/dist/{chunk-UZOG6HNN.js → chunk-V65YK5DC.js} +5 -4
  467. package/dist/chunk-V65YK5DC.js.map +1 -0
  468. package/dist/{chunk-4HUSG5MR.js → chunk-V6DMNSW6.js} +4 -4
  469. package/dist/chunk-V6DMNSW6.js.map +1 -0
  470. package/dist/{chunk-MSC43MCJ.js → chunk-VAGGIRLA.js} +10 -7
  471. package/dist/chunk-VAGGIRLA.js.map +1 -0
  472. package/dist/{chunk-2MYSXWZQ.js → chunk-VKTF3GAP.js} +9 -9
  473. package/dist/chunk-VRKNVZZQ.js +145 -0
  474. package/dist/chunk-VRKNVZZQ.js.map +1 -0
  475. package/dist/{chunk-LTTYUSJ2.js → chunk-VTDZUO2J.js} +4 -2
  476. package/dist/chunk-VTDZUO2J.js.map +1 -0
  477. package/dist/{chunk-4XBAEKQQ.js → chunk-W2RXXF7K.js} +4 -4
  478. package/dist/{chunk-3Z3WIQ5M.js → chunk-W3EVATBS.js} +5 -5
  479. package/dist/{chunk-A2YLFKQU.js → chunk-W5WYTVLS.js} +2 -2
  480. package/dist/{chunk-64AOS2WA.js → chunk-WWIYYXY3.js} +17 -10
  481. package/dist/chunk-WWIYYXY3.js.map +1 -0
  482. package/dist/{chunk-EBCEDBHX.js → chunk-XDDKRACZ.js} +3 -3
  483. package/dist/{chunk-WOXWLJYR.js → chunk-XF47LPCF.js} +5 -2
  484. package/dist/chunk-XF47LPCF.js.map +1 -0
  485. package/dist/{chunk-SLSED46V.js → chunk-Y3DV7LGC.js} +2 -1
  486. package/dist/{chunk-SLSED46V.js.map → chunk-Y3DV7LGC.js.map} +1 -1
  487. package/dist/{chunk-ASZGMKB4.js → chunk-Y3TD7HOY.js} +2 -2
  488. package/dist/{chunk-3YLRR4JM.js → chunk-Y3YZBB74.js} +2 -2
  489. package/dist/{chunk-HBHBRRSW.js → chunk-YBAK2WN5.js} +7 -7
  490. package/dist/{chunk-LOLYI6PS.js → chunk-YCZGYYUX.js} +11 -8
  491. package/dist/chunk-YCZGYYUX.js.map +1 -0
  492. package/dist/{chunk-XODBYGTH.js → chunk-YMKSPW4T.js} +2 -2
  493. package/dist/{chunk-YOKUDQIJ.js → chunk-YOQAK2RN.js} +7 -3
  494. package/dist/chunk-YOQAK2RN.js.map +1 -0
  495. package/dist/{chunk-6RTE4UNO.js → chunk-YV4O7KDR.js} +1 -1
  496. package/dist/{chunk-MM7BPTVV.js → chunk-Z52W7FEU.js} +2 -2
  497. package/dist/{chunk-7P5PNRBT.js → chunk-ZDBG7QG2.js} +6 -6
  498. package/dist/{chunk-Z5V5E3JW.js → chunk-ZIHSCBMN.js} +10 -10
  499. package/dist/{chunk-S4JXSC4D.js → chunk-ZT73ACK3.js} +6 -6
  500. package/dist/{chunk-TJO4CBYT.js → chunk-ZX3QMCYO.js} +6 -3
  501. package/dist/chunk-ZX3QMCYO.js.map +1 -0
  502. package/dist/data-display/Alert.js +3 -3
  503. package/dist/data-display/AlertDialog.js +3 -2
  504. package/dist/data-display/AsyncStateContainer.js +7 -5
  505. package/dist/data-display/Avatar.js +5 -4
  506. package/dist/data-display/CardKit.js +19 -18
  507. package/dist/data-display/Carousel.js +7 -4
  508. package/dist/data-display/Chart.js +11 -11
  509. package/dist/data-display/DataGrid.js +2 -2
  510. package/dist/data-display/DataViews.js +94 -92
  511. package/dist/data-display/EmptyState.js +3 -2
  512. package/dist/data-display/ErrorState.js +2 -1
  513. package/dist/data-display/FleetMap.js +16 -12
  514. package/dist/data-display/HoverCard.js +2 -2
  515. package/dist/data-display/InteractiveTooltip.js +2 -2
  516. package/dist/data-display/LazyImage.js +3 -2
  517. package/dist/data-display/Lightbox.js +6 -6
  518. package/dist/data-display/LoadingState.js +3 -1
  519. package/dist/data-display/MapPreview.js +9 -6
  520. package/dist/data-display/Progress.js +2 -2
  521. package/dist/data-display/SectionOnboarding.js +6 -4
  522. package/dist/data-display/Sheet.js +6 -5
  523. package/dist/data-display/Stepper.js +3 -1
  524. package/dist/data-display/Table.js +6 -4
  525. package/dist/data-display/Timeline.js +4 -2
  526. package/dist/en-US.js +17 -13
  527. package/dist/feedback/ConfirmAction.js +10 -9
  528. package/dist/feedback/Dialog.js +3 -2
  529. package/dist/feedback/NotificationStatusNotice.js +4 -4
  530. package/dist/feedback/SequenceResolver.js +12 -11
  531. package/dist/feedback/Sonner.js +3 -2
  532. package/dist/feedback/StackedModal.js +7 -6
  533. package/dist/feedback/Toast.js +2 -1
  534. package/dist/feedback/TutorialOverlay.js +3 -2
  535. package/dist/form/AddressAutocomplete.js +12 -10
  536. package/dist/form/Autocomplete.js +2 -2
  537. package/dist/form/Calendar.js +6 -6
  538. package/dist/form/CategorySelect.js +9 -9
  539. package/dist/form/Checkbox.js +2 -2
  540. package/dist/form/CodeEditor.js +3 -3
  541. package/dist/form/Command.js +4 -3
  542. package/dist/form/DateRangePicker.js +12 -11
  543. package/dist/form/InputOTP.js +2 -2
  544. package/dist/form/Menubar.js +2 -2
  545. package/dist/form/PhoneInput.js +4 -3
  546. package/dist/form/PickerSheet.js +4 -4
  547. package/dist/form/RichTextEditor.js +7 -5
  548. package/dist/form/Switch.js +4 -4
  549. package/dist/form/Textarea.js +1 -1
  550. package/dist/form/UploadButton.js +3 -2
  551. package/dist/form/total-form.js +18 -17
  552. package/dist/layout/Card.js +2 -2
  553. package/dist/layout/ContentToolbar.js +13 -11
  554. package/dist/layout/Dashboard.js +2 -1
  555. package/dist/layout/Drawer.js +2 -1
  556. package/dist/layout/ScrollArea.js +3 -3
  557. package/dist/layout/SettingCard.js +17 -17
  558. package/dist/layout/SettingsLayout.js +7 -6
  559. package/dist/layout/TableFilter.js +2 -1
  560. package/dist/locales.js +37 -29
  561. package/dist/locales.js.map +1 -1
  562. package/dist/native/chunks/{chunk-BXNZHDXK.js → chunk-67CYDCHZ.js} +12 -5
  563. package/dist/native/chunks/chunk-67CYDCHZ.js.map +1 -0
  564. package/dist/native/chunks/{chunk-AVHGS66L.js → chunk-7AVFQB6A.js} +7 -4
  565. package/dist/native/chunks/chunk-7AVFQB6A.js.map +1 -0
  566. package/dist/native/chunks/chunk-DUELD4HY.js +145 -0
  567. package/dist/native/chunks/chunk-DUELD4HY.js.map +1 -0
  568. package/dist/native/data-display/Avatar.js +4 -1
  569. package/dist/native/data-display/Avatar.js.map +1 -1
  570. package/dist/native/data-display/Badge.js +9 -3
  571. package/dist/native/data-display/Badge.js.map +1 -1
  572. package/dist/native/data-display/Chip.js +9 -1
  573. package/dist/native/data-display/Chip.js.map +1 -1
  574. package/dist/native/data-display/EmptyState.js +3 -2
  575. package/dist/native/data-display/ErrorState.js +5 -2
  576. package/dist/native/data-display/ErrorState.js.map +1 -1
  577. package/dist/native/data-display/FleetMap.js +3 -2
  578. package/dist/native/data-display/FleetMap.js.map +1 -1
  579. package/dist/native/data-display/LoadingState.js +16 -5
  580. package/dist/native/data-display/LoadingState.js.map +1 -1
  581. package/dist/native/feedback/Dialog.js +20 -3
  582. package/dist/native/feedback/Dialog.js.map +1 -1
  583. package/dist/native/form/Button.js +2 -1
  584. package/dist/native/form/Checkbox.js +6 -1
  585. package/dist/native/form/Checkbox.js.map +1 -1
  586. package/dist/native/form/Input.js +11 -3
  587. package/dist/native/form/Input.js.map +1 -1
  588. package/dist/native/form/Switch.js +5 -1
  589. package/dist/native/form/Switch.js.map +1 -1
  590. package/dist/navigation/AppHeader.js +13 -11
  591. package/dist/navigation/Breadcrumbs.js +2 -1
  592. package/dist/navigation/CommandPalette.js +6 -4
  593. package/dist/navigation/NavigationMenu.js +7 -6
  594. package/dist/navigation/Pagination.js +2 -2
  595. package/dist/navigation/SectionNav.js +7 -6
  596. package/dist/pt-BR.js +10 -6
  597. package/dist/social-login-button.js +5 -4
  598. package/dist/types/components/data-display/AlertDialog/AlertDialog.d.ts.map +1 -1
  599. package/dist/types/components/data-display/AlertDialog/AlertDialog.parts.d.ts.map +1 -1
  600. package/dist/types/components/data-display/AlertDialog/AlertDialog.types.d.ts +5 -0
  601. package/dist/types/components/data-display/AlertDialog/AlertDialog.types.d.ts.map +1 -1
  602. package/dist/types/components/data-display/Avatar/Avatar.d.ts.map +1 -1
  603. package/dist/types/components/data-display/Carousel/Carousel.chrome.d.ts.map +1 -1
  604. package/dist/types/components/data-display/Carousel/Carousel.parts.d.ts.map +1 -1
  605. package/dist/types/components/data-display/Carousel/Carousel.types.d.ts +2 -0
  606. package/dist/types/components/data-display/Carousel/Carousel.types.d.ts.map +1 -1
  607. package/dist/types/components/data-display/DataViews/DeleteViewDialog.d.ts.map +1 -1
  608. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +11 -0
  609. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
  610. package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts +6 -2
  611. package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts.map +1 -1
  612. package/dist/types/components/data-display/DataViews/use-data-views-state.d.ts.map +1 -1
  613. package/dist/types/components/data-display/EmptyState/EmptyState.d.ts.map +1 -1
  614. package/dist/types/components/data-display/ErrorState/ErrorState.d.ts.map +1 -1
  615. package/dist/types/components/data-display/LazyImage/LazyImage.d.ts.map +1 -1
  616. package/dist/types/components/data-display/LazyImage/LazyImage.types.d.ts +10 -0
  617. package/dist/types/components/data-display/LazyImage/LazyImage.types.d.ts.map +1 -1
  618. package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts +7 -0
  619. package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -1
  620. package/dist/types/components/data-display/LoadingState/LoadingState.d.ts.map +1 -1
  621. package/dist/types/components/data-display/MapPreview/MapControlBar.d.ts.map +1 -1
  622. package/dist/types/components/data-display/MapPreview/MapLayers.d.ts +1 -1
  623. package/dist/types/components/data-display/MapPreview/MapLayers.d.ts.map +1 -1
  624. package/dist/types/components/data-display/MapPreview/MapMarkers.d.ts +2 -0
  625. package/dist/types/components/data-display/MapPreview/MapMarkers.d.ts.map +1 -1
  626. package/dist/types/components/data-display/MapPreview/MapPreview.d.ts.map +1 -1
  627. package/dist/types/components/data-display/MapPreview/MapPreview.helpers.d.ts +7 -1
  628. package/dist/types/components/data-display/MapPreview/MapPreview.helpers.d.ts.map +1 -1
  629. package/dist/types/components/data-display/Sheet/Sheet.body.d.ts +1 -1
  630. package/dist/types/components/data-display/Sheet/Sheet.body.d.ts.map +1 -1
  631. package/dist/types/components/data-display/Sheet/Sheet.parts.d.ts.map +1 -1
  632. package/dist/types/components/data-display/Sheet/Sheet.types.d.ts +10 -0
  633. package/dist/types/components/data-display/Sheet/Sheet.types.d.ts.map +1 -1
  634. package/dist/types/components/data-display/Stepper/Stepper.d.ts.map +1 -1
  635. package/dist/types/components/data-display/Stepper/Stepper.types.d.ts +4 -0
  636. package/dist/types/components/data-display/Stepper/Stepper.types.d.ts.map +1 -1
  637. package/dist/types/components/data-display/Table/Table.d.ts.map +1 -1
  638. package/dist/types/components/data-display/Table/Table.helpers.d.ts.map +1 -1
  639. package/dist/types/components/data-display/Table/Table.types.d.ts +11 -0
  640. package/dist/types/components/data-display/Table/Table.types.d.ts.map +1 -1
  641. package/dist/types/components/data-display/Table/TableParts.d.ts +2 -1
  642. package/dist/types/components/data-display/Table/TableParts.d.ts.map +1 -1
  643. package/dist/types/components/data-display/Table/TableParts.hooks.d.ts +2 -2
  644. package/dist/types/components/data-display/Table/TableParts.hooks.d.ts.map +1 -1
  645. package/dist/types/components/data-display/Timeline/Timeline.d.ts.map +1 -1
  646. package/dist/types/components/data-display/Timeline/Timeline.types.d.ts +3 -0
  647. package/dist/types/components/data-display/Timeline/Timeline.types.d.ts.map +1 -1
  648. package/dist/types/components/data-display/Timeline/TimelineRow.d.ts +2 -0
  649. package/dist/types/components/data-display/Timeline/TimelineRow.d.ts.map +1 -1
  650. package/dist/types/components/feedback/Dialog/Dialog.base.d.ts +10 -0
  651. package/dist/types/components/feedback/Dialog/Dialog.base.d.ts.map +1 -1
  652. package/dist/types/components/feedback/Dialog/Dialog.d.ts.map +1 -1
  653. package/dist/types/components/feedback/Sonner/Sonner.d.ts +6 -0
  654. package/dist/types/components/feedback/Sonner/Sonner.d.ts.map +1 -1
  655. package/dist/types/components/feedback/Sonner/SonnerToast.d.ts.map +1 -1
  656. package/dist/types/components/feedback/StackedModal/StackedModal.d.ts.map +1 -1
  657. package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts +2 -0
  658. package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts.map +1 -1
  659. package/dist/types/components/feedback/StackedModal/StackedModal.types.d.ts +5 -0
  660. package/dist/types/components/feedback/StackedModal/StackedModal.types.d.ts.map +1 -1
  661. package/dist/types/components/feedback/Toast/Toast.d.ts.map +1 -1
  662. package/dist/types/components/feedback/Toast/Toast.types.d.ts +5 -0
  663. package/dist/types/components/feedback/Toast/Toast.types.d.ts.map +1 -1
  664. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.d.ts.map +1 -1
  665. package/dist/types/components/feedback/TutorialOverlay/TutorialStepBody.d.ts.map +1 -1
  666. package/dist/types/components/form/AddressAutocomplete/AddressAutocomplete.d.ts.map +1 -1
  667. package/dist/types/components/form/AddressAutocomplete/AddressAutocomplete.helpers.d.ts +1 -1
  668. package/dist/types/components/form/AddressAutocomplete/AddressAutocomplete.helpers.d.ts.map +1 -1
  669. package/dist/types/components/form/AddressAutocomplete/AddressAutocomplete.hooks.d.ts +3 -1
  670. package/dist/types/components/form/AddressAutocomplete/AddressAutocomplete.hooks.d.ts.map +1 -1
  671. package/dist/types/components/form/AddressAutocomplete/AddressAutocompleteField.d.ts.map +1 -1
  672. package/dist/types/components/form/AddressAutocomplete/useAddressPredictions.d.ts +2 -1
  673. package/dist/types/components/form/AddressAutocomplete/useAddressPredictions.d.ts.map +1 -1
  674. package/dist/types/components/form/AddressAutocomplete/useAddressSelection.d.ts +3 -1
  675. package/dist/types/components/form/AddressAutocomplete/useAddressSelection.d.ts.map +1 -1
  676. package/dist/types/components/form/AddressAutocomplete/useCurrentLocation.d.ts +3 -1
  677. package/dist/types/components/form/AddressAutocomplete/useCurrentLocation.d.ts.map +1 -1
  678. package/dist/types/components/form/AddressAutocomplete/useGoogleMapsAPI.d.ts +4 -1
  679. package/dist/types/components/form/AddressAutocomplete/useGoogleMapsAPI.d.ts.map +1 -1
  680. package/dist/types/components/form/Button/Button.native.loading.d.ts +2 -1
  681. package/dist/types/components/form/Button/Button.native.loading.d.ts.map +1 -1
  682. package/dist/types/components/form/Command/Command.hooks.d.ts.map +1 -1
  683. package/dist/types/components/form/Command/Command.parts.d.ts.map +1 -1
  684. package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts.map +1 -1
  685. package/dist/types/components/form/PhoneInput/PhoneInput.d.ts.map +1 -1
  686. package/dist/types/components/form/PhoneInput/PhoneInput.types.d.ts +1 -0
  687. package/dist/types/components/form/PhoneInput/PhoneInput.types.d.ts.map +1 -1
  688. package/dist/types/components/form/PhoneInput/countries.d.ts +6 -0
  689. package/dist/types/components/form/PhoneInput/countries.d.ts.map +1 -1
  690. package/dist/types/components/form/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  691. package/dist/types/components/form/RichTextEditor/RichTextEditor.dom.d.ts +1 -1
  692. package/dist/types/components/form/RichTextEditor/RichTextEditor.dom.d.ts.map +1 -1
  693. package/dist/types/components/form/RichTextEditor/RichTextEditor.format.d.ts +2 -1
  694. package/dist/types/components/form/RichTextEditor/RichTextEditor.format.d.ts.map +1 -1
  695. package/dist/types/components/form/RichTextEditor/RichTextEditor.hooks.d.ts +2 -1
  696. package/dist/types/components/form/RichTextEditor/RichTextEditor.hooks.d.ts.map +1 -1
  697. package/dist/types/components/form/RichTextEditor/RichTextEditor.types.d.ts +7 -1
  698. package/dist/types/components/form/RichTextEditor/RichTextEditor.types.d.ts.map +1 -1
  699. package/dist/types/components/form/RichTextEditor/RichTextEditorToolbar.d.ts +2 -0
  700. package/dist/types/components/form/RichTextEditor/RichTextEditorToolbar.d.ts.map +1 -1
  701. package/dist/types/components/form/Textarea/TextareaRichEditor.d.ts.map +1 -1
  702. package/dist/types/components/form/UploadButton/UploadButton.hooks.d.ts.map +1 -1
  703. package/dist/types/components/form/total-form/FormErrorSnackbar.d.ts.map +1 -1
  704. package/dist/types/components/layout/ContentToolbar/ColumnsMenu.d.ts.map +1 -1
  705. package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts +14 -0
  706. package/dist/types/components/layout/ContentToolbar/ContentToolbar.types.d.ts.map +1 -1
  707. package/dist/types/components/layout/ContentToolbar/FilterTrigger.d.ts +1 -1
  708. package/dist/types/components/layout/ContentToolbar/FilterTrigger.d.ts.map +1 -1
  709. package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts.map +1 -1
  710. package/dist/types/components/layout/ContentToolbar/ViewSelector.d.ts +1 -1
  711. package/dist/types/components/layout/ContentToolbar/ViewSelector.d.ts.map +1 -1
  712. package/dist/types/components/layout/Dashboard/Dashboard.d.ts +2 -2
  713. package/dist/types/components/layout/Dashboard/Dashboard.d.ts.map +1 -1
  714. package/dist/types/components/layout/Dashboard/Dashboard.types.d.ts +5 -0
  715. package/dist/types/components/layout/Dashboard/Dashboard.types.d.ts.map +1 -1
  716. package/dist/types/components/layout/Drawer/Drawer.d.ts.map +1 -1
  717. package/dist/types/components/layout/SettingsLayout/SettingsLayout.d.ts.map +1 -1
  718. package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts +3 -1
  719. package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts.map +1 -1
  720. package/dist/types/components/layout/SettingsLayout/SettingsLayout.types.d.ts +6 -0
  721. package/dist/types/components/layout/SettingsLayout/SettingsLayout.types.d.ts.map +1 -1
  722. package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
  723. package/dist/types/components/navigation/AppHeader/AppHeader.identity.d.ts.map +1 -1
  724. package/dist/types/components/navigation/AppHeader/AppHeader.types.d.ts +5 -1
  725. package/dist/types/components/navigation/AppHeader/AppHeader.types.d.ts.map +1 -1
  726. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  727. package/dist/types/components/navigation/CommandPalette/CommandPalette.d.ts.map +1 -1
  728. package/dist/types/components/navigation/CommandPalette/CommandPalette.helpers.d.ts +1 -1
  729. package/dist/types/components/navigation/CommandPalette/CommandPalette.helpers.d.ts.map +1 -1
  730. package/dist/types/components/navigation/CommandPalette/CommandPalette.hooks.d.ts +2 -1
  731. package/dist/types/components/navigation/CommandPalette/CommandPalette.hooks.d.ts.map +1 -1
  732. package/dist/types/components/navigation/CommandPalette/CommandPaletteResults.d.ts.map +1 -1
  733. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.d.ts.map +1 -1
  734. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.shell.d.ts +1 -0
  735. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.shell.d.ts.map +1 -1
  736. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.types.d.ts +11 -0
  737. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.types.d.ts.map +1 -1
  738. package/dist/types/components/navigation/NavigationMenu/NavigationMenuItem.d.ts.map +1 -1
  739. package/dist/types/components/navigation/NavigationMenu/NavigationStandardBody.d.ts +4 -0
  740. package/dist/types/components/navigation/NavigationMenu/NavigationStandardBody.d.ts.map +1 -1
  741. package/dist/types/components/typography/Code/Code.d.ts.map +1 -1
  742. package/dist/types/components/typography/Code/Code.types.d.ts +4 -0
  743. package/dist/types/components/typography/Code/Code.types.d.ts.map +1 -1
  744. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.d.ts.map +1 -1
  745. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.d.ts.map +1 -1
  746. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts +1 -0
  747. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts.map +1 -1
  748. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts +6 -0
  749. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts.map +1 -1
  750. package/dist/types/components/utility/WorkflowStep/WorkflowStep.d.ts.map +1 -1
  751. package/dist/types/components/utility/WorkflowStep/WorkflowStep.helpers.d.ts +4 -1
  752. package/dist/types/components/utility/WorkflowStep/WorkflowStep.helpers.d.ts.map +1 -1
  753. package/dist/types/components/utility/WorkflowStep/WorkflowStep.parts.d.ts.map +1 -1
  754. package/dist/types/components/utility/WorkflowStep/WorkflowStep.types.d.ts +9 -0
  755. package/dist/types/components/utility/WorkflowStep/WorkflowStep.types.d.ts.map +1 -1
  756. package/dist/types/components/utility/WorkflowStep/WorkflowStepRow.d.ts +1 -0
  757. package/dist/types/components/utility/WorkflowStep/WorkflowStepRow.d.ts.map +1 -1
  758. package/dist/types/copy/data-display.d.ts +24 -0
  759. package/dist/types/copy/data-display.d.ts.map +1 -1
  760. package/dist/types/copy/feedback.d.ts +4 -0
  761. package/dist/types/copy/feedback.d.ts.map +1 -1
  762. package/dist/types/copy/form.d.ts +58 -0
  763. package/dist/types/copy/form.d.ts.map +1 -1
  764. package/dist/types/copy/labels.d.ts +219 -0
  765. package/dist/types/copy/labels.d.ts.map +1 -0
  766. package/dist/types/copy/navigation.d.ts +12 -0
  767. package/dist/types/copy/navigation.d.ts.map +1 -1
  768. package/dist/types/copy/utility.d.ts +8 -1
  769. package/dist/types/copy/utility.d.ts.map +1 -1
  770. package/dist/types/copy.d.ts +1 -0
  771. package/dist/types/copy.d.ts.map +1 -1
  772. package/dist/types/en-US.d.ts +1 -0
  773. package/dist/types/en-US.d.ts.map +1 -1
  774. package/dist/types/en-US.data-display.d.ts +2 -2
  775. package/dist/types/en-US.data-display.d.ts.map +1 -1
  776. package/dist/types/en-US.feedback.d.ts +1 -1
  777. package/dist/types/en-US.feedback.d.ts.map +1 -1
  778. package/dist/types/en-US.form.d.ts +4 -4
  779. package/dist/types/en-US.form.d.ts.map +1 -1
  780. package/dist/types/en-US.labels.d.ts +9 -0
  781. package/dist/types/en-US.labels.d.ts.map +1 -0
  782. package/dist/types/en-US.navigation.d.ts +1 -1
  783. package/dist/types/en-US.navigation.d.ts.map +1 -1
  784. package/dist/types/en-US.utility.d.ts +1 -1
  785. package/dist/types/en-US.utility.d.ts.map +1 -1
  786. package/dist/types/locales.d.ts +2 -1
  787. package/dist/types/locales.d.ts.map +1 -1
  788. package/dist/types/pt-BR.d.ts +1 -0
  789. package/dist/types/pt-BR.d.ts.map +1 -1
  790. package/dist/types/pt-BR.data-display.d.ts +2 -2
  791. package/dist/types/pt-BR.data-display.d.ts.map +1 -1
  792. package/dist/types/pt-BR.feedback.d.ts +1 -1
  793. package/dist/types/pt-BR.feedback.d.ts.map +1 -1
  794. package/dist/types/pt-BR.form.d.ts +4 -4
  795. package/dist/types/pt-BR.form.d.ts.map +1 -1
  796. package/dist/types/pt-BR.labels.d.ts +8 -0
  797. package/dist/types/pt-BR.labels.d.ts.map +1 -0
  798. package/dist/types/pt-BR.navigation.d.ts +1 -1
  799. package/dist/types/pt-BR.navigation.d.ts.map +1 -1
  800. package/dist/types/pt-BR.utility.d.ts +1 -1
  801. package/dist/types/pt-BR.utility.d.ts.map +1 -1
  802. package/dist/types/social-login-button/social-login-button.d.ts.map +1 -1
  803. package/dist/types/user-avatar/user-avatar.d.ts +6 -1
  804. package/dist/types/user-avatar/user-avatar.d.ts.map +1 -1
  805. package/dist/types/utils/resolve-labels.d.ts +9 -0
  806. package/dist/types/utils/resolve-labels.d.ts.map +1 -0
  807. package/dist/types-native/components/data-display/Avatar/Avatar.native.d.ts.map +1 -1
  808. package/dist/types-native/components/data-display/Badge/Badge.native.d.ts +1 -0
  809. package/dist/types-native/components/data-display/Badge/Badge.native.d.ts.map +1 -1
  810. package/dist/types-native/components/data-display/Badge/Badge.types.native.d.ts +2 -0
  811. package/dist/types-native/components/data-display/Badge/Badge.types.native.d.ts.map +1 -1
  812. package/dist/types-native/components/data-display/Badge/BadgeContent.native.d.ts +2 -1
  813. package/dist/types-native/components/data-display/Badge/BadgeContent.native.d.ts.map +1 -1
  814. package/dist/types-native/components/data-display/Chip/Chip.native.d.ts +1 -0
  815. package/dist/types-native/components/data-display/Chip/Chip.native.d.ts.map +1 -1
  816. package/dist/types-native/components/data-display/Chip/Chip.types.native.d.ts +2 -0
  817. package/dist/types-native/components/data-display/Chip/Chip.types.native.d.ts.map +1 -1
  818. package/dist/types-native/components/data-display/EmptyState/EmptyState.native.d.ts.map +1 -1
  819. package/dist/types-native/components/data-display/ErrorState/ErrorState.native.d.ts.map +1 -1
  820. package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts +7 -0
  821. package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -1
  822. package/dist/types-native/components/data-display/LoadingState/LoadingState.native.d.ts.map +1 -1
  823. package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts +10 -0
  824. package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts.map +1 -1
  825. package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts.map +1 -1
  826. package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts +1 -1
  827. package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts.map +1 -1
  828. package/dist/types-native/components/form/Button/Button.native.d.ts +1 -0
  829. package/dist/types-native/components/form/Button/Button.native.d.ts.map +1 -1
  830. package/dist/types-native/components/form/Button/Button.native.loading.d.ts +2 -1
  831. package/dist/types-native/components/form/Button/Button.native.loading.d.ts.map +1 -1
  832. package/dist/types-native/components/form/Button/Button.types.native.d.ts +2 -0
  833. package/dist/types-native/components/form/Button/Button.types.native.d.ts.map +1 -1
  834. package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts +1 -0
  835. package/dist/types-native/components/form/Checkbox/Checkbox.native.d.ts.map +1 -1
  836. package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts +2 -0
  837. package/dist/types-native/components/form/Checkbox/Checkbox.types.native.d.ts.map +1 -1
  838. package/dist/types-native/components/form/Input/Input.native.d.ts +1 -0
  839. package/dist/types-native/components/form/Input/Input.native.d.ts.map +1 -1
  840. package/dist/types-native/components/form/Input/Input.types.native.d.ts +2 -0
  841. package/dist/types-native/components/form/Input/Input.types.native.d.ts.map +1 -1
  842. package/dist/types-native/components/form/Switch/Switch.native.d.ts +1 -0
  843. package/dist/types-native/components/form/Switch/Switch.native.d.ts.map +1 -1
  844. package/dist/types-native/components/form/Switch/Switch.types.native.d.ts +2 -0
  845. package/dist/types-native/components/form/Switch/Switch.types.native.d.ts.map +1 -1
  846. package/dist/types-native/copy/data-display.d.ts +119 -0
  847. package/dist/types-native/copy/data-display.d.ts.map +1 -0
  848. package/dist/types-native/copy/labels.d.ts +219 -0
  849. package/dist/types-native/copy/labels.d.ts.map +1 -0
  850. package/dist/types-native/en-US.labels.d.ts +9 -0
  851. package/dist/types-native/en-US.labels.d.ts.map +1 -0
  852. package/dist/types-native/utils/resolve-labels.d.ts +9 -0
  853. package/dist/types-native/utils/resolve-labels.d.ts.map +1 -0
  854. package/dist/typography/Code.js +2 -1
  855. package/dist/user-avatar.js +9 -7
  856. package/dist/utility/AnimatedIcon.js +2 -1
  857. package/dist/utility/InfiniteScroll.js +3 -2
  858. package/dist/utility/InstallPrompt.js +2 -2
  859. package/dist/utility/WorkflowStep.js +6 -4
  860. package/package.json +2 -2
  861. package/src/components/data-display/AlertDialog/AlertDialog.parts.tsx +3 -2
  862. package/src/components/data-display/AlertDialog/AlertDialog.tsx +3 -1
  863. package/src/components/data-display/AlertDialog/AlertDialog.types.ts +6 -0
  864. package/src/components/data-display/Avatar/Avatar.native.tsx +2 -1
  865. package/src/components/data-display/Avatar/Avatar.tsx +2 -1
  866. package/src/components/data-display/Badge/Badge.native.tsx +2 -0
  867. package/src/components/data-display/Badge/Badge.types.native.ts +2 -0
  868. package/src/components/data-display/Badge/BadgeContent.native.tsx +4 -1
  869. package/src/components/data-display/Carousel/Carousel.chrome.tsx +1 -0
  870. package/src/components/data-display/Carousel/Carousel.parts.tsx +13 -9
  871. package/src/components/data-display/Carousel/Carousel.types.ts +2 -0
  872. package/src/components/data-display/Chip/Chip.native.tsx +9 -1
  873. package/src/components/data-display/Chip/Chip.types.native.ts +2 -0
  874. package/src/components/data-display/DataViews/DeleteViewDialog.tsx +2 -2
  875. package/src/components/data-display/DataViews/data-views-copy.ts +11 -0
  876. package/src/components/data-display/DataViews/data-views-grid-helpers.tsx +8 -3
  877. package/src/components/data-display/DataViews/data-views-view-nav.tsx +2 -2
  878. package/src/components/data-display/DataViews/use-data-views-state.ts +3 -1
  879. package/src/components/data-display/EmptyState/EmptyState.native.tsx +3 -2
  880. package/src/components/data-display/EmptyState/EmptyState.tsx +3 -2
  881. package/src/components/data-display/ErrorState/ErrorState.native.tsx +2 -1
  882. package/src/components/data-display/ErrorState/ErrorState.tsx +2 -1
  883. package/src/components/data-display/LazyImage/LazyImage.hooks.ts +1 -1
  884. package/src/components/data-display/LazyImage/LazyImage.tsx +4 -4
  885. package/src/components/data-display/LazyImage/LazyImage.types.ts +12 -0
  886. package/src/components/data-display/LoadingState/LoadingState.base.ts +8 -0
  887. package/src/components/data-display/LoadingState/LoadingState.native.tsx +10 -5
  888. package/src/components/data-display/LoadingState/LoadingState.tsx +9 -3
  889. package/src/components/data-display/MapPreview/MapControlBar.tsx +7 -3
  890. package/src/components/data-display/MapPreview/MapLayers.tsx +2 -2
  891. package/src/components/data-display/MapPreview/MapMarkers.tsx +13 -4
  892. package/src/components/data-display/MapPreview/MapPreview.helpers.ts +13 -2
  893. package/src/components/data-display/MapPreview/MapPreview.tsx +7 -3
  894. package/src/components/data-display/Sheet/Sheet.body.tsx +3 -0
  895. package/src/components/data-display/Sheet/Sheet.md +1 -0
  896. package/src/components/data-display/Sheet/Sheet.parts.tsx +4 -0
  897. package/src/components/data-display/Sheet/Sheet.types.ts +10 -0
  898. package/src/components/data-display/Stepper/Stepper.tsx +41 -7
  899. package/src/components/data-display/Stepper/Stepper.types.ts +4 -0
  900. package/src/components/data-display/Table/Table.helpers.ts +1 -0
  901. package/src/components/data-display/Table/Table.tsx +4 -5
  902. package/src/components/data-display/Table/Table.types.ts +12 -0
  903. package/src/components/data-display/Table/TableParts.hooks.tsx +8 -1
  904. package/src/components/data-display/Table/TableParts.tsx +19 -5
  905. package/src/components/data-display/Timeline/Timeline.tsx +6 -1
  906. package/src/components/data-display/Timeline/Timeline.types.ts +3 -0
  907. package/src/components/data-display/Timeline/TimelineRow.tsx +11 -4
  908. package/src/components/feedback/Dialog/Dialog.base.ts +10 -0
  909. package/src/components/feedback/Dialog/Dialog.native.tsx +2 -0
  910. package/src/components/feedback/Dialog/Dialog.tsx +5 -1
  911. package/src/components/feedback/Dialog/DialogParts.native.tsx +17 -3
  912. package/src/components/feedback/Sonner/Sonner.tsx +16 -6
  913. package/src/components/feedback/Sonner/SonnerToast.tsx +4 -2
  914. package/src/components/feedback/StackedModal/StackedModal.parts.tsx +24 -3
  915. package/src/components/feedback/StackedModal/StackedModal.tsx +4 -2
  916. package/src/components/feedback/StackedModal/StackedModal.types.ts +5 -0
  917. package/src/components/feedback/Toast/Toast.tsx +5 -2
  918. package/src/components/feedback/Toast/Toast.types.ts +5 -0
  919. package/src/components/feedback/TutorialOverlay/TutorialOverlay.tsx +3 -1
  920. package/src/components/feedback/TutorialOverlay/TutorialStepBody.tsx +12 -3
  921. package/src/components/form/AddressAutocomplete/AddressAutocomplete.helpers.ts +12 -6
  922. package/src/components/form/AddressAutocomplete/AddressAutocomplete.hooks.ts +15 -2
  923. package/src/components/form/AddressAutocomplete/AddressAutocomplete.tsx +1 -0
  924. package/src/components/form/AddressAutocomplete/AddressAutocompleteField.tsx +9 -3
  925. package/src/components/form/AddressAutocomplete/useAddressPredictions.ts +6 -3
  926. package/src/components/form/AddressAutocomplete/useAddressSelection.ts +8 -4
  927. package/src/components/form/AddressAutocomplete/useCurrentLocation.ts +12 -8
  928. package/src/components/form/AddressAutocomplete/useGoogleMapsAPI.ts +8 -4
  929. package/src/components/form/Button/Button.native.loading.tsx +11 -2
  930. package/src/components/form/Button/Button.native.tsx +2 -2
  931. package/src/components/form/Button/Button.types.native.ts +2 -0
  932. package/src/components/form/Checkbox/Checkbox.native.tsx +5 -2
  933. package/src/components/form/Checkbox/Checkbox.types.native.ts +2 -0
  934. package/src/components/form/Command/Command.hooks.ts +3 -2
  935. package/src/components/form/Command/Command.parts.tsx +3 -2
  936. package/src/components/form/DateRangePicker/DateRangePicker.range.ts +2 -1
  937. package/src/components/form/Input/Input.native.tsx +13 -4
  938. package/src/components/form/Input/Input.types.native.ts +2 -0
  939. package/src/components/form/PhoneInput/PhoneInput.md +2 -2
  940. package/src/components/form/PhoneInput/PhoneInput.tsx +22 -10
  941. package/src/components/form/PhoneInput/PhoneInput.types.ts +1 -0
  942. package/src/components/form/PhoneInput/countries.ts +18 -1
  943. package/src/components/form/RichTextEditor/RichTextEditor.dom.ts +5 -3
  944. package/src/components/form/RichTextEditor/RichTextEditor.format.ts +3 -1
  945. package/src/components/form/RichTextEditor/RichTextEditor.hooks.ts +4 -1
  946. package/src/components/form/RichTextEditor/RichTextEditor.tsx +10 -4
  947. package/src/components/form/RichTextEditor/RichTextEditor.types.ts +7 -1
  948. package/src/components/form/RichTextEditor/RichTextEditorToolbar.tsx +29 -19
  949. package/src/components/form/Switch/Switch.native.tsx +4 -3
  950. package/src/components/form/Switch/Switch.types.native.ts +2 -0
  951. package/src/components/form/Textarea/TextareaRichEditor.tsx +2 -1
  952. package/src/components/form/UploadButton/UploadButton.hooks.ts +16 -6
  953. package/src/components/form/total-form/FormErrorSnackbar.tsx +2 -1
  954. package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +3 -2
  955. package/src/components/layout/ContentToolbar/ContentToolbar.types.ts +14 -0
  956. package/src/components/layout/ContentToolbar/FilterTrigger.tsx +14 -2
  957. package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +4 -3
  958. package/src/components/layout/ContentToolbar/ViewSelector.tsx +15 -5
  959. package/src/components/layout/Dashboard/Dashboard.tsx +7 -2
  960. package/src/components/layout/Dashboard/Dashboard.types.ts +5 -0
  961. package/src/components/layout/Drawer/Drawer.tsx +2 -1
  962. package/src/components/layout/SettingsLayout/SettingsLayout.md +1 -0
  963. package/src/components/layout/SettingsLayout/SettingsLayout.rail.tsx +9 -2
  964. package/src/components/layout/SettingsLayout/SettingsLayout.tsx +16 -5
  965. package/src/components/layout/SettingsLayout/SettingsLayout.types.ts +6 -0
  966. package/src/components/layout/TableFilter/TableFilter.tsx +4 -3
  967. package/src/components/navigation/AppHeader/AppHeader.identity.tsx +2 -1
  968. package/src/components/navigation/AppHeader/AppHeader.types.ts +5 -1
  969. package/src/components/navigation/Breadcrumbs/Breadcrumbs.tsx +2 -1
  970. package/src/components/navigation/CommandPalette/CommandPalette.helpers.ts +6 -2
  971. package/src/components/navigation/CommandPalette/CommandPalette.hooks.ts +9 -1
  972. package/src/components/navigation/CommandPalette/CommandPalette.tsx +16 -6
  973. package/src/components/navigation/CommandPalette/CommandPaletteResults.tsx +3 -1
  974. package/src/components/navigation/NavigationMenu/NavigationMenu.shell.tsx +7 -4
  975. package/src/components/navigation/NavigationMenu/NavigationMenu.tsx +4 -0
  976. package/src/components/navigation/NavigationMenu/NavigationMenu.types.ts +13 -0
  977. package/src/components/navigation/NavigationMenu/NavigationMenuItem.tsx +2 -0
  978. package/src/components/navigation/NavigationMenu/NavigationStandardBody.tsx +24 -4
  979. package/src/components/typography/Code/Code.tsx +28 -6
  980. package/src/components/typography/Code/Code.types.ts +4 -0
  981. package/src/components/utility/AnimatedIcon/AnimatedIcon.tsx +2 -1
  982. package/src/components/utility/InfiniteScroll/InfiniteScroll.parts.tsx +6 -2
  983. package/src/components/utility/InfiniteScroll/InfiniteScroll.tsx +2 -1
  984. package/src/components/utility/InfiniteScroll/InfiniteScroll.types.ts +6 -0
  985. package/src/components/utility/WorkflowStep/WorkflowStep.helpers.ts +9 -1
  986. package/src/components/utility/WorkflowStep/WorkflowStep.parts.tsx +3 -2
  987. package/src/components/utility/WorkflowStep/WorkflowStep.tsx +3 -1
  988. package/src/components/utility/WorkflowStep/WorkflowStep.types.ts +10 -0
  989. package/src/components/utility/WorkflowStep/WorkflowStepRow.tsx +3 -0
  990. package/src/copy/data-display.ts +19 -0
  991. package/src/copy/feedback.ts +4 -0
  992. package/src/copy/form.ts +58 -0
  993. package/src/copy/labels.ts +249 -0
  994. package/src/copy/navigation.ts +12 -0
  995. package/src/copy/utility.ts +8 -1
  996. package/src/copy.ts +1 -0
  997. package/src/en-US.data-display.ts +14 -2
  998. package/src/en-US.feedback.ts +3 -1
  999. package/src/en-US.form.ts +27 -4
  1000. package/src/en-US.labels.ts +147 -0
  1001. package/src/en-US.navigation.ts +5 -1
  1002. package/src/en-US.ts +1 -0
  1003. package/src/en-US.utility.ts +3 -1
  1004. package/src/locales.ts +4 -0
  1005. package/src/pt-BR.data-display.ts +14 -2
  1006. package/src/pt-BR.feedback.ts +3 -1
  1007. package/src/pt-BR.form.ts +40 -4
  1008. package/src/pt-BR.labels.ts +146 -0
  1009. package/src/pt-BR.navigation.ts +5 -1
  1010. package/src/pt-BR.ts +1 -0
  1011. package/src/pt-BR.utility.ts +3 -1
  1012. package/src/social-login-button/social-login-button.tsx +3 -2
  1013. package/src/user-avatar/user-avatar.tsx +11 -2
  1014. package/src/utils/resolve-labels.ts +12 -0
  1015. package/dist/chunk-2ARVNCVU.js.map +0 -1
  1016. package/dist/chunk-2ILXXBMG.js.map +0 -1
  1017. package/dist/chunk-2TSGRQ2J.js.map +0 -1
  1018. package/dist/chunk-33LAPBYB.js.map +0 -1
  1019. package/dist/chunk-3JDP5OUR.js.map +0 -1
  1020. package/dist/chunk-3VXS7O3X.js.map +0 -1
  1021. package/dist/chunk-3ZWCKCZC.js.map +0 -1
  1022. package/dist/chunk-47VRDPR2.js.map +0 -1
  1023. package/dist/chunk-4HUSG5MR.js.map +0 -1
  1024. package/dist/chunk-4MQ6XTIJ.js.map +0 -1
  1025. package/dist/chunk-4NQXHPQR.js.map +0 -1
  1026. package/dist/chunk-4VRDFZ4G.js.map +0 -1
  1027. package/dist/chunk-5J7SA4CZ.js.map +0 -1
  1028. package/dist/chunk-5KNDAC24.js.map +0 -1
  1029. package/dist/chunk-5MMAV7XK.js.map +0 -1
  1030. package/dist/chunk-64AOS2WA.js.map +0 -1
  1031. package/dist/chunk-7QXEEZFO.js +0 -92
  1032. package/dist/chunk-7QXEEZFO.js.map +0 -1
  1033. package/dist/chunk-7SYYGXC7.js.map +0 -1
  1034. package/dist/chunk-7VRCGWQL.js.map +0 -1
  1035. package/dist/chunk-AYJ44VTJ.js.map +0 -1
  1036. package/dist/chunk-AYP6ICAY.js.map +0 -1
  1037. package/dist/chunk-B2JYQBO4.js.map +0 -1
  1038. package/dist/chunk-BGTG7G54.js.map +0 -1
  1039. package/dist/chunk-BWZKLKDT.js +0 -1
  1040. package/dist/chunk-C5JCARNE.js.map +0 -1
  1041. package/dist/chunk-CZV6NVCA.js.map +0 -1
  1042. package/dist/chunk-EERUSI52.js.map +0 -1
  1043. package/dist/chunk-EUACQR6N.js.map +0 -1
  1044. package/dist/chunk-F742IMLQ.js.map +0 -1
  1045. package/dist/chunk-FIOBPQL2.js.map +0 -1
  1046. package/dist/chunk-FRGNTTPA.js.map +0 -1
  1047. package/dist/chunk-FT6HBP5E.js.map +0 -1
  1048. package/dist/chunk-GHXW6O5T.js.map +0 -1
  1049. package/dist/chunk-HBP2OU4Q.js.map +0 -1
  1050. package/dist/chunk-HEBZ7Q7O.js.map +0 -1
  1051. package/dist/chunk-HN3PZTUK.js.map +0 -1
  1052. package/dist/chunk-HZK4DRGF.js.map +0 -1
  1053. package/dist/chunk-ICRVLGWD.js.map +0 -1
  1054. package/dist/chunk-INGPH3YQ.js.map +0 -1
  1055. package/dist/chunk-JJVIZR6C.js.map +0 -1
  1056. package/dist/chunk-JKNKGGOG.js.map +0 -1
  1057. package/dist/chunk-KARMRTTM.js.map +0 -1
  1058. package/dist/chunk-KIL3OVLI.js.map +0 -1
  1059. package/dist/chunk-KT3TF2LT.js.map +0 -1
  1060. package/dist/chunk-KZXOIRUP.js.map +0 -1
  1061. package/dist/chunk-LH4VKUZC.js.map +0 -1
  1062. package/dist/chunk-LOLYI6PS.js.map +0 -1
  1063. package/dist/chunk-LTTYUSJ2.js.map +0 -1
  1064. package/dist/chunk-MA6SUE7F.js.map +0 -1
  1065. package/dist/chunk-MSC43MCJ.js.map +0 -1
  1066. package/dist/chunk-MTGEJRE4.js.map +0 -1
  1067. package/dist/chunk-NTO5DALI.js.map +0 -1
  1068. package/dist/chunk-OE3SQOZV.js.map +0 -1
  1069. package/dist/chunk-PBMCRDZI.js.map +0 -1
  1070. package/dist/chunk-PU3HEWSG.js.map +0 -1
  1071. package/dist/chunk-PY3RW5LC.js.map +0 -1
  1072. package/dist/chunk-QWVETTIY.js.map +0 -1
  1073. package/dist/chunk-RA6W37NZ.js.map +0 -1
  1074. package/dist/chunk-RKVS5AA6.js.map +0 -1
  1075. package/dist/chunk-RZCXYKY4.js.map +0 -1
  1076. package/dist/chunk-SUZXPDUQ.js.map +0 -1
  1077. package/dist/chunk-SV6IQ2YO.js.map +0 -1
  1078. package/dist/chunk-T743IIER.js.map +0 -1
  1079. package/dist/chunk-TJO4CBYT.js.map +0 -1
  1080. package/dist/chunk-TTCVYY2B.js.map +0 -1
  1081. package/dist/chunk-U4G3KY6L.js.map +0 -1
  1082. package/dist/chunk-UGH2DDST.js.map +0 -1
  1083. package/dist/chunk-UZOG6HNN.js.map +0 -1
  1084. package/dist/chunk-VMN6KG2U.js.map +0 -1
  1085. package/dist/chunk-VNOFFVRQ.js +0 -113
  1086. package/dist/chunk-VNOFFVRQ.js.map +0 -1
  1087. package/dist/chunk-VNVV6Y2X.js.map +0 -1
  1088. package/dist/chunk-VQYR64QB.js.map +0 -1
  1089. package/dist/chunk-VRPCZ3IE.js.map +0 -1
  1090. package/dist/chunk-WC3W36AM.js.map +0 -1
  1091. package/dist/chunk-WOXWLJYR.js.map +0 -1
  1092. package/dist/chunk-WVZBYTIK.js.map +0 -1
  1093. package/dist/chunk-XICRCPEQ.js.map +0 -1
  1094. package/dist/chunk-XKSA4L2X.js.map +0 -1
  1095. package/dist/chunk-XLCVMRSO.js.map +0 -1
  1096. package/dist/chunk-XLTHZI5W.js.map +0 -1
  1097. package/dist/chunk-XQWUVQ2F.js.map +0 -1
  1098. package/dist/chunk-XYFBJH6F.js.map +0 -1
  1099. package/dist/chunk-Y7YJYUNV.js.map +0 -1
  1100. package/dist/chunk-YICNA5LG.js +0 -1
  1101. package/dist/chunk-YLSDFW5O.js.map +0 -1
  1102. package/dist/chunk-YOKUDQIJ.js.map +0 -1
  1103. package/dist/chunk-YZX4DVRS.js.map +0 -1
  1104. package/dist/chunk-ZFBFQK2Y.js.map +0 -1
  1105. package/dist/chunk-ZPACE34U.js.map +0 -1
  1106. package/dist/chunk-ZYKDUKAH.js.map +0 -1
  1107. package/dist/native/chunks/chunk-AVHGS66L.js.map +0 -1
  1108. package/dist/native/chunks/chunk-BXNZHDXK.js.map +0 -1
  1109. /package/dist/{chunk-BWZKLKDT.js.map → _internal/copy/labels.js.map} +0 -0
  1110. /package/dist/{chunk-YICNA5LG.js.map → _internal/en-US.labels.js.map} +0 -0
  1111. /package/dist/{chunk-OPP6USJC.js.map → chunk-2FQF4CNE.js.map} +0 -0
  1112. /package/dist/{chunk-BWFQEASG.js.map → chunk-2P5ZBBTL.js.map} +0 -0
  1113. /package/dist/{chunk-QVO4SIS7.js.map → chunk-3W2B7IZG.js.map} +0 -0
  1114. /package/dist/{chunk-Q6PRGXR2.js.map → chunk-4HBCWKIX.js.map} +0 -0
  1115. /package/dist/{chunk-2QO3BKUQ.js.map → chunk-4NVEUJXK.js.map} +0 -0
  1116. /package/dist/{chunk-O6SAU5JA.js.map → chunk-4OTJ66ID.js.map} +0 -0
  1117. /package/dist/{chunk-PIP7XII2.js.map → chunk-5JDY5W7O.js.map} +0 -0
  1118. /package/dist/{chunk-JE6RZ5L6.js.map → chunk-5ZOJLYD2.js.map} +0 -0
  1119. /package/dist/{chunk-LG52LMAM.js.map → chunk-6B7VZFAO.js.map} +0 -0
  1120. /package/dist/{chunk-ALREWFRX.js.map → chunk-6DGNMASB.js.map} +0 -0
  1121. /package/dist/{chunk-555TUQ7E.js.map → chunk-6IVR5HFI.js.map} +0 -0
  1122. /package/dist/{chunk-J26ZWYQI.js.map → chunk-6KCJNERH.js.map} +0 -0
  1123. /package/dist/{chunk-5752357K.js.map → chunk-6N2U67KF.js.map} +0 -0
  1124. /package/dist/{chunk-AXZCCX7O.js.map → chunk-6S7CFH6V.js.map} +0 -0
  1125. /package/dist/{chunk-PMRLFNBT.js.map → chunk-763AHWKU.js.map} +0 -0
  1126. /package/dist/{chunk-6DAIC2MG.js.map → chunk-775LIZXS.js.map} +0 -0
  1127. /package/dist/{chunk-7HA7UH7O.js.map → chunk-7H5BIZ33.js.map} +0 -0
  1128. /package/dist/{chunk-VEBNL5MG.js.map → chunk-7HYLXERK.js.map} +0 -0
  1129. /package/dist/{chunk-M3DSPEZ3.js.map → chunk-7S3NG2AO.js.map} +0 -0
  1130. /package/dist/{chunk-CSD6SWBZ.js.map → chunk-A3Z7ZXLM.js.map} +0 -0
  1131. /package/dist/{chunk-LBZEPWYK.js.map → chunk-ABJOW7EK.js.map} +0 -0
  1132. /package/dist/{chunk-44PBCQ7E.js.map → chunk-ABQZFK7M.js.map} +0 -0
  1133. /package/dist/{chunk-EIMFA7KP.js.map → chunk-ANUO67JQ.js.map} +0 -0
  1134. /package/dist/{chunk-PTQRJEPN.js.map → chunk-AOBQ3KYY.js.map} +0 -0
  1135. /package/dist/{chunk-LODYTVOO.js.map → chunk-B25SHVWP.js.map} +0 -0
  1136. /package/dist/{chunk-HPEBSLYP.js.map → chunk-B67KUCWU.js.map} +0 -0
  1137. /package/dist/{chunk-GTT5UKKO.js.map → chunk-BDJIP4HG.js.map} +0 -0
  1138. /package/dist/{chunk-RS576GOH.js.map → chunk-BIUT3K6A.js.map} +0 -0
  1139. /package/dist/{chunk-A5NXBOWS.js.map → chunk-BLHSLB5D.js.map} +0 -0
  1140. /package/dist/{chunk-RHKQ2RSY.js.map → chunk-BLVFHVDM.js.map} +0 -0
  1141. /package/dist/{chunk-DYHOBKPU.js.map → chunk-BLZDSCIZ.js.map} +0 -0
  1142. /package/dist/{chunk-E53MMMDA.js.map → chunk-BX6CF2UG.js.map} +0 -0
  1143. /package/dist/{chunk-7K23NEZO.js.map → chunk-CFDYQSN6.js.map} +0 -0
  1144. /package/dist/{chunk-O36MIQIO.js.map → chunk-DB7OJM6X.js.map} +0 -0
  1145. /package/dist/{chunk-GSXYXMCV.js.map → chunk-DD3VFDB2.js.map} +0 -0
  1146. /package/dist/{chunk-IQ2U5MVO.js.map → chunk-DT22MDC3.js.map} +0 -0
  1147. /package/dist/{chunk-7XSCEHGA.js.map → chunk-EOQ6EKTS.js.map} +0 -0
  1148. /package/dist/{chunk-VEKTKCSB.js.map → chunk-FLJ3RIRP.js.map} +0 -0
  1149. /package/dist/{chunk-Z5WUSI47.js.map → chunk-G3JFESKD.js.map} +0 -0
  1150. /package/dist/{chunk-XRDH24J7.js.map → chunk-G6ET2DRL.js.map} +0 -0
  1151. /package/dist/{chunk-7JOLSD2W.js.map → chunk-GHTVBYFA.js.map} +0 -0
  1152. /package/dist/{chunk-AMLHEKSV.js.map → chunk-HI7JPDD6.js.map} +0 -0
  1153. /package/dist/{chunk-N34AOGK3.js.map → chunk-I3OKAQ5L.js.map} +0 -0
  1154. /package/dist/{chunk-AEYLFBZT.js.map → chunk-I4NDZFTB.js.map} +0 -0
  1155. /package/dist/{chunk-2ZRZTGWP.js.map → chunk-ISW5K72V.js.map} +0 -0
  1156. /package/dist/{chunk-4M5GEKPM.js.map → chunk-JL4I7OQE.js.map} +0 -0
  1157. /package/dist/{chunk-EF4DVYD2.js.map → chunk-JMUZ5JZA.js.map} +0 -0
  1158. /package/dist/{chunk-HQCZT6TO.js.map → chunk-JVOEVTCZ.js.map} +0 -0
  1159. /package/dist/{chunk-MBMZNSBP.js.map → chunk-JW7MN4DG.js.map} +0 -0
  1160. /package/dist/{chunk-FCVPVEAS.js.map → chunk-KSOIFQJ6.js.map} +0 -0
  1161. /package/dist/{chunk-GBVNY2LG.js.map → chunk-KTXJQ4YJ.js.map} +0 -0
  1162. /package/dist/{chunk-NBXG3SQ3.js.map → chunk-KW2KCPZF.js.map} +0 -0
  1163. /package/dist/{chunk-3V3Z4EML.js.map → chunk-L4FWEI2P.js.map} +0 -0
  1164. /package/dist/{chunk-56JF5PZK.js.map → chunk-LYVTJLCF.js.map} +0 -0
  1165. /package/dist/{chunk-MNZ6MCOK.js.map → chunk-MKRJUT5O.js.map} +0 -0
  1166. /package/dist/{chunk-BGYLL467.js.map → chunk-N3W6FZOC.js.map} +0 -0
  1167. /package/dist/{chunk-BWFUZ4N2.js.map → chunk-NGXDOWUP.js.map} +0 -0
  1168. /package/dist/{chunk-NYWAAXDX.js.map → chunk-OT4HIG7S.js.map} +0 -0
  1169. /package/dist/{chunk-GRMBCJS6.js.map → chunk-PAKLYZ6G.js.map} +0 -0
  1170. /package/dist/{chunk-5M2NWXN4.js.map → chunk-PGBIUO2A.js.map} +0 -0
  1171. /package/dist/{chunk-RCTHCXS6.js.map → chunk-PJNIJIE6.js.map} +0 -0
  1172. /package/dist/{chunk-6ATXOJVQ.js.map → chunk-QADTI63U.js.map} +0 -0
  1173. /package/dist/{chunk-7ZROYGUG.js.map → chunk-QOTMQLMW.js.map} +0 -0
  1174. /package/dist/{chunk-NQCTANF3.js.map → chunk-QVDEGBME.js.map} +0 -0
  1175. /package/dist/{chunk-LI6XSM5D.js.map → chunk-QVEJGFRP.js.map} +0 -0
  1176. /package/dist/{chunk-VD72JGHA.js.map → chunk-RMZQHJEP.js.map} +0 -0
  1177. /package/dist/{chunk-VBGC7G4F.js.map → chunk-RQ3IS5NQ.js.map} +0 -0
  1178. /package/dist/{chunk-YNDTLBOH.js.map → chunk-SM2O6D5F.js.map} +0 -0
  1179. /package/dist/{chunk-WA6F4NOO.js.map → chunk-SMANO5OD.js.map} +0 -0
  1180. /package/dist/{chunk-YJBWDDW7.js.map → chunk-SXNGH56D.js.map} +0 -0
  1181. /package/dist/{chunk-NDGA7ZE6.js.map → chunk-TGMMUKOF.js.map} +0 -0
  1182. /package/dist/{chunk-SB2SEGR6.js.map → chunk-TIM4PXWN.js.map} +0 -0
  1183. /package/dist/{chunk-MHLYX6QW.js.map → chunk-TRAMTVIO.js.map} +0 -0
  1184. /package/dist/{chunk-QO7UJXXO.js.map → chunk-TVMSXL3R.js.map} +0 -0
  1185. /package/dist/{chunk-DXFKPY2K.js.map → chunk-UCQRJTCI.js.map} +0 -0
  1186. /package/dist/{chunk-CW6Y32N2.js.map → chunk-UF4JFRLE.js.map} +0 -0
  1187. /package/dist/{chunk-HHPJXK4Z.js.map → chunk-UHQZ5XPW.js.map} +0 -0
  1188. /package/dist/{chunk-FTDGFWB5.js.map → chunk-UK3DSFMK.js.map} +0 -0
  1189. /package/dist/{chunk-GBKIGUNP.js.map → chunk-UYNJ3FYE.js.map} +0 -0
  1190. /package/dist/{chunk-2MYSXWZQ.js.map → chunk-VKTF3GAP.js.map} +0 -0
  1191. /package/dist/{chunk-4XBAEKQQ.js.map → chunk-W2RXXF7K.js.map} +0 -0
  1192. /package/dist/{chunk-3Z3WIQ5M.js.map → chunk-W3EVATBS.js.map} +0 -0
  1193. /package/dist/{chunk-A2YLFKQU.js.map → chunk-W5WYTVLS.js.map} +0 -0
  1194. /package/dist/{chunk-EBCEDBHX.js.map → chunk-XDDKRACZ.js.map} +0 -0
  1195. /package/dist/{chunk-ASZGMKB4.js.map → chunk-Y3TD7HOY.js.map} +0 -0
  1196. /package/dist/{chunk-3YLRR4JM.js.map → chunk-Y3YZBB74.js.map} +0 -0
  1197. /package/dist/{chunk-HBHBRRSW.js.map → chunk-YBAK2WN5.js.map} +0 -0
  1198. /package/dist/{chunk-XODBYGTH.js.map → chunk-YMKSPW4T.js.map} +0 -0
  1199. /package/dist/{chunk-6RTE4UNO.js.map → chunk-YV4O7KDR.js.map} +0 -0
  1200. /package/dist/{chunk-MM7BPTVV.js.map → chunk-Z52W7FEU.js.map} +0 -0
  1201. /package/dist/{chunk-7P5PNRBT.js.map → chunk-ZDBG7QG2.js.map} +0 -0
  1202. /package/dist/{chunk-Z5V5E3JW.js.map → chunk-ZIHSCBMN.js.map} +0 -0
  1203. /package/dist/{chunk-S4JXSC4D.js.map → chunk-ZT73ACK3.js.map} +0 -0
@@ -8,7 +8,7 @@ import type {
8
8
  TutorialCopy,
9
9
  } from './copy';
10
10
 
11
- export const PT_BR_TUTORIAL_COPY: TutorialCopy = {
11
+ export const PT_BR_TUTORIAL_COPY: Required<TutorialCopy> = {
12
12
  skip: "Pular",
13
13
  previous: "Anterior",
14
14
  next: "Próximo",
@@ -16,6 +16,8 @@ export const PT_BR_TUTORIAL_COPY: TutorialCopy = {
16
16
  complete: "Concluir",
17
17
  finish: "Finalizar",
18
18
  requiresAction: "Conclua a ação obrigatória primeiro",
19
+ progress: (current, total) => `${current} de ${total}`,
20
+ close: "Fechar",
19
21
  };
20
22
 
21
23
  export const PT_BR_CHROME_COPY: ChromeCopy = {
package/src/pt-BR.form.ts CHANGED
@@ -13,11 +13,27 @@ import type {
13
13
  UploadButtonCopy,
14
14
  } from './copy';
15
15
 
16
- export const PT_BR_ADDRESS_AUTOCOMPLETE_COPY: AddressAutocompleteCopy = {
16
+ export const PT_BR_ADDRESS_AUTOCOMPLETE_COPY: Required<AddressAutocompleteCopy> = {
17
17
  loadingMaps: "Carregando o Google Maps…",
18
18
  mapsLoadFailed:
19
19
  "Não foi possível carregar a API do Google Maps. Verifique a chave da API e a conexão com a internet.",
20
20
  useCurrentLocation: "Usar a localização atual",
21
+ label: "Endereço",
22
+ placeholder: "Digite um endereço",
23
+ typeToSearch: "Digite ao menos 3 caracteres",
24
+ noAddressesFound: "Nenhum endereço encontrado",
25
+ loadingSuggestions: "Carregando…",
26
+ mapsApiLoadFailed: "Não foi possível carregar o mapa",
27
+ mapsServicesInitFailed: "Não foi possível iniciar o mapa",
28
+ fetchSuggestionsFailed: "Não foi possível buscar sugestões de endereço",
29
+ addressDetailsNotFound: "Detalhes do endereço não encontrados",
30
+ addressDetailsFailed: "Não foi possível obter os detalhes do endereço",
31
+ noMockLocation: "Nenhuma localização de teste disponível",
32
+ mockLocationNotFound: "Detalhes da localização de teste não encontrados",
33
+ locationAddressFailed: "Não foi possível obter o endereço da localização atual",
34
+ geolocationUnsupported: "Este navegador não oferece geolocalização",
35
+ geocoderUnavailable: "Serviço de geocodificação indisponível",
36
+ locationFailed: "Não foi possível obter a sua localização",
21
37
  };
22
38
 
23
39
  export const PT_BR_AUTOCOMPLETE_COPY: AutocompleteCopy = {
@@ -65,7 +81,7 @@ export const PT_BR_PASSWORD_STRENGTH_COPY: PasswordStrengthCopy = {
65
81
  },
66
82
  };
67
83
 
68
- export const PT_BR_RICH_EDITOR_TOOLBAR_COPY: RichEditorToolbarCopy = {
84
+ export const PT_BR_RICH_EDITOR_TOOLBAR_COPY: Required<RichEditorToolbarCopy> = {
69
85
  bold: "Negrito",
70
86
  italic: "Itálico",
71
87
  underline: "Sublinhado",
@@ -77,15 +93,33 @@ export const PT_BR_RICH_EDITOR_TOOLBAR_COPY: RichEditorToolbarCopy = {
77
93
  textColor: "Cor do texto",
78
94
  backgroundColor: "Cor de fundo",
79
95
  linkPrompt: "Informe a URL:",
96
+ editorLabel: "Editor de texto",
80
97
  };
81
98
 
82
- export const PT_BR_PHONE_INPUT_COPY: PhoneInputCopy = {
99
+ // Built on first use, not at import: a host that never mounts the phone field
100
+ // pays nothing, and a runtime without `Intl.DisplayNames` keeps the English name.
101
+ let ptBrRegionNames: Intl.DisplayNames | null | undefined;
102
+ const ptBrCountryName = (code: string): string | undefined => {
103
+ if (ptBrRegionNames === undefined) {
104
+ ptBrRegionNames =
105
+ typeof Intl !== "undefined" && typeof Intl.DisplayNames === "function"
106
+ ? new Intl.DisplayNames(["pt-BR"], { type: "region", fallback: "none" })
107
+ : null;
108
+ }
109
+ return ptBrRegionNames?.of(code);
110
+ };
111
+
112
+ export const PT_BR_PHONE_INPUT_COPY: Required<PhoneInputCopy> = {
83
113
  selectCountry: "Selecionar o país",
84
114
  invalidNumber: (countryName) => `Telefone inválido para ${countryName}`,
85
115
  unknownCountry: "o país selecionado",
116
+ countryName: (code, englishName) => ptBrCountryName(code) ?? englishName,
117
+ label: "Telefone",
118
+ // 92px: the input beside the country picker is 95px wide on a 320 screen.
119
+ placeholder: "Seu número",
86
120
  };
87
121
 
88
- export const PT_BR_UPLOAD_BUTTON_COPY: UploadButtonCopy = {
122
+ export const PT_BR_UPLOAD_BUTTON_COPY: Required<UploadButtonCopy> = {
89
123
  buttonLabel: "Enviar arquivo",
90
124
  dropzoneHint: "Solte o arquivo aqui ou clique para escolher",
91
125
  dropzoneRole: (label) => `Área de upload de arquivo. ${label}`,
@@ -94,6 +128,8 @@ export const PT_BR_UPLOAD_BUTTON_COPY: UploadButtonCopy = {
94
128
  percentUploaded: (percent) => `${percent}% enviado`,
95
129
  uploadInProgress: (percent) => `Envio em andamento: ${percent}%`,
96
130
  errorAnnouncement: (message) => `Erro: ${message}`,
131
+ fileTooLarge: (maxSizeMB) => `O arquivo deve ter menos de ${maxSizeMB} MB`,
132
+ uploadFailed: "Falha no envio",
97
133
  };
98
134
 
99
135
  export const PT_BR_SOCIAL_LOGIN_COPY: SocialLoginCopy = {
@@ -0,0 +1,146 @@
1
+ /**
2
+ * The pt-BR labels pack. A host passes `PT_BR_UI_LABELS.<family>` to the
3
+ * component's `labels` prop (or one entry to its `…Label` prop); see
4
+ * `copy/labels.ts`.
5
+ */
6
+ import type { UiLabels } from './copy/labels';
7
+
8
+ export const PT_BR_UI_LABELS: UiLabels = {
9
+ common: {
10
+ loading: "Carregando",
11
+ close: "Fechar",
12
+ delete: "Excluir",
13
+ },
14
+ stepper: {
15
+ step: (position, label) => `Etapa ${position}: ${label}`,
16
+ optional: "opcional",
17
+ completed: "concluída",
18
+ current: "atual",
19
+ },
20
+ timeline: {
21
+ expandDetails: "Mostrar detalhes do item",
22
+ collapseDetails: "Ocultar detalhes do item",
23
+ item: (title) => `Item da linha do tempo: ${title}`,
24
+ },
25
+ lazyImage: {
26
+ loadingAlt: (alt) => `${alt} (carregando)`,
27
+ fallbackAlt: (alt) => `${alt} (imagem alternativa)`,
28
+ },
29
+ sonner: {
30
+ hiddenCount: (count) => `+${count} a mais`,
31
+ },
32
+ richTextEditor: {
33
+ placeholder: "Comece a digitar...",
34
+ ariaLabel: "Editor de texto",
35
+ listItem: "Item da lista",
36
+ bold: "Negrito",
37
+ italic: "Itálico",
38
+ underline: "Sublinhado",
39
+ strikethrough: "Tachado",
40
+ numberedList: "Lista numerada",
41
+ bulletedList: "Lista com marcadores",
42
+ insertLink: "Inserir link",
43
+ insertImage: "Inserir imagem",
44
+ codeBlock: "Bloco de código",
45
+ quote: "Citação",
46
+ linkPrompt: "Informe a URL:",
47
+ imagePrompt: "Informe a URL da imagem:",
48
+ },
49
+ table: {
50
+ sortBy: (header) => `Ordenar por ${header}`,
51
+ selectRow: (rowNumber) => `Selecionar a linha ${rowNumber}`,
52
+ selectAllRows: "Selecionar todas as linhas",
53
+ },
54
+ code: {
55
+ copy: "Copiar código",
56
+ copied: "Copiado!",
57
+ },
58
+ contentToolbar: {
59
+ gridView: "Grade",
60
+ listView: "Lista",
61
+ openFilters: "Abrir filtros",
62
+ closeFilters: "Fechar filtros",
63
+ filters: "Filtros",
64
+ all: "Todos",
65
+ search: "Buscar…",
66
+ noResults: "Nenhum resultado",
67
+ },
68
+ dashboard: {
69
+ breadcrumb: "Trilha de navegação",
70
+ moreFilters: "Mais filtros",
71
+ },
72
+ navigationMenu: {
73
+ collapse: "Recolher",
74
+ expand: "Expandir",
75
+ },
76
+ workflowStep: {
77
+ step: (position, title) => `Etapa ${position}: ${title}`,
78
+ progress: (position, total) => `Etapa ${position} de ${total}`,
79
+ },
80
+ alertDialog: {
81
+ cancel: "Cancelar",
82
+ confirm: "Confirmar",
83
+ },
84
+ avatar: {
85
+ name: "Avatar",
86
+ },
87
+ emptyState: {
88
+ refresh: "Atualizar",
89
+ create: "Criar novo",
90
+ },
91
+ errorState: {
92
+ retry: "Tentar novamente",
93
+ },
94
+ loadingState: {
95
+ skeleton: "Carregando conteúdo",
96
+ spinner: "Carregando",
97
+ },
98
+ stackedModal: {
99
+ loading: "Carregando...",
100
+ },
101
+ command: {
102
+ placeholder: "Digite um comando ou pesquise...",
103
+ empty: "Nenhum resultado encontrado",
104
+ loading: "Carregando...",
105
+ },
106
+ formErrorSnackbar: {
107
+ message: "Corrija os campos destacados e tente novamente.",
108
+ },
109
+ columnsMenu: {
110
+ title: "Colunas",
111
+ toggle: "Mostrar ou ocultar colunas",
112
+ },
113
+ drawer: {
114
+ close: "Fechar painel",
115
+ },
116
+ settingsLayout: {
117
+ navigation: "Configurações",
118
+ searchPlaceholder: "Buscar configurações",
119
+ emptySearch: "Nenhuma configuração corresponde à busca.",
120
+ back: "Voltar",
121
+ },
122
+ tableFilter: {
123
+ filters: "Filtros",
124
+ keywordPlaceholder: "Pressione Enter para filtrar",
125
+ keywordLabel: "Filtrar por palavra-chave",
126
+ },
127
+ appHeader: {
128
+ disclose: (title) => `Detalhes de ${title}`,
129
+ },
130
+ breadcrumbs: {
131
+ navigation: "Trilha de navegação",
132
+ },
133
+ animatedIcon: {
134
+ name: (variant) => `Ícone animado: ${variant}`,
135
+ },
136
+ infiniteScroll: {
137
+ loadFailed: "Ocorreu um erro ao carregar mais itens",
138
+ },
139
+ socialLogin: {
140
+ title: "Entre para continuar",
141
+ divider: "ou",
142
+ },
143
+ dateRangePicker: {
144
+ calendar: "Calendário",
145
+ },
146
+ };
@@ -8,12 +8,16 @@ import type {
8
8
  SectionNavCopy,
9
9
  } from './copy';
10
10
 
11
- export const PT_BR_COMMAND_PALETTE_COPY: CommandPaletteCopy = {
11
+ export const PT_BR_COMMAND_PALETTE_COPY: Required<CommandPaletteCopy> = {
12
12
  execute: "Executar",
13
13
  navigate: "↑↓ Navegar",
14
14
  close: "ESC Fechar",
15
15
  recent: "Recentes",
16
16
  tryAnotherTerm: "Tente outro termo",
17
+ placeholder: "Digite um comando ou pesquise...",
18
+ commandCount: (count) => (count === 1 ? "1 comando" : `${count} comandos`),
19
+ noCommandsFound: (query) => `Nenhum comando encontrado para "${query}"`,
20
+ general: "Geral",
17
21
  };
18
22
 
19
23
  export const PT_BR_BREADCRUMB_COPY: BreadcrumbCopy = {
package/src/pt-BR.ts CHANGED
@@ -19,6 +19,7 @@
19
19
  export * from './pt-BR.data-display';
20
20
  export * from './pt-BR.feedback';
21
21
  export * from './pt-BR.form';
22
+ export * from './pt-BR.labels';
22
23
  export * from './pt-BR.layout';
23
24
  export * from './pt-BR.navigation';
24
25
  export * from './pt-BR.shared';
@@ -16,6 +16,8 @@ export const PT_BR_INSTALL_PROMPT_COPY: InstallPromptCopy = {
16
16
  shareLabel: "Compartilhar",
17
17
  };
18
18
 
19
- export const PT_BR_USER_AVATAR_COPY: UserAvatarCopy = {
19
+ export const PT_BR_USER_AVATAR_COPY: Required<UserAvatarCopy> = {
20
20
  signOut: "Sair",
21
+ avatarAlt: "Foto do usuário",
22
+ unnamedUser: "Usuário",
21
23
  };
@@ -11,6 +11,7 @@ import { Text } from '../components/typography/Text';
11
11
  import { Separator } from '../components/layout/Separator';
12
12
  import type { SocialLoginCopy } from '../copy/form';
13
13
  import { EN_US_SOCIAL_LOGIN_COPY } from '../en-US.form';
14
+ import { EN_US_UI_LABELS } from '../en-US.labels';
14
15
  import { uiInk, type UiInk } from '../tokens/ink';
15
16
  import { rem, sxRem } from '../tokens/relative';
16
17
 
@@ -294,10 +295,10 @@ function cardMaxWidth(theme: Theme, value: number | string): string {
294
295
 
295
296
  export function SocialLoginContainer({
296
297
  children,
297
- title = "Sign in to continue",
298
+ title = EN_US_UI_LABELS.socialLogin.title,
298
299
  subtitle,
299
300
  showDivider = false,
300
- dividerText = "or",
301
+ dividerText = EN_US_UI_LABELS.socialLogin.divider,
301
302
  maxWidth,
302
303
  }: SocialLoginContainerProps): React.ReactElement {
303
304
  const theme = useTheme();
@@ -8,6 +8,7 @@ import { Button } from '../components/form/Button';
8
8
  import { Text } from '../components/typography/Text';
9
9
  import { Card } from '../components/layout/Card';
10
10
  import type { UserAvatarCopy } from '../copy';
11
+ import { EN_US_USER_AVATAR_COPY } from '../en-US.utility';
11
12
 
12
13
  /**
13
14
  * Generate initials from a name
@@ -28,6 +29,11 @@ export interface UserAvatarProps {
28
29
  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
29
30
  onClick?: () => void;
30
31
  interactive?: boolean;
32
+ /**
33
+ * `avatarAlt` names the image when there is no `name`. Optional: English
34
+ * when omitted; a host passes `USER_AVATAR_COPY[locale]`.
35
+ */
36
+ copy?: Partial<UserAvatarCopy>;
31
37
  }
32
38
 
33
39
  /**
@@ -39,13 +45,15 @@ export function UserAvatar({
39
45
  size = 'md',
40
46
  onClick,
41
47
  interactive = false,
48
+ copy,
42
49
  }: UserAvatarProps): React.ReactElement {
43
50
  const fallbackText = name ? getInitials(name) : "?";
51
+ const avatarAlt = copy?.avatarAlt ?? EN_US_USER_AVATAR_COPY.avatarAlt;
44
52
 
45
53
  return (
46
54
  <Avatar
47
55
  src={src ?? undefined}
48
- alt={name ?? "User avatar"}
56
+ alt={name ?? avatarAlt}
49
57
  fallback={fallbackText}
50
58
  size={size}
51
59
  variant="circle"
@@ -81,11 +89,12 @@ export function UserMenu({ user, onSignOut, copy }: UserMenuProps): React.ReactE
81
89
  src={user.image}
82
90
  name={user.name}
83
91
  size="md"
92
+ copy={copy}
84
93
  />
85
94
 
86
95
  <Stack spacing={0.5} sx={{ flex: 1, minWidth: 0 }}>
87
96
  <Text weight="semibold" size="sm">
88
- {user.name ?? "User"}
97
+ {user.name ?? copy.unnamedUser ?? EN_US_USER_AVATAR_COPY.unnamedUser}
89
98
  </Text>
90
99
  {user.email && (
91
100
  <Text color="secondary" size="xs">
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A component's labels: the caller's `labels` laid over the pack's defaults,
3
+ * key by key, ignoring keys the caller left `undefined` (FUT-3860).
4
+ *
5
+ * `Partial<T>` is what keeps a new key non-breaking: every label prop is
6
+ * optional, and the English pack answers for whatever a caller does not name.
7
+ */
8
+ export function resolveLabels<T extends object>(defaults: T, overrides?: Partial<T>): T {
9
+ if (!overrides) return defaults;
10
+ const defined = Object.entries(overrides).filter(([, value]) => value !== undefined);
11
+ return { ...defaults, ...Object.fromEntries(defined) } as T;
12
+ }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/CommandPalette/CommandPaletteResults.tsx"],"sourcesContent":["import RecentIcon from '@mui/icons-material/History';\nimport Box from '@mui/material/Box/index.js';\nimport Divider from '@mui/material/Divider/index.js';\nimport List from '@mui/material/List/index.js';\nimport ListItem from '@mui/material/ListItem/index.js';\nimport ListItemIcon from '@mui/material/ListItemIcon/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { ShortcutChip } from './ShortcutChip';\nimport type { PaletteCommand } from './CommandPalette.types';\nimport type { CommandPaletteCopy } from '../../../copy';\nimport { rem, sxRem } from '../../../tokens/relative';\n\nconst ResultsList = styled(List)(({ theme }) => ({\n maxHeight: rem(theme, 400),\n overflowY: 'auto',\n padding: theme.spacing(1),\n '&::-webkit-scrollbar': {\n width: rem(theme, 8),\n },\n '&::-webkit-scrollbar-track': {\n background: alpha(theme.palette.action.disabled, 0.1),\n },\n '&::-webkit-scrollbar-thumb': {\n background: alpha(theme.palette.primary.main, 0.3),\n borderRadius: rem(theme, 4),\n '&:hover': {\n background: alpha(theme.palette.primary.main, 0.5),\n },\n },\n}));\n\nconst CommandItem = styled(ListItem)<{ selected?: boolean }>(({ theme, selected }) => ({\n borderRadius: theme.shape.borderRadius,\n marginBottom: theme.spacing(0.5),\n transition: theme.transitions.create(['background-color', 'transform']),\n cursor: 'pointer',\n ...(selected && {\n backgroundColor: alpha(theme.palette.primary.main, 0.12),\n transform: `translateX(${rem(theme, 4)})`,\n '& .MuiListItemIcon-root': {\n color: theme.palette.primary.main,\n },\n }),\n '&:hover': {\n backgroundColor: alpha(theme.palette.primary.main, 0.08),\n },\n}));\n\nconst CategoryLabel = styled(Typography)(({ theme }) => ({\n fontSize: rem(theme, 12),\n fontWeight: 600,\n color: theme.palette.text.secondary,\n textTransform: 'uppercase',\n letterSpacing: '0.1em',\n padding: theme.spacing(1, 2, 0.5, 2),\n marginTop: theme.spacing(1),\n}));\n\nconst NoResults = styled(Box)(({ theme }) => ({\n padding: theme.spacing(4, 2),\n textAlign: 'center',\n color: theme.palette.text.secondary,\n}));\n\nconst CommandRow: React.FC<{\n command: PaletteCommand;\n index: number;\n selected: boolean;\n dataTestId?: string;\n onSelect: (index: number) => void;\n onExecute: (command: PaletteCommand) => void;\n}> = ({ command, index, selected, dataTestId, onSelect, onExecute }) => (\n <CommandItem\n data-index={index}\n data-testid={`${dataTestId}-item-${command.id}`}\n selected={selected}\n onClick={() => onExecute(command)}\n onMouseEnter={() => onSelect(index)}\n >\n {command.icon && <ListItemIcon sx={{ minWidth: sxRem(40) }}>{command.icon}</ListItemIcon>}\n <ListItemText\n primary={command.label}\n secondary={command.description}\n primaryTypographyProps={{ fontSize: sxRem(14.4), fontWeight: selected ? 500 : 400 }}\n secondaryTypographyProps={{ fontSize: sxRem(12) }}\n />\n {command.shortcut && <ShortcutChip label={command.shortcut} size=\"small\" />}\n </CommandItem>\n);\n\nconst slug = (value: string) => value.toLowerCase().replace(/\\s+/g, '-');\n\n// The list, its recent section and the empty state. The running commandIndex\n// has to stay consistent across both sections, so it is threaded through here\n// rather than mutated from inside the render as it was before.\nexport const PaletteResults: React.FC<{\n copy: CommandPaletteCopy;\n listRef: React.Ref<globalThis.HTMLUListElement>;\n dataTestId?: string;\n searchQuery: string;\n showRecent?: boolean;\n commands: PaletteCommand[];\n recentCommandIds: string[];\n filteredCommands: PaletteCommand[];\n groupedCommands: Record<string, PaletteCommand[]>;\n selectedIndex: number;\n onSelect: (index: number) => void;\n onExecute: (command: PaletteCommand) => void;\n}> = ({\n copy,\n listRef,\n dataTestId,\n searchQuery,\n showRecent,\n commands,\n recentCommandIds,\n filteredCommands,\n groupedCommands,\n selectedIndex,\n onSelect,\n onExecute,\n}) => {\n if (filteredCommands.length === 0) {\n return (\n <NoResults data-testid={`${dataTestId}-no-results`}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n No commands found for \"{searchQuery}\"\n </Typography>\n <Typography variant=\"caption\" color=\"text.disabled\" sx={{ mt: 1 }}>\n {copy.tryAnotherTerm}\n </Typography>\n </NoResults>\n );\n }\n\n const showRecentSection = !searchQuery && showRecent && recentCommandIds.length > 0;\n const recent = showRecentSection\n ? (recentCommandIds\n .map((id) => commands.find((command) => command.id === id))\n .filter(Boolean) as PaletteCommand[])\n : [];\n\n // One running index across both sections, so keyboard selection lines up with\n // what is on screen.\n let commandIndex = 0;\n const row = (command: PaletteCommand) => {\n const index = commandIndex++;\n return (\n <CommandRow\n key={command.id}\n command={command}\n index={index}\n selected={index === selectedIndex}\n dataTestId={dataTestId}\n onSelect={onSelect}\n onExecute={onExecute}\n />\n );\n };\n\n const showCategoryLabels = Object.keys(groupedCommands).length > 1;\n\n return (\n <ResultsList ref={listRef} data-testid={`${dataTestId}-list`}>\n {showRecentSection && (\n <>\n <CategoryLabel data-testid={`${dataTestId}-group-recent`}>\n <RecentIcon sx={{ fontSize: sxRem(14), mr: 0.5, verticalAlign: 'middle' }} />\n {copy.recent}\n </CategoryLabel>\n {recent.map(row)}\n {filteredCommands.length > recentCommandIds.length && <Divider sx={{ my: 1 }} />}\n </>\n )}\n\n {Object.entries(groupedCommands).map(([category, categoryCommands]) => (\n <Box key={category} data-testid={`${dataTestId}-group-${slug(category)}`}>\n {showCategoryLabels && (\n <CategoryLabel data-testid={`${dataTestId}-group-label-${slug(category)}`}>\n {category}\n </CategoryLabel>\n )}\n {categoryCommands.map(row)}\n </Box>\n ))}\n </ResultsList>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/Dialog/Dialog.tsx"],"sourcesContent":["import CloseIcon from '@mui/icons-material/Close';\nimport Backdrop from '@mui/material/Backdrop/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport MuiDialog, { type DialogProps as MuiDialogProps } from '@mui/material/Dialog/index.js';\nimport MuiDialogActions from '@mui/material/DialogActions/index.js';\nimport MuiDialogContent from '@mui/material/DialogContent/index.js';\nimport MuiDialogTitle from '@mui/material/DialogTitle/index.js';\nimport Drawer, { type DrawerProps } from '@mui/material/Drawer/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme, type SxProps, type Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { focusDialogOnEntered } from './Dialog.focus';\nimport { hasSpacingSlot, withDialogDefaults } from './Dialog.helpers';\nimport {\n DIALOG_ACTIONS,\n DIALOG_BODY_PADDING_UNITS,\n DIALOG_CONTENT_PADDING_UNITS,\n DIALOG_HEADER_CHILDREN_PADDING_UNITS,\n DIALOG_TITLE,\n DIALOG_TITLED_BODY_PADDING_TOP_UNITS,\n} from './Dialog.metrics';\nimport { mergedBackdropSlot, mergedPaperSlot, mergedTransitionSlot } from './Dialog.slots';\nimport { backdropSxOf, variantStylesOf } from './Dialog.styles';\nimport { childTestId, resolveTestId, slotTestId, withoutTestIdProps } from '../../../platform/test-id';\nimport type {\n DialogActionsProps,\n DialogContentProps,\n DialogHeaderProps,\n DialogProps,\n} from './Dialog.types';\n\n/**\n * The padding a dialog gives children that are not managing their own — and the\n * rule that takes it back when it turns out they are.\n *\n * `:has()` is doing what {@link hasSpacingSlot} cannot. A slot passed through a\n * COMPONENT (`<Body />` rendering a `DialogContent`) is invisible to any check\n * on element type: React does not know what a component renders until it has\n * rendered it, and by then the wrapper is already in the tree. The selector\n * asks the question one step later, of the DOM, where the answer exists.\n *\n * `display: contents` rather than `padding: 0`, because the padding is only\n * half of what a wrapper does. The other half is standing between the paper and\n * its children: MUI's `scroll=\"paper\"` makes the paper a flex column with\n * `overflow-y: auto`, so a `DialogContent` that is no longer its direct child\n * cannot be the thing that scrolls — the whole dialog scrolls instead and\n * carries the `DialogActions` off the bottom with it. An element with\n * `display: contents` generates no box at all: its children become the paper's\n * flex items, and its padding is never applied. Both halves, one declaration.\n *\n * A browser without `:has()` falls back to the padded box — the layout this\n * had before, not a broken one.\n */\nconst BODY_SX = {\n px: DIALOG_BODY_PADDING_UNITS.horizontal,\n pb: DIALOG_BODY_PADDING_UNITS.bottom,\n '&:has(> .MuiDialogContent-root), &:has(> .MuiDialogActions-root)': {\n display: 'contents',\n },\n} as const;\n\n/**\n * The dialog body. Consumers that pass raw children (no <DialogContent>) used\n * to render them flush against the paper edges — give them comfortable default\n * padding; <DialogContent>/<DialogActions> users keep managing their own\n * spacing.\n */\nfunction bodyOf(children: React.ReactNode, hasTitle: boolean): React.ReactNode {\n // Read lazily: both slots are declared below this function.\n if (hasSpacingSlot(children, [DialogContent, DialogActions])) return children;\n const pt = hasTitle\n ? DIALOG_BODY_PADDING_UNITS.topUnderTitle\n : DIALOG_BODY_PADDING_UNITS.top;\n return <Box sx={{ ...BODY_SX, pt }}>{children}</Box>;\n}\n\n/**\n * MUI's `onClose` for either renderer: a `persistent` dialog swallows the\n * backdrop press and Escape, and the caller's `onClose` is called with no\n * arguments, as `Dialog.base.ts` promises. The drawer used to get the caller's\n * raw `onClose` — so it closed when `persistent` said it must not, and was\n * handed MUI's `(event, reason)` (FUT-2673).\n */\nfunction closeHandlerOf(persistent: boolean, onClose: (() => void) | undefined) {\n return (_event: object, reason: 'backdropClick' | 'escapeKeyDown') => {\n if (persistent && (reason === 'backdropClick' || reason === 'escapeKeyDown')) {\n return;\n }\n onClose?.();\n };\n}\n\n/** The looks the Dialog lays under a caller's paper and backdrop props. */\ninterface DialogLooks {\n paperSx: SxProps<Theme>;\n backdropSx: SxProps<Theme>;\n testId: string | undefined;\n}\n\n/** What either renderer below takes: the looks, and the dialog's own children. */\ntype RendererProps = DialogLooks & { children: React.ReactNode };\n\n/**\n * Every variant but the drawer: MUI's `Dialog`. The scrim reaches MUI through\n * `slotProps.backdrop`, not the deprecated `BackdropProps`, and a caller's\n * backdrop props from either spelling merge over it rather than replacing it\n * (FUT-2672) — as their paper props merge over the variant's look (FUT-2613).\n * `slotProps.transition` gives initial focus to the paper (FUT-2696, see\n * `Dialog.focus.ts` and `Dialog.md`) ahead of a caller's own `onEntered`.\n */\nfunction ModalDialog({\n paperSx,\n backdropSx,\n testId,\n dialogProps,\n children,\n}: RendererProps & { dialogProps: MuiDialogProps }) {\n const { PaperProps: callerPaper, BackdropProps: callerBackdrop, TransitionProps: callerTransition, slotProps, ...rest } = dialogProps;\n return (\n <MuiDialog\n {...rest}\n slotProps={{\n ...slotProps,\n paper: mergedPaperSlot(paperSx, testId, callerPaper, slotProps?.paper),\n backdrop: mergedBackdropSlot(backdropSx, callerBackdrop, slotProps?.backdrop),\n transition: mergedTransitionSlot(focusDialogOnEntered, callerTransition, slotProps?.transition),\n }}\n >\n {children}\n </MuiDialog>\n );\n}\n\n/**\n * The drawer variant: MUI's `Drawer`, with the variant's look on the Drawer's\n * OWN paper — on an inner Box it left the paper 0px wide and clipped the panel —\n * and a caller's paper props merged over it rather than replacing it. The\n * test id stays on the Drawer root, so the paper carries none of its own.\n *\n * The scrim rides the drawer's backdrop exactly as it rides the dialog's, so\n * `glass` blurs it here too; the paper does not frost (FUT-2673). MUI's\n * `Drawer` does not merge `BackdropProps` into `slotProps.backdrop` — it takes\n * one or the other — so both are folded into the one slot here.\n * `slotProps.transition` gives initial focus the same way `ModalDialog` does\n * (FUT-2696, see `Dialog.focus.ts` and `Dialog.md` for why the drawer's paper\n * differs from the modal's paper here and needed the fix less).\n */\nfunction DrawerDialog({\n paperSx,\n backdropSx,\n testId,\n drawerProps,\n children,\n}: RendererProps & { drawerProps: DrawerProps }) {\n const { PaperProps: callerPaper, BackdropProps: callerBackdrop, SlideProps: callerTransition, slotProps, ...rest } = drawerProps;\n return (\n <Drawer\n anchor=\"right\"\n data-testid={testId}\n {...rest}\n slotProps={{\n ...slotProps,\n paper: mergedPaperSlot(paperSx, undefined, callerPaper, slotProps?.paper),\n backdrop: mergedBackdropSlot(backdropSx, callerBackdrop, slotProps?.backdrop),\n transition: mergedTransitionSlot(focusDialogOnEntered, callerTransition, slotProps?.transition),\n }}\n >\n {children}\n </Drawer>\n );\n}\n\nexport const Dialog: React.FC<DialogProps> = (rawProps) => {\n const {\n children,\n variant,\n size,\n title,\n description,\n showCloseButton,\n backdrop,\n persistent,\n glass,\n gradient,\n glow,\n pulse,\n borderRadius,\n onClose,\n open,\n ...others\n } = withDialogDefaults(rawProps);\n const theme = useTheme();\n // Every spelling of the test id the shared contract allows, mapped to the one\n // the DOM reads, and stripped from what is spread — `testID` is React\n // Native's name for it and is not a DOM attribute. The native `Dialog` does\n // the same in reverse.\n const testId = resolveTestId(others, 'dialog');\n const props = withoutTestIdProps(others);\n const looks: DialogLooks = {\n paperSx: variantStylesOf(theme, { variant, size, borderRadius, glass, gradient, glow, pulse }),\n backdropSx: backdropSxOf(theme, glass),\n testId,\n };\n const handleClose = closeHandlerOf(persistent, onClose);\n\n const header = title ? (\n <DialogHeader\n title={title}\n subtitle={description}\n showCloseButton={showCloseButton}\n onClose={onClose}\n dataTestId={testId}\n />\n ) : null;\n const body = bodyOf(children, Boolean(title));\n\n if (variant === 'drawer') {\n return (\n <DrawerDialog {...looks} drawerProps={{ ...props, open, onClose: handleClose }}>\n {header}\n {body}\n </DrawerDialog>\n );\n }\n\n return (\n <ModalDialog\n {...looks}\n dialogProps={{\n open,\n onClose: handleClose,\n fullScreen: variant === 'fullscreen',\n BackdropComponent: backdrop ? Backdrop : undefined,\n ...props,\n }}\n >\n {header}\n {body}\n </ModalDialog>\n );\n};\n\nexport const DialogHeader: React.FC<DialogHeaderProps> = ({\n children,\n title,\n subtitle,\n showCloseButton = true,\n onClose,\n ...others\n}) => {\n const props = withoutTestIdProps(others);\n\n if (children) {\n return (\n <Box\n data-testid={slotTestId(others, 'header', 'dialog')}\n sx={{\n p: DIALOG_HEADER_CHILDREN_PADDING_UNITS,\n borderBottom: '1px solid',\n borderColor: 'divider',\n }}\n >\n {children}\n </Box>\n );\n }\n\n return (\n <MuiDialogTitle\n data-testid={slotTestId(others, 'title', 'dialog')}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n pb: subtitle\n ? DIALOG_TITLE.paddingBottomUnits.withSubtitle\n : DIALOG_TITLE.paddingBottomUnits.plain,\n }}\n {...props}\n >\n <Box>\n <Typography variant=\"h6\" component=\"div\">\n {title}\n </Typography>\n {subtitle && (\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n sx={{ mt: DIALOG_TITLE.subtitleGapUnits }}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n {showCloseButton && onClose && (\n <IconButton\n aria-label=\"close\"\n onClick={onClose}\n data-testid={childTestId(others, 'close', 'dialog')}\n sx={{\n color: 'text.secondary',\n '&:hover': {\n backgroundColor: 'action.hover',\n },\n }}\n >\n <CloseIcon />\n </IconButton>\n )}\n </MuiDialogTitle>\n );\n};\n\n/**\n * Top padding for a body that sits directly under the title.\n *\n * MUI zeroes it there (`.MuiDialogTitle-root + &` on a non-`dividers` content),\n * assuming the title's own bottom padding is the whole gap. That assumption\n * breaks for a body opening with an outlined field: a filled field floats its\n * label ABOVE the input's border box, and `DialogContent` is `overflow-y: auto`\n * — a clipping box — so the label gets sliced in half (FUT-544: \"Tipo\" in the\n * \"Novo insumo\" dialog).\n *\n * Reserve the overhang rather than restore the full 24px: the title already\n * contributes its bottom padding, so a shrunk label's `translate(…, -9px)` is\n * all that is missing. 12px clears it and leaves the gap visually tight.\n */\nconst TITLED_BODY_PADDING_TOP = DIALOG_TITLED_BODY_PADDING_TOP_UNITS;\n\n/**\n * `.MuiDialogTitle-root + &` is `(0,2,0)`-specific and a plain `sx` entry is\n * `(0,1,0)`, so the padding above only survives the cascade by naming the class\n * again — `(0,3,0)`. Scoped to the title-following case so an untitled dialog\n * keeps MUI's roomier default.\n */\nconst TITLED_BODY_SELECTOR = '.MuiDialogTitle-root + &.MuiDialogContent-root';\n\nexport const DialogContent: React.FC<DialogContentProps> = ({\n children,\n dividers = false,\n dense = false,\n ...others\n}) => (\n <MuiDialogContent\n data-testid={slotTestId(others, 'content', 'dialog')}\n dividers={dividers}\n sx={{\n padding: dense ? DIALOG_CONTENT_PADDING_UNITS.dense : DIALOG_CONTENT_PADDING_UNITS.normal,\n [TITLED_BODY_SELECTOR]: { paddingTop: TITLED_BODY_PADDING_TOP },\n '&.MuiDialogContent-dividers': {\n borderTop: dividers ? '1px solid' : 'none',\n borderBottom: dividers ? '1px solid' : 'none',\n borderColor: 'divider',\n },\n }}\n {...withoutTestIdProps(others)}\n >\n {children}\n </MuiDialogContent>\n );\n\nexport const DialogActions: React.FC<DialogActionsProps> = ({\n children,\n alignment = 'right',\n spacing = DIALOG_ACTIONS.defaultSpacingUnits,\n ...others\n}) => {\n const getJustifyContent = () => {\n switch (alignment) {\n case 'left': return 'flex-start';\n case 'center': return 'center';\n case 'right': return 'flex-end';\n case 'space-between': return 'space-between';\n default: return 'flex-end';\n }\n };\n\n return (\n <MuiDialogActions\n data-testid={slotTestId(others, 'actions', 'dialog')}\n sx={{\n justifyContent: getJustifyContent(),\n gap: spacing,\n p: DIALOG_ACTIONS.paddingUnits,\n }}\n {...withoutTestIdProps(others)}\n >\n {children}\n </MuiDialogActions>\n );\n};"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/LazyImage/LazyImage.hooks.ts"],"sourcesContent":["import { useTheme } from '@mui/material/styles/index.js';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { remPx } from '../../../tokens/relative';\n\nimport type { LazyImageProps, LazyImageState } from './LazyImage.types';\n\ntype LazyImageDefaultedKeys =\n | 'height'\n | 'loadingState'\n | 'objectFit'\n | 'objectPosition'\n | 'lazy'\n | 'threshold'\n | 'fadeIn'\n | 'fadeInDuration'\n | 'retryOnError'\n | 'maxRetries'\n | 'retryDelay'\n | 'decoding'\n | 'skeletonProps'\n | 'spinnerProps'\n | 'sx'\n | 'role'\n | 'data-testid';\n\nexport type ResolvedLazyImageProps = LazyImageProps &\n Required<Pick<LazyImageProps, LazyImageDefaultedKeys>>;\n\nconst LAZY_IMAGE_DEFAULTS: Pick<LazyImageProps, LazyImageDefaultedKeys> = {\n height: 'auto',\n loadingState: 'skeleton',\n objectFit: 'cover',\n objectPosition: 'center',\n lazy: true,\n threshold: 0,\n fadeIn: true,\n fadeInDuration: 300,\n retryOnError: false,\n maxRetries: 3,\n retryDelay: 1000,\n decoding: 'async',\n skeletonProps: {},\n spinnerProps: {},\n sx: {},\n role: 'img',\n // FUT-2774 #3: with no default, every derived id (`${testId}-img`, …) read\n // literally as `\"undefined-img\"` for a caller that omitted it — and every\n // such instance on a page collided on the same ids.\n 'data-testid': 'lazy-image',\n};\n\n// Strips explicitly-undefined props before the merge, so `lazy={undefined}` still\n// falls back to the default exactly as a destructuring default would.\nconst definedProps = (props: LazyImageProps): Partial<LazyImageProps> =>\n Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<LazyImageProps>;\n\nexport const resolveLazyImageProps = (props: LazyImageProps): ResolvedLazyImageProps =>\n ({ ...LAZY_IMAGE_DEFAULTS, ...definedProps(props) }) as ResolvedLazyImageProps;\n\n// Props this component consumes itself. Anything else the caller passed is an\n// ordinary <img> attribute and is forwarded untouched.\nconst OWN_PROPS = new Set([\n 'src', 'alt', 'width', 'height', 'placeholder', 'fallback', 'loadingState',\n 'showSpinner', 'objectFit', 'objectPosition', 'borderRadius', 'lazy', 'rootMargin',\n 'threshold', 'fadeIn', 'fadeInDuration', 'onLoad', 'onError', 'onLoadStart',\n 'retryOnError', 'maxRetries', 'retryDelay', 'decoding', 'loading', 'fetchPriority',\n 'skeletonProps', 'spinnerProps', 'sx', 'className', 'data-testid', 'aria-label',\n 'aria-describedby', 'role',\n]);\n\nexport const imgPassThrough = (props: ResolvedLazyImageProps): Record<string, unknown> =>\n Object.fromEntries(Object.entries(props).filter(([key]) => !OWN_PROPS.has(key)));\n\n/**\n * Flips `isVisible` the first time the container nears the viewport, then stops\n * observing. Does nothing when `lazy` is off — the caller wants the request now.\n */\nconst useVisibility = (\n props: ResolvedLazyImageProps,\n containerRef: React.RefObject<HTMLDivElement | null>,\n isVisible: boolean,\n onVisible: () => void,\n) => {\n const { lazy, src, threshold, onLoadStart } = props;\n const theme = useTheme();\n // `IntersectionObserver` takes px or %, never rem: the default reach is 100\n // design px, measured through the theme so it moves with the root.\n const rootMargin = props.rootMargin ?? `${remPx(theme, 100)}px`;\n\n useEffect(() => {\n if (!lazy || isVisible) {\n return;\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n onVisible();\n onLoadStart?.();\n observer.unobserve(entry.target);\n }\n });\n },\n { rootMargin, threshold },\n );\n\n if (containerRef.current) {\n observer.observe(containerRef.current);\n }\n\n return () => {\n if (containerRef.current) {\n observer.unobserve(containerRef.current);\n }\n };\n }, [lazy, src, rootMargin, threshold, isVisible, onLoadStart, onVisible, containerRef]);\n};\n\n/** A pending timer has to be cancelled on unmount, or it sets state on a dead component. */\nconst useTimeoutRef = () => {\n const ref = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n useEffect(\n () => () => {\n if (ref.current) {\n clearTimeout(ref.current);\n }\n },\n [],\n );\n\n return ref;\n};\n\n/**\n * Whether the placeholder image is up. It is a loading state: only\n * `loadingState=\"placeholder\"` with a `placeholder` set draws it, from mount\n * until the real image settles — its `load` plus the fade, or its final error.\n * A placeholder that fails to load retires at once, as if none were set.\n */\nconst usePlaceholderPhase = (\n props: ResolvedLazyImageProps,\n loadingState: NonNullable<LazyImageProps['loadingState']>,\n) => {\n const { placeholder, fadeIn, fadeInDuration, src } = props;\n // Only this mode draws a placeholder. Otherwise the real image settling\n // retires the phase at once — batched into the load's own render, with no\n // timer — so a placeholder switched on afterwards never covers a loaded image.\n const active = loadingState === 'placeholder' && Boolean(placeholder);\n const [retired, setRetired] = useState(false);\n const fadeTimeoutRef = useTimeoutRef();\n\n // FUT-2774 #2: `retired` was set once and never reset, and this hook took\n // no `src` at all — so a mounted instance reused for a NEW image (a\n // carousel swapping `src` rather than remounting) never showed the\n // placeholder again for it. Reset on every `src` change, the same way\n // `useImageSource` already resets `currentSrc`/`isLoading`/`hasError`; drop\n // any fade timer left over from the PREVIOUS image, or it would retire the\n // new placeholder on a schedule that has nothing to do with it.\n useEffect(() => {\n clearTimeout(fadeTimeoutRef.current);\n setRetired(false);\n }, [src, fadeTimeoutRef]);\n\n const retire = useCallback(() => setRetired(true), []);\n\n // The real image fades in over the placeholder, so it goes when the fade ends.\n const retireAfterFade = useCallback(() => {\n if (!active || !fadeIn) {\n setRetired(true);\n return;\n }\n clearTimeout(fadeTimeoutRef.current);\n fadeTimeoutRef.current = setTimeout(() => setRetired(true), fadeInDuration);\n }, [active, fadeIn, fadeInDuration, fadeTimeoutRef]);\n\n return {\n showPlaceholder: active && !retired,\n retirePlaceholder: retire,\n retirePlaceholderAfterFade: retireAfterFade,\n };\n};\n\n/**\n * The real image's state, and when it is requested: at once when not lazy,\n * else the first time the container nears the viewport. The main <img> only\n * ever carries the real src — a placeholder is drawn by its own element, so its\n * load and error are never the image's.\n */\nconst useImageSource = (\n props: ResolvedLazyImageProps,\n containerRef: React.RefObject<HTMLDivElement | null>,\n) => {\n const { src, lazy } = props;\n const [state, setState] = useState<LazyImageState>({\n isLoading: true,\n hasError: false,\n isVisible: !lazy, // If not lazy, load immediately\n retryCount: 0,\n currentSrc: lazy ? null : src,\n });\n // FUT-2774 #1: the last `src` PROP this hook has already requested — as\n // opposed to `state.currentSrc`, which a retry deliberately diverges from\n // `src` (its cache-busting query string) without a NEW image having\n // arrived. Comparing the effect's guard against `src` itself let a retry's\n // own state update immediately retrigger this effect, which overwrote the\n // cache-busted value back to the plain `src` before the browser ever\n // re-requested it — so `retryOnError` silently never re-fetched anything.\n const requestedSrcRef = useRef<string | null>(lazy ? null : src);\n // `handleImageError` (in `useLazyImage`) owns the retry timer itself, but\n // it schedules against THIS src's identity: read together, the two hooks\n // can tell a timeout meant for an image that is no longer the current one\n // apart from one that still is (FUT-2774, src-changing-mid-retry).\n const retryTimeoutRef = useTimeoutRef();\n\n const markVisible = useCallback(() => {\n requestedSrcRef.current = src;\n setState((prev) => ({ ...prev, isVisible: true, currentSrc: src }));\n }, [src]);\n useVisibility(props, containerRef, state.isVisible, markVisible);\n\n // Load image when it becomes visible, or when `src` itself changes to a\n // genuinely new value — never when only `state.currentSrc` has (a retry).\n useEffect(() => {\n if (!state.isVisible || !src || requestedSrcRef.current === src) {\n return;\n }\n\n // A retry scheduled for the PREVIOUS src must not land on this one: left\n // pending, its stale `setTimeout` would fire later and overwrite this\n // fresh `currentSrc` with `${oldSrc}?retry=N` — cache-busting an image\n // nothing asked for again, and never re-syncing back (FUT-2774).\n clearTimeout(retryTimeoutRef.current);\n requestedSrcRef.current = src;\n setState((prev) => ({\n ...prev,\n currentSrc: src,\n isLoading: true,\n hasError: false,\n retryCount: 0,\n }));\n }, [state.isVisible, src, retryTimeoutRef]);\n\n return { state, setState, requestedSrcRef, retryTimeoutRef };\n};\n\n/**\n * Owns whether the real image has been requested yet and how it went: the\n * observer above, the load/error handlers, the retry timer, and how long the\n * placeholder stays up.\n */\nexport const useLazyImage = (props: ResolvedLazyImageProps) => {\n const { src, loadingState, showSpinner } = props;\n const { onLoad, onError, retryOnError, maxRetries, retryDelay } = props;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const { state, setState, requestedSrcRef, retryTimeoutRef } = useImageSource(props, containerRef);\n\n // Handle deprecated showSpinner prop\n const effectiveLoadingState = showSpinner ? 'spinner' : loadingState;\n const { showPlaceholder, retirePlaceholder, retirePlaceholderAfterFade } = usePlaceholderPhase(\n props,\n effectiveLoadingState,\n );\n\n const handleImageLoad = useCallback(\n (event: React.SyntheticEvent<HTMLImageElement>) => {\n setState((prev) => ({ ...prev, isLoading: false, hasError: false, retryCount: 0 }));\n retirePlaceholderAfterFade();\n onLoad?.(event);\n },\n [onLoad, retirePlaceholderAfterFade],\n );\n\n const handleImageError = useCallback(\n (event: React.SyntheticEvent<HTMLImageElement>) => {\n if (!retryOnError || state.retryCount >= maxRetries) {\n setState((prev) => ({ ...prev, isLoading: false, hasError: true }));\n retirePlaceholder();\n onError?.(event);\n return;\n }\n\n retryTimeoutRef.current = setTimeout(() => {\n // Belt and suspenders alongside `useImageSource`'s own cancel-on-src-\n // change: if `src` moved on since this timeout was scheduled, this\n // retry is for an image that is no longer live at all — applying it\n // would cache-bust the WRONG `<img>` (FUT-2774).\n if (requestedSrcRef.current !== src) {\n return;\n }\n setState((prev) => ({\n ...prev,\n retryCount: prev.retryCount + 1,\n currentSrc: `${src}?retry=${prev.retryCount + 1}`, // Force reload with cache buster\n }));\n }, retryDelay);\n },\n [onError, retryOnError, state.retryCount, maxRetries, retryDelay, src, retirePlaceholder, requestedSrcRef, retryTimeoutRef],\n );\n\n return {\n state,\n containerRef,\n effectiveLoadingState,\n handleImageLoad,\n handleImageError,\n handlePlaceholderError: retirePlaceholder,\n showImage: Boolean(state.currentSrc) && !state.hasError,\n // In placeholder mode the placeholder outlasts `isLoading`: it stays under\n // the real image until the fade has ended.\n showLoading: effectiveLoadingState === 'placeholder' ? showPlaceholder : state.isLoading,\n showPlaceholder,\n };\n};\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/RichTextEditor/RichTextEditor.dom.ts"],"sourcesContent":["// Selection surgery for the editor. Each of these mutates the DOM around a\n// Range and then rebuilds the selection, so the caret ends up where the user\n// expects rather than at the start of the document.\n\nexport const wrapSelection = (range: globalThis.Range, tagName: string) => {\n const selectedText = range.toString();\n if (!selectedText) return;\n \n const wrapper = document.createElement(tagName);\n wrapper.appendChild(document.createTextNode(selectedText));\n \n range.deleteContents();\n range.insertNode(wrapper);\n \n // Move cursor after inserted element\n const newRange = document.createRange();\n newRange.setStartAfter(wrapper);\n newRange.collapse(true);\n \n const selection = window.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(newRange);\n};\n\nexport const wrapSelectionWithLink = (range: globalThis.Range, url: string) => {\n const selectedText = range.toString();\n if (!selectedText) return;\n \n const link = document.createElement('a');\n link.href = url.startsWith('http') ? url : `https://${url}`;\n link.target = '_blank';\n link.rel = 'noopener noreferrer';\n link.appendChild(document.createTextNode(selectedText));\n \n range.deleteContents();\n range.insertNode(link);\n \n // Move cursor after inserted element\n const newRange = document.createRange();\n newRange.setStartAfter(link);\n newRange.collapse(true);\n \n const selection = window.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(newRange);\n};\n\nexport const insertImage = (range: globalThis.Range, src: string) => {\n const img = document.createElement('img');\n img.src = src;\n img.style.maxWidth = '100%';\n img.style.height = 'auto';\n \n range.deleteContents();\n range.insertNode(img);\n \n // Move cursor after inserted element\n const newRange = document.createRange();\n newRange.setStartAfter(img);\n newRange.collapse(true);\n \n const selection = window.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(newRange);\n};\n\n// Resolves to the nearest element, since a collapsed selection reports its text\n// node as the common ancestor.\nconst blockElementFor = (range: globalThis.Range): globalThis.Element | null => {\n const node = range.commonAncestorContainer;\n\n return node.nodeType === globalThis.Node.TEXT_NODE\n ? node.parentElement\n : (node as globalThis.Element);\n};\n\n// Unwraps the item back to plain text, keeping its content.\nconst removeFromList = (block: globalThis.Element) => {\n const listItem = block.closest('li');\n if (!listItem?.parentElement) return;\n\n listItem.parentElement.replaceChild(\n document.createTextNode(listItem.textContent || ''),\n listItem,\n );\n};\n\nconst wrapInList = (range: globalThis.Range, listType: 'ol' | 'ul') => {\n const list = document.createElement(listType);\n const listItem = document.createElement('li');\n\n listItem.appendChild(document.createTextNode(range.toString() || 'List item'));\n list.appendChild(listItem);\n\n range.deleteContents();\n range.insertNode(list);\n\n // Move cursor inside list item\n const newRange = document.createRange();\n newRange.selectNodeContents(listItem);\n newRange.collapse(false);\n\n const selection = window.getSelection();\n selection?.removeAllRanges();\n selection?.addRange(newRange);\n};\n\nexport const toggleList = (\n range: globalThis.Range,\n listType: 'ol' | 'ul',\n editor: HTMLElement | null,\n) => {\n if (!editor) return;\n\n const block = blockElementFor(range);\n if (!block) return;\n\n if (block.closest(listType)) {\n removeFromList(block);\n return;\n }\n\n wrapInList(range, listType);\n};\n"],"mappings":";AAIO,IAAM,gBAAgB,CAAC,OAAyB,YAAoB;AACzE,QAAM,eAAe,MAAM,SAAS;AACpC,MAAI,CAAC,aAAc;AAEnB,QAAM,UAAU,SAAS,cAAc,OAAO;AAC9C,UAAQ,YAAY,SAAS,eAAe,YAAY,CAAC;AAEzD,QAAM,eAAe;AACrB,QAAM,WAAW,OAAO;AAGxB,QAAM,WAAW,SAAS,YAAY;AACtC,WAAS,cAAc,OAAO;AAC9B,WAAS,SAAS,IAAI;AAEtB,QAAM,YAAY,OAAO,aAAa;AACtC,aAAW,gBAAgB;AAC3B,aAAW,SAAS,QAAQ;AAC9B;AAEO,IAAM,wBAAwB,CAAC,OAAyB,QAAgB;AAC7E,QAAM,eAAe,MAAM,SAAS;AACpC,MAAI,CAAC,aAAc;AAEnB,QAAM,OAAO,SAAS,cAAc,GAAG;AACvC,OAAK,OAAO,IAAI,WAAW,MAAM,IAAI,MAAM,WAAW,GAAG;AACzD,OAAK,SAAS;AACd,OAAK,MAAM;AACX,OAAK,YAAY,SAAS,eAAe,YAAY,CAAC;AAEtD,QAAM,eAAe;AACrB,QAAM,WAAW,IAAI;AAGrB,QAAM,WAAW,SAAS,YAAY;AACtC,WAAS,cAAc,IAAI;AAC3B,WAAS,SAAS,IAAI;AAEtB,QAAM,YAAY,OAAO,aAAa;AACtC,aAAW,gBAAgB;AAC3B,aAAW,SAAS,QAAQ;AAC9B;AAEO,IAAM,cAAc,CAAC,OAAyB,QAAgB;AACnE,QAAM,MAAM,SAAS,cAAc,KAAK;AACxC,MAAI,MAAM;AACV,MAAI,MAAM,WAAW;AACrB,MAAI,MAAM,SAAS;AAEnB,QAAM,eAAe;AACrB,QAAM,WAAW,GAAG;AAGpB,QAAM,WAAW,SAAS,YAAY;AACtC,WAAS,cAAc,GAAG;AAC1B,WAAS,SAAS,IAAI;AAEtB,QAAM,YAAY,OAAO,aAAa;AACtC,aAAW,gBAAgB;AAC3B,aAAW,SAAS,QAAQ;AAC9B;AAIA,IAAM,kBAAkB,CAAC,UAAuD;AAC9E,QAAM,OAAO,MAAM;AAEnB,SAAO,KAAK,aAAa,WAAW,KAAK,YACrC,KAAK,gBACJ;AACP;AAGA,IAAM,iBAAiB,CAAC,UAA8B;AACpD,QAAM,WAAW,MAAM,QAAQ,IAAI;AACnC,MAAI,CAAC,UAAU,cAAe;AAE9B,WAAS,cAAc;AAAA,IACrB,SAAS,eAAe,SAAS,eAAe,EAAE;AAAA,IAClD;AAAA,EACF;AACF;AAEA,IAAM,aAAa,CAAC,OAAyB,aAA0B;AACrE,QAAM,OAAO,SAAS,cAAc,QAAQ;AAC5C,QAAM,WAAW,SAAS,cAAc,IAAI;AAE5C,WAAS,YAAY,SAAS,eAAe,MAAM,SAAS,KAAK,WAAW,CAAC;AAC7E,OAAK,YAAY,QAAQ;AAEzB,QAAM,eAAe;AACrB,QAAM,WAAW,IAAI;AAGrB,QAAM,WAAW,SAAS,YAAY;AACtC,WAAS,mBAAmB,QAAQ;AACpC,WAAS,SAAS,KAAK;AAEvB,QAAM,YAAY,OAAO,aAAa;AACtC,aAAW,gBAAgB;AAC3B,aAAW,SAAS,QAAQ;AAC9B;AAEO,IAAM,aAAa,CACxB,OACA,UACA,WACG;AACH,MAAI,CAAC,OAAQ;AAEb,QAAM,QAAQ,gBAAgB,KAAK;AACnC,MAAI,CAAC,MAAO;AAEZ,MAAI,MAAM,QAAQ,QAAQ,GAAG;AAC3B,mBAAe,KAAK;AACpB;AAAA,EACF;AAEA,aAAW,OAAO,QAAQ;AAC5B;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/PhoneInput/countries.ts"],"sourcesContent":["import type { CountryCode } from 'libphonenumber-js';\n\nimport type { CountryData } from './PhoneInput.types';\n\n// Dial codes and flags for the countries the input offers, sorted by name.\nexport const countries: CountryData[] = [\n { code: 'US' as CountryCode, name: 'United States', dial: '+1', flag: '🇺🇸' },\n { code: 'GB' as CountryCode, name: 'United Kingdom', dial: '+44', flag: '🇬🇧' },\n { code: 'CA' as CountryCode, name: 'Canada', dial: '+1', flag: '🇨🇦' },\n { code: 'AU' as CountryCode, name: 'Australia', dial: '+61', flag: '🇦🇺' },\n { code: 'DE' as CountryCode, name: 'Germany', dial: '+49', flag: '🇩🇪' },\n { code: 'FR' as CountryCode, name: 'France', dial: '+33', flag: '🇫🇷' },\n { code: 'IT' as CountryCode, name: 'Italy', dial: '+39', flag: '🇮🇹' },\n { code: 'ES' as CountryCode, name: 'Spain', dial: '+34', flag: '🇪🇸' },\n { code: 'NL' as CountryCode, name: 'Netherlands', dial: '+31', flag: '🇳🇱' },\n { code: 'JP' as CountryCode, name: 'Japan', dial: '+81', flag: '🇯🇵' },\n { code: 'CN' as CountryCode, name: 'China', dial: '+86', flag: '🇨🇳' },\n { code: 'IN' as CountryCode, name: 'India', dial: '+91', flag: '🇮🇳' },\n { code: 'BR' as CountryCode, name: 'Brazil', dial: '+55', flag: '🇧🇷' },\n { code: 'MX' as CountryCode, name: 'Mexico', dial: '+52', flag: '🇲🇽' },\n { code: 'KR' as CountryCode, name: 'South Korea', dial: '+82', flag: '🇰🇷' },\n { code: 'SE' as CountryCode, name: 'Sweden', dial: '+46', flag: '🇸🇪' },\n { code: 'NO' as CountryCode, name: 'Norway', dial: '+47', flag: '🇳🇴' },\n { code: 'DK' as CountryCode, name: 'Denmark', dial: '+45', flag: '🇩🇰' },\n { code: 'CH' as CountryCode, name: 'Switzerland', dial: '+41', flag: '🇨🇭' },\n { code: 'AT' as CountryCode, name: 'Austria', dial: '+43', flag: '🇦🇹' },\n { code: 'BE' as CountryCode, name: 'Belgium', dial: '+32', flag: '🇧🇪' },\n { code: 'FI' as CountryCode, name: 'Finland', dial: '+358', flag: '🇫🇮' },\n { code: 'IE' as CountryCode, name: 'Ireland', dial: '+353', flag: '🇮🇪' },\n { code: 'PT' as CountryCode, name: 'Portugal', dial: '+351', flag: '🇵🇹' },\n { code: 'GR' as CountryCode, name: 'Greece', dial: '+30', flag: '🇬🇷' },\n { code: 'PL' as CountryCode, name: 'Poland', dial: '+48', flag: '🇵🇱' },\n { code: 'CZ' as CountryCode, name: 'Czech Republic', dial: '+420', flag: '🇨🇿' },\n { code: 'HU' as CountryCode, name: 'Hungary', dial: '+36', flag: '🇭🇺' },\n { code: 'RU' as CountryCode, name: 'Russia', dial: '+7', flag: '🇷🇺' },\n { code: 'ZA' as CountryCode, name: 'South Africa', dial: '+27', flag: '🇿🇦' },\n { code: 'EG' as CountryCode, name: 'Egypt', dial: '+20', flag: '🇪🇬' },\n { code: 'NG' as CountryCode, name: 'Nigeria', dial: '+234', flag: '🇳🇬' },\n { code: 'KE' as CountryCode, name: 'Kenya', dial: '+254', flag: '🇰🇪' },\n { code: 'AR' as CountryCode, name: 'Argentina', dial: '+54', flag: '🇦🇷' },\n { code: 'CL' as CountryCode, name: 'Chile', dial: '+56', flag: '🇨🇱' },\n { code: 'CO' as CountryCode, name: 'Colombia', dial: '+57', flag: '🇨🇴' },\n { code: 'PE' as CountryCode, name: 'Peru', dial: '+51', flag: '🇵🇪' },\n { code: 'MY' as CountryCode, name: 'Malaysia', dial: '+60', flag: '🇲🇾' },\n { code: 'SG' as CountryCode, name: 'Singapore', dial: '+65', flag: '🇸🇬' },\n { code: 'TH' as CountryCode, name: 'Thailand', dial: '+66', flag: '🇹🇭' },\n { code: 'VN' as CountryCode, name: 'Vietnam', dial: '+84', flag: '🇻🇳' },\n { code: 'PH' as CountryCode, name: 'Philippines', dial: '+63', flag: '🇵🇭' },\n { code: 'ID' as CountryCode, name: 'Indonesia', dial: '+62', flag: '🇮🇩' },\n { code: 'TR' as CountryCode, name: 'Turkey', dial: '+90', flag: '🇹🇷' },\n { code: 'IL' as CountryCode, name: 'Israel', dial: '+972', flag: '🇮🇱' },\n { code: 'AE' as CountryCode, name: 'United Arab Emirates', dial: '+971', flag: '🇦🇪' },\n { code: 'SA' as CountryCode, name: 'Saudi Arabia', dial: '+966', flag: '🇸🇦' },\n].sort((a, b) => a.name.localeCompare(b.name));\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/feedback/StackedModal/StackedModal.parts.tsx"],"sourcesContent":["import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport CloseIcon from '@mui/icons-material/Close';\nimport Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport DialogActions from '@mui/material/DialogActions/index.js';\nimport DialogContent from '@mui/material/DialogContent/index.js';\nimport DialogTitle from '@mui/material/DialogTitle/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Skeleton from '@mui/material/Skeleton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled, useTheme } from '@mui/material/styles/index.js';\nimport type { ElementType, FC, ReactNode } from 'react';\nimport React from 'react';\nimport { rem } from '../../../tokens/relative';\nimport { safeAreaBottom } from '../../../utils/viewport';\nimport {\n loadingOverlayStyles,\n modalContentStyles,\n titleLeftStyles,\n titleRightStyles,\n titleStyles,\n} from './StackedModal.styles';\n\n// `component` typed through: the bar is a `div` when it holds a title (`ModalHeader`).\nconst StyledDialogTitle = styled(DialogTitle, {\n shouldForwardProp: (prop) => prop !== 'rtl',\n})<{ rtl?: boolean; component?: ElementType }>(({ theme, rtl }) => titleStyles(theme, rtl));\n\nconst DialogTitleLeft = styled(Box)(({ theme }) => titleLeftStyles(theme));\nconst DialogTitleRight = styled(Box)(({ theme }) => titleRightStyles(theme));\nconst LoadingOverlay = styled(Box)(({ theme }) => loadingOverlayStyles(theme));\n\n/**\n * The padded content wrapper callers put inside a StackedModal. The explicit\n * `typeof DialogContent` annotation keeps its type nameable across package\n * boundaries (TS2742) now that it is re-exported from the barrel.\n */\nexport const StackedModalContent: typeof DialogContent = styled(DialogContent)(({ theme }) =>\n modalContentStyles(theme),\n) as typeof DialogContent;\n\n/** Sub-element test IDs derive from the modal's own, or stay off when it has none. */\nexport const testId = (base: string | undefined, suffix: string): string | undefined =>\n base ? `${base}-${suffix}` : undefined;\n\n/**\n * A wrapper marking the subtree that should render as modal actions — the\n * StackedModal pulls it out of `children` and places it by device.\n */\nexport const StackedModalActions: FC<{ children?: ReactNode }> = ({ children }) => <>{children}</>;\n\n/** Separates the `StackedModalActions` subtree from the rest of the content. */\nconst splitModalChildren = (children: ReactNode): { content: ReactNode; actions: ReactNode } => {\n let actions: ReactNode = null;\n\n React.Children.forEach(children, (child) => {\n if (React.isValidElement<{ children?: ReactNode }>(child) && child.type === StackedModalActions) {\n actions = child.props.children;\n }\n });\n\n const content = React.Children.toArray(children).filter(\n (child) => !(React.isValidElement(child) && child.type === StackedModalActions),\n );\n\n return { content, actions };\n};\n\n/**\n * Works out what renders where: a `StackedModalActions` child wins over the\n * `actions` prop, and on phones those actions move out of the header into a\n * pinned bottom bar.\n */\nexport const resolveModalContent = (\n children: ReactNode,\n actions: ReactNode,\n isMobile: boolean,\n): {\n content: ReactNode;\n modalActions: ReactNode;\n headerActions: ReactNode;\n hasMobileActions: boolean;\n} => {\n const { content, actions: childActions } = splitModalChildren(children);\n const modalActions = childActions ?? actions;\n return {\n content,\n modalActions,\n headerActions: isMobile ? null : modalActions,\n hasMobileActions: Boolean(isMobile && modalActions),\n };\n};\n\n/** The panel's own ARIA ids, unless the caller wired it to its own labels. */\nexport const modalAriaIds = (\n modalId: string,\n ariaLabelledBy?: string,\n ariaDescribedBy?: string,\n): { titleId: string; descId: string } => ({\n titleId: ariaLabelledBy || `modal-title-${modalId}`,\n descId: ariaDescribedBy || `modal-desc-${modalId}`,\n});\n\nexport const ModalLoadingOverlay: FC<{ loadingText?: string; dataTestId?: string }> = ({\n loadingText,\n dataTestId,\n}) => {\n const theme = useTheme();\n return (\n <LoadingOverlay data-testid={testId(dataTestId, 'loading-overlay')}>\n <CircularProgress size={rem(theme, 40)} data-testid={testId(dataTestId, 'loading-spinner')} />\n {loadingText && (\n <Typography variant=\"body2\" sx={{ mt: 2 }} data-testid={testId(dataTestId, 'loading-text')}>\n {loadingText}\n </Typography>\n )}\n </LoadingOverlay>\n );\n};\n\ninterface ModalHeaderProps {\n titleId: string;\n navigationTitle?: ReactNode;\n /** Deeper than the first panel, so the leading button goes back instead of closing. */\n canGoBack: boolean;\n onBack: () => void;\n /** The back arrow's accessible name — it carries a glyph only. REQUIRED. */\n backLabel: string;\n onClose: () => void;\n /** Renders the bar without its ✕ — the panel's content owns the dismiss. */\n hideClose?: boolean;\n /** Header actions — desktop only; on phones they move to the footer. */\n headerActions?: ReactNode;\n rtl?: boolean;\n dataTestId?: string;\n}\n\n/**\n * The bar's leading control: back at depth ≥2, otherwise close — and nothing at\n * all when the panel's content carries its own ✕ (`hideClose`).\n */\nconst HeaderLeadingButton: FC<\n Pick<\n ModalHeaderProps,\n 'canGoBack' | 'onBack' | 'backLabel' | 'onClose' | 'hideClose' | 'rtl' | 'dataTestId'\n >\n> = ({ canGoBack, onBack, backLabel, onClose, hideClose, rtl, dataTestId }) => {\n if (canGoBack) {\n return (\n <IconButton\n edge=\"start\"\n color=\"inherit\"\n onClick={onBack}\n aria-label={backLabel}\n size=\"small\"\n sx={{ transform: rtl ? 'rotate(180deg)' : 'none' }}\n data-testid={testId(dataTestId, 'back-button')}\n >\n <ChevronLeftIcon />\n </IconButton>\n );\n }\n if (hideClose) return null;\n return (\n <IconButton\n edge=\"start\"\n color=\"inherit\"\n onClick={onClose}\n aria-label=\"close\"\n size=\"small\"\n data-testid={testId(dataTestId, 'close-button')}\n >\n <CloseIcon />\n </IconButton>\n );\n};\n\nexport const ModalHeader: FC<ModalHeaderProps> = ({\n titleId,\n navigationTitle,\n canGoBack,\n onBack,\n onClose,\n hideClose,\n backLabel,\n headerActions,\n rtl,\n dataTestId,\n}) => (\n // The BAR is not a heading: it holds the ✕ or back button and the header\n // actions. The title inside it is the panel's one heading and carries the id\n // the dialog's `aria-labelledby` names, so the dialog is named by the title\n // alone — not \"close Title Save\" — and a screen reader hears it once.\n //\n // The bar's id is stated, never left to MUI: `DialogTitle` falls back to the\n // Dialog's `aria-labelledby` and would claim the title's id a second time.\n // With NO title the bar is drawn exactly as it always was — MUI's own `h2`,\n // holding the id — so an untitled panel keeps its markup and its name.\n <StyledDialogTitle\n component={navigationTitle ? 'div' : 'h2'}\n id={navigationTitle ? `${titleId}-bar` : titleId}\n rtl={rtl}\n data-testid={testId(dataTestId, 'header')}\n >\n <DialogTitleLeft>\n <HeaderLeadingButton\n canGoBack={canGoBack}\n onBack={onBack}\n backLabel={backLabel}\n onClose={onClose}\n hideClose={hideClose}\n rtl={rtl}\n dataTestId={dataTestId}\n />\n {navigationTitle && (\n <Typography\n id={titleId}\n variant=\"h6\"\n component=\"h2\"\n noWrap\n sx={{ ml: canGoBack || !hideClose ? 1 : 0 }}\n data-testid={testId(dataTestId, 'title')}\n >\n {navigationTitle}\n </Typography>\n )}\n </DialogTitleLeft>\n <DialogTitleRight data-testid={testId(dataTestId, 'header-actions')}>\n {headerActions}\n </DialogTitleRight>\n </StyledDialogTitle>\n);\n\nconst ContentSkeleton: FC = () => {\n const theme = useTheme();\n return (\n <Box sx={{ p: 3 }}>\n <Skeleton variant=\"text\" width=\"60%\" height={rem(theme, 32)} />\n <Skeleton variant=\"text\" width=\"100%\" />\n <Skeleton variant=\"text\" width=\"100%\" />\n <Skeleton variant=\"rectangular\" height={rem(theme, 200)} sx={{ mt: 2 }} />\n </Box>\n );\n};\n\ninterface ModalBodyProps {\n descId: string;\n showSkeleton: boolean;\n /** When there is no action bar, the body is what reaches the bottom of the panel. */\n endsPanel: boolean;\n dataTestId?: string;\n children?: ReactNode;\n}\n\nexport const ModalBody: FC<ModalBodyProps> = ({\n descId,\n showSkeleton,\n endsPanel,\n dataTestId,\n children,\n}) => (\n <Box\n id={descId}\n sx={{\n position: 'relative',\n flex: 1,\n overflow: 'auto',\n // iOS momentum scrolling, and no scroll-chaining to the page behind —\n // without `contain`, an overscroll at the end of the list rubber-bands the\n // whole panel and springs back before the last row can be tapped.\n WebkitOverflowScrolling: 'touch',\n overscrollBehavior: 'contain',\n // The content itself ends the panel when there is no action bar, so it has\n // to clear the home indicator on its own.\n ...(endsPanel ? safeAreaBottom(0) : {}),\n }}\n data-testid={testId(dataTestId, 'content')}\n >\n {showSkeleton ? <ContentSkeleton /> : children}\n </Box>\n);\n\n/** The phone-only pinned action bar; on desktop the actions live in the header. */\nexport const ModalFooter: FC<{ dataTestId?: string; children?: ReactNode }> = ({\n dataTestId,\n children,\n}) => (\n <DialogActions\n sx={{\n borderTop: (theme) => `1px solid ${theme.palette.divider}`,\n padding: 2,\n // Never let the action row sit under the iOS home indicator.\n flexShrink: 0,\n ...safeAreaBottom(16),\n }}\n data-testid={testId(dataTestId, 'footer')}\n >\n {children}\n </DialogActions>\n);\n\ninterface PanelContentsProps extends ModalHeaderProps {\n /** Draw no bar — already resolved: `hideHeader` on the ROOT panel only. */\n hideHeader?: boolean;\n showSkeleton: boolean;\n loadingText?: string;\n descId: string;\n content: ReactNode;\n /** The resolved actions, already placed in the header or destined for the footer. */\n modalActions: ReactNode;\n hasMobileActions: boolean;\n}\n\n/** Everything inside the sliding panel: the loading veil, header, body and action bar. */\nexport const ModalPanelContents: FC<PanelContentsProps> = ({\n showSkeleton,\n loadingText,\n descId,\n content,\n modalActions,\n hasMobileActions,\n hideHeader,\n ...header\n}) => (\n <>\n {showSkeleton && (\n <ModalLoadingOverlay loadingText={loadingText} dataTestId={header.dataTestId} />\n )}\n {!hideHeader && <ModalHeader {...header} />}\n <ModalBody\n descId={descId}\n showSkeleton={showSkeleton}\n endsPanel={!hasMobileActions}\n dataTestId={header.dataTestId}\n >\n {content}\n </ModalBody>\n {hasMobileActions && (\n <ModalFooter dataTestId={header.dataTestId}>{modalActions}</ModalFooter>\n )}\n </>\n);\n"],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,qBAAqB;AAC5B,OAAO,eAAe;AACtB,OAAO,SAAS;AAChB,OAAO,sBAAsB;AAC7B,OAAO,mBAAmB;AAC1B,OAAO,mBAAmB;AAC1B,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AACvB,OAAO,cAAc;AACrB,OAAO,gBAAgB;AACvB,SAAS,QAAQ,gBAAgB;AAEjC,OAAO,WAAW;AAqCiE,wBA4D/E,YA5D+E;AAzBnF,IAAM,oBAAoB,OAAO,aAAa;AAAA,EAC5C,mBAAmB,CAAC,SAAS,SAAS;AACxC,CAAC,EAA8C,CAAC,EAAE,OAAO,IAAI,MAAM,YAAY,OAAO,GAAG,CAAC;AAE1F,IAAM,kBAAkB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,MAAM,gBAAgB,KAAK,CAAC;AACzE,IAAM,mBAAmB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,MAAM,iBAAiB,KAAK,CAAC;AAC3E,IAAM,iBAAiB,OAAO,GAAG,EAAE,CAAC,EAAE,MAAM,MAAM,qBAAqB,KAAK,CAAC;AAOtE,IAAM,sBAA4C,OAAO,aAAa;AAAA,EAAE,CAAC,EAAE,MAAM,MACtF,mBAAmB,KAAK;AAC1B;AAGO,IAAM,SAAS,CAAC,MAA0B,WAC/C,OAAO,GAAG,IAAI,IAAI,MAAM,KAAK;AAMxB,IAAM,sBAAoD,CAAC,EAAE,SAAS,MAAM,gCAAG,UAAS;AAG/F,IAAM,qBAAqB,CAAC,aAAoE;AAC9F,MAAI,UAAqB;AAEzB,QAAM,SAAS,QAAQ,UAAU,CAAC,UAAU;AAC1C,QAAI,MAAM,eAAyC,KAAK,KAAK,MAAM,SAAS,qBAAqB;AAC/F,gBAAU,MAAM,MAAM;AAAA,IACxB;AAAA,EACF,CAAC;AAED,QAAM,UAAU,MAAM,SAAS,QAAQ,QAAQ,EAAE;AAAA,IAC/C,CAAC,UAAU,EAAE,MAAM,eAAe,KAAK,KAAK,MAAM,SAAS;AAAA,EAC7D;AAEA,SAAO,EAAE,SAAS,QAAQ;AAC5B;AAOO,IAAM,sBAAsB,CACjC,UACA,SACA,aAMG;AACH,QAAM,EAAE,SAAS,SAAS,aAAa,IAAI,mBAAmB,QAAQ;AACtE,QAAM,eAAe,gBAAgB;AACrC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,eAAe,WAAW,OAAO;AAAA,IACjC,kBAAkB,QAAQ,YAAY,YAAY;AAAA,EACpD;AACF;AAGO,IAAM,eAAe,CAC1B,SACA,gBACA,qBACyC;AAAA,EACzC,SAAS,kBAAkB,eAAe,OAAO;AAAA,EACjD,QAAQ,mBAAmB,cAAc,OAAO;AAClD;AAEO,IAAM,sBAAyE,CAAC;AAAA,EACrF;AAAA,EACA;AACF,MAAM;AACJ,QAAM,QAAQ,SAAS;AACvB,SACE,qBAAC,kBAAe,eAAa,OAAO,YAAY,iBAAiB,GAC/D;AAAA,wBAAC,oBAAiB,MAAM,IAAI,OAAO,EAAE,GAAG,eAAa,OAAO,YAAY,iBAAiB,GAAG;AAAA,IAC3F,eACC,oBAAC,cAAW,SAAQ,SAAQ,IAAI,EAAE,IAAI,EAAE,GAAG,eAAa,OAAO,YAAY,cAAc,GACtF,uBACH;AAAA,KAEJ;AAEJ;AAuBA,IAAM,sBAKF,CAAC,EAAE,WAAW,QAAQ,WAAW,SAAS,WAAW,KAAK,WAAW,MAAM;AAC7E,MAAI,WAAW;AACb,WACE;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAM;AAAA,QACN,SAAS;AAAA,QACT,cAAY;AAAA,QACZ,MAAK;AAAA,QACL,IAAI,EAAE,WAAW,MAAM,mBAAmB,OAAO;AAAA,QACjD,eAAa,OAAO,YAAY,aAAa;AAAA,QAE7C,8BAAC,mBAAgB;AAAA;AAAA,IACnB;AAAA,EAEJ;AACA,MAAI,UAAW,QAAO;AACtB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,OAAM;AAAA,MACN,SAAS;AAAA,MACT,cAAW;AAAA,MACX,MAAK;AAAA,MACL,eAAa,OAAO,YAAY,cAAc;AAAA,MAE9C,8BAAC,aAAU;AAAA;AAAA,EACb;AAEJ;AAEO,IAAM,cAAoC,CAAC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,kBAAkB,QAAQ;AAAA,MACrC,IAAI,kBAAkB,GAAG,OAAO,SAAS;AAAA,MACzC;AAAA,MACA,eAAa,OAAO,YAAY,QAAQ;AAAA,MAExC;AAAA,6BAAC,mBACC;AAAA;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAAA,UACF;AAAA,UACC,mBACC;AAAA,YAAC;AAAA;AAAA,cACC,IAAI;AAAA,cACJ,SAAQ;AAAA,cACR,WAAU;AAAA,cACV,QAAM;AAAA,cACN,IAAI,EAAE,IAAI,aAAa,CAAC,YAAY,IAAI,EAAE;AAAA,cAC1C,eAAa,OAAO,YAAY,OAAO;AAAA,cAEtC;AAAA;AAAA,UACH;AAAA,WAEJ;AAAA,QACA,oBAAC,oBAAiB,eAAa,OAAO,YAAY,gBAAgB,GAC/D,yBACH;AAAA;AAAA;AAAA,EACF;AAAA;AAGF,IAAM,kBAAsB,MAAM;AAChC,QAAM,QAAQ,SAAS;AACvB,SACE,qBAAC,OAAI,IAAI,EAAE,GAAG,EAAE,GACd;AAAA,wBAAC,YAAS,SAAQ,QAAO,OAAM,OAAM,QAAQ,IAAI,OAAO,EAAE,GAAG;AAAA,IAC7D,oBAAC,YAAS,SAAQ,QAAO,OAAM,QAAO;AAAA,IACtC,oBAAC,YAAS,SAAQ,QAAO,OAAM,QAAO;AAAA,IACtC,oBAAC,YAAS,SAAQ,eAAc,QAAQ,IAAI,OAAO,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG;AAAA,KAC1E;AAEJ;AAWO,IAAM,YAAgC,CAAC;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MACE;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,IACJ,IAAI;AAAA,MACF,UAAU;AAAA,MACV,MAAM;AAAA,MACN,UAAU;AAAA;AAAA;AAAA;AAAA,MAIV,yBAAyB;AAAA,MACzB,oBAAoB;AAAA;AAAA;AAAA,MAGpB,GAAI,YAAY,eAAe,CAAC,IAAI,CAAC;AAAA,IACvC;AAAA,IACA,eAAa,OAAO,YAAY,SAAS;AAAA,IAExC,yBAAe,oBAAC,mBAAgB,IAAK;AAAA;AACxC;AAIK,IAAM,cAAiE,CAAC;AAAA,EAC7E;AAAA,EACA;AACF,MACE;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,MACF,WAAW,CAAC,UAAU,aAAa,MAAM,QAAQ,OAAO;AAAA,MACxD,SAAS;AAAA;AAAA,MAET,YAAY;AAAA,MACZ,GAAG,eAAe,EAAE;AAAA,IACtB;AAAA,IACA,eAAa,OAAO,YAAY,QAAQ;AAAA,IAEvC;AAAA;AACH;AAgBK,IAAM,qBAA6C,CAAC;AAAA,EACzD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACE,iCACG;AAAA,kBACC,oBAAC,uBAAoB,aAA0B,YAAY,OAAO,YAAY;AAAA,EAE/E,CAAC,cAAc,oBAAC,eAAa,GAAG,QAAQ;AAAA,EACzC;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW,CAAC;AAAA,MACZ,YAAY,OAAO;AAAA,MAElB;AAAA;AAAA,EACH;AAAA,EACC,oBACC,oBAAC,eAAY,YAAY,OAAO,YAAa,wBAAa;AAAA,GAE9D;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import ArrowForwardIos from '@mui/icons-material/ArrowForwardIos';\nimport ChevronRight from '@mui/icons-material/ChevronRight';\nimport NavigateNext from '@mui/icons-material/NavigateNext';\nimport Box from '@mui/material/Box/index.js';\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs/index.js';\nimport { useTheme, styled } from '@mui/material/styles/index.js';\nimport useMediaQuery from '@mui/material/useMediaQuery/index.js';\nimport React from 'react';\n\nimport {\n breadcrumbsBarStyles,\n sizeIconMap } from './Breadcrumbs.styles';\nimport { BreadcrumbEntry } from './BreadcrumbEntry';\nimport type { BreadcrumbItem,BreadcrumbsProps } from './Breadcrumbs.types';\nimport { sxRem } from '../../../tokens/relative';\n\n// Animation keyframes\nconst StyledBreadcrumbs = styled(MuiBreadcrumbs, {\n shouldForwardProp: (prop) =>\n prop !== 'size' && prop !== 'color' && prop !== 'visualStyle' && prop !== 'elevation' })<{ size?: string; color?: string; visualStyle?: string; elevation?: number }>(\n ({ theme, size, color, visualStyle, elevation = 0 }) => ({\n ...breadcrumbsBarStyles({ theme, size, color, visualStyle, elevation }) }),\n);\n\nconst AnimatedSeparator = styled(Box)(() => ({\n display: 'flex',\n alignItems: 'center',\n opacity: 0.6,\n transition: 'all 0.2s ease',\n\n '&:hover': {\n opacity: 1,\n transform: 'scale(1.1)' } }));\n\nconst getSeparator = (separatorType: string) => {\n const separatorContent = (() => {\n switch (separatorType) {\n case 'slash':\n return '/';\n case 'arrow':\n return <NavigateNext fontSize=\"small\" />;\n case 'chevron':\n return <ChevronRight fontSize=\"small\" />;\n case 'dot':\n return '•';\n case 'pipe':\n return '|';\n default:\n return <ArrowForwardIos sx={{ fontSize: sxRem(12) }} />;\n }\n })();\n\n return <AnimatedSeparator>{separatorContent}</AnimatedSeparator>;\n};\n\ntype DisplayItem = BreadcrumbItem & { isEllipsis?: boolean };\n\n// Long trails either hide their middle behind a menu or replace it with an\n// ellipsis crumb; short ones pass straight through.\nconst collapseItems = ({\n items,\n effectiveMaxItems,\n collapseBehavior }: {\n items: BreadcrumbItem[];\n effectiveMaxItems: number;\n collapseBehavior: string;\n}): { displayItems: DisplayItem[]; collapsedItems: BreadcrumbItem[] } => {\n if (items.length <= effectiveMaxItems) {\n return { displayItems: items, collapsedItems: [] };\n }\n\n if (collapseBehavior === 'menu') {\n const firstItem = items[0];\n const tail = items.slice(-(effectiveMaxItems - 2));\n\n return {\n displayItems: firstItem ? [firstItem, ...tail] : tail,\n collapsedItems: items.slice(1, -(effectiveMaxItems - 2)) };\n }\n\n if (collapseBehavior === 'ellipsis') {\n const half = Math.floor(effectiveMaxItems / 2);\n\n return {\n displayItems: [\n ...items.slice(0, half),\n { label: '...', href: '#', isEllipsis: true },\n ...items.slice(-half),\n ],\n collapsedItems: [] };\n }\n\n return { displayItems: items, collapsedItems: [] };\n};\n\ntype BreadcrumbsDefaultedKeys =\n | 'variant'\n | 'separatorType'\n | 'maxItems'\n | 'showHomeIcon'\n | 'size'\n | 'color'\n | 'elevation'\n | 'collapseBehavior'\n | 'mobileMaxItems';\n\ntype ResolvedBreadcrumbsProps = BreadcrumbsProps &\n Required<Pick<BreadcrumbsProps, BreadcrumbsDefaultedKeys>>;\n\nconst BREADCRUMBS_DEFAULTS: Pick<BreadcrumbsProps, BreadcrumbsDefaultedKeys> = {\n variant: 'default',\n separatorType: 'default',\n maxItems: 8,\n showHomeIcon: true,\n size: 'md',\n color: 'neutral',\n elevation: 1,\n collapseBehavior: 'menu',\n mobileMaxItems: 3 };\n\n// Strips explicitly-undefined props before the merge, so `prop={undefined}` still\n// falls back to the default exactly as a destructuring default would. Applied as\n// a merge rather than destructuring defaults, which would otherwise put nine\n// branches into the component's own complexity budget.\nconst resolveProps = (props: BreadcrumbsProps): ResolvedBreadcrumbsProps =>\n ({\n ...BREADCRUMBS_DEFAULTS,\n ...(Object.fromEntries(\n Object.entries(props).filter(([, value]) => value !== undefined),\n ) as Partial<BreadcrumbsProps>) }) as ResolvedBreadcrumbsProps;\n\nexport const Breadcrumbs = React.forwardRef<HTMLElement, BreadcrumbsProps>(\n (componentProps, ref) => {\n const {\n variant,\n separatorType,\n items,\n separator,\n maxItems,\n showHomeIcon,\n size,\n color,\n elevation,\n collapseBehavior,\n mobileMaxItems,\n ariaLabel,\n copy,\n dataTestId,\n ...props\n } = resolveProps(componentProps);\n const theme = useTheme();\n // separatorType picks a built-in separator; an explicit `separator` wins.\n // This was computed before but never passed on, so separatorType had no\n // effect on what rendered.\n const finalSeparator = separator || getSeparator(separatorType);\n const isMobile = useMediaQuery(theme.breakpoints.down('sm'));\n const iconSize = sizeIconMap[size];\n\n // Handle mobile collapsing\n const effectiveMaxItems = isMobile ? mobileMaxItems : maxItems;\n const shouldCollapse = items.length > effectiveMaxItems;\n\n const { displayItems, collapsedItems } = collapseItems({\n items,\n effectiveMaxItems,\n collapseBehavior });\n\n return (\n <StyledBreadcrumbs\n ref={ref}\n separator={finalSeparator}\n maxItems={shouldCollapse ? undefined : effectiveMaxItems}\n size={size}\n color={color}\n visualStyle={variant}\n elevation={elevation}\n aria-label={ariaLabel || 'breadcrumb navigation'}\n role=\"navigation\"\n data-testid={dataTestId || 'breadcrumbs'}\n {...props}\n >\n {displayItems.map((item, index) => (\n <BreadcrumbEntry\n copy={copy}\n key={index}\n item={item}\n index={index}\n itemCount={displayItems.length}\n collapsedItems={collapsedItems}\n collapseBehavior={collapseBehavior}\n separator={finalSeparator}\n showHomeIcon={showHomeIcon}\n iconSize={iconSize}\n size={size}\n variant={variant}\n dataTestId={dataTestId}\n />\n ))}\n </StyledBreadcrumbs>\n );\n },\n);\n\nBreadcrumbs.displayName = 'Breadcrumbs';\n"],"mappings":";;;;;;;;;;;;AAAA,OAAO,qBAAqB;AAC5B,OAAO,kBAAkB;AACzB,OAAO,kBAAkB;AACzB,OAAO,SAAS;AAChB,OAAO,oBAAoB;AAC3B,SAAS,UAAU,cAAc;AACjC,OAAO,mBAAmB;AAC1B,OAAO,WAAW;AAiCH;AAvBf,IAAM,oBAAoB,OAAO,gBAAgB;AAAA,EAC/C,mBAAmB,CAAC,SAClB,SAAS,UAAU,SAAS,WAAW,SAAS,iBAAiB,SAAS;AAAY,CAAC;AAAA,EACzF,CAAC,EAAE,OAAO,MAAM,OAAO,aAAa,YAAY,EAAE,OAAO;AAAA,IACvD,GAAG,qBAAqB,EAAE,OAAO,MAAM,OAAO,aAAa,UAAU,CAAC;AAAA,EAAE;AAC5E;AAEA,IAAM,oBAAoB,OAAO,GAAG,EAAE,OAAO;AAAA,EAC3C,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,YAAY;AAAA,EAEZ,WAAW;AAAA,IACT,SAAS;AAAA,IACT,WAAW;AAAA,EAAa;AAAE,EAAE;AAEhC,IAAM,eAAe,CAAC,kBAA0B;AAC9C,QAAM,oBAAoB,MAAM;AAC9B,YAAQ,eAAe;AAAA,MACrB,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO,oBAAC,gBAAa,UAAS,SAAQ;AAAA,MACxC,KAAK;AACH,eAAO,oBAAC,gBAAa,UAAS,SAAQ;AAAA,MACxC,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO,oBAAC,mBAAgB,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA,IACzD;AAAA,EACF,GAAG;AAEH,SAAO,oBAAC,qBAAmB,4BAAiB;AAC9C;AAMA,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAiB,MAIsD;AACvE,MAAI,MAAM,UAAU,mBAAmB;AACrC,WAAO,EAAE,cAAc,OAAO,gBAAgB,CAAC,EAAE;AAAA,EACnD;AAEA,MAAI,qBAAqB,QAAQ;AAC/B,UAAM,YAAY,MAAM,CAAC;AACzB,UAAM,OAAO,MAAM,MAAM,EAAE,oBAAoB,EAAE;AAEjD,WAAO;AAAA,MACL,cAAc,YAAY,CAAC,WAAW,GAAG,IAAI,IAAI;AAAA,MACjD,gBAAgB,MAAM,MAAM,GAAG,EAAE,oBAAoB,EAAE;AAAA,IAAE;AAAA,EAC7D;AAEA,MAAI,qBAAqB,YAAY;AACnC,UAAM,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAE7C,WAAO;AAAA,MACL,cAAc;AAAA,QACZ,GAAG,MAAM,MAAM,GAAG,IAAI;AAAA,QACtB,EAAE,OAAO,OAAO,MAAM,KAAK,YAAY,KAAK;AAAA,QAC5C,GAAG,MAAM,MAAM,CAAC,IAAI;AAAA,MACtB;AAAA,MACA,gBAAgB,CAAC;AAAA,IAAE;AAAA,EACvB;AAEA,SAAO,EAAE,cAAc,OAAO,gBAAgB,CAAC,EAAE;AACnD;AAgBA,IAAM,uBAAyE;AAAA,EAC7E,SAAS;AAAA,EACT,eAAe;AAAA,EACf,UAAU;AAAA,EACV,cAAc;AAAA,EACd,MAAM;AAAA,EACN,OAAO;AAAA,EACP,WAAW;AAAA,EACX,kBAAkB;AAAA,EAClB,gBAAgB;AAAE;AAMpB,IAAM,eAAe,CAAC,WACnB;AAAA,EACC,GAAG;AAAA,EACH,GAAI,OAAO;AAAA,IACT,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,MAAM,UAAU,MAAS;AAAA,EACjE;AAAgC;AAE7B,IAAM,cAAc,MAAM;AAAA,EAC/B,CAAC,gBAAgB,QAAQ;AACvB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,aAAa,cAAc;AAC/B,UAAM,QAAQ,SAAS;AAIvB,UAAM,iBAAiB,aAAa,aAAa,aAAa;AAC9D,UAAM,WAAW,cAAc,MAAM,YAAY,KAAK,IAAI,CAAC;AAC3D,UAAM,WAAW,YAAY,IAAI;AAGjC,UAAM,oBAAoB,WAAW,iBAAiB;AACtD,UAAM,iBAAiB,MAAM,SAAS;AAEtC,UAAM,EAAE,cAAc,eAAe,IAAI,cAAc;AAAA,MACrD;AAAA,MACA;AAAA,MACA;AAAA,IAAiB,CAAC;AAEpB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,QACX,UAAU,iBAAiB,SAAY;AAAA,QACvC;AAAA,QACA;AAAA,QACA,aAAa;AAAA,QACb;AAAA,QACA,cAAY,aAAa;AAAA,QACzB,MAAK;AAAA,QACL,eAAa,cAAc;AAAA,QAC1B,GAAG;AAAA,QAEH,uBAAa,IAAI,CAAC,MAAM,UACvB;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YAEA;AAAA,YACA;AAAA,YACA,WAAW,aAAa;AAAA,YACxB;AAAA,YACA;AAAA,YACA,WAAW;AAAA,YACX;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,UAXK;AAAA,QAYP,CACD;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,YAAY,cAAc;","names":[]}