@12-apps/ui 6.79.0 → 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 (543) hide show
  1. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +3 -3
  2. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.parts.js +2 -1
  3. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +6 -4
  4. package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -1
  5. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +8 -8
  6. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -8
  7. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +3 -3
  8. package/dist/_internal/components/data-display/Carousel/Carousel.js +4 -4
  9. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +2 -2
  10. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +26 -25
  11. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +38 -37
  12. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  13. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +9 -9
  14. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
  15. package/dist/_internal/components/data-display/DataViews/data-views-card-body.js +2 -2
  16. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +7 -6
  17. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +2 -2
  18. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +2 -2
  19. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +12 -11
  20. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +3 -3
  21. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +1 -1
  22. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +23 -22
  23. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +12 -11
  24. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +10 -9
  25. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +11 -10
  26. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +3 -2
  27. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +11 -10
  28. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +16 -15
  29. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +10 -9
  30. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +1 -1
  31. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -3
  32. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -1
  33. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -1
  34. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +8 -8
  35. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +7 -7
  36. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +1 -1
  37. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +11 -10
  38. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +2 -2
  39. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -1
  40. package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +3 -3
  41. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +4 -4
  42. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +3 -3
  43. package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +2 -2
  44. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +6 -6
  45. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +4 -4
  46. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +3 -2
  47. package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -3
  48. package/dist/_internal/components/data-display/Sheet/Sheet.parts.js +2 -1
  49. package/dist/_internal/components/data-display/Stepper/Stepper.js +2 -2
  50. package/dist/_internal/components/data-display/Table/Table.js +3 -3
  51. package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
  52. package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
  53. package/dist/_internal/components/data-display/Timeline/Timeline.js +2 -2
  54. package/dist/_internal/components/data-display/index.js +29 -29
  55. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +5 -5
  56. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +4 -4
  57. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +6 -6
  58. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +5 -5
  59. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  60. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +3 -3
  61. package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
  62. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +3 -3
  63. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +2 -2
  64. package/dist/_internal/components/feedback/Toast/Toast.js +2 -2
  65. package/dist/_internal/components/feedback/index.js +13 -13
  66. package/dist/_internal/components/form/Command/Command.hooks.js +2 -1
  67. package/dist/_internal/components/form/Command/Command.js +4 -3
  68. package/dist/_internal/components/form/Command/Command.parts.js +2 -1
  69. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +3 -2
  70. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +5 -4
  71. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +2 -1
  72. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +3 -2
  73. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +2 -1
  74. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.dom.js +2 -2
  75. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.format.js +3 -3
  76. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.hooks.js +4 -4
  77. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +5 -5
  78. package/dist/_internal/components/form/index.js +13 -13
  79. package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -3
  80. package/dist/_internal/components/index.js +75 -74
  81. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +2 -1
  82. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -2
  83. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +2 -1
  84. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +2 -2
  85. package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
  86. package/dist/_internal/components/layout/Drawer/Drawer.js +2 -1
  87. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +3 -2
  88. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.rail.js +1 -1
  89. package/dist/_internal/components/layout/TableFilter/TableFilter.js +2 -1
  90. package/dist/_internal/components/layout/index.js +9 -8
  91. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +6 -6
  92. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -1
  93. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +2 -1
  94. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +3 -3
  95. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
  96. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +4 -3
  97. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +5 -4
  98. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +3 -2
  99. package/dist/_internal/components/navigation/index.js +15 -14
  100. package/dist/_internal/components/typography/Code/Code.js +2 -2
  101. package/dist/_internal/components/typography/index.js +2 -2
  102. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +2 -1
  103. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +3 -2
  104. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.parts.js +2 -1
  105. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +2 -2
  106. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +5 -5
  107. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +3 -3
  108. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +4 -4
  109. package/dist/_internal/components/utility/index.js +8 -8
  110. package/dist/_internal/en-US.data-display.js +1 -1
  111. package/dist/_internal/en-US.labels.js +1 -1
  112. package/dist/_internal/pt-BR.data-display.js +1 -1
  113. package/dist/_internal/pt-BR.labels.js +1 -1
  114. package/dist/_internal/social-login-button/social-login-button.js +2 -1
  115. package/dist/_internal/user-avatar/user-avatar.js +3 -2
  116. package/dist/{chunk-LIWONEAU.js → chunk-3B7EJIG7.js} +2 -2
  117. package/dist/{chunk-GHXW6O5T.js → chunk-3LQLLL2J.js} +4 -4
  118. package/dist/chunk-3LQLLL2J.js.map +1 -0
  119. package/dist/{chunk-GJMWQUAD.js → chunk-3OWFUFZL.js} +6 -3
  120. package/dist/chunk-3OWFUFZL.js.map +1 -0
  121. package/dist/{chunk-V64USPG3.js → chunk-4JV46KXS.js} +3 -3
  122. package/dist/{chunk-UJT6AQHL.js → chunk-4NVEUJXK.js} +2 -2
  123. package/dist/{chunk-PBMCRDZI.js → chunk-4PREA2R5.js} +5 -2
  124. package/dist/chunk-4PREA2R5.js.map +1 -0
  125. package/dist/{chunk-YZX4DVRS.js → chunk-52UVUVYQ.js} +6 -3
  126. package/dist/chunk-52UVUVYQ.js.map +1 -0
  127. package/dist/{chunk-PIP7XII2.js → chunk-5JDY5W7O.js} +3 -3
  128. package/dist/{chunk-YJ6UQDA6.js → chunk-634Z7HGN.js} +6 -3
  129. package/dist/chunk-634Z7HGN.js.map +1 -0
  130. package/dist/{chunk-556LO6KA.js → chunk-6B7VZFAO.js} +2 -2
  131. package/dist/{chunk-FLTXJWOC.js → chunk-6EERXU6R.js} +2 -2
  132. package/dist/{chunk-TPGFR24B.js → chunk-6IVR5HFI.js} +6 -6
  133. package/dist/{chunk-J26ZWYQI.js → chunk-6KCJNERH.js} +2 -2
  134. package/dist/{chunk-AXZCCX7O.js → chunk-6S7CFH6V.js} +2 -2
  135. package/dist/{chunk-3XLSA3YB.js → chunk-763AHWKU.js} +2 -2
  136. package/dist/{chunk-6MGYPTAL.js → chunk-7DODMQRK.js} +2 -2
  137. package/dist/{chunk-C4OETF7K.js → chunk-7H5BIZ33.js} +3 -3
  138. package/dist/{chunk-UGYBN6OO.js → chunk-7HYLXERK.js} +4 -4
  139. package/dist/{chunk-M3ZNQTS5.js → chunk-7S3NG2AO.js} +4 -4
  140. package/dist/{chunk-WE43PZ4P.js → chunk-7UDQJOZZ.js} +2 -2
  141. package/dist/{chunk-3ZWCKCZC.js → chunk-A7LBWRRW.js} +5 -2
  142. package/dist/chunk-A7LBWRRW.js.map +1 -0
  143. package/dist/{chunk-5GLOEGOM.js → chunk-ABJOW7EK.js} +2 -2
  144. package/dist/{chunk-GPPUKDA6.js → chunk-AFSXC5FU.js} +2 -2
  145. package/dist/{chunk-G2IVONJD.js → chunk-AISCD6W6.js} +2 -2
  146. package/dist/{chunk-ZYKDUKAH.js → chunk-B2RNNJRO.js} +7 -4
  147. package/dist/chunk-B2RNNJRO.js.map +1 -0
  148. package/dist/{chunk-HPEBSLYP.js → chunk-B67KUCWU.js} +2 -2
  149. package/dist/{chunk-CYKINZKO.js → chunk-BFBCTF2Y.js} +2 -2
  150. package/dist/{chunk-WUW6NDXC.js → chunk-BLVFHVDM.js} +7 -7
  151. package/dist/{chunk-GHGZI7PK.js → chunk-BMVLTTTC.js} +6 -3
  152. package/dist/{chunk-GHGZI7PK.js.map → chunk-BMVLTTTC.js.map} +1 -1
  153. package/dist/{chunk-UG4EMHMW.js → chunk-BTDY2NYV.js} +2 -2
  154. package/dist/{chunk-KE74C2SM.js → chunk-C2I7NQC4.js} +2 -2
  155. package/dist/{chunk-LR473BUT.js → chunk-C7LHIDVB.js} +3 -3
  156. package/dist/{chunk-V45JGJ3W.js → chunk-CFDYQSN6.js} +3 -3
  157. package/dist/{chunk-BJ7NWZWO.js → chunk-D4LMRSY7.js} +2 -2
  158. package/dist/{chunk-GPQ22MPR.js → chunk-DB7OJM6X.js} +2 -2
  159. package/dist/{chunk-66BRUS2M.js → chunk-DD3VFDB2.js} +2 -2
  160. package/dist/{chunk-J2RUDZVJ.js → chunk-DE2GWZ6X.js} +5 -2
  161. package/dist/chunk-DE2GWZ6X.js.map +1 -0
  162. package/dist/{chunk-JKNKGGOG.js → chunk-DKRMOIX2.js} +7 -1
  163. package/dist/chunk-DKRMOIX2.js.map +1 -0
  164. package/dist/{chunk-CSQWPDQV.js → chunk-DT22MDC3.js} +4 -4
  165. package/dist/{chunk-7HKXTRTK.js → chunk-DWCH6GH5.js} +2 -2
  166. package/dist/{chunk-NTO5DALI.js → chunk-DWLSYFQW.js} +5 -2
  167. package/dist/chunk-DWLSYFQW.js.map +1 -0
  168. package/dist/{chunk-F742IMLQ.js → chunk-EXKK73UN.js} +5 -2
  169. package/dist/chunk-EXKK73UN.js.map +1 -0
  170. package/dist/{chunk-4MKVGSHX.js → chunk-F5SUBK42.js} +6 -3
  171. package/dist/chunk-F5SUBK42.js.map +1 -0
  172. package/dist/{chunk-5KNDAC24.js → chunk-FCCOUOP7.js} +8 -2
  173. package/dist/chunk-FCCOUOP7.js.map +1 -0
  174. package/dist/{chunk-5MAD6ZEI.js → chunk-G3SWMBZS.js} +2 -2
  175. package/dist/{chunk-P3QFJJJY.js → chunk-GHTVBYFA.js} +3 -3
  176. package/dist/{chunk-RRSLH2FV.js → chunk-GLAAX5JJ.js} +7 -2
  177. package/dist/chunk-GLAAX5JJ.js.map +1 -0
  178. package/dist/{chunk-XLTHZI5W.js → chunk-GX2LIB4T.js} +6 -3
  179. package/dist/chunk-GX2LIB4T.js.map +1 -0
  180. package/dist/{chunk-RKVS5AA6.js → chunk-H3NXDKFH.js} +7 -4
  181. package/dist/chunk-H3NXDKFH.js.map +1 -0
  182. package/dist/{chunk-47VRDPR2.js → chunk-HFZE2PGM.js} +5 -2
  183. package/dist/chunk-HFZE2PGM.js.map +1 -0
  184. package/dist/{chunk-5MMAV7XK.js → chunk-HWKBCLKD.js} +4 -2
  185. package/dist/chunk-HWKBCLKD.js.map +1 -0
  186. package/dist/{chunk-IASPZGYB.js → chunk-HWUFOII2.js} +3 -3
  187. package/dist/chunk-HWUFOII2.js.map +1 -0
  188. package/dist/{chunk-VMU52I5D.js → chunk-J7CIRTWQ.js} +8 -3
  189. package/dist/chunk-J7CIRTWQ.js.map +1 -0
  190. package/dist/{chunk-MBY7DWGT.js → chunk-JJNY5MZL.js} +2 -2
  191. package/dist/{chunk-EF4DVYD2.js → chunk-JMUZ5JZA.js} +2 -2
  192. package/dist/{chunk-NUUX4BBR.js → chunk-JQSF3CUR.js} +7 -2
  193. package/dist/chunk-JQSF3CUR.js.map +1 -0
  194. package/dist/{chunk-KYE7I6NT.js → chunk-KSOIFQJ6.js} +4 -4
  195. package/dist/{chunk-JSY234NY.js → chunk-KW2KCPZF.js} +2 -2
  196. package/dist/{chunk-RNQA7MDM.js → chunk-LDPN55AA.js} +2 -2
  197. package/dist/{chunk-U6XXAVBO.js → chunk-LHRAHDJF.js} +2 -2
  198. package/dist/{chunk-VQ6UB4MN.js → chunk-MKRJUT5O.js} +3 -3
  199. package/dist/{chunk-CXTRDTNM.js → chunk-NF5TATKP.js} +4 -4
  200. package/dist/{chunk-NA3M7KDE.js → chunk-NGXDOWUP.js} +2 -2
  201. package/dist/{chunk-EVYLJ5JB.js → chunk-NSS3X7FK.js} +2 -2
  202. package/dist/{chunk-RECD3XOL.js → chunk-NWNHSASQ.js} +2 -2
  203. package/dist/{chunk-W5PRZHLU.js → chunk-O2RXSXSF.js} +74 -3
  204. package/dist/chunk-O2RXSXSF.js.map +1 -0
  205. package/dist/{chunk-VMN6KG2U.js → chunk-OCLEKMBP.js} +3 -3
  206. package/dist/chunk-OCLEKMBP.js.map +1 -0
  207. package/dist/{chunk-HBP2OU4Q.js → chunk-OOCD2QR3.js} +4 -3
  208. package/dist/chunk-OOCD2QR3.js.map +1 -0
  209. package/dist/{chunk-URAXAKUI.js → chunk-OT4HIG7S.js} +3 -3
  210. package/dist/{chunk-K53XSVQO.js → chunk-OTION43A.js} +8 -4
  211. package/dist/chunk-OTION43A.js.map +1 -0
  212. package/dist/{chunk-H6R2L7VI.js → chunk-PAKLYZ6G.js} +2 -2
  213. package/dist/{chunk-SYSR2K2M.js → chunk-PF2A2IM7.js} +2 -2
  214. package/dist/{chunk-SRNBD6EV.js → chunk-PGBIUO2A.js} +2 -2
  215. package/dist/{chunk-QDRHIK2R.js → chunk-QK3XXPBA.js} +2 -2
  216. package/dist/{chunk-A6V7KE45.js → chunk-QVEJGFRP.js} +3 -3
  217. package/dist/{chunk-73OYC22L.js → chunk-RMZQHJEP.js} +2 -2
  218. package/dist/{chunk-VBGC7G4F.js → chunk-RQ3IS5NQ.js} +2 -2
  219. package/dist/{chunk-7S25RDE4.js → chunk-SCQARHMU.js} +2 -2
  220. package/dist/{chunk-47IAX6PI.js → chunk-SEUJNFOD.js} +2 -2
  221. package/dist/{chunk-RQMYEPRR.js → chunk-SM2O6D5F.js} +2 -2
  222. package/dist/{chunk-AAWVAQI2.js → chunk-SXNGH56D.js} +2 -2
  223. package/dist/{chunk-V7INHV5V.js → chunk-SYZVXWEQ.js} +3 -3
  224. package/dist/{chunk-DX5PLJKN.js → chunk-TAR5LSGT.js} +2 -2
  225. package/dist/{chunk-VFVATUC6.js → chunk-TGZ6GPYQ.js} +3 -3
  226. package/dist/{chunk-25HBYY4O.js → chunk-TLVKJBPM.js} +2 -2
  227. package/dist/{chunk-BGTG7G54.js → chunk-TLZR6UPJ.js} +6 -3
  228. package/dist/chunk-TLZR6UPJ.js.map +1 -0
  229. package/dist/{chunk-XLCVMRSO.js → chunk-U67CX4FL.js} +12 -4
  230. package/dist/chunk-U67CX4FL.js.map +1 -0
  231. package/dist/{chunk-PU3FQG7T.js → chunk-UCQRJTCI.js} +2 -2
  232. package/dist/{chunk-I2CT4XIP.js → chunk-UF4JFRLE.js} +3 -3
  233. package/dist/{chunk-4N3I7ZHQ.js → chunk-URAX2JPM.js} +6 -3
  234. package/dist/chunk-URAX2JPM.js.map +1 -0
  235. package/dist/{chunk-MGDCGNLC.js → chunk-UYNJ3FYE.js} +3 -3
  236. package/dist/{chunk-6SFJIW54.js → chunk-V65YK5DC.js} +2 -2
  237. package/dist/{chunk-VZVAP2ZR.js → chunk-V6DMNSW6.js} +4 -4
  238. package/dist/chunk-V6DMNSW6.js.map +1 -0
  239. package/dist/{chunk-CRFOAKQL.js → chunk-VAGGIRLA.js} +6 -3
  240. package/dist/chunk-VAGGIRLA.js.map +1 -0
  241. package/dist/{chunk-L35TCXFA.js → chunk-VRKNVZZQ.js} +74 -3
  242. package/dist/chunk-VRKNVZZQ.js.map +1 -0
  243. package/dist/{chunk-RZ3QMKM7.js → chunk-W3EVATBS.js} +2 -2
  244. package/dist/{chunk-CAHN7AMY.js → chunk-WWIYYXY3.js} +14 -7
  245. package/dist/chunk-WWIYYXY3.js.map +1 -0
  246. package/dist/{chunk-WOXWLJYR.js → chunk-XF47LPCF.js} +5 -2
  247. package/dist/chunk-XF47LPCF.js.map +1 -0
  248. package/dist/{chunk-3YLRR4JM.js → chunk-Y3YZBB74.js} +2 -2
  249. package/dist/{chunk-V37QIB7B.js → chunk-YMKSPW4T.js} +2 -2
  250. package/dist/{chunk-YOKUDQIJ.js → chunk-YOQAK2RN.js} +7 -3
  251. package/dist/chunk-YOQAK2RN.js.map +1 -0
  252. package/dist/{chunk-KYT5G4K7.js → chunk-Z52W7FEU.js} +2 -2
  253. package/dist/{chunk-3YCV4EP7.js → chunk-ZDBG7QG2.js} +3 -3
  254. package/dist/{chunk-7HZ6TJRH.js → chunk-ZT73ACK3.js} +2 -2
  255. package/dist/{chunk-TJO4CBYT.js → chunk-ZX3QMCYO.js} +6 -3
  256. package/dist/chunk-ZX3QMCYO.js.map +1 -0
  257. package/dist/data-display/AlertDialog.js +3 -3
  258. package/dist/data-display/AsyncStateContainer.js +6 -4
  259. package/dist/data-display/Avatar.js +2 -1
  260. package/dist/data-display/CardKit.js +9 -9
  261. package/dist/data-display/Carousel.js +4 -4
  262. package/dist/data-display/DataViews.js +38 -37
  263. package/dist/data-display/EmptyState.js +2 -1
  264. package/dist/data-display/ErrorState.js +2 -1
  265. package/dist/data-display/FleetMap.js +11 -10
  266. package/dist/data-display/LazyImage.js +2 -2
  267. package/dist/data-display/LoadingState.js +3 -1
  268. package/dist/data-display/MapPreview.js +6 -6
  269. package/dist/data-display/SectionOnboarding.js +4 -4
  270. package/dist/data-display/Sheet.js +4 -3
  271. package/dist/data-display/Stepper.js +2 -2
  272. package/dist/data-display/Table.js +3 -3
  273. package/dist/data-display/Timeline.js +2 -2
  274. package/dist/en-US.js +4 -4
  275. package/dist/feedback/ConfirmAction.js +7 -7
  276. package/dist/feedback/Dialog.js +2 -2
  277. package/dist/feedback/SequenceResolver.js +3 -3
  278. package/dist/feedback/Sonner.js +2 -2
  279. package/dist/feedback/StackedModal.js +3 -3
  280. package/dist/feedback/Toast.js +2 -2
  281. package/dist/form/Command.js +4 -3
  282. package/dist/form/DateRangePicker.js +5 -4
  283. package/dist/form/PhoneInput.js +2 -1
  284. package/dist/form/RichTextEditor.js +5 -5
  285. package/dist/form/total-form.js +3 -3
  286. package/dist/layout/ContentToolbar.js +6 -5
  287. package/dist/layout/Dashboard.js +2 -2
  288. package/dist/layout/Drawer.js +2 -1
  289. package/dist/layout/SettingsLayout.js +3 -2
  290. package/dist/layout/TableFilter.js +2 -1
  291. package/dist/locales.js +8 -8
  292. package/dist/native/chunks/{chunk-4SP3BDPZ.js → chunk-67CYDCHZ.js} +2 -2
  293. package/dist/native/chunks/{chunk-FGAX5BRS.js → chunk-7AVFQB6A.js} +7 -4
  294. package/dist/native/chunks/chunk-7AVFQB6A.js.map +1 -0
  295. package/dist/native/chunks/{chunk-SPK34J7Y.js → chunk-DUELD4HY.js} +74 -3
  296. package/dist/native/chunks/chunk-DUELD4HY.js.map +1 -0
  297. package/dist/native/data-display/Avatar.js +4 -1
  298. package/dist/native/data-display/Avatar.js.map +1 -1
  299. package/dist/native/data-display/Badge.js +3 -3
  300. package/dist/native/data-display/Chip.js +3 -3
  301. package/dist/native/data-display/EmptyState.js +3 -3
  302. package/dist/native/data-display/ErrorState.js +5 -3
  303. package/dist/native/data-display/ErrorState.js.map +1 -1
  304. package/dist/native/data-display/FleetMap.js +3 -3
  305. package/dist/native/data-display/LoadingState.js +16 -5
  306. package/dist/native/data-display/LoadingState.js.map +1 -1
  307. package/dist/native/feedback/Dialog.js +3 -3
  308. package/dist/native/form/Button.js +2 -2
  309. package/dist/native/form/Checkbox.js +3 -3
  310. package/dist/native/form/Input.js +1 -1
  311. package/dist/native/form/Switch.js +1 -1
  312. package/dist/navigation/AppHeader.js +8 -7
  313. package/dist/navigation/Breadcrumbs.js +2 -1
  314. package/dist/navigation/NavigationMenu.js +3 -3
  315. package/dist/navigation/SectionNav.js +5 -4
  316. package/dist/pt-BR.js +4 -4
  317. package/dist/social-login-button.js +2 -1
  318. package/dist/types/components/data-display/AlertDialog/AlertDialog.parts.d.ts.map +1 -1
  319. package/dist/types/components/data-display/Avatar/Avatar.d.ts.map +1 -1
  320. package/dist/types/components/data-display/DataViews/DeleteViewDialog.d.ts.map +1 -1
  321. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +11 -0
  322. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
  323. package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts +6 -2
  324. package/dist/types/components/data-display/DataViews/data-views-grid-helpers.d.ts.map +1 -1
  325. package/dist/types/components/data-display/DataViews/use-data-views-state.d.ts.map +1 -1
  326. package/dist/types/components/data-display/EmptyState/EmptyState.d.ts.map +1 -1
  327. package/dist/types/components/data-display/ErrorState/ErrorState.d.ts.map +1 -1
  328. package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts +7 -0
  329. package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -1
  330. package/dist/types/components/data-display/LoadingState/LoadingState.d.ts.map +1 -1
  331. package/dist/types/components/data-display/Sheet/Sheet.body.d.ts +1 -1
  332. package/dist/types/components/data-display/Sheet/Sheet.body.d.ts.map +1 -1
  333. package/dist/types/components/data-display/Sheet/Sheet.parts.d.ts.map +1 -1
  334. package/dist/types/components/data-display/Sheet/Sheet.types.d.ts +10 -0
  335. package/dist/types/components/data-display/Sheet/Sheet.types.d.ts.map +1 -1
  336. package/dist/types/components/feedback/StackedModal/StackedModal.d.ts.map +1 -1
  337. package/dist/types/components/form/Command/Command.hooks.d.ts.map +1 -1
  338. package/dist/types/components/form/Command/Command.parts.d.ts.map +1 -1
  339. package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts.map +1 -1
  340. package/dist/types/components/form/PhoneInput/PhoneInput.d.ts.map +1 -1
  341. package/dist/types/components/form/total-form/FormErrorSnackbar.d.ts.map +1 -1
  342. package/dist/types/components/layout/ContentToolbar/ColumnsMenu.d.ts.map +1 -1
  343. package/dist/types/components/layout/ContentToolbar/FilterTrigger.d.ts.map +1 -1
  344. package/dist/types/components/layout/ContentToolbar/MultiSelectDropdown.d.ts.map +1 -1
  345. package/dist/types/components/layout/Dashboard/Dashboard.d.ts +1 -1
  346. package/dist/types/components/layout/Dashboard/Dashboard.d.ts.map +1 -1
  347. package/dist/types/components/layout/Drawer/Drawer.d.ts.map +1 -1
  348. package/dist/types/components/layout/SettingsLayout/SettingsLayout.d.ts.map +1 -1
  349. package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts +3 -1
  350. package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts.map +1 -1
  351. package/dist/types/components/layout/SettingsLayout/SettingsLayout.types.d.ts +6 -0
  352. package/dist/types/components/layout/SettingsLayout/SettingsLayout.types.d.ts.map +1 -1
  353. package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
  354. package/dist/types/components/navigation/AppHeader/AppHeader.identity.d.ts.map +1 -1
  355. package/dist/types/components/navigation/AppHeader/AppHeader.types.d.ts +5 -1
  356. package/dist/types/components/navigation/AppHeader/AppHeader.types.d.ts.map +1 -1
  357. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  358. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.d.ts.map +1 -1
  359. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.d.ts.map +1 -1
  360. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts +1 -0
  361. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.parts.d.ts.map +1 -1
  362. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts +6 -0
  363. package/dist/types/components/utility/InfiniteScroll/InfiniteScroll.types.d.ts.map +1 -1
  364. package/dist/types/copy/labels.d.ts +113 -2
  365. package/dist/types/copy/labels.d.ts.map +1 -1
  366. package/dist/types/en-US.data-display.d.ts.map +1 -1
  367. package/dist/types/en-US.labels.d.ts.map +1 -1
  368. package/dist/types/pt-BR.data-display.d.ts.map +1 -1
  369. package/dist/types/pt-BR.labels.d.ts.map +1 -1
  370. package/dist/types/social-login-button/social-login-button.d.ts.map +1 -1
  371. package/dist/types-native/components/data-display/Avatar/Avatar.native.d.ts.map +1 -1
  372. package/dist/types-native/components/data-display/EmptyState/EmptyState.native.d.ts.map +1 -1
  373. package/dist/types-native/components/data-display/ErrorState/ErrorState.native.d.ts.map +1 -1
  374. package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts +7 -0
  375. package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -1
  376. package/dist/types-native/components/data-display/LoadingState/LoadingState.native.d.ts.map +1 -1
  377. package/dist/types-native/copy/labels.d.ts +113 -2
  378. package/dist/types-native/copy/labels.d.ts.map +1 -1
  379. package/dist/types-native/en-US.labels.d.ts.map +1 -1
  380. package/dist/types-native/utils/resolve-labels.d.ts +9 -0
  381. package/dist/types-native/utils/resolve-labels.d.ts.map +1 -0
  382. package/dist/typography/Code.js +2 -2
  383. package/dist/user-avatar.js +3 -2
  384. package/dist/utility/AnimatedIcon.js +2 -1
  385. package/dist/utility/InfiniteScroll.js +3 -2
  386. package/dist/utility/WorkflowStep.js +5 -5
  387. package/package.json +2 -2
  388. package/src/components/data-display/AlertDialog/AlertDialog.parts.tsx +3 -2
  389. package/src/components/data-display/Avatar/Avatar.native.tsx +2 -1
  390. package/src/components/data-display/Avatar/Avatar.tsx +2 -1
  391. package/src/components/data-display/DataViews/DeleteViewDialog.tsx +2 -2
  392. package/src/components/data-display/DataViews/data-views-copy.ts +11 -0
  393. package/src/components/data-display/DataViews/data-views-grid-helpers.tsx +8 -3
  394. package/src/components/data-display/DataViews/data-views-view-nav.tsx +2 -2
  395. package/src/components/data-display/DataViews/use-data-views-state.ts +3 -1
  396. package/src/components/data-display/EmptyState/EmptyState.native.tsx +3 -2
  397. package/src/components/data-display/EmptyState/EmptyState.tsx +3 -2
  398. package/src/components/data-display/ErrorState/ErrorState.native.tsx +2 -1
  399. package/src/components/data-display/ErrorState/ErrorState.tsx +2 -1
  400. package/src/components/data-display/LoadingState/LoadingState.base.ts +8 -0
  401. package/src/components/data-display/LoadingState/LoadingState.native.tsx +10 -5
  402. package/src/components/data-display/LoadingState/LoadingState.tsx +9 -3
  403. package/src/components/data-display/Sheet/Sheet.body.tsx +3 -0
  404. package/src/components/data-display/Sheet/Sheet.md +1 -0
  405. package/src/components/data-display/Sheet/Sheet.parts.tsx +4 -0
  406. package/src/components/data-display/Sheet/Sheet.types.ts +10 -0
  407. package/src/components/feedback/StackedModal/StackedModal.tsx +2 -1
  408. package/src/components/form/Command/Command.hooks.ts +3 -2
  409. package/src/components/form/Command/Command.parts.tsx +3 -2
  410. package/src/components/form/DateRangePicker/DateRangePicker.range.ts +2 -1
  411. package/src/components/form/PhoneInput/PhoneInput.tsx +3 -2
  412. package/src/components/form/total-form/FormErrorSnackbar.tsx +2 -1
  413. package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +3 -2
  414. package/src/components/layout/ContentToolbar/FilterTrigger.tsx +4 -1
  415. package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +4 -3
  416. package/src/components/layout/Dashboard/Dashboard.tsx +4 -1
  417. package/src/components/layout/Drawer/Drawer.tsx +2 -1
  418. package/src/components/layout/SettingsLayout/SettingsLayout.md +1 -0
  419. package/src/components/layout/SettingsLayout/SettingsLayout.rail.tsx +9 -2
  420. package/src/components/layout/SettingsLayout/SettingsLayout.tsx +16 -5
  421. package/src/components/layout/SettingsLayout/SettingsLayout.types.ts +6 -0
  422. package/src/components/layout/TableFilter/TableFilter.tsx +4 -3
  423. package/src/components/navigation/AppHeader/AppHeader.identity.tsx +2 -1
  424. package/src/components/navigation/AppHeader/AppHeader.types.ts +5 -1
  425. package/src/components/navigation/Breadcrumbs/Breadcrumbs.tsx +2 -1
  426. package/src/components/navigation/NavigationMenu/NavigationStandardBody.tsx +1 -1
  427. package/src/components/utility/AnimatedIcon/AnimatedIcon.tsx +2 -1
  428. package/src/components/utility/InfiniteScroll/InfiniteScroll.parts.tsx +6 -2
  429. package/src/components/utility/InfiniteScroll/InfiniteScroll.tsx +2 -1
  430. package/src/components/utility/InfiniteScroll/InfiniteScroll.types.ts +6 -0
  431. package/src/copy/labels.ts +131 -2
  432. package/src/en-US.data-display.ts +5 -0
  433. package/src/en-US.labels.ts +71 -0
  434. package/src/pt-BR.data-display.ts +5 -0
  435. package/src/pt-BR.labels.ts +71 -0
  436. package/src/social-login-button/social-login-button.tsx +3 -2
  437. package/dist/chunk-3ZWCKCZC.js.map +0 -1
  438. package/dist/chunk-47VRDPR2.js.map +0 -1
  439. package/dist/chunk-4MKVGSHX.js.map +0 -1
  440. package/dist/chunk-4N3I7ZHQ.js.map +0 -1
  441. package/dist/chunk-5KNDAC24.js.map +0 -1
  442. package/dist/chunk-5MMAV7XK.js.map +0 -1
  443. package/dist/chunk-BGTG7G54.js.map +0 -1
  444. package/dist/chunk-CAHN7AMY.js.map +0 -1
  445. package/dist/chunk-CRFOAKQL.js.map +0 -1
  446. package/dist/chunk-F742IMLQ.js.map +0 -1
  447. package/dist/chunk-GHXW6O5T.js.map +0 -1
  448. package/dist/chunk-GJMWQUAD.js.map +0 -1
  449. package/dist/chunk-HBP2OU4Q.js.map +0 -1
  450. package/dist/chunk-IASPZGYB.js.map +0 -1
  451. package/dist/chunk-J2RUDZVJ.js.map +0 -1
  452. package/dist/chunk-JKNKGGOG.js.map +0 -1
  453. package/dist/chunk-K53XSVQO.js.map +0 -1
  454. package/dist/chunk-L35TCXFA.js.map +0 -1
  455. package/dist/chunk-NTO5DALI.js.map +0 -1
  456. package/dist/chunk-NUUX4BBR.js.map +0 -1
  457. package/dist/chunk-PBMCRDZI.js.map +0 -1
  458. package/dist/chunk-RKVS5AA6.js.map +0 -1
  459. package/dist/chunk-RRSLH2FV.js.map +0 -1
  460. package/dist/chunk-TJO4CBYT.js.map +0 -1
  461. package/dist/chunk-VMN6KG2U.js.map +0 -1
  462. package/dist/chunk-VMU52I5D.js.map +0 -1
  463. package/dist/chunk-VZVAP2ZR.js.map +0 -1
  464. package/dist/chunk-W5PRZHLU.js.map +0 -1
  465. package/dist/chunk-WOXWLJYR.js.map +0 -1
  466. package/dist/chunk-XLCVMRSO.js.map +0 -1
  467. package/dist/chunk-XLTHZI5W.js.map +0 -1
  468. package/dist/chunk-YJ6UQDA6.js.map +0 -1
  469. package/dist/chunk-YOKUDQIJ.js.map +0 -1
  470. package/dist/chunk-YZX4DVRS.js.map +0 -1
  471. package/dist/chunk-ZYKDUKAH.js.map +0 -1
  472. package/dist/native/chunks/chunk-FGAX5BRS.js.map +0 -1
  473. package/dist/native/chunks/chunk-SPK34J7Y.js.map +0 -1
  474. /package/dist/{chunk-LIWONEAU.js.map → chunk-3B7EJIG7.js.map} +0 -0
  475. /package/dist/{chunk-V64USPG3.js.map → chunk-4JV46KXS.js.map} +0 -0
  476. /package/dist/{chunk-UJT6AQHL.js.map → chunk-4NVEUJXK.js.map} +0 -0
  477. /package/dist/{chunk-PIP7XII2.js.map → chunk-5JDY5W7O.js.map} +0 -0
  478. /package/dist/{chunk-556LO6KA.js.map → chunk-6B7VZFAO.js.map} +0 -0
  479. /package/dist/{chunk-FLTXJWOC.js.map → chunk-6EERXU6R.js.map} +0 -0
  480. /package/dist/{chunk-TPGFR24B.js.map → chunk-6IVR5HFI.js.map} +0 -0
  481. /package/dist/{chunk-J26ZWYQI.js.map → chunk-6KCJNERH.js.map} +0 -0
  482. /package/dist/{chunk-AXZCCX7O.js.map → chunk-6S7CFH6V.js.map} +0 -0
  483. /package/dist/{chunk-3XLSA3YB.js.map → chunk-763AHWKU.js.map} +0 -0
  484. /package/dist/{chunk-6MGYPTAL.js.map → chunk-7DODMQRK.js.map} +0 -0
  485. /package/dist/{chunk-C4OETF7K.js.map → chunk-7H5BIZ33.js.map} +0 -0
  486. /package/dist/{chunk-UGYBN6OO.js.map → chunk-7HYLXERK.js.map} +0 -0
  487. /package/dist/{chunk-M3ZNQTS5.js.map → chunk-7S3NG2AO.js.map} +0 -0
  488. /package/dist/{chunk-WE43PZ4P.js.map → chunk-7UDQJOZZ.js.map} +0 -0
  489. /package/dist/{chunk-5GLOEGOM.js.map → chunk-ABJOW7EK.js.map} +0 -0
  490. /package/dist/{chunk-GPPUKDA6.js.map → chunk-AFSXC5FU.js.map} +0 -0
  491. /package/dist/{chunk-G2IVONJD.js.map → chunk-AISCD6W6.js.map} +0 -0
  492. /package/dist/{chunk-HPEBSLYP.js.map → chunk-B67KUCWU.js.map} +0 -0
  493. /package/dist/{chunk-CYKINZKO.js.map → chunk-BFBCTF2Y.js.map} +0 -0
  494. /package/dist/{chunk-WUW6NDXC.js.map → chunk-BLVFHVDM.js.map} +0 -0
  495. /package/dist/{chunk-UG4EMHMW.js.map → chunk-BTDY2NYV.js.map} +0 -0
  496. /package/dist/{chunk-KE74C2SM.js.map → chunk-C2I7NQC4.js.map} +0 -0
  497. /package/dist/{chunk-LR473BUT.js.map → chunk-C7LHIDVB.js.map} +0 -0
  498. /package/dist/{chunk-V45JGJ3W.js.map → chunk-CFDYQSN6.js.map} +0 -0
  499. /package/dist/{chunk-BJ7NWZWO.js.map → chunk-D4LMRSY7.js.map} +0 -0
  500. /package/dist/{chunk-GPQ22MPR.js.map → chunk-DB7OJM6X.js.map} +0 -0
  501. /package/dist/{chunk-66BRUS2M.js.map → chunk-DD3VFDB2.js.map} +0 -0
  502. /package/dist/{chunk-CSQWPDQV.js.map → chunk-DT22MDC3.js.map} +0 -0
  503. /package/dist/{chunk-7HKXTRTK.js.map → chunk-DWCH6GH5.js.map} +0 -0
  504. /package/dist/{chunk-5MAD6ZEI.js.map → chunk-G3SWMBZS.js.map} +0 -0
  505. /package/dist/{chunk-P3QFJJJY.js.map → chunk-GHTVBYFA.js.map} +0 -0
  506. /package/dist/{chunk-MBY7DWGT.js.map → chunk-JJNY5MZL.js.map} +0 -0
  507. /package/dist/{chunk-EF4DVYD2.js.map → chunk-JMUZ5JZA.js.map} +0 -0
  508. /package/dist/{chunk-KYE7I6NT.js.map → chunk-KSOIFQJ6.js.map} +0 -0
  509. /package/dist/{chunk-JSY234NY.js.map → chunk-KW2KCPZF.js.map} +0 -0
  510. /package/dist/{chunk-RNQA7MDM.js.map → chunk-LDPN55AA.js.map} +0 -0
  511. /package/dist/{chunk-U6XXAVBO.js.map → chunk-LHRAHDJF.js.map} +0 -0
  512. /package/dist/{chunk-VQ6UB4MN.js.map → chunk-MKRJUT5O.js.map} +0 -0
  513. /package/dist/{chunk-CXTRDTNM.js.map → chunk-NF5TATKP.js.map} +0 -0
  514. /package/dist/{chunk-NA3M7KDE.js.map → chunk-NGXDOWUP.js.map} +0 -0
  515. /package/dist/{chunk-EVYLJ5JB.js.map → chunk-NSS3X7FK.js.map} +0 -0
  516. /package/dist/{chunk-RECD3XOL.js.map → chunk-NWNHSASQ.js.map} +0 -0
  517. /package/dist/{chunk-URAXAKUI.js.map → chunk-OT4HIG7S.js.map} +0 -0
  518. /package/dist/{chunk-H6R2L7VI.js.map → chunk-PAKLYZ6G.js.map} +0 -0
  519. /package/dist/{chunk-SYSR2K2M.js.map → chunk-PF2A2IM7.js.map} +0 -0
  520. /package/dist/{chunk-SRNBD6EV.js.map → chunk-PGBIUO2A.js.map} +0 -0
  521. /package/dist/{chunk-QDRHIK2R.js.map → chunk-QK3XXPBA.js.map} +0 -0
  522. /package/dist/{chunk-A6V7KE45.js.map → chunk-QVEJGFRP.js.map} +0 -0
  523. /package/dist/{chunk-73OYC22L.js.map → chunk-RMZQHJEP.js.map} +0 -0
  524. /package/dist/{chunk-VBGC7G4F.js.map → chunk-RQ3IS5NQ.js.map} +0 -0
  525. /package/dist/{chunk-7S25RDE4.js.map → chunk-SCQARHMU.js.map} +0 -0
  526. /package/dist/{chunk-47IAX6PI.js.map → chunk-SEUJNFOD.js.map} +0 -0
  527. /package/dist/{chunk-RQMYEPRR.js.map → chunk-SM2O6D5F.js.map} +0 -0
  528. /package/dist/{chunk-AAWVAQI2.js.map → chunk-SXNGH56D.js.map} +0 -0
  529. /package/dist/{chunk-V7INHV5V.js.map → chunk-SYZVXWEQ.js.map} +0 -0
  530. /package/dist/{chunk-DX5PLJKN.js.map → chunk-TAR5LSGT.js.map} +0 -0
  531. /package/dist/{chunk-VFVATUC6.js.map → chunk-TGZ6GPYQ.js.map} +0 -0
  532. /package/dist/{chunk-25HBYY4O.js.map → chunk-TLVKJBPM.js.map} +0 -0
  533. /package/dist/{chunk-PU3FQG7T.js.map → chunk-UCQRJTCI.js.map} +0 -0
  534. /package/dist/{chunk-I2CT4XIP.js.map → chunk-UF4JFRLE.js.map} +0 -0
  535. /package/dist/{chunk-MGDCGNLC.js.map → chunk-UYNJ3FYE.js.map} +0 -0
  536. /package/dist/{chunk-6SFJIW54.js.map → chunk-V65YK5DC.js.map} +0 -0
  537. /package/dist/{chunk-RZ3QMKM7.js.map → chunk-W3EVATBS.js.map} +0 -0
  538. /package/dist/{chunk-3YLRR4JM.js.map → chunk-Y3YZBB74.js.map} +0 -0
  539. /package/dist/{chunk-V37QIB7B.js.map → chunk-YMKSPW4T.js.map} +0 -0
  540. /package/dist/{chunk-KYT5G4K7.js.map → chunk-Z52W7FEU.js.map} +0 -0
  541. /package/dist/{chunk-3YCV4EP7.js.map → chunk-ZDBG7QG2.js.map} +0 -0
  542. /package/dist/{chunk-7HZ6TJRH.js.map → chunk-ZT73ACK3.js.map} +0 -0
  543. /package/dist/native/chunks/{chunk-4SP3BDPZ.js.map → chunk-67CYDCHZ.js.map} +0 -0
@@ -25,6 +25,7 @@ export const InfiniteScroll: React.FC<InfiniteScrollProps> = ({
25
25
  endText,
26
26
  endMessage,
27
27
  error,
28
+ errorText,
28
29
  errorComponent,
29
30
  onError,
30
31
  className,
@@ -54,7 +55,7 @@ export const InfiniteScroll: React.FC<InfiniteScrollProps> = ({
54
55
  // spinner, or the sentinel that asks for the next page.
55
56
  const renderSentinel = () => {
56
57
  if (!hasMore) return endMessage || <DefaultEndMessage endText={endText} />;
57
- if (error) return errorComponent || <DefaultError error={error} />;
58
+ if (error) return errorComponent || <DefaultError error={error} errorText={errorText} />;
58
59
  if (loading) return loader || <DefaultLoader loadingText={loadingText} />;
59
60
 
60
61
  return (
@@ -22,6 +22,12 @@ export interface InfiniteScrollProps {
22
22
  loader?: ReactNode;
23
23
  endMessage?: ReactNode;
24
24
  error?: Error | null;
25
+ /**
26
+ * The error line when `error` carries no message of its own. Defaults to the
27
+ * English it always read; a pt-BR host passes
28
+ * `UI_LABELS['pt-BR'].infiniteScroll.loadFailed`.
29
+ */
30
+ errorText?: string;
25
31
  errorComponent?: ReactNode;
26
32
  onError?: (error: Error) => void;
27
33
  className?: string;
@@ -74,17 +74,26 @@ export interface CodeLabels {
74
74
  copied: string;
75
75
  }
76
76
 
77
- /** `ViewSelector`'s two options and `FilterTrigger`'s accessible name. */
77
+ /**
78
+ * `ViewSelector`'s two options, `FilterTrigger`'s accessible name and visible
79
+ * label, and `MultiSelectDropdown`'s "everything" option, search box and empty
80
+ * list.
81
+ */
78
82
  export interface ContentToolbarLabels {
79
83
  gridView: string;
80
84
  listView: string;
81
85
  openFilters: string;
82
86
  closeFilters: string;
87
+ filters: string;
88
+ all: string;
89
+ search: string;
90
+ noResults: string;
83
91
  }
84
92
 
85
- /** `Dashboard.Breadcrumb`'s landmark name. */
93
+ /** `Dashboard.Breadcrumb`'s landmark name and `Dashboard.MoreFilters`' toggle. */
86
94
  export interface DashboardLabels {
87
95
  breadcrumb: string;
96
+ moreFilters: string;
88
97
  }
89
98
 
90
99
  /** `NavigationMenu`'s collapse control. */
@@ -103,6 +112,108 @@ export interface WorkflowStepLabels {
103
112
  progress(position: number, total: number): string;
104
113
  }
105
114
 
115
+ /** `AlertDialog`'s two buttons, when the host names neither. */
116
+ export interface AlertDialogLabels {
117
+ cancel: string;
118
+ confirm: string;
119
+ }
120
+
121
+ /** `Avatar`'s accessible name when it carries no `alt` and no `aria-label`. */
122
+ export interface AvatarLabels {
123
+ name: string;
124
+ }
125
+
126
+ /** `EmptyState`'s two built-in actions. */
127
+ export interface EmptyStateLabels {
128
+ refresh: string;
129
+ create: string;
130
+ }
131
+
132
+ /** `ErrorState`'s retry button. */
133
+ export interface ErrorStateLabels {
134
+ retry: string;
135
+ }
136
+
137
+ /** `LoadingState`'s accessible name while it shows no `message`, per variant. */
138
+ export interface LoadingStateLabels {
139
+ skeleton: string;
140
+ spinner: string;
141
+ }
142
+
143
+ /** `StackedModal`'s line while a panel loads. */
144
+ export interface StackedModalLabels {
145
+ loading: string;
146
+ }
147
+
148
+ /** `Command`'s search box, its empty list and its busy line. */
149
+ export interface CommandLabels {
150
+ placeholder: string;
151
+ empty: string;
152
+ loading: string;
153
+ }
154
+
155
+ /** `FormErrorSnackbar`'s sentence when the form names none. */
156
+ export interface FormErrorSnackbarLabels {
157
+ message: string;
158
+ }
159
+
160
+ /** `ColumnsMenu`'s heading and its trigger's accessible name. */
161
+ export interface ColumnsMenuLabels {
162
+ title: string;
163
+ toggle: string;
164
+ }
165
+
166
+ /** `Drawer`'s close button. */
167
+ export interface DrawerLabels {
168
+ close: string;
169
+ }
170
+
171
+ /** `SettingsLayout`'s navigation name (when its title is not text), search and back control. */
172
+ export interface SettingsLayoutLabels {
173
+ navigation: string;
174
+ searchPlaceholder: string;
175
+ emptySearch: string;
176
+ back: string;
177
+ }
178
+
179
+ /** `TableFilter`'s landmark name and its keyword box. */
180
+ export interface TableFilterLabels {
181
+ filters: string;
182
+ keywordPlaceholder: string;
183
+ keywordLabel: string;
184
+ }
185
+
186
+ /** `AppHeader`'s identity disclosure, named after the host's own title. */
187
+ export interface AppHeaderLabels {
188
+ disclose(title: string): string;
189
+ }
190
+
191
+ /** `Breadcrumbs`' landmark name. */
192
+ export interface BreadcrumbsLabels {
193
+ navigation: string;
194
+ }
195
+
196
+ /** `AnimatedIcon`'s accessible name, from the animation it plays. */
197
+ export interface AnimatedIconLabels {
198
+ name(variant: string): string;
199
+ }
200
+
201
+ /** `InfiniteScroll`'s default error, when the failure carries no message. */
202
+ export interface InfiniteScrollLabels {
203
+ loadFailed: string;
204
+ }
205
+
206
+ /** `SocialLoginContainer`'s heading and the word on its divider. */
207
+ export interface SocialLoginLabels {
208
+ title: string;
209
+ divider: string;
210
+ }
211
+
212
+ /** `DateRangePicker`'s calendar popover name. */
213
+ export interface DateRangePickerLabels {
214
+ calendar: string;
215
+ }
216
+
106
217
  /** Every family above, keyed by the component that renders it. */
107
218
  export interface UiLabels {
108
219
  common: CommonLabels;
@@ -117,4 +228,22 @@ export interface UiLabels {
117
228
  dashboard: DashboardLabels;
118
229
  navigationMenu: NavigationMenuLabels;
119
230
  workflowStep: WorkflowStepLabels;
231
+ alertDialog: AlertDialogLabels;
232
+ avatar: AvatarLabels;
233
+ emptyState: EmptyStateLabels;
234
+ errorState: ErrorStateLabels;
235
+ loadingState: LoadingStateLabels;
236
+ stackedModal: StackedModalLabels;
237
+ command: CommandLabels;
238
+ formErrorSnackbar: FormErrorSnackbarLabels;
239
+ columnsMenu: ColumnsMenuLabels;
240
+ drawer: DrawerLabels;
241
+ settingsLayout: SettingsLayoutLabels;
242
+ tableFilter: TableFilterLabels;
243
+ appHeader: AppHeaderLabels;
244
+ breadcrumbs: BreadcrumbsLabels;
245
+ animatedIcon: AnimatedIconLabels;
246
+ infiniteScroll: InfiniteScrollLabels;
247
+ socialLogin: SocialLoginLabels;
248
+ dateRangePicker: DateRangePickerLabels;
120
249
  }
@@ -103,6 +103,7 @@ export const EN_US_DATA_VIEWS_COPY: DataViewsCopy = {
103
103
  // built around it rather than naming a noun of its own.
104
104
  rowsUnaffected: (entityLabel) =>
105
105
  `${entityLabel} are not affected; only the saved slice is removed.`,
106
+ entityFallback: "The records",
106
107
  confirm: "Delete view",
107
108
  cancel: "Cancel",
108
109
  },
@@ -200,6 +201,8 @@ export const EN_US_DATA_VIEWS_COPY: DataViewsCopy = {
200
201
  emptyFilteredTitle: "No results for these filters",
201
202
  emptyFilteredHint: "Adjust or remove the filters.",
202
203
  emptyFilteredAction: "Clear filters",
204
+ sortAscending: "Ascending",
205
+ sortDescending: "Descending",
203
206
  },
204
207
  filters: {
205
208
  moreFilters: (count) => `More filters: ${count} did not fit in the bar`,
@@ -249,6 +252,8 @@ export const EN_US_DATA_VIEWS_COPY: DataViewsCopy = {
249
252
  nav: {
250
253
  mainView: "Main view",
251
254
  defaultTag: "Default",
255
+ pinnedTag: "Pinned",
256
+ sharedTag: "Shared",
252
257
  viewOptions: (viewName) => `${viewName} options`,
253
258
  emptyHint: "No saved views. Adjust filters, columns or sorting and save below.",
254
259
  setDefault: "Set as default",
@@ -61,9 +61,14 @@ export const EN_US_UI_LABELS: UiLabels = {
61
61
  listView: "List View",
62
62
  openFilters: "Open filters",
63
63
  closeFilters: "Close filters",
64
+ filters: "Filters",
65
+ all: "All",
66
+ search: "Search…",
67
+ noResults: "No results",
64
68
  },
65
69
  dashboard: {
66
70
  breadcrumb: "breadcrumb",
71
+ moreFilters: "More filters",
67
72
  },
68
73
  navigationMenu: {
69
74
  collapse: "Collapse",
@@ -73,4 +78,70 @@ export const EN_US_UI_LABELS: UiLabels = {
73
78
  step: (position, title) => `Step ${position}: ${title}`,
74
79
  progress: (position, total) => `Step ${position} of ${total}`,
75
80
  },
81
+ alertDialog: {
82
+ cancel: "Cancel",
83
+ confirm: "Confirm",
84
+ },
85
+ avatar: {
86
+ name: "Avatar",
87
+ },
88
+ emptyState: {
89
+ refresh: "Refresh",
90
+ create: "Create New",
91
+ },
92
+ errorState: {
93
+ retry: "Retry",
94
+ },
95
+ loadingState: {
96
+ skeleton: "Loading content",
97
+ spinner: "Loading",
98
+ },
99
+ stackedModal: {
100
+ loading: "Loading...",
101
+ },
102
+ command: {
103
+ placeholder: "Type a command or search...",
104
+ empty: "No results found",
105
+ loading: "Loading...",
106
+ },
107
+ formErrorSnackbar: {
108
+ message: "Please fix the highlighted fields and try again.",
109
+ },
110
+ columnsMenu: {
111
+ title: "Columns",
112
+ toggle: "Toggle columns",
113
+ },
114
+ drawer: {
115
+ close: "Close drawer",
116
+ },
117
+ settingsLayout: {
118
+ navigation: "Settings",
119
+ searchPlaceholder: "Search settings",
120
+ emptySearch: "No settings match your search.",
121
+ back: "Back",
122
+ },
123
+ tableFilter: {
124
+ filters: "Filters",
125
+ keywordPlaceholder: "Press Enter to filter",
126
+ keywordLabel: "Filter by keyword",
127
+ },
128
+ appHeader: {
129
+ disclose: (title) => `${title} details`,
130
+ },
131
+ breadcrumbs: {
132
+ navigation: "breadcrumb navigation",
133
+ },
134
+ animatedIcon: {
135
+ name: (variant) => `Animated ${variant} icon`,
136
+ },
137
+ infiniteScroll: {
138
+ loadFailed: "An error occurred while loading more items",
139
+ },
140
+ socialLogin: {
141
+ title: "Sign in to continue",
142
+ divider: "or",
143
+ },
144
+ dateRangePicker: {
145
+ calendar: "Calendar",
146
+ },
76
147
  };
@@ -102,6 +102,7 @@ export const PT_BR_DATA_VIEWS_COPY: DataViewsCopy = {
102
102
  sharedWarning: "Esta visão está compartilhada — a equipe perderá o acesso a ela.",
103
103
  rowsUnaffected: (entityLabel) =>
104
104
  `${entityLabel} não são afetados; apenas o recorte salvo é removido.`,
105
+ entityFallback: "Os registros",
105
106
  confirm: "Excluir visão",
106
107
  cancel: "Cancelar",
107
108
  },
@@ -197,6 +198,8 @@ export const PT_BR_DATA_VIEWS_COPY: DataViewsCopy = {
197
198
  emptyFilteredTitle: "Nenhum resultado para esses filtros",
198
199
  emptyFilteredHint: "Ajuste ou remova os filtros.",
199
200
  emptyFilteredAction: "Limpar filtros",
201
+ sortAscending: "Crescente",
202
+ sortDescending: "Decrescente",
200
203
  },
201
204
  filters: {
202
205
  moreFilters: (count) => `Mais filtros: ${count} sem espaço na barra`,
@@ -241,6 +244,8 @@ export const PT_BR_DATA_VIEWS_COPY: DataViewsCopy = {
241
244
  nav: {
242
245
  mainView: "Visão principal",
243
246
  defaultTag: "Padrão",
247
+ pinnedTag: "Fixada",
248
+ sharedTag: "Compartilhada",
244
249
  viewOptions: (viewName) => `Opções de ${viewName}`,
245
250
  emptyHint: "Nenhuma visão salva. Ajuste filtros, colunas ou ordenação e salve abaixo.",
246
251
  setDefault: "Definir como padrão",
@@ -60,9 +60,14 @@ export const PT_BR_UI_LABELS: UiLabels = {
60
60
  listView: "Lista",
61
61
  openFilters: "Abrir filtros",
62
62
  closeFilters: "Fechar filtros",
63
+ filters: "Filtros",
64
+ all: "Todos",
65
+ search: "Buscar…",
66
+ noResults: "Nenhum resultado",
63
67
  },
64
68
  dashboard: {
65
69
  breadcrumb: "Trilha de navegação",
70
+ moreFilters: "Mais filtros",
66
71
  },
67
72
  navigationMenu: {
68
73
  collapse: "Recolher",
@@ -72,4 +77,70 @@ export const PT_BR_UI_LABELS: UiLabels = {
72
77
  step: (position, title) => `Etapa ${position}: ${title}`,
73
78
  progress: (position, total) => `Etapa ${position} de ${total}`,
74
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
+ },
75
146
  };
@@ -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();
@@ -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":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/navigation/AppHeader/AppHeader.identity.tsx"],"sourcesContent":["'use client';\n\nimport KeyboardArrowDown from '@mui/icons-material/KeyboardArrowDown';\nimport Box from '@mui/material/Box/index.js';\nimport Skeleton from '@mui/material/Skeleton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { rem, sxRem } from '../../../tokens/relative';\nimport { accentFor, type SizeValue } from '../../../tokens/scales';\n\nimport { AppHeaderBrand } from './AppHeader.brand';\nimport type { AppHeaderIdentityProps, AppHeaderStatusProps } from './AppHeader.types';\n\n/** Title type scale, per house size step. */\nconst TITLE_PX: Record<SizeValue, number> = { xs: 14, sm: 15, md: 17, lg: 20, xl: 24 };\n\n/** One line, ellipsised — a long store name must not push the actions off-screen. */\nconst ONE_LINE = {\n minWidth: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n} as const;\n\n/**\n * The dotted state line: \"● Aberto agora · Retirada no balcão\".\n *\n * Segments are joined here rather than by the caller because the separator is a\n * presentational choice — a caller that pre-joins its own string can never be\n * restyled, and each segment loses the chance to carry its own markup.\n */\nexport const AppHeaderStatus: React.FC<AppHeaderStatusProps> = ({\n tone,\n items,\n separator = '·',\n className,\n dataTestId = 'app-header-status',\n}) => {\n const theme = useTheme();\n const visible = items.filter((item) => item !== null && item !== undefined && item !== '');\n if (visible.length === 0) return null;\n\n return (\n <Box\n className={className}\n data-testid={dataTestId}\n sx={{ display: 'flex', alignItems: 'center', gap: 0.75, ...ONE_LINE }}\n >\n {tone && (\n <Box\n aria-hidden\n data-testid={`${dataTestId}-dot`}\n sx={{\n width: rem(theme, 8),\n height: rem(theme, 8),\n flex: '0 0 auto',\n borderRadius: '50%',\n backgroundColor: accentFor(theme, tone).main,\n }}\n />\n )}\n <Typography variant=\"body2\" color=\"text.secondary\" component=\"span\" sx={ONE_LINE}>\n {visible.map((item, index) => (\n // Index keys: the segments are positional presentation, and nothing\n // here reorders or is keyed on identity elsewhere.\n <React.Fragment key={index}>\n {index > 0 && (\n <>\n {/* Real spaces, not margin. A screen reader reads `textContent`,\n and a CSS-only gap runs \"Aberto agora\" straight into\n \"Retirada no balcão\" as one word. The glyph itself is\n hidden — it is punctuation, not something to announce. */}\n {' '}\n <Box component=\"span\" aria-hidden>\n {separator}\n </Box>{' '}\n </>\n )}\n {item}\n </React.Fragment>\n ))}\n </Typography>\n </Box>\n );\n};\n\nAppHeaderStatus.displayName = 'AppHeaderStatus';\n\n/** The name and, when the block opens onto something, the chevron beside it. */\nconst IdentityTitle: React.FC<\n Pick<AppHeaderIdentityProps, 'title' | 'size'> & {\n interactive: boolean;\n disclosed: boolean;\n dataTestId: string;\n }\n> = ({ title, size = 'md', interactive, disclosed, dataTestId }) => (\n <Box sx={{ display: 'flex', alignItems: 'center', gap: 0.25, minWidth: 0, width: '100%' }}>\n <Typography\n component=\"span\"\n data-testid={`${dataTestId}-title`}\n sx={{ fontSize: sxRem(TITLE_PX[size]), fontWeight: 700, lineHeight: 1.2, ...ONE_LINE }}\n >\n {title}\n </Typography>\n {interactive && (\n <KeyboardArrowDown\n aria-hidden\n data-testid={`${dataTestId}-chevron`}\n sx={{\n flex: '0 0 auto',\n fontSize: sxRem(20),\n opacity: 0.7,\n transition: 'transform 150ms ease',\n transform: disclosed ? 'rotate(180deg)' : 'none',\n }}\n />\n )}\n </Box>\n);\n\n/**\n * The disclosure, wrapping the NAME ROW and nothing else (12-63).\n *\n * The padding is cancelled by an equal negative margin, so the hover and the\n * focus ring bleed outward while the title still starts on the same pixel as\n * the lines under it. A padded button with no offset moves one of the two.\n */\nconst discloseSx = {\n display: 'flex',\n alignItems: 'center',\n gap: 0.25,\n width: '100%',\n minWidth: 0,\n appearance: 'none',\n px: 0.5,\n mx: -0.5,\n py: 0.25,\n my: -0.25,\n border: 'none',\n borderRadius: 1.5,\n background: 'none',\n color: 'inherit',\n font: 'inherit',\n textAlign: 'left',\n cursor: 'pointer',\n // Guarded: on a touch screen an unguarded `:hover` sticks after the tap that\n // opened the panel, so the row stays highlighted behind it.\n '@media (hover: hover)': { '&:hover': { backgroundColor: 'action.hover' } },\n '&:focus-visible': {\n outline: (theme: Theme) => `${rem(theme, 2)} solid`,\n outlineColor: 'primary.main',\n outlineOffset: sxRem(2),\n },\n} as const;\n\n/**\n * The text column: the name row, then the quieter lines under it.\n *\n * ## `subtitle` and `status` are OUTSIDE the disclosure, on purpose (12-63)\n *\n * Both are `ReactNode`, and `AppHeaderStatus.items` is a `ReactNode[]` — so a\n * segment of the state line is free to be a control, and consumers put controls\n * there: a mesa chip, a service-mode picker. While the whole block was one\n * `<button>` those were `<button>`s inside a `<button>`, which is invalid HTML\n * (the content model of `button` excludes interactive content) and, more\n * visibly, means one tap fires two handlers. An adopting storefront opened two\n * popups on every tap of either control because of it, and had already\n * hand-rolled this component at one tier to dodge the nesting — a consumer\n * working around the component is the report.\n *\n * The target stays large. The button is the full-width NAME ROW, which is the\n * thing a reader aims at — what it gives up is the mark beside it, and a mark\n * that opens the panel is not worth a state line that cannot hold a control.\n */\nconst IdentityText: React.FC<\n Pick<\n AppHeaderIdentityProps,\n 'title' | 'subtitle' | 'status' | 'size' | 'discloseLabel' | 'className'\n > & {\n onDisclose: (() => void) | undefined;\n disclosed: boolean;\n dataTestId: string;\n }\n> = ({\n title,\n subtitle,\n status,\n size = 'md',\n onDisclose,\n disclosed,\n discloseLabel,\n className,\n dataTestId,\n}) => {\n const name = (\n <IdentityTitle\n title={title}\n size={size}\n interactive={Boolean(onDisclose)}\n disclosed={disclosed}\n dataTestId={dataTestId}\n />\n );\n return (\n <Box sx={{ minWidth: 0, flex: 1, display: 'flex', flexDirection: 'column', gap: 0.25 }}>\n {onDisclose ? (\n <Box\n component=\"button\"\n type=\"button\"\n className={className}\n data-testid={dataTestId}\n onClick={onDisclose}\n aria-haspopup=\"dialog\"\n aria-expanded={disclosed}\n aria-label={discloseLabel ?? `Detalhes de ${title}`}\n sx={discloseSx}\n >\n {name}\n </Box>\n ) : (\n name\n )}\n {subtitle && (\n <Typography variant=\"body2\" color=\"text.secondary\" component=\"span\" sx={ONE_LINE}>\n {subtitle}\n </Typography>\n )}\n {status}\n </Box>\n );\n};\n\n/** The placeholder held while the identity is still resolving. */\nconst IdentitySkeleton: React.FC<{ size: SizeValue; dataTestId: string }> = ({\n size,\n dataTestId,\n}) => {\n const theme = useTheme();\n return (\n <Box\n data-testid={`${dataTestId}-loading`}\n sx={{ display: 'flex', alignItems: 'center', gap: 1.25, minWidth: 0 }}\n >\n <Skeleton\n variant=\"rounded\"\n width={rem(theme, 40)}\n height={rem(theme, 40)}\n sx={{ flex: '0 0 auto' }}\n />\n <Box sx={{ minWidth: 0, flex: 1 }}>\n <Skeleton variant=\"text\" width={rem(theme, 140)} height={rem(theme, TITLE_PX[size] * 1.4)} />\n <Skeleton variant=\"text\" width={rem(theme, 180)} height={rem(theme, 16)} />\n </Box>\n </Box>\n );\n};\n\n/**\n * The BLOCK's row: the mark, then the text column beside it.\n *\n * Always a `Box` div now — since 12-63 the disclosure is the name row inside\n * the text column ({@link discloseSx}), not this element. `width: '100%'` and\n * `minWidth: 0` stay because the column below still has to ellipsise against\n * something; the argument about a `<button>` sizing to max-content moved to\n * `discloseSx`, which is where the button now is.\n */\nconst rowSx = {\n display: 'flex',\n alignItems: 'center',\n gap: 1.25,\n width: '100%',\n minWidth: 0,\n textAlign: 'left',\n} as const;\n\n/**\n * Mark + title + state line, and — when it can be opened — a name row that is\n * the button.\n *\n * The disclosure used to wrap EVERYTHING, on the argument that the chevron\n * alone is a 20px target next to a 40px mark that does nothing. The target is\n * still not the chevron: the button is the full-width NAME ROW, which is what a\n * reader aims at. What it no longer swallows is the mark beside it and the\n * quieter lines below — because those lines take `ReactNode`s, consumers put\n * CONTROLS in them, and a control inside a button is invalid HTML whose every\n * tap fires two handlers. See {@link IdentityText} (12-63).\n *\n * `className` and `dataTestId` stay on the same elements they always named: the\n * block when it is static, the disclosure when there is one.\n */\nexport const AppHeaderIdentity: React.FC<AppHeaderIdentityProps> = ({\n title,\n subtitle,\n status,\n mark,\n logoUrl,\n seedColor,\n onDisclose,\n disclosed = false,\n discloseLabel,\n loading = false,\n size = 'md',\n className,\n dataTestId = 'app-header-identity',\n}) => {\n if (loading) return <IdentitySkeleton size={size} dataTestId={dataTestId} />;\n\n return (\n <Box\n className={onDisclose ? undefined : className}\n data-testid={onDisclose ? undefined : dataTestId}\n sx={rowSx}\n >\n {mark ?? (\n <AppHeaderBrand\n name={title}\n logoUrl={logoUrl}\n seedColor={seedColor}\n size={size}\n dataTestId={`${dataTestId}-brand`}\n />\n )}\n <IdentityText\n title={title}\n subtitle={subtitle}\n status={status}\n size={size}\n onDisclose={onDisclose}\n disclosed={disclosed}\n discloseLabel={discloseLabel}\n className={className}\n dataTestId={dataTestId}\n />\n </Box>\n );\n};\n\nAppHeaderIdentity.displayName = 'AppHeaderIdentity';\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/EmptyState/EmptyState.tsx"],"sourcesContent":["import AddIcon from '@mui/icons-material/Add';\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Link from '@mui/material/Link/index.js';\nimport Stack from '@mui/material/Stack/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { type ActionIconName, type ActionSpec, actionsOf, makeTestId } from './EmptyState.helpers';\nimport {\n ACTION_MIN_WIDTH,\n ACTIONS_GAP_UNITS,\n ACTIONS_MARGIN_TOP_UNITS,\n CONTENT_GAP_UNITS,\n DESCRIPTION_LINE_HEIGHT,\n DESCRIPTION_MAX_WIDTH,\n EMPTY_STATE_GAP_UNITS,\n EMPTY_STATE_MIN_HEIGHT,\n EMPTY_STATE_PADDING_UNITS,\n EXTERNAL_LINK_MARK,\n HELP_LINK_MARGIN_TOP_UNITS,\n illustrationMaxWidth,\n illustrationOpacity,\n TITLE_MAX_WIDTH,\n} from './EmptyState.metrics';\nimport type { EmptyStateProps, EmptyStateVariant } from './EmptyState.types';\nimport { resolveTestId } from '../../../platform/test-id';\nimport { rem, sxRem } from '../../../tokens/relative';\n\n/** The shared action list names its glyph; the web draws it with MUI's icon. */\nconst ACTION_ICONS: Record<ActionIconName, React.ReactNode> = {\n Add: <AddIcon />,\n Refresh: <RefreshIcon />,\n};\n\nconst Illustration: React.FC<{\n illustration: React.ReactNode;\n variant: EmptyStateVariant;\n testId: string;\n}> = ({ illustration, variant, testId }) => (\n <Box\n data-testid={testId}\n sx={{\n maxWidth: sxRem(illustrationMaxWidth(variant)),\n width: '100%',\n height: 'auto',\n opacity: illustrationOpacity(variant),\n display: variant === 'minimal' ? 'none' : 'block',\n }}\n >\n {illustration}\n </Box>\n);\n\nconst Actions: React.FC<{\n specs: ActionSpec[];\n testId: (suffix: string) => string;\n}> = ({ specs, testId }) => {\n const theme = useTheme();\n\n return (\n <Stack\n direction={{ xs: 'column', sm: 'row' }}\n spacing={ACTIONS_GAP_UNITS}\n alignItems=\"center\"\n sx={{ mt: theme.spacing(ACTIONS_MARGIN_TOP_UNITS) }}\n >\n {specs.map((spec) => (\n <Button\n key={spec.key}\n variant={spec.variant}\n onClick={spec.onClick}\n startIcon={spec.icon && ACTION_ICONS[spec.icon]}\n data-testid={testId(spec.key)}\n sx={{ minWidth: sxRem(ACTION_MIN_WIDTH) }}\n >\n {spec.label}\n </Button>\n ))}\n </Stack>\n );\n};\n\nconst HelpLink: React.FC<{\n helpLink: NonNullable<EmptyStateProps['helpLink']>;\n testId: string;\n}> = ({ helpLink, testId }) => {\n const theme = useTheme();\n\n return (\n <Link\n href={helpLink.href}\n target={helpLink.external ? '_blank' : undefined}\n rel={helpLink.external ? 'noopener noreferrer' : undefined}\n data-testid={testId}\n sx={{\n mt: theme.spacing(HELP_LINK_MARGIN_TOP_UNITS),\n color: theme.palette.primary.main,\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n }}\n >\n {helpLink.label}\n {helpLink.external && EXTERNAL_LINK_MARK}\n </Link>\n );\n};\n\nconst Content: React.FC<{\n title: string;\n description?: string;\n titleId: string;\n testId: (suffix: string) => string;\n actions: ActionSpec[];\n showActions: boolean;\n helpLink?: EmptyStateProps['helpLink'];\n}> = ({ title, description, titleId, testId, actions, showActions, helpLink }) => {\n const theme = useTheme();\n\n return (\n <Stack spacing={CONTENT_GAP_UNITS} alignItems=\"center\">\n <Typography\n id={titleId}\n variant=\"h6\"\n component=\"h3\"\n data-testid={testId('title')}\n sx={{\n fontWeight: theme.typography.fontWeightMedium,\n color: theme.palette.text.primary,\n maxWidth: rem(theme, TITLE_MAX_WIDTH),\n }}\n >\n {title}\n </Typography>\n\n {description && (\n <Typography\n variant=\"body2\"\n color=\"text.secondary\"\n data-testid={testId('description')}\n sx={{\n maxWidth: rem(theme, DESCRIPTION_MAX_WIDTH),\n lineHeight: DESCRIPTION_LINE_HEIGHT,\n }}\n >\n {description}\n </Typography>\n )}\n\n {showActions && <Actions specs={actions} testId={testId} />}\n\n {helpLink && <HelpLink helpLink={helpLink} testId={testId('help-link')} />}\n </Stack>\n );\n};\n\nexport const EmptyState: React.FC<EmptyStateProps> = React.memo((props) => {\n const {\n variant = 'default',\n title,\n description,\n illustration,\n helpLink,\n refreshLabel = 'Refresh',\n createLabel = 'Create New',\n className,\n } = props;\n const theme = useTheme();\n const titleId = React.useId();\n // `dataTestId` is the documented spelling; `testID`, the shared contract's\n // other one, resolves to the same id.\n const dataTestId = resolveTestId(props);\n const testId = makeTestId(dataTestId);\n\n const actions = actionsOf(props, refreshLabel, createLabel);\n // The `action` variant reserves the action row even when nothing fills it.\n const showActions = variant === 'action' || actions.length > 0;\n\n return (\n <Box\n role=\"region\"\n aria-labelledby={titleId}\n className={className}\n data-testid={dataTestId || 'empty-state'}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n padding: theme.spacing(EMPTY_STATE_PADDING_UNITS),\n minHeight: rem(theme, EMPTY_STATE_MIN_HEIGHT),\n gap: theme.spacing(EMPTY_STATE_GAP_UNITS),\n }}\n >\n {/* Illustration */}\n {illustration && (\n <Illustration\n illustration={illustration}\n variant={variant}\n testId={testId('icon')}\n />\n )}\n\n {/* Content */}\n <Content\n title={title}\n description={description}\n titleId={titleId}\n testId={testId}\n actions={actions}\n showActions={showActions}\n helpLink={helpLink}\n />\n </Box>\n );\n});\n\nEmptyState.displayName = 'EmptyState';\n\nexport default EmptyState;\n"],"mappings":"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","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/form/total-form/FormErrorSnackbar.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport { Toast } from '../../feedback/Toast';\nimport { useFormContext } from './FormContext';\n\n/** Props for {@link FormErrorSnackbar}. */\nexport interface FormErrorSnackbarProps {\n /** Message shown when the form has field errors. */\n message?: string;\n}\n\n/**\n * Surfaces form-level validation failures. Thin wrapper over the existing\n * `@12-apps/ui` `Toast`: renders nothing while the form is valid and shows an\n * error toast (testid `total-form-error-snackbar`) once any field has an error.\n */\nexport function FormErrorSnackbar({\n message = 'Please fix the highlighted fields and try again.',\n}: FormErrorSnackbarProps): React.ReactElement | null {\n const { errors } = useFormContext();\n const hasErrors = Object.values(errors).some(Boolean);\n\n if (!hasErrors) return null;\n\n return (\n <Toast\n dataTestId=\"total-form-error-snackbar\"\n variant=\"error\"\n message={message}\n closable={false}\n />\n );\n}\n"],"mappings":";;;;;;;;AA2BI;AATG,SAAS,kBAAkB;AAAA,EAChC,UAAU;AACZ,GAAsD;AACpD,QAAM,EAAE,OAAO,IAAI,eAAe;AAClC,QAAM,YAAY,OAAO,OAAO,MAAM,EAAE,KAAK,OAAO;AAEpD,MAAI,CAAC,UAAW,QAAO;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YAAW;AAAA,MACX,SAAQ;AAAA,MACR;AAAA,MACA,UAAU;AAAA;AAAA,EACZ;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/utility/InfiniteScroll/InfiniteScroll.parts.tsx"],"sourcesContent":["import Alert from '@mui/material/Alert/index.js';\nimport Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/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 { rem } from '../../../tokens/relative';\n\nimport type { InfiniteScrollProps } from './InfiniteScroll.types';\n\ntype Variant = NonNullable<InfiniteScrollProps['variant']>;\n\nconst CENTERED: SxProps<Theme> = {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n p: 2,\n};\n\nexport const DefaultLoader: React.FC<{ loadingText: string }> = ({ loadingText }) => {\n const theme = useTheme();\n return (\n <Box sx={CENTERED}>\n <CircularProgress size={rem(theme, 24)} />\n <Typography variant=\"body2\" sx={{ ml: 1 }}>\n {loadingText}\n </Typography>\n </Box>\n );\n};\n\nexport const DefaultEndMessage: React.FC<{ endText: string }> = ({ endText }) => (\n <Box sx={CENTERED}>\n <Typography variant=\"body2\" color=\"text.secondary\">\n {endText}\n </Typography>\n </Box>\n);\n\nexport const DefaultError: React.FC<{ error: Error }> = ({ error }) => (\n <Alert severity=\"error\" sx={{ m: 2 }}>\n {error.message || 'An error occurred while loading more items'}\n </Alert>\n);\n\n/**\n * The horizontal variant's `width` as CSS: a number of 1 or less stays the\n * fraction `sx` reads it as, a larger one is design px, a string is as given;\n * unset (or 0) fills the parent.\n */\nconst horizontalWidth = (theme: Theme, width: number | string | undefined): string => {\n if (!width) return '100%';\n if (typeof width !== 'number') return width;\n return width <= 1 ? `${width * 100}%` : rem(theme, width);\n};\n\n/**\n * `horizontal` scrolls along a row; `reverse` stacks bottom-up, for a chat log\n * that loads older messages as you scroll away from the newest.\n */\nexport const containerStyles = (theme: Theme, variant: Variant, width?: number | string) => {\n const horizontal = variant === 'horizontal';\n const base = {\n width: horizontal ? horizontalWidth(theme, width) : '100%',\n height: horizontal ? '100%' : 'auto',\n overflowX: horizontal ? 'auto' : 'hidden',\n overflowY: horizontal ? 'hidden' : 'visible',\n display: 'flex',\n flexDirection: horizontal ? 'row' : 'column',\n };\n\n return variant === 'reverse' ? { ...base, flexDirection: 'column-reverse' } : base;\n};\n"],"mappings":";;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAChB,OAAO,sBAAsB;AAC7B,OAAO,gBAAgB;AACvB,SAAS,gBAA0C;AAmB/C,SACE,KADF;AAVJ,IAAM,WAA2B;AAAA,EAC/B,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,GAAG;AACL;AAEO,IAAM,gBAAmD,CAAC,EAAE,YAAY,MAAM;AACnF,QAAM,QAAQ,SAAS;AACvB,SACE,qBAAC,OAAI,IAAI,UACP;AAAA,wBAAC,oBAAiB,MAAM,IAAI,OAAO,EAAE,GAAG;AAAA,IACxC,oBAAC,cAAW,SAAQ,SAAQ,IAAI,EAAE,IAAI,EAAE,GACrC,uBACH;AAAA,KACF;AAEJ;AAEO,IAAM,oBAAmD,CAAC,EAAE,QAAQ,MACzE,oBAAC,OAAI,IAAI,UACP,8BAAC,cAAW,SAAQ,SAAQ,OAAM,kBAC/B,mBACH,GACF;AAGK,IAAM,eAA2C,CAAC,EAAE,MAAM,MAC/D,oBAAC,SAAM,UAAS,SAAQ,IAAI,EAAE,GAAG,EAAE,GAChC,gBAAM,WAAW,8CACpB;AAQF,IAAM,kBAAkB,CAAC,OAAc,UAA+C;AACpF,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,SAAO,SAAS,IAAI,GAAG,QAAQ,GAAG,MAAM,IAAI,OAAO,KAAK;AAC1D;AAMO,IAAM,kBAAkB,CAAC,OAAc,SAAkB,UAA4B;AAC1F,QAAM,aAAa,YAAY;AAC/B,QAAM,OAAO;AAAA,IACX,OAAO,aAAa,gBAAgB,OAAO,KAAK,IAAI;AAAA,IACpD,QAAQ,aAAa,SAAS;AAAA,IAC9B,WAAW,aAAa,SAAS;AAAA,IACjC,WAAW,aAAa,WAAW;AAAA,IACnC,SAAS;AAAA,IACT,eAAe,aAAa,QAAQ;AAAA,EACtC;AAEA,SAAO,YAAY,YAAY,EAAE,GAAG,MAAM,eAAe,iBAAiB,IAAI;AAChF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/Sheet/Sheet.body.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport React from 'react';\n\nimport { SheetContent, SheetFooter, SheetHeader } from './Sheet.parts';\nimport type { SheetProps } from './Sheet.types';\nimport { sxRem } from '../../../tokens/relative';\nimport { muiColor } from '../../../tokens/scales';\n\nexport interface SheetBodyProps extends Pick<\n SheetProps,\n | 'title'\n | 'description'\n | 'showCloseButton'\n | 'showHandle'\n | 'header'\n | 'footer'\n | 'loading'\n | 'color'\n | 'children'\n | 'onClick'\n | 'onFocus'\n | 'onBlur'\n> {\n testId: string;\n isDragging: boolean;\n isVerticalSheet: boolean;\n isDraggableVariant: boolean;\n onClose: () => void;\n onDragStart: (e: React.MouseEvent | React.TouchEvent) => void;\n}\n\n/**\n * The header earns its place if it would show anything at all — a grab handle,\n * either piece of text, the close button, or caller-supplied content.\n */\nconst needsHeader = (props: SheetBodyProps) =>\n Boolean(\n props.showHandle ||\n props.title ||\n props.description ||\n props.showCloseButton ||\n props.header,\n );\n\n/** The centred spinner shown in place of the children while `loading`. */\nconst SheetLoading: React.FC<Pick<SheetBodyProps, 'color'>> = ({ color }) => (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: sxRem(200),\n }}\n >\n <CircularProgress color={color === undefined ? undefined : muiColor(color, 'inherit')} />\n </Box>\n);\n\n/**\n * What the sheet contains, independent of which drawer is carrying it. The\n * swipeable and plain branches render exactly this — they differ only in the\n * MUI component and its swipe props, so the contents are built once.\n */\nexport const SheetBody: React.FC<SheetBodyProps> = (props) => {\n const {\n title,\n description,\n showCloseButton,\n showHandle,\n header,\n footer,\n loading,\n color,\n children,\n onClick,\n onFocus,\n onBlur,\n testId,\n isDragging,\n isVerticalSheet,\n isDraggableVariant,\n onClose,\n onDragStart,\n } = props;\n\n return (\n <Box\n onClick={onClick}\n onFocus={onFocus}\n onBlur={onBlur}\n data-testid={testId}\n sx={{\n // A vertical sheet's panel is a column whose height is its CONTENT, up\n // to the `size` ceiling — so this fills what the panel has rather than\n // asking for a percentage of it, and `minHeight: 0` is what lets it\n // shrink past its content so `SheetContent` scrolls instead of the\n // panel overflowing. A side sheet's panel is full-height already.\n ...(isVerticalSheet ? { flex: '1 1 auto', minHeight: 0 } : { height: '100%' }),\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n userSelect: isDragging ? 'none' : 'auto',\n }}\n >\n {needsHeader(props) && (\n <SheetHeader\n title={title}\n description={description}\n showCloseButton={showCloseButton}\n onClose={onClose}\n showHandle={showHandle && isVerticalSheet}\n isDraggable={isDraggableVariant && isVerticalSheet}\n onDragStart={onDragStart}\n dataTestId={`${testId}-header`}\n >\n {header}\n </SheetHeader>\n )}\n\n <SheetContent padded dataTestId={`${testId}-content`}>\n {loading ? <SheetLoading color={color} /> : children}\n </SheetContent>\n\n {footer && (\n <SheetFooter sticky divider dataTestId={`${testId}-footer`}>\n {footer}\n </SheetFooter>\n )}\n </Box>\n );\n};\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,sBAAsB;AAsDzB,cAgCA,YAhCA;AAnBJ,IAAM,cAAc,CAAC,UACnB;AAAA,EACE,MAAM,cACN,MAAM,SACN,MAAM,eACN,MAAM,mBACN,MAAM;AACR;AAGF,IAAM,eAAwD,CAAC,EAAE,MAAM,MACrE;AAAA,EAAC;AAAA;AAAA,IACC,IAAI;AAAA,MACF,SAAS;AAAA,MACT,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,WAAW,MAAM,GAAG;AAAA,IACtB;AAAA,IAEA,8BAAC,oBAAiB,OAAO,UAAU,SAAY,SAAY,SAAS,OAAO,SAAS,GAAG;AAAA;AACzF;AAQK,IAAM,YAAsC,CAAC,UAAU;AAC5D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAa;AAAA,MACb,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMF,GAAI,kBAAkB,EAAE,MAAM,YAAY,WAAW,EAAE,IAAI,EAAE,QAAQ,OAAO;AAAA,QAC5E,SAAS;AAAA,QACT,eAAe;AAAA,QACf,UAAU;AAAA,QACV,YAAY,aAAa,SAAS;AAAA,MACpC;AAAA,MAEC;AAAA,oBAAY,KAAK,KAChB;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAY,cAAc;AAAA,YAC1B,aAAa,sBAAsB;AAAA,YACnC;AAAA,YACA,YAAY,GAAG,MAAM;AAAA,YAEpB;AAAA;AAAA,QACH;AAAA,QAGF,oBAAC,gBAAa,QAAM,MAAC,YAAY,GAAG,MAAM,YACvC,oBAAU,oBAAC,gBAAa,OAAc,IAAK,UAC9C;AAAA,QAEC,UACC,oBAAC,eAAY,QAAM,MAAC,SAAO,MAAC,YAAY,GAAG,MAAM,WAC9C,kBACH;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/data-display/AlertDialog/AlertDialog.parts.tsx"],"sourcesContent":["/**\n * The AlertDialog's action row, kept apart from the dialog shell so each stays\n * inside the complexity budget: which button is filled, where each one sits,\n * and how the row wraps.\n */\nimport type { ButtonProps } from '@mui/material/Button/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport DialogActions from '@mui/material/DialogActions/index.js';\nimport { styled, useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { rem } from '../../../tokens/relative';\n\nimport type { AlertDialogProps } from './AlertDialog.types';\n\n/**\n * The action row WRAPS WHOLE BUTTONS; it never breaks a label inside one. A pair\n * that did not fit side by side used to squeeze the longer label onto two\n * lines, so one button stood twice as tall as its neighbour. Now the row breaks\n * instead. `wrap-reverse` puts the LAST button — the primary, whichever\n * `emphasis` picks — on top when it stacks, the same slot it holds on the right\n * when the row fits. A pair that fits is laid out exactly as before: natural\n * widths, pushed to the right.\n *\n * `fill` — set only by `emphasis=\"cancel\"` — lets the buttons grow to share the\n * row, and so to take the full width of their line once it stacks. It is not\n * the default because growing also stretches a pair that fits, which would\n * redraw every existing dialog's footer.\n *\n * Rendered with `disableSpacing`: MUI's own spacing is a left margin on every\n * button after the first, which would indent a button that wrapped onto a line\n * of its own. The gaps below replace it, at the same 16px across.\n */\nconst StyledDialogActions = styled(DialogActions, {\n shouldForwardProp: (prop) => prop !== 'fill',\n})<{ fill: boolean }>(({ theme, fill }) => ({\n padding: theme.spacing(2, 3, 3, 3),\n flexWrap: 'wrap-reverse',\n columnGap: theme.spacing(2),\n rowGap: theme.spacing(1),\n // A 40px tap target, the floor the kit's own Button keeps (FUT-3269): MUI's\n // medium button is 37px, short of it on a phone.\n '& > .MuiButton-root': { minHeight: rem(theme, 40) },\n ...(fill && { '& > .MuiButton-root': { flexGrow: 1, minHeight: rem(theme, 40) } }),\n}));\n\nconst confirmButtonColor = (variant: AlertDialogProps['variant']): 'error' | 'primary' =>\n variant === 'destructive' ? 'error' : 'primary';\n\ninterface ButtonLook {\n variant: ButtonProps['variant'];\n color: ButtonProps['color'];\n}\n\n/**\n * How each button is drawn, by `emphasis`: the emphasised one is filled, the\n * other a NEUTRAL outline. Primary / neutral both ways round — a confirm that\n * steps down drops the variant's colour too, so the one filled button is the\n * only coloured thing in the row and the eye has a single place to land.\n */\nconst buttonLooks = (\n emphasis: AlertDialogProps['emphasis'],\n variant: AlertDialogProps['variant'],\n): { cancel: ButtonLook; confirm: ButtonLook } =>\n emphasis === 'cancel'\n ? {\n cancel: { variant: 'contained', color: 'primary' },\n confirm: { variant: 'outlined', color: 'inherit' },\n }\n : {\n cancel: { variant: 'outlined', color: 'inherit' },\n confirm: { variant: 'contained', color: confirmButtonColor(variant) },\n };\n\n/**\n * The emphasis that applies: `cancel` only while the cancel is shown. A hidden\n * cancel with the confirm stepped down would leave a dialog with no primary.\n */\nconst effectiveEmphasis = (\n emphasis: AlertDialogProps['emphasis'],\n showCancel: boolean,\n): NonNullable<AlertDialogProps['emphasis']> =>\n emphasis === 'cancel' && showCancel ? 'cancel' : 'confirm';\n\n/**\n * Whether the cancel owns focus on open: what `initialFocus` says, and when it\n * says nothing, the emphasised button — so Enter on a steered question keeps\n * the work instead of completing the loss.\n */\nconst focusesCancel = (\n initialFocus: AlertDialogProps['initialFocus'],\n emphasis: NonNullable<AlertDialogProps['emphasis']>,\n): boolean => (initialFocus ?? emphasis) === 'cancel';\n\n/** The two buttons in slot order: the emphasised one LAST, the primary slot. */\nconst inSlotOrder = (\n emphasis: AlertDialogProps['emphasis'],\n cancel: React.ReactNode,\n confirm: React.ReactNode,\n): React.ReactNode[] => (emphasis === 'cancel' ? [confirm, cancel] : [cancel, confirm]);\n\n/**\n * Action row: the optional cancel button and the (variant-coloured) confirm,\n * with the emphasised one LAST — the primary slot, on the right or, once the\n * row stacks, on top. DOM order is the tab order, so it follows the same rule.\n */\nexport function AlertDialogFooter({\n variant,\n cancelText = 'Cancel',\n confirmText = 'Confirm',\n showCancel = true,\n loading = false,\n confirmDisabled = false,\n initialFocus,\n emphasis: asked,\n onCancel,\n onConfirm,\n dataTestId,\n}: Pick<\n AlertDialogProps,\n | 'variant'\n | 'cancelText'\n | 'confirmText'\n | 'showCancel'\n | 'loading'\n | 'confirmDisabled'\n | 'initialFocus'\n | 'emphasis'\n> & {\n onCancel: () => void;\n onConfirm: () => void;\n dataTestId: string;\n}): React.ReactElement {\n const theme = useTheme();\n const emphasis = effectiveEmphasis(asked, showCancel);\n const look = buttonLooks(emphasis, variant);\n const cancelFocused = focusesCancel(initialFocus, emphasis);\n const cancel = showCancel && (\n <Button\n key=\"cancel\"\n onClick={onCancel}\n variant={look.cancel.variant}\n color={look.cancel.color}\n disabled={loading}\n autoFocus={cancelFocused}\n data-testid={`${dataTestId}-cancel-button`}\n >\n {cancelText}\n </Button>\n );\n const confirm = (\n <Button\n key=\"confirm\"\n onClick={onConfirm}\n variant={look.confirm.variant}\n color={look.confirm.color}\n disabled={confirmDisabled || loading}\n startIcon={\n loading ? (\n <CircularProgress\n size={rem(theme, 16)}\n color=\"inherit\"\n data-testid={`${dataTestId}-loading-spinner`}\n />\n ) : undefined\n }\n autoFocus={!cancelFocused}\n data-testid={`${dataTestId}-confirm-button`}\n >\n {confirmText}\n </Button>\n );\n return (\n <StyledDialogActions\n disableSpacing\n fill={emphasis === 'cancel'}\n data-testid={`${dataTestId}-actions`}\n >\n {inSlotOrder(emphasis, cancel, confirm)}\n </StyledDialogActions>\n );\n}\n"],"mappings":";;;;;AAMA,OAAO,YAAY;AACnB,OAAO,sBAAsB;AAC7B,OAAO,mBAAmB;AAC1B,SAAS,QAAQ,gBAAgB;AAkI7B;AAzGJ,IAAM,sBAAsB,OAAO,eAAe;AAAA,EAChD,mBAAmB,CAAC,SAAS,SAAS;AACxC,CAAC,EAAqB,CAAC,EAAE,OAAO,KAAK,OAAO;AAAA,EAC1C,SAAS,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC;AAAA,EACjC,UAAU;AAAA,EACV,WAAW,MAAM,QAAQ,CAAC;AAAA,EAC1B,QAAQ,MAAM,QAAQ,CAAC;AAAA;AAAA;AAAA,EAGvB,uBAAuB,EAAE,WAAW,IAAI,OAAO,EAAE,EAAE;AAAA,EACnD,GAAI,QAAQ,EAAE,uBAAuB,EAAE,UAAU,GAAG,WAAW,IAAI,OAAO,EAAE,EAAE,EAAE;AAClF,EAAE;AAEF,IAAM,qBAAqB,CAAC,YAC1B,YAAY,gBAAgB,UAAU;AAaxC,IAAM,cAAc,CAClB,UACA,YAEA,aAAa,WACT;AAAA,EACE,QAAQ,EAAE,SAAS,aAAa,OAAO,UAAU;AAAA,EACjD,SAAS,EAAE,SAAS,YAAY,OAAO,UAAU;AACnD,IACA;AAAA,EACE,QAAQ,EAAE,SAAS,YAAY,OAAO,UAAU;AAAA,EAChD,SAAS,EAAE,SAAS,aAAa,OAAO,mBAAmB,OAAO,EAAE;AACtE;AAMN,IAAM,oBAAoB,CACxB,UACA,eAEA,aAAa,YAAY,aAAa,WAAW;AAOnD,IAAM,gBAAgB,CACpB,cACA,cACa,gBAAgB,cAAc;AAG7C,IAAM,cAAc,CAClB,UACA,QACA,YACuB,aAAa,WAAW,CAAC,SAAS,MAAM,IAAI,CAAC,QAAQ,OAAO;AAO9E,SAAS,kBAAkB;AAAA,EAChC;AAAA,EACA,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AACF,GAcuB;AACrB,QAAM,QAAQ,SAAS;AACvB,QAAM,WAAW,kBAAkB,OAAO,UAAU;AACpD,QAAM,OAAO,YAAY,UAAU,OAAO;AAC1C,QAAM,gBAAgB,cAAc,cAAc,QAAQ;AAC1D,QAAM,SAAS,cACb;AAAA,IAAC;AAAA;AAAA,MAEC,SAAS;AAAA,MACT,SAAS,KAAK,OAAO;AAAA,MACrB,OAAO,KAAK,OAAO;AAAA,MACnB,UAAU;AAAA,MACV,WAAW;AAAA,MACX,eAAa,GAAG,UAAU;AAAA,MAEzB;AAAA;AAAA,IARG;AAAA,EASN;AAEF,QAAM,UACJ;AAAA,IAAC;AAAA;AAAA,MAEC,SAAS;AAAA,MACT,SAAS,KAAK,QAAQ;AAAA,MACtB,OAAO,KAAK,QAAQ;AAAA,MACpB,UAAU,mBAAmB;AAAA,MAC7B,WACE,UACE;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,IAAI,OAAO,EAAE;AAAA,UACnB,OAAM;AAAA,UACN,eAAa,GAAG,UAAU;AAAA;AAAA,MAC5B,IACE;AAAA,MAEN,WAAW,CAAC;AAAA,MACZ,eAAa,GAAG,UAAU;AAAA,MAEzB;AAAA;AAAA,IAjBG;AAAA,EAkBN;AAEF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAc;AAAA,MACd,MAAM,aAAa;AAAA,MACnB,eAAa,GAAG,UAAU;AAAA,MAEzB,sBAAY,UAAU,QAAQ,OAAO;AAAA;AAAA,EACxC;AAEJ;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/layout/SettingsLayout/SettingsLayout.tsx"],"sourcesContent":["'use client';\n\nimport Box from '@mui/material/Box/index.js';\nimport type { SxProps, Theme } from '@mui/material/styles/index.js';\nimport React, { useMemo, useState } from 'react';\n\nimport { withDefaults } from '../../../utils/withDefaults';\nimport { activeItemLabel, filterGroups } from './SettingsLayout.filters';\nimport { SettingsRail } from './SettingsLayout.rail';\nimport { atLeastRail } from './SettingsLayout.styles';\nimport { SettingsPanel } from './SettingsPanel';\nimport type { SettingsLayoutProps } from './SettingsLayout.types';\n\n/**\n * The props with every default already applied.\n *\n * A table through `withDefaults` rather than a `= default` per destructured\n * prop: each of those is a branch, and seven of them put the component over the\n * complexity bar before it renders anything. The single cast is what buys the\n * body non-optional values — without it every use site would restate the\n * default as a `??`, which is the same default written twice and free to drift.\n */\ntype ResolvedProps = SettingsLayoutProps &\n Required<\n Pick<\n SettingsLayoutProps,\n | 'searchPlaceholder'\n | 'defaultQuery'\n | 'emptySearchLabel'\n | 'testIdPrefix'\n | 'railBreakpoint'\n | 'navVariant'\n | 'atIndex'\n | 'backLabel'\n >\n >;\n\nconst DEFAULTS = {\n searchPlaceholder: 'Search settings',\n defaultQuery: '',\n emptySearchLabel: 'No settings match your search.',\n testIdPrefix: 'settings',\n railBreakpoint: 'md',\n navVariant: 'switcher',\n atIndex: false,\n backLabel: 'Back',\n} satisfies Partial<SettingsLayoutProps>;\n\n/**\n * How the rail looks: its search field, and its frame from the breakpoint up.\n * Both default to the shape every consumer had before they existed.\n */\nfunction railLookOf({\n searchable = true,\n railVariant = 'divided',\n}: SettingsLayoutProps): Required<Pick<SettingsLayoutProps, 'searchable' | 'railVariant'>> {\n return { searchable, railVariant };\n}\n\n/** Stacked below the rail's breakpoint, two columns at and above it. */\nfunction shellSx(\n breakpoint: SettingsLayoutProps['railBreakpoint'],\n fillHeight: boolean,\n railVariant: SettingsLayoutProps['railVariant'],\n): SxProps<Theme> {\n return (theme: Theme) => ({\n display: 'flex',\n flexDirection: 'column' as const,\n alignItems: 'stretch',\n gap: 1.5,\n width: '100%',\n minWidth: 0,\n // Only ever at the wide shape. Narrow, the rail is a disclosure or the page\n // itself, and two independent scrollbars on a phone is a trap rather than a\n // convenience.\n [atLeastRail(theme, breakpoint ?? 'md')]: {\n flexDirection: 'row',\n // A card stands apart from the panel by 32px, as its prototype draws it;\n // the ruled column keeps its 24.\n gap: railVariant === 'card' ? 4 : 3,\n ...(fillHeight ? { height: '100%', minHeight: 0 } : {}),\n },\n });\n}\n\n/**\n * A reusable, agnostic Facebook-style settings shell: a searchable left rail of\n * grouped categories/subcategories and a central panel that renders the selected\n * configuration screen (`children`). Navigation is data-driven via `groups`; the\n * host owns routing (pass `linkComponent` + item `href`, or handle `onSelectItem`).\n *\n * ## Two narrow-width shapes\n *\n * `navVariant=\"switcher\"` (the default) folds the rail into a disclosure above\n * the panel. `navVariant=\"drilldown\"` gives the phone shape instead: at the\n * area's index the LIST is the page, and inside a section the panel is the page\n * with a back link and a scrollable strip of sibling sections above it.\n *\n * ## Why the width decision is CSS and not JavaScript\n *\n * Every part that changes between the two shapes does it through a `display`\n * pair keyed on `railBreakpoint`. Nothing here asks a media query in JS and\n * renders one branch.\n *\n * That is not a performance preference. A layout that RENDERS one navigation and\n * not the other can offer the narrow width less than the wide one, and no test\n * or review catches it — the missing control simply is not in the tree to be\n * asserted about. With both forms always mounted, \"the narrow width reaches\n * everything the wide one does\" holds by construction, and an audit that counts\n * controls per width gets the same answer at both.\n */\nexport const SettingsLayout: React.FC<SettingsLayoutProps> = (props) => {\n const {\n title,\n groups,\n activeItemId,\n onSelectItem,\n searchPlaceholder,\n defaultQuery,\n emptySearchLabel,\n emptySearchAction,\n linkComponent,\n children,\n testIdPrefix,\n railBreakpoint,\n fillHeight = false,\n navVariant,\n atIndex,\n indexHref,\n backLabel,\n sectionChips,\n } = withDefaults(props, DEFAULTS) as ResolvedProps;\n const [query, setQuery] = useState(defaultQuery);\n const [navOpen, setNavOpen] = useState(false);\n const filteredGroups = useMemo(() => filterGroups(groups, query), [groups, query]);\n const activeLabel = useMemo(() => activeItemLabel(groups, activeItemId), [groups, activeItemId]);\n\n const drilldown = navVariant === 'drilldown';\n const ariaLabel = typeof title === 'string' ? title : 'Settings';\n\n return (\n <Box\n data-testid={testIdPrefix}\n data-nav-variant={navVariant}\n data-at-index={atIndex ? 'true' : 'false'}\n sx={shellSx(railBreakpoint, fillHeight, railLookOf(props).railVariant)}\n >\n <SettingsRail\n title={title}\n activeLabel={activeLabel}\n navOpen={navOpen}\n onToggleNav={() => setNavOpen((open) => !open)}\n query={query}\n onQueryChange={setQuery}\n searchPlaceholder={searchPlaceholder}\n emptySearchLabel={emptySearchLabel}\n emptySearchAction={emptySearchAction}\n filteredGroups={filteredGroups}\n activeItemId={activeItemId}\n linkComponent={linkComponent}\n onSelectItem={onSelectItem}\n onNavigate={() => setNavOpen(false)}\n testIdPrefix={testIdPrefix}\n variant={navVariant}\n {...railLookOf(props)}\n breakpoint={railBreakpoint}\n atIndex={atIndex}\n fillHeight={fillHeight}\n />\n\n <SettingsPanel\n inSection={drilldown && !atIndex}\n hideOnNarrow={drilldown && atIndex}\n breakpoint={railBreakpoint}\n indexHref={indexHref}\n sectionTitle={props.sectionTitle}\n sectionDescription={props.sectionDescription}\n backLabel={backLabel}\n ariaLabel={ariaLabel}\n sectionChips={sectionChips}\n activeItemId={activeItemId}\n linkComponent={linkComponent}\n onSelectItem={onSelectItem}\n testIdPrefix={testIdPrefix}\n fillHeight={fillHeight}\n >\n {children}\n </SettingsPanel>\n </Box>\n );\n};\n\nSettingsLayout.displayName = 'SettingsLayout';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAEA,OAAO,SAAS;AAEhB,SAAgB,SAAS,gBAAgB;AAyIrC,SAME,KANF;AAxGJ,IAAM,WAAW;AAAA,EACf,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AACb;AAMA,SAAS,WAAW;AAAA,EAClB,aAAa;AAAA,EACb,cAAc;AAChB,GAA2F;AACzF,SAAO,EAAE,YAAY,YAAY;AACnC;AAGA,SAAS,QACP,YACA,YACA,aACgB;AAChB,SAAO,CAAC,WAAkB;AAAA,IACxB,SAAS;AAAA,IACT,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA;AAAA;AAAA;AAAA,IAIV,CAAC,YAAY,OAAO,cAAc,IAAI,CAAC,GAAG;AAAA,MACxC,eAAe;AAAA;AAAA;AAAA,MAGf,KAAK,gBAAgB,SAAS,IAAI;AAAA,MAClC,GAAI,aAAa,EAAE,QAAQ,QAAQ,WAAW,EAAE,IAAI,CAAC;AAAA,IACvD;AAAA,EACF;AACF;AA4BO,IAAM,iBAAgD,CAAC,UAAU;AACtE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,aAAa,OAAO,QAAQ;AAChC,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,YAAY;AAC/C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,iBAAiB,QAAQ,MAAM,aAAa,QAAQ,KAAK,GAAG,CAAC,QAAQ,KAAK,CAAC;AACjF,QAAM,cAAc,QAAQ,MAAM,gBAAgB,QAAQ,YAAY,GAAG,CAAC,QAAQ,YAAY,CAAC;AAE/F,QAAM,YAAY,eAAe;AACjC,QAAM,YAAY,OAAO,UAAU,WAAW,QAAQ;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa;AAAA,MACb,oBAAkB;AAAA,MAClB,iBAAe,UAAU,SAAS;AAAA,MAClC,IAAI,QAAQ,gBAAgB,YAAY,WAAW,KAAK,EAAE,WAAW;AAAA,MAErE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA,aAAa,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI;AAAA,YAC7C;AAAA,YACA,eAAe;AAAA,YACf;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAY,MAAM,WAAW,KAAK;AAAA,YAClC;AAAA,YACA,SAAS;AAAA,YACR,GAAG,WAAW,KAAK;AAAA,YACpB,YAAY;AAAA,YACZ;AAAA,YACA;AAAA;AAAA,QACF;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,aAAa,CAAC;AAAA,YACzB,cAAc,aAAa;AAAA,YAC3B,YAAY;AAAA,YACZ;AAAA,YACA,cAAc,MAAM;AAAA,YACpB,oBAAoB,MAAM;AAAA,YAC1B;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YAEC;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,eAAe,cAAc;","names":[]}