@12-apps/ui 6.44.3 → 6.45.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 (414) hide show
  1. package/NATIVE.md +1 -1
  2. package/components-catalog.md +13 -4
  3. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +4 -4
  4. package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
  5. package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
  6. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +1 -1
  7. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +1 -1
  8. package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
  9. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  10. package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
  11. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  12. package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
  13. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  14. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +37 -37
  15. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +53 -53
  16. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +4 -4
  17. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +5 -5
  18. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +11 -11
  19. package/dist/_internal/components/data-display/DataViews/base-card.js +5 -5
  20. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +1 -1
  21. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +3 -3
  22. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +1 -1
  23. package/dist/_internal/components/data-display/DataViews/base-list-card.js +7 -7
  24. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +8 -8
  25. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +1 -1
  26. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +15 -15
  27. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +4 -4
  28. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +33 -33
  29. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +14 -14
  30. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +12 -12
  31. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +13 -13
  32. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
  33. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +3 -3
  34. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +6 -6
  35. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +16 -16
  36. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +5 -5
  37. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
  38. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -3
  39. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
  40. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +6 -6
  41. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +11 -11
  42. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +3 -3
  43. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
  44. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
  45. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
  46. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
  47. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  48. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +5 -5
  49. package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
  50. package/dist/_internal/components/data-display/index.js +35 -35
  51. package/dist/_internal/components/feedback/Dialog/Dialog.js +3 -3
  52. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +6 -6
  53. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  54. package/dist/_internal/components/feedback/index.js +14 -14
  55. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
  56. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +5 -5
  57. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +2 -2
  58. package/dist/_internal/components/form/Calendar/Calendar.js +4 -4
  59. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  60. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  61. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +2 -2
  62. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +5 -5
  63. package/dist/_internal/components/form/CepField/CepField.js +3 -3
  64. package/dist/_internal/components/form/Checkbox/Checkbox.js +2 -2
  65. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
  66. package/dist/_internal/components/form/Command/Command.js +2 -2
  67. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +7 -7
  68. package/dist/_internal/components/form/Input/Input.js +2 -2
  69. package/dist/_internal/components/form/Menubar/Menubar.js +2 -2
  70. package/dist/_internal/components/form/NumberField/NumberField.js +3 -3
  71. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
  72. package/dist/_internal/components/form/Switch/Switch.js +5 -5
  73. package/dist/_internal/components/form/Switch/Switch.parts.js +3 -3
  74. package/dist/_internal/components/form/Switch/Switch.styles.js +2 -2
  75. package/dist/_internal/components/form/UploadButton/UploadButton.js +2 -2
  76. package/dist/_internal/components/form/index.js +35 -35
  77. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +6 -6
  78. package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -4
  79. package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -3
  80. package/dist/_internal/components/form/total-form/Fields/index.js +12 -12
  81. package/dist/_internal/components/index.js +130 -112
  82. package/dist/_internal/components/layout/Card/Card.js +2 -2
  83. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +7 -7
  84. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +6 -6
  85. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +7 -7
  86. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
  87. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +3 -3
  88. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +2 -2
  89. package/dist/_internal/components/layout/Skeleton/Skeleton.js +2 -2
  90. package/dist/_internal/components/layout/index.js +19 -19
  91. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
  92. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +2 -2
  93. package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
  94. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +45 -0
  95. package/dist/_internal/components/navigation/SectionNav/SectionNav.helpers.js +14 -0
  96. package/dist/_internal/components/navigation/SectionNav/SectionNav.helpers.js.map +1 -0
  97. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +45 -0
  98. package/dist/_internal/components/navigation/SectionNav/SectionNav.js.map +1 -0
  99. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +46 -0
  100. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js.map +1 -0
  101. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +39 -0
  102. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js.map +1 -0
  103. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +39 -0
  104. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js.map +1 -0
  105. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +41 -0
  106. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js.map +1 -0
  107. package/dist/_internal/components/navigation/SectionNav/SectionNav.types.js +1 -0
  108. package/dist/_internal/components/navigation/SectionNav/SectionNav.types.js.map +1 -0
  109. package/dist/_internal/components/navigation/SectionNav/__stories__/fixtures.js +127 -0
  110. package/dist/_internal/components/navigation/SectionNav/__stories__/fixtures.js.map +1 -0
  111. package/dist/_internal/components/navigation/index.js +39 -12
  112. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +2 -2
  113. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
  114. package/dist/_internal/components/utility/index.js +8 -8
  115. package/dist/_internal/en-US.navigation.js +5 -3
  116. package/dist/_internal/pt-BR.navigation.js +5 -3
  117. package/dist/_internal/social-login-button/social-login-button.js +3 -3
  118. package/dist/_internal/user-avatar/user-avatar.js +5 -5
  119. package/dist/charts.js +6 -6
  120. package/dist/{chunk-J6TIK47Z.js → chunk-2HPNN5XA.js} +2 -2
  121. package/dist/{chunk-BEGTLELZ.js → chunk-2K2B5QM2.js} +5 -5
  122. package/dist/chunk-2OP2FYB3.js +174 -0
  123. package/dist/chunk-2OP2FYB3.js.map +1 -0
  124. package/dist/chunk-3WCUGTRH.js +240 -0
  125. package/dist/chunk-3WCUGTRH.js.map +1 -0
  126. package/dist/{chunk-3I77A65F.js → chunk-442FSG7G.js} +4 -4
  127. package/dist/{chunk-ZOUWHGV3.js → chunk-4MGFUPQT.js} +4 -4
  128. package/dist/{chunk-26QYVCDK.js → chunk-525AOF6I.js} +2 -2
  129. package/dist/chunk-5AK2EZG5.js +1 -0
  130. package/dist/chunk-5AK2EZG5.js.map +1 -0
  131. package/dist/{chunk-5752357K.js → chunk-5KGABAQB.js} +4 -4
  132. package/dist/{chunk-SDKOOVEX.js → chunk-6GAZAJXB.js} +4 -4
  133. package/dist/{chunk-EO6LCGGQ.js → chunk-6J32H2RN.js} +2 -2
  134. package/dist/chunk-6OLJ2RAT.js +62 -0
  135. package/dist/chunk-6OLJ2RAT.js.map +1 -0
  136. package/dist/{chunk-7XDET7PL.js → chunk-6OQHZVK6.js} +4 -4
  137. package/dist/{chunk-F3AYISXT.js → chunk-6PU3JYVY.js} +4 -4
  138. package/dist/{chunk-RRAWJQIO.js → chunk-A64MQ7GW.js} +2 -2
  139. package/dist/{chunk-ADSA76T7.js → chunk-AG3DY5TH.js} +2 -2
  140. package/dist/{chunk-CIBTYBBN.js → chunk-AJ4MRDKM.js} +3 -3
  141. package/dist/{chunk-RJ35IXFD.js → chunk-B7HYM3QB.js} +2 -2
  142. package/dist/{chunk-X3C3VTYS.js → chunk-BEX3FLHB.js} +2 -2
  143. package/dist/{chunk-C5RTSOXD.js → chunk-BUAFRLSB.js} +2 -2
  144. package/dist/{chunk-DH6SL3SY.js → chunk-DSDNGTH6.js} +6 -6
  145. package/dist/{chunk-AUQRGZE7.js → chunk-EDZYPHZT.js} +7 -2
  146. package/dist/chunk-EDZYPHZT.js.map +1 -0
  147. package/dist/{chunk-JZ7ZRZTF.js → chunk-EJMSSDLM.js} +2 -2
  148. package/dist/{chunk-62OGPVCL.js → chunk-EPZ7B35I.js} +7 -2
  149. package/dist/chunk-EPZ7B35I.js.map +1 -0
  150. package/dist/{chunk-GP4BJI3F.js → chunk-ETCS6OBJ.js} +4 -4
  151. package/dist/{chunk-MVR4GURP.js → chunk-EU76OQGR.js} +2 -2
  152. package/dist/{chunk-DHW5UMUG.js → chunk-FNLD2KCQ.js} +4 -4
  153. package/dist/{chunk-XRUW7DMH.js → chunk-FPKVHR5L.js} +2 -2
  154. package/dist/{chunk-HKBJZX3C.js → chunk-FQ637IDM.js} +7 -7
  155. package/dist/{chunk-DDL6W7JS.js → chunk-FRD7U6QO.js} +5 -5
  156. package/dist/{chunk-YCHOWWRE.js → chunk-G6T7KRQ3.js} +2 -2
  157. package/dist/{chunk-EKBUM7HK.js → chunk-GYZUJ7HH.js} +4 -4
  158. package/dist/{chunk-ZQ7IESR7.js → chunk-H7HEB4UC.js} +5 -5
  159. package/dist/{chunk-JYLBVHG2.js → chunk-HAPELHNW.js} +7 -7
  160. package/dist/{chunk-HNFZLXZI.js → chunk-HBP2OU4Q.js} +5 -5
  161. package/dist/{chunk-K7FSTB2K.js → chunk-HSNOWYEE.js} +2 -2
  162. package/dist/chunk-HYEOKBFV.js +73 -0
  163. package/dist/chunk-HYEOKBFV.js.map +1 -0
  164. package/dist/{chunk-GI63FQEJ.js → chunk-HYNDC3FP.js} +4 -4
  165. package/dist/{chunk-ZBVU2YWV.js → chunk-IITZA6U2.js} +9 -9
  166. package/dist/{chunk-BZFRBG2H.js → chunk-IIXMTC65.js} +4 -4
  167. package/dist/{chunk-JFLFZLOA.js → chunk-IJAUHR3M.js} +4 -4
  168. package/dist/{chunk-K5CCQBNN.js → chunk-ILKNYENU.js} +4 -4
  169. package/dist/{chunk-DJIFXJ4C.js → chunk-IPI3OU2P.js} +4 -4
  170. package/dist/{chunk-6JGATEOF.js → chunk-IWYTOCCV.js} +3 -3
  171. package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
  172. package/dist/{chunk-DE6A46AE.js → chunk-JFL5WT3S.js} +5 -5
  173. package/dist/{chunk-CYPBF3BI.js → chunk-JO4UMHWR.js} +3 -3
  174. package/dist/{chunk-LRFXCZB4.js → chunk-JWNOM5QT.js} +4 -4
  175. package/dist/{chunk-NU55QUMO.js → chunk-K45ML7M7.js} +2 -2
  176. package/dist/{chunk-OAVRXSAS.js → chunk-K7PWC44N.js} +2 -2
  177. package/dist/{chunk-ZGCPDA3F.js → chunk-KQS4ZJGS.js} +5 -5
  178. package/dist/{chunk-PAICZOL5.js → chunk-KTX7XME6.js} +4 -4
  179. package/dist/{chunk-KPZ53JY6.js → chunk-L3APNYI5.js} +3 -3
  180. package/dist/{chunk-GKNMKPR6.js → chunk-L6Q2A32O.js} +5 -5
  181. package/dist/{chunk-IG26N6J2.js → chunk-MD3ND6DT.js} +3 -3
  182. package/dist/{chunk-DTLKF4AX.js → chunk-MQ277OLB.js} +9 -9
  183. package/dist/{chunk-BA6Z52QN.js → chunk-NF4GHTZ4.js} +2 -2
  184. package/dist/{chunk-MSAAOQAD.js → chunk-NFA7STJA.js} +4 -4
  185. package/dist/{chunk-7HZTYK7U.js → chunk-NLYNRE7L.js} +4 -4
  186. package/dist/{chunk-HOIHO2YQ.js → chunk-NRI2TZDS.js} +2 -2
  187. package/dist/{chunk-VQUPB7F7.js → chunk-O25RFGPX.js} +4 -4
  188. package/dist/{chunk-Z3HSRNJT.js → chunk-OARM5RX4.js} +5 -5
  189. package/dist/{chunk-JDEKR77O.js → chunk-OERKNBKK.js} +2 -2
  190. package/dist/{chunk-WN5PNP6F.js → chunk-OP5JR5Q5.js} +4 -4
  191. package/dist/{chunk-XP522FFM.js → chunk-PARTZ7XI.js} +2 -2
  192. package/dist/{chunk-BHE44AQE.js → chunk-PCHUIDMT.js} +2 -2
  193. package/dist/{chunk-NYFGFELX.js → chunk-PGPPN63I.js} +6 -6
  194. package/dist/{chunk-Y2CMWGIU.js → chunk-PKXCQKPB.js} +2 -2
  195. package/dist/{chunk-6B3QXFF5.js → chunk-PNWGQAXQ.js} +2 -2
  196. package/dist/{chunk-IO2X6DVH.js → chunk-PSX7DAMV.js} +4 -4
  197. package/dist/{chunk-OL2BEJZR.js → chunk-Q2LQVYXY.js} +2 -2
  198. package/dist/{chunk-CMV6BRQ3.js → chunk-Q534UJ34.js} +4 -4
  199. package/dist/chunk-R26KYJHK.js +1 -0
  200. package/dist/chunk-R26KYJHK.js.map +1 -0
  201. package/dist/chunk-R73CRAAI.js +1 -0
  202. package/dist/chunk-R73CRAAI.js.map +1 -0
  203. package/dist/{chunk-VKFZQSQC.js → chunk-RPFQQP5S.js} +6 -6
  204. package/dist/chunk-SENCNTMV.js +55 -0
  205. package/dist/chunk-SENCNTMV.js.map +1 -0
  206. package/dist/{chunk-X4VWYWFK.js → chunk-SJY4DDG7.js} +4 -4
  207. package/dist/{chunk-DYCTIOER.js → chunk-SRZY6QG3.js} +5 -5
  208. package/dist/chunk-TCFBCTZD.js +168 -0
  209. package/dist/chunk-TCFBCTZD.js.map +1 -0
  210. package/dist/{chunk-44USLRMT.js → chunk-TPPFWETI.js} +6 -6
  211. package/dist/{chunk-XXL4PM4M.js → chunk-TWVRPT7J.js} +2 -2
  212. package/dist/{chunk-SM4MT4YC.js → chunk-U2UT2NDH.js} +3 -3
  213. package/dist/{chunk-5MW7OYBM.js → chunk-UJOFRJLX.js} +2 -2
  214. package/dist/{chunk-O6IF4BZT.js → chunk-UUJ7J7NE.js} +3 -3
  215. package/dist/{chunk-5JCGBCFJ.js → chunk-V2GHNHP6.js} +2 -2
  216. package/dist/{chunk-WQ3KTELX.js → chunk-V4R6Q5ED.js} +8 -8
  217. package/dist/{chunk-B3QWQG62.js → chunk-V54LG3QG.js} +2 -2
  218. package/dist/{chunk-6B4UTB4O.js → chunk-VDSQ5H4Y.js} +3 -3
  219. package/dist/chunk-VHVI3D4R.js +26 -0
  220. package/dist/chunk-VHVI3D4R.js.map +1 -0
  221. package/dist/{chunk-AEKHSORY.js → chunk-VOBVYVPN.js} +5 -5
  222. package/dist/{chunk-B2WBDMHE.js → chunk-VPH47OIV.js} +4 -4
  223. package/dist/{chunk-JSOJKHEI.js → chunk-WHYVVKRS.js} +2 -2
  224. package/dist/{chunk-KUKY5GEX.js → chunk-WU2KXA6I.js} +2 -2
  225. package/dist/{chunk-VNOXUWK7.js → chunk-X5F4FRH7.js} +4 -4
  226. package/dist/{chunk-EOEYOPOS.js → chunk-YKALXHCS.js} +11 -11
  227. package/dist/{chunk-BKBELIUR.js → chunk-YWQ7QCWR.js} +6 -6
  228. package/dist/data-display/AsyncStateContainer.js +4 -4
  229. package/dist/data-display/Avatar.js +2 -2
  230. package/dist/data-display/Badge.js +3 -2
  231. package/dist/data-display/CardKit.js +11 -11
  232. package/dist/data-display/Carousel.js +2 -2
  233. package/dist/data-display/Chart.js +6 -6
  234. package/dist/data-display/DataGrid.js +2 -2
  235. package/dist/data-display/DataViews.js +65 -65
  236. package/dist/data-display/FleetMap.js +11 -11
  237. package/dist/data-display/HoverCard.js +3 -3
  238. package/dist/data-display/LazyImage.js +3 -3
  239. package/dist/data-display/Lightbox.js +3 -3
  240. package/dist/data-display/LoadingState.js +3 -3
  241. package/dist/data-display/MapPreview.js +5 -5
  242. package/dist/data-display/StatCard.js +3 -3
  243. package/dist/en-US.js +8 -6
  244. package/dist/feedback/ConfirmAction.js +3 -3
  245. package/dist/feedback/Dialog.js +3 -3
  246. package/dist/feedback/StackedModal.js +6 -6
  247. package/dist/feedback/TutorialOverlay.js +2 -2
  248. package/dist/form/AddressAutocomplete.js +5 -5
  249. package/dist/form/Calendar.js +4 -4
  250. package/dist/form/CategorySelect.js +5 -5
  251. package/dist/form/CepField.js +3 -3
  252. package/dist/form/Checkbox.js +2 -2
  253. package/dist/form/CodeEditor.js +2 -2
  254. package/dist/form/Command.js +2 -2
  255. package/dist/form/DateRangePicker.js +9 -9
  256. package/dist/form/Input.js +2 -2
  257. package/dist/form/Menubar.js +2 -2
  258. package/dist/form/NumberField.js +3 -3
  259. package/dist/form/RichTextEditor.js +2 -2
  260. package/dist/form/Switch.js +5 -5
  261. package/dist/form/UploadButton.js +2 -2
  262. package/dist/form/total-form.js +18 -18
  263. package/dist/layout/Card.js +2 -2
  264. package/dist/layout/ContentToolbar.js +4 -4
  265. package/dist/layout/SettingCard.js +11 -11
  266. package/dist/layout/SettingsLayout.js +4 -4
  267. package/dist/layout/Skeleton.js +2 -2
  268. package/dist/locales.js +15 -8
  269. package/dist/locales.js.map +1 -1
  270. package/dist/navigation/AppHeader.js +6 -6
  271. package/dist/navigation/CommandPalette.js +2 -2
  272. package/dist/navigation/Pagination.js +2 -2
  273. package/dist/navigation/SectionNav.js +52 -0
  274. package/dist/navigation/SectionNav.js.map +1 -0
  275. package/dist/pt-BR.js +4 -2
  276. package/dist/social-login-button.js +3 -3
  277. package/dist/types/components/navigation/SectionNav/SectionNav.bar.d.ts +14 -0
  278. package/dist/types/components/navigation/SectionNav/SectionNav.bar.d.ts.map +1 -0
  279. package/dist/types/components/navigation/SectionNav/SectionNav.d.ts +16 -0
  280. package/dist/types/components/navigation/SectionNav/SectionNav.d.ts.map +1 -0
  281. package/dist/types/components/navigation/SectionNav/SectionNav.helpers.d.ts +32 -0
  282. package/dist/types/components/navigation/SectionNav/SectionNav.helpers.d.ts.map +1 -0
  283. package/dist/types/components/navigation/SectionNav/SectionNav.parts.d.ts +42 -0
  284. package/dist/types/components/navigation/SectionNav/SectionNav.parts.d.ts.map +1 -0
  285. package/dist/types/components/navigation/SectionNav/SectionNav.primary.d.ts +29 -0
  286. package/dist/types/components/navigation/SectionNav/SectionNav.primary.d.ts.map +1 -0
  287. package/dist/types/components/navigation/SectionNav/SectionNav.rail.d.ts +13 -0
  288. package/dist/types/components/navigation/SectionNav/SectionNav.rail.d.ts.map +1 -0
  289. package/dist/types/components/navigation/SectionNav/SectionNav.sheet.d.ts +20 -0
  290. package/dist/types/components/navigation/SectionNav/SectionNav.sheet.d.ts.map +1 -0
  291. package/dist/types/components/navigation/SectionNav/SectionNav.types.d.ts +102 -0
  292. package/dist/types/components/navigation/SectionNav/SectionNav.types.d.ts.map +1 -0
  293. package/dist/types/components/navigation/SectionNav/__stories__/fixtures.d.ts +20 -0
  294. package/dist/types/components/navigation/SectionNav/__stories__/fixtures.d.ts.map +1 -0
  295. package/dist/types/components/navigation/SectionNav/index.d.ts +7 -0
  296. package/dist/types/components/navigation/SectionNav/index.d.ts.map +1 -0
  297. package/dist/types/components/navigation/index.d.ts +1 -0
  298. package/dist/types/components/navigation/index.d.ts.map +1 -1
  299. package/dist/types/copy/navigation.d.ts +10 -0
  300. package/dist/types/copy/navigation.d.ts.map +1 -1
  301. package/dist/types/en-US.navigation.d.ts +2 -1
  302. package/dist/types/en-US.navigation.d.ts.map +1 -1
  303. package/dist/types/locales.d.ts +2 -1
  304. package/dist/types/locales.d.ts.map +1 -1
  305. package/dist/types/pt-BR.navigation.d.ts +2 -1
  306. package/dist/types/pt-BR.navigation.d.ts.map +1 -1
  307. package/dist/user-avatar.js +5 -5
  308. package/dist/utility/InfiniteScroll.js +2 -2
  309. package/dist/utility/InstallPrompt.js +2 -2
  310. package/package.json +5 -1
  311. package/src/components/navigation/SectionNav/SectionNav.bar.tsx +258 -0
  312. package/src/components/navigation/SectionNav/SectionNav.helpers.ts +51 -0
  313. package/src/components/navigation/SectionNav/SectionNav.md +91 -0
  314. package/src/components/navigation/SectionNav/SectionNav.parts.tsx +88 -0
  315. package/src/components/navigation/SectionNav/SectionNav.primary.tsx +81 -0
  316. package/src/components/navigation/SectionNav/SectionNav.rail.tsx +208 -0
  317. package/src/components/navigation/SectionNav/SectionNav.sheet.tsx +206 -0
  318. package/src/components/navigation/SectionNav/SectionNav.tsx +56 -0
  319. package/src/components/navigation/SectionNav/SectionNav.types.ts +108 -0
  320. package/src/components/navigation/SectionNav/__stories__/fixtures.tsx +111 -0
  321. package/src/components/navigation/SectionNav/index.ts +13 -0
  322. package/src/components/navigation/index.ts +1 -0
  323. package/src/copy/navigation.ts +11 -0
  324. package/src/en-US.navigation.ts +6 -0
  325. package/src/locales.ts +5 -0
  326. package/src/pt-BR.navigation.ts +6 -0
  327. package/dist/chunk-62OGPVCL.js.map +0 -1
  328. package/dist/chunk-AUQRGZE7.js.map +0 -1
  329. package/dist/chunk-OJSVHBQO.js +0 -1
  330. /package/dist/{chunk-OJSVHBQO.js.map → _internal/components/navigation/SectionNav/SectionNav.bar.js.map} +0 -0
  331. /package/dist/{chunk-J6TIK47Z.js.map → chunk-2HPNN5XA.js.map} +0 -0
  332. /package/dist/{chunk-BEGTLELZ.js.map → chunk-2K2B5QM2.js.map} +0 -0
  333. /package/dist/{chunk-3I77A65F.js.map → chunk-442FSG7G.js.map} +0 -0
  334. /package/dist/{chunk-ZOUWHGV3.js.map → chunk-4MGFUPQT.js.map} +0 -0
  335. /package/dist/{chunk-26QYVCDK.js.map → chunk-525AOF6I.js.map} +0 -0
  336. /package/dist/{chunk-5752357K.js.map → chunk-5KGABAQB.js.map} +0 -0
  337. /package/dist/{chunk-SDKOOVEX.js.map → chunk-6GAZAJXB.js.map} +0 -0
  338. /package/dist/{chunk-EO6LCGGQ.js.map → chunk-6J32H2RN.js.map} +0 -0
  339. /package/dist/{chunk-7XDET7PL.js.map → chunk-6OQHZVK6.js.map} +0 -0
  340. /package/dist/{chunk-F3AYISXT.js.map → chunk-6PU3JYVY.js.map} +0 -0
  341. /package/dist/{chunk-RRAWJQIO.js.map → chunk-A64MQ7GW.js.map} +0 -0
  342. /package/dist/{chunk-ADSA76T7.js.map → chunk-AG3DY5TH.js.map} +0 -0
  343. /package/dist/{chunk-CIBTYBBN.js.map → chunk-AJ4MRDKM.js.map} +0 -0
  344. /package/dist/{chunk-RJ35IXFD.js.map → chunk-B7HYM3QB.js.map} +0 -0
  345. /package/dist/{chunk-X3C3VTYS.js.map → chunk-BEX3FLHB.js.map} +0 -0
  346. /package/dist/{chunk-C5RTSOXD.js.map → chunk-BUAFRLSB.js.map} +0 -0
  347. /package/dist/{chunk-DH6SL3SY.js.map → chunk-DSDNGTH6.js.map} +0 -0
  348. /package/dist/{chunk-JZ7ZRZTF.js.map → chunk-EJMSSDLM.js.map} +0 -0
  349. /package/dist/{chunk-GP4BJI3F.js.map → chunk-ETCS6OBJ.js.map} +0 -0
  350. /package/dist/{chunk-MVR4GURP.js.map → chunk-EU76OQGR.js.map} +0 -0
  351. /package/dist/{chunk-DHW5UMUG.js.map → chunk-FNLD2KCQ.js.map} +0 -0
  352. /package/dist/{chunk-XRUW7DMH.js.map → chunk-FPKVHR5L.js.map} +0 -0
  353. /package/dist/{chunk-HKBJZX3C.js.map → chunk-FQ637IDM.js.map} +0 -0
  354. /package/dist/{chunk-DDL6W7JS.js.map → chunk-FRD7U6QO.js.map} +0 -0
  355. /package/dist/{chunk-YCHOWWRE.js.map → chunk-G6T7KRQ3.js.map} +0 -0
  356. /package/dist/{chunk-EKBUM7HK.js.map → chunk-GYZUJ7HH.js.map} +0 -0
  357. /package/dist/{chunk-ZQ7IESR7.js.map → chunk-H7HEB4UC.js.map} +0 -0
  358. /package/dist/{chunk-JYLBVHG2.js.map → chunk-HAPELHNW.js.map} +0 -0
  359. /package/dist/{chunk-HNFZLXZI.js.map → chunk-HBP2OU4Q.js.map} +0 -0
  360. /package/dist/{chunk-K7FSTB2K.js.map → chunk-HSNOWYEE.js.map} +0 -0
  361. /package/dist/{chunk-GI63FQEJ.js.map → chunk-HYNDC3FP.js.map} +0 -0
  362. /package/dist/{chunk-ZBVU2YWV.js.map → chunk-IITZA6U2.js.map} +0 -0
  363. /package/dist/{chunk-BZFRBG2H.js.map → chunk-IIXMTC65.js.map} +0 -0
  364. /package/dist/{chunk-JFLFZLOA.js.map → chunk-IJAUHR3M.js.map} +0 -0
  365. /package/dist/{chunk-K5CCQBNN.js.map → chunk-ILKNYENU.js.map} +0 -0
  366. /package/dist/{chunk-DJIFXJ4C.js.map → chunk-IPI3OU2P.js.map} +0 -0
  367. /package/dist/{chunk-6JGATEOF.js.map → chunk-IWYTOCCV.js.map} +0 -0
  368. /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
  369. /package/dist/{chunk-DE6A46AE.js.map → chunk-JFL5WT3S.js.map} +0 -0
  370. /package/dist/{chunk-CYPBF3BI.js.map → chunk-JO4UMHWR.js.map} +0 -0
  371. /package/dist/{chunk-LRFXCZB4.js.map → chunk-JWNOM5QT.js.map} +0 -0
  372. /package/dist/{chunk-NU55QUMO.js.map → chunk-K45ML7M7.js.map} +0 -0
  373. /package/dist/{chunk-OAVRXSAS.js.map → chunk-K7PWC44N.js.map} +0 -0
  374. /package/dist/{chunk-ZGCPDA3F.js.map → chunk-KQS4ZJGS.js.map} +0 -0
  375. /package/dist/{chunk-PAICZOL5.js.map → chunk-KTX7XME6.js.map} +0 -0
  376. /package/dist/{chunk-KPZ53JY6.js.map → chunk-L3APNYI5.js.map} +0 -0
  377. /package/dist/{chunk-GKNMKPR6.js.map → chunk-L6Q2A32O.js.map} +0 -0
  378. /package/dist/{chunk-IG26N6J2.js.map → chunk-MD3ND6DT.js.map} +0 -0
  379. /package/dist/{chunk-DTLKF4AX.js.map → chunk-MQ277OLB.js.map} +0 -0
  380. /package/dist/{chunk-BA6Z52QN.js.map → chunk-NF4GHTZ4.js.map} +0 -0
  381. /package/dist/{chunk-MSAAOQAD.js.map → chunk-NFA7STJA.js.map} +0 -0
  382. /package/dist/{chunk-7HZTYK7U.js.map → chunk-NLYNRE7L.js.map} +0 -0
  383. /package/dist/{chunk-HOIHO2YQ.js.map → chunk-NRI2TZDS.js.map} +0 -0
  384. /package/dist/{chunk-VQUPB7F7.js.map → chunk-O25RFGPX.js.map} +0 -0
  385. /package/dist/{chunk-Z3HSRNJT.js.map → chunk-OARM5RX4.js.map} +0 -0
  386. /package/dist/{chunk-JDEKR77O.js.map → chunk-OERKNBKK.js.map} +0 -0
  387. /package/dist/{chunk-WN5PNP6F.js.map → chunk-OP5JR5Q5.js.map} +0 -0
  388. /package/dist/{chunk-XP522FFM.js.map → chunk-PARTZ7XI.js.map} +0 -0
  389. /package/dist/{chunk-BHE44AQE.js.map → chunk-PCHUIDMT.js.map} +0 -0
  390. /package/dist/{chunk-NYFGFELX.js.map → chunk-PGPPN63I.js.map} +0 -0
  391. /package/dist/{chunk-Y2CMWGIU.js.map → chunk-PKXCQKPB.js.map} +0 -0
  392. /package/dist/{chunk-6B3QXFF5.js.map → chunk-PNWGQAXQ.js.map} +0 -0
  393. /package/dist/{chunk-IO2X6DVH.js.map → chunk-PSX7DAMV.js.map} +0 -0
  394. /package/dist/{chunk-OL2BEJZR.js.map → chunk-Q2LQVYXY.js.map} +0 -0
  395. /package/dist/{chunk-CMV6BRQ3.js.map → chunk-Q534UJ34.js.map} +0 -0
  396. /package/dist/{chunk-VKFZQSQC.js.map → chunk-RPFQQP5S.js.map} +0 -0
  397. /package/dist/{chunk-X4VWYWFK.js.map → chunk-SJY4DDG7.js.map} +0 -0
  398. /package/dist/{chunk-DYCTIOER.js.map → chunk-SRZY6QG3.js.map} +0 -0
  399. /package/dist/{chunk-44USLRMT.js.map → chunk-TPPFWETI.js.map} +0 -0
  400. /package/dist/{chunk-XXL4PM4M.js.map → chunk-TWVRPT7J.js.map} +0 -0
  401. /package/dist/{chunk-SM4MT4YC.js.map → chunk-U2UT2NDH.js.map} +0 -0
  402. /package/dist/{chunk-5MW7OYBM.js.map → chunk-UJOFRJLX.js.map} +0 -0
  403. /package/dist/{chunk-O6IF4BZT.js.map → chunk-UUJ7J7NE.js.map} +0 -0
  404. /package/dist/{chunk-5JCGBCFJ.js.map → chunk-V2GHNHP6.js.map} +0 -0
  405. /package/dist/{chunk-WQ3KTELX.js.map → chunk-V4R6Q5ED.js.map} +0 -0
  406. /package/dist/{chunk-B3QWQG62.js.map → chunk-V54LG3QG.js.map} +0 -0
  407. /package/dist/{chunk-6B4UTB4O.js.map → chunk-VDSQ5H4Y.js.map} +0 -0
  408. /package/dist/{chunk-AEKHSORY.js.map → chunk-VOBVYVPN.js.map} +0 -0
  409. /package/dist/{chunk-B2WBDMHE.js.map → chunk-VPH47OIV.js.map} +0 -0
  410. /package/dist/{chunk-JSOJKHEI.js.map → chunk-WHYVVKRS.js.map} +0 -0
  411. /package/dist/{chunk-KUKY5GEX.js.map → chunk-WU2KXA6I.js.map} +0 -0
  412. /package/dist/{chunk-VNOXUWK7.js.map → chunk-X5F4FRH7.js.map} +0 -0
  413. /package/dist/{chunk-EOEYOPOS.js.map → chunk-YKALXHCS.js.map} +0 -0
  414. /package/dist/{chunk-BKBELIUR.js.map → chunk-YWQ7QCWR.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/navigation/SectionNav/SectionNav.sheet.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport type { ElementType } from 'react';\n\nimport { rem } from '../../../tokens/scales';\nimport { Drawer, DrawerContent, DrawerHeader } from '../../layout/Drawer';\n\nimport { Box, CONTROL_RESET, CountedIcon, controlProps, focusRing } from './SectionNav.parts';\nimport type { SectionNavEntry, SectionNavGroup, SectionNavMenu } from './SectionNav.types';\nimport type { SectionNavCopy } from '../../../copy';\n\ninterface EntryProps {\n entry: SectionNavEntry;\n linkComponent: ElementType | undefined;\n copy: SectionNavCopy;\n testId: string;\n onDone: () => void;\n}\n\n/** A tile in a `grid` group: icon over a short label. */\nfunction GridEntry({ entry, linkComponent, copy, testId, onDone }: EntryProps): React.JSX.Element {\n const theme = useTheme();\n return (\n <Box\n {...controlProps({\n href: entry.href,\n linkComponent,\n onClick: () => {\n entry.onSelect?.();\n onDone();\n },\n })}\n aria-current={entry.active ? 'page' : undefined}\n data-testid={`${testId}-entry-${entry.id}`}\n sx={{\n ...CONTROL_RESET,\n ...focusRing(theme),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 0.75,\n minHeight: rem(theme, 76),\n px: 0.5,\n py: 1,\n borderRadius: 1.5,\n textAlign: 'center',\n bgcolor: entry.active ? 'action.selected' : 'action.hover',\n color: entry.active ? 'primary.main' : 'text.primary',\n '& svg': { color: 'primary.main' },\n }}\n >\n <CountedIcon icon={entry.icon} count={entry.badge} label={copy.badge} testId={`${testId}-badge-${entry.id}`} />\n <Typography component=\"span\" variant=\"caption\" sx={{ lineHeight: 1.2, fontWeight: entry.active ? 700 : 500 }}>\n {entry.label}\n </Typography>\n </Box>\n );\n}\n\n/** A row in a `list` group: icon, label, and the description under it. */\nfunction ListEntry({ entry, linkComponent, copy, testId, onDone }: EntryProps): React.JSX.Element {\n const theme = useTheme();\n return (\n <Box\n {...controlProps({\n href: entry.href,\n linkComponent,\n onClick: () => {\n entry.onSelect?.();\n onDone();\n },\n })}\n aria-current={entry.active ? 'page' : undefined}\n data-testid={`${testId}-entry-${entry.id}`}\n sx={{\n ...CONTROL_RESET,\n ...focusRing(theme),\n display: 'flex',\n alignItems: 'center',\n gap: 1.5,\n width: '100%',\n minHeight: rem(theme, 52),\n px: 1.5,\n py: 1,\n borderRadius: 1.5,\n textAlign: 'start',\n bgcolor: entry.active ? 'action.selected' : 'action.hover',\n '& svg': { color: 'primary.main' },\n }}\n >\n <CountedIcon icon={entry.icon} count={entry.badge} label={copy.badge} testId={`${testId}-badge-${entry.id}`} />\n <Box component=\"span\" sx={{ display: 'flex', flexDirection: 'column', minWidth: 0 }}>\n <Typography component=\"span\" variant=\"body2\" sx={{ fontWeight: 600 }}>\n {entry.label}\n </Typography>\n {entry.description ? (\n <Typography component=\"span\" variant=\"caption\" color=\"text.secondary\">\n {entry.description}\n </Typography>\n ) : null}\n </Box>\n </Box>\n );\n}\n\n/** One titled run of entries, as tiles or rows. */\nfunction SheetGroup({\n group,\n linkComponent,\n copy,\n testId,\n onDone,\n}: Omit<EntryProps, 'entry'> & { group: SectionNavGroup }): React.JSX.Element {\n const grid = group.layout === 'grid';\n const Entry = grid ? GridEntry : ListEntry;\n return (\n <Box component=\"section\" data-testid={`${testId}-group-${group.id}`} sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>\n {group.title ? (\n <Typography variant=\"overline\" color=\"text.secondary\" sx={{ lineHeight: 1.6 }}>\n {group.title}\n </Typography>\n ) : null}\n <Box\n sx={\n grid\n ? { display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 1 }\n : { display: 'flex', flexDirection: 'column', gap: 0.75 }\n }\n >\n {group.entries.map((entry) => (\n <Entry key={entry.id} entry={entry} linkComponent={linkComponent} copy={copy} testId={testId} onDone={onDone} />\n ))}\n </Box>\n </Box>\n );\n}\n\n/**\n * A menu opened from the bar: a bottom sheet over the page.\n *\n * Choosing an entry closes it — a link has somewhere to go and an action has\n * something to do, and neither wants the sheet still covering the screen.\n */\nexport function SectionNavSheet({\n menu,\n open,\n onClose,\n linkComponent,\n copy,\n testId,\n bottomOffset,\n}: {\n menu: SectionNavMenu;\n open: boolean;\n onClose: () => void;\n linkComponent: ElementType | undefined;\n copy: SectionNavCopy;\n testId: string;\n /** How far above the viewport's foot the sheet stops — the bar's own height, so the bar stays visible. */\n bottomOffset: string;\n}): React.JSX.Element {\n const theme = useTheme();\n return (\n <Drawer\n open={open}\n onClose={onClose}\n anchor=\"bottom\"\n height=\"auto\"\n dataTestId={testId}\n paperSx={{\n borderTopLeftRadius: rem(theme, Number(theme.shape.borderRadius) * 3),\n borderTopRightRadius: rem(theme, Number(theme.shape.borderRadius) * 3),\n maxHeight: `calc(85dvh - ${bottomOffset})`,\n bottom: bottomOffset,\n }}\n >\n {/* The library Drawer names nothing: the dialog role and its name live\n here, around everything the focus trap holds. */}\n <Box\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={menu.title}\n sx={{ display: 'flex', flexDirection: 'column', flex: 1, minHeight: 0 }}\n >\n <DrawerHeader onClose={onClose} closeLabel={copy.close} dataTestId={`${testId}-header`}>\n {menu.title}\n </DrawerHeader>\n <DrawerContent>\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n {menu.groups.map((group) => (\n <SheetGroup\n key={group.id}\n group={group}\n linkComponent={linkComponent}\n copy={copy}\n testId={testId}\n onDone={onClose}\n />\n ))}\n </Box>\n </DrawerContent>\n </Box>\n </Drawer>\n );\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,240 @@
1
+ import {
2
+ SectionNavSheet
3
+ } from "./chunk-2OP2FYB3.js";
4
+ import {
5
+ RaisedActionButton
6
+ } from "./chunk-6OLJ2RAT.js";
7
+ import {
8
+ Box,
9
+ CONTROL_RESET,
10
+ CountedIcon,
11
+ controlProps,
12
+ focusRing
13
+ } from "./chunk-HYEOKBFV.js";
14
+ import {
15
+ barSlots,
16
+ menuActive,
17
+ menuCount
18
+ } from "./chunk-VHVI3D4R.js";
19
+ import {
20
+ rem
21
+ } from "./chunk-YKCAJ2TN.js";
22
+
23
+ // src/components/navigation/SectionNav/SectionNav.bar.tsx
24
+ import Typography from "@mui/material/Typography/index.js";
25
+ import { useTheme } from "@mui/material/styles/index.js";
26
+ import { useState } from "react";
27
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
28
+ var barHeight = (theme) => rem(theme, 60);
29
+ function sectionNavBarInset(theme) {
30
+ return `calc(${barHeight(theme)} + env(safe-area-inset-bottom))`;
31
+ }
32
+ function Slot({
33
+ label,
34
+ icon,
35
+ count,
36
+ current,
37
+ lit,
38
+ copy,
39
+ testId,
40
+ control,
41
+ expanded
42
+ }) {
43
+ const theme = useTheme();
44
+ return /* @__PURE__ */ jsxs(
45
+ Box,
46
+ {
47
+ ...control,
48
+ "aria-current": current ? "page" : void 0,
49
+ "aria-expanded": expanded,
50
+ "data-lit": lit ? "true" : void 0,
51
+ "data-testid": testId,
52
+ sx: {
53
+ ...CONTROL_RESET,
54
+ ...focusRing(theme),
55
+ flex: 1,
56
+ minWidth: 0,
57
+ display: "flex",
58
+ flexDirection: "column",
59
+ alignItems: "center",
60
+ justifyContent: "center",
61
+ gap: 0.25,
62
+ position: "relative",
63
+ color: lit ? "primary.main" : "text.secondary",
64
+ // The current slot is marked by more than its colour: a short rule on
65
+ // its top edge, so the state survives a colour-blind reading.
66
+ '&[data-lit="true"]::before': {
67
+ content: '""',
68
+ position: "absolute",
69
+ top: 0,
70
+ insetInline: "22%",
71
+ height: rem(theme, 3),
72
+ borderBottomLeftRadius: rem(theme, 3),
73
+ borderBottomRightRadius: rem(theme, 3),
74
+ bgcolor: "primary.main"
75
+ },
76
+ "& svg": { fontSize: rem(theme, 22) }
77
+ },
78
+ children: [
79
+ /* @__PURE__ */ jsx(CountedIcon, { icon, count, label: copy.badge, testId: `${testId}-badge` }),
80
+ /* @__PURE__ */ jsx(
81
+ Typography,
82
+ {
83
+ component: "span",
84
+ variant: "caption",
85
+ sx: {
86
+ maxWidth: "100%",
87
+ overflow: "hidden",
88
+ textOverflow: "ellipsis",
89
+ whiteSpace: "nowrap",
90
+ lineHeight: 1.3,
91
+ fontWeight: lit ? 700 : 400
92
+ },
93
+ children: label
94
+ }
95
+ )
96
+ ]
97
+ }
98
+ );
99
+ }
100
+ function BarSlotView({
101
+ slot,
102
+ primary,
103
+ more,
104
+ open,
105
+ toggle,
106
+ close,
107
+ linkComponent,
108
+ copy,
109
+ dataTestId
110
+ }) {
111
+ if (slot.kind === "primary" && primary) {
112
+ return /* @__PURE__ */ jsx(
113
+ RaisedActionButton,
114
+ {
115
+ label: primary.label,
116
+ icon: primary.icon,
117
+ open: open === "primary",
118
+ closeLabel: copy.close,
119
+ dataTestId: `${dataTestId}-primary`,
120
+ onClick: () => toggle("primary")
121
+ }
122
+ );
123
+ }
124
+ if (slot.kind === "more" && more) {
125
+ return /* @__PURE__ */ jsx(
126
+ Slot,
127
+ {
128
+ label: more.label,
129
+ icon: more.icon,
130
+ count: menuCount(more),
131
+ current: false,
132
+ lit: open === "more" || open === null && menuActive(more),
133
+ expanded: open === "more",
134
+ copy,
135
+ testId: `${dataTestId}-more`,
136
+ control: controlProps({ href: void 0, linkComponent, onClick: () => toggle("more") })
137
+ }
138
+ );
139
+ }
140
+ if (slot.kind !== "destination") return null;
141
+ const { destination } = slot;
142
+ return /* @__PURE__ */ jsx(
143
+ Slot,
144
+ {
145
+ label: destination.label,
146
+ icon: destination.icon,
147
+ count: destination.badge,
148
+ current: destination.active === true,
149
+ lit: open === null && destination.active === true,
150
+ copy,
151
+ testId: `${dataTestId}-dest-${destination.id}`,
152
+ control: controlProps({ href: destination.href, linkComponent, onClick: close })
153
+ }
154
+ );
155
+ }
156
+ function SectionNavBar({
157
+ label,
158
+ destinations,
159
+ primary,
160
+ more,
161
+ linkComponent,
162
+ copy,
163
+ dataTestId
164
+ }) {
165
+ const theme = useTheme();
166
+ const [open, setOpen] = useState(null);
167
+ const toggle = (menu) => setOpen((current) => current === menu ? null : menu);
168
+ const close = () => setOpen(null);
169
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
170
+ /* @__PURE__ */ jsx(
171
+ Box,
172
+ {
173
+ component: "nav",
174
+ "aria-label": label,
175
+ "data-testid": dataTestId,
176
+ sx: {
177
+ flex: "none",
178
+ display: "flex",
179
+ alignItems: "stretch",
180
+ boxSizing: "border-box",
181
+ height: sectionNavBarInset(theme),
182
+ paddingBottom: "env(safe-area-inset-bottom)",
183
+ borderTop: `1px solid ${theme.palette.divider}`,
184
+ bgcolor: "background.paper",
185
+ // Above the backdrop ONLY while one of its own sheets is open, so the
186
+ // primary button can close what it opened. Raised all the time it
187
+ // would sit over every dialog the page opens, and on a small phone a
188
+ // dialog's own footer is exactly where the bar is.
189
+ position: "relative",
190
+ zIndex: open === null ? "auto" : theme.zIndex.modal + 1
191
+ },
192
+ children: barSlots(destinations, more !== void 0, primary !== void 0).map((slot) => /* @__PURE__ */ jsx(
193
+ BarSlotView,
194
+ {
195
+ slot,
196
+ primary,
197
+ more,
198
+ open,
199
+ toggle,
200
+ close,
201
+ linkComponent,
202
+ copy,
203
+ dataTestId
204
+ },
205
+ slot.kind === "destination" ? `dest-${slot.destination.id}` : `menu-${slot.kind}`
206
+ ))
207
+ }
208
+ ),
209
+ primary ? /* @__PURE__ */ jsx(
210
+ SectionNavSheet,
211
+ {
212
+ menu: primary,
213
+ open: open === "primary",
214
+ onClose: close,
215
+ linkComponent,
216
+ copy,
217
+ testId: `${dataTestId}-primary-sheet`,
218
+ bottomOffset: sectionNavBarInset(theme)
219
+ }
220
+ ) : null,
221
+ more ? /* @__PURE__ */ jsx(
222
+ SectionNavSheet,
223
+ {
224
+ menu: more,
225
+ open: open === "more",
226
+ onClose: close,
227
+ linkComponent,
228
+ copy,
229
+ testId: `${dataTestId}-more-sheet`,
230
+ bottomOffset: sectionNavBarInset(theme)
231
+ }
232
+ ) : null
233
+ ] });
234
+ }
235
+
236
+ export {
237
+ sectionNavBarInset,
238
+ SectionNavBar
239
+ };
240
+ //# sourceMappingURL=chunk-3WCUGTRH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/navigation/SectionNav/SectionNav.bar.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport { useState, type ElementType, type ReactNode } from 'react';\n\nimport type { SectionNavCopy } from '../../../copy';\nimport { rem } from '../../../tokens/scales';\n\nimport { barSlots, menuActive, menuCount, type BarSlot } from './SectionNav.helpers';\nimport { Box, CONTROL_RESET, CountedIcon, controlProps, focusRing } from './SectionNav.parts';\nimport { RaisedActionButton } from './SectionNav.primary';\nimport { SectionNavSheet } from './SectionNav.sheet';\nimport type { SectionNavMenu, SectionNavProps } from './SectionNav.types';\n\n/** Which of the bar's two menus is open, if any. */\ntype OpenMenu = 'primary' | 'more' | null;\n\n/** The bar's height above the safe area — tall enough for an icon over a label. */\nconst barHeight = (theme: Parameters<typeof rem>[0]): string => rem(theme, 60);\n\n/**\n * The bar's full height on screen, the safe area included — where its sheets\n * stop, and what a host reserves at the foot of its content so nothing it\n * floats (a toast, a receipt) lands under the bar.\n */\nexport function sectionNavBarInset(theme: Parameters<typeof rem>[0]): string {\n return `calc(${barHeight(theme)} + env(safe-area-inset-bottom))`;\n}\n\n/**\n * One slot: icon over label, a count on the icon.\n *\n * `current` is the page the viewer is on and is what `aria-current` reports;\n * `lit` is only how the slot looks, and goes out while a sheet is open so the\n * bar shows where the thumb is. Opening a sheet is `aria-expanded`'s to say.\n *\n * A destination is a link; the \"more\" slot is a button that opens its sheet.\n * Either way the whole slot is the target, so a thumb landing on the label\n * lands on the control.\n */\nfunction Slot({\n label,\n icon,\n count,\n current,\n lit,\n copy,\n testId,\n control,\n expanded,\n}: {\n label: string;\n icon: ReactNode;\n count: number | undefined;\n current: boolean;\n lit: boolean;\n copy: SectionNavCopy;\n testId: string;\n control: Record<string, unknown>;\n expanded?: boolean;\n}): React.JSX.Element {\n const theme = useTheme();\n return (\n <Box\n {...control}\n aria-current={current ? 'page' : undefined}\n aria-expanded={expanded}\n data-lit={lit ? 'true' : undefined}\n data-testid={testId}\n sx={{\n ...CONTROL_RESET,\n ...focusRing(theme),\n flex: 1,\n minWidth: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 0.25,\n position: 'relative',\n color: lit ? 'primary.main' : 'text.secondary',\n // The current slot is marked by more than its colour: a short rule on\n // its top edge, so the state survives a colour-blind reading.\n '&[data-lit=\"true\"]::before': {\n content: '\"\"',\n position: 'absolute',\n top: 0,\n insetInline: '22%',\n height: rem(theme, 3),\n borderBottomLeftRadius: rem(theme, 3),\n borderBottomRightRadius: rem(theme, 3),\n bgcolor: 'primary.main',\n },\n '& svg': { fontSize: rem(theme, 22) },\n }}\n >\n <CountedIcon icon={icon} count={count} label={copy.badge} testId={`${testId}-badge`} />\n <Typography\n component=\"span\"\n variant=\"caption\"\n sx={{\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n lineHeight: 1.3,\n fontWeight: lit ? 700 : 400,\n }}\n >\n {label}\n </Typography>\n </Box>\n );\n}\n\n/** One slot of the bar, whichever kind it is. */\nfunction BarSlotView({\n slot,\n primary,\n more,\n open,\n toggle,\n close,\n linkComponent,\n copy,\n dataTestId,\n}: {\n slot: BarSlot;\n primary: SectionNavMenu | undefined;\n more: SectionNavMenu | undefined;\n open: OpenMenu;\n toggle: (menu: Exclude<OpenMenu, null>) => void;\n close: () => void;\n linkComponent: ElementType | undefined;\n copy: SectionNavCopy;\n dataTestId: string;\n}): React.JSX.Element | null {\n if (slot.kind === 'primary' && primary) {\n return (\n <RaisedActionButton\n label={primary.label}\n icon={primary.icon}\n open={open === 'primary'}\n closeLabel={copy.close}\n dataTestId={`${dataTestId}-primary`}\n onClick={() => toggle('primary')}\n />\n );\n }\n if (slot.kind === 'more' && more) {\n return (\n <Slot\n label={more.label}\n icon={more.icon}\n count={menuCount(more)}\n current={false}\n lit={open === 'more' || (open === null && menuActive(more))}\n expanded={open === 'more'}\n copy={copy}\n testId={`${dataTestId}-more`}\n control={controlProps({ href: undefined, linkComponent, onClick: () => toggle('more') })}\n />\n );\n }\n if (slot.kind !== 'destination') return null;\n const { destination } = slot;\n return (\n <Slot\n label={destination.label}\n icon={destination.icon}\n count={destination.badge}\n current={destination.active === true}\n lit={open === null && destination.active === true}\n copy={copy}\n testId={`${dataTestId}-dest-${destination.id}`}\n control={controlProps({ href: destination.href, linkComponent, onClick: close })}\n />\n );\n}\n\n/** The phone layout: a bottom bar, with its menus as bottom sheets. */\nexport function SectionNavBar({\n label,\n destinations,\n primary,\n more,\n linkComponent,\n copy,\n dataTestId,\n}: Required<Pick<SectionNavProps, 'label' | 'destinations' | 'copy' | 'dataTestId'>> &\n Pick<SectionNavProps, 'primary' | 'more'> & { linkComponent: ElementType | undefined }): React.JSX.Element {\n const theme = useTheme();\n const [open, setOpen] = useState<OpenMenu>(null);\n const toggle = (menu: Exclude<OpenMenu, null>): void => setOpen((current) => (current === menu ? null : menu));\n const close = (): void => setOpen(null);\n\n return (\n <>\n <Box\n component=\"nav\"\n aria-label={label}\n data-testid={dataTestId}\n sx={{\n flex: 'none',\n display: 'flex',\n alignItems: 'stretch',\n boxSizing: 'border-box',\n height: sectionNavBarInset(theme),\n paddingBottom: 'env(safe-area-inset-bottom)',\n borderTop: `1px solid ${theme.palette.divider}`,\n bgcolor: 'background.paper',\n // Above the backdrop ONLY while one of its own sheets is open, so the\n // primary button can close what it opened. Raised all the time it\n // would sit over every dialog the page opens, and on a small phone a\n // dialog's own footer is exactly where the bar is.\n position: 'relative',\n zIndex: open === null ? 'auto' : theme.zIndex.modal + 1,\n }}\n >\n {barSlots(destinations, more !== undefined, primary !== undefined).map((slot) => (\n <BarSlotView\n key={slot.kind === 'destination' ? `dest-${slot.destination.id}` : `menu-${slot.kind}`}\n slot={slot}\n primary={primary}\n more={more}\n open={open}\n toggle={toggle}\n close={close}\n linkComponent={linkComponent}\n copy={copy}\n dataTestId={dataTestId}\n />\n ))}\n </Box>\n {primary ? (\n <SectionNavSheet\n menu={primary}\n open={open === 'primary'}\n onClose={close}\n linkComponent={linkComponent}\n copy={copy}\n testId={`${dataTestId}-primary-sheet`}\n bottomOffset={sectionNavBarInset(theme)}\n />\n ) : null}\n {more ? (\n <SectionNavSheet\n menu={more}\n open={open === 'more'}\n onClose={close}\n linkComponent={linkComponent}\n copy={copy}\n testId={`${dataTestId}-more-sheet`}\n bottomOffset={sectionNavBarInset(theme)}\n />\n ) : null}\n </>\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,3 @@
1
- import {
2
- usePanelChrome
3
- } from "./chunk-G3QKH23Y.js";
4
1
  import {
5
2
  ModalPanelContents,
6
3
  modalAriaIds,
@@ -10,6 +7,9 @@ import {
10
7
  STYLE_ONLY_PROPS,
11
8
  dialogRootStyles
12
9
  } from "./chunk-77JL5XVD.js";
10
+ import {
11
+ usePanelChrome
12
+ } from "./chunk-G3QKH23Y.js";
13
13
 
14
14
  // src/components/feedback/StackedModal/StackedModal.tsx
15
15
  import Dialog from "@mui/material/Dialog/index.js";
@@ -156,4 +156,4 @@ var StackedModal = (props) => {
156
156
  export {
157
157
  StackedModal
158
158
  };
159
- //# sourceMappingURL=chunk-3I77A65F.js.map
159
+ //# sourceMappingURL=chunk-442FSG7G.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ useAddressPredictions
3
+ } from "./chunk-HEBZ7Q7O.js";
1
4
  import {
2
5
  useGoogleMapsAPI
3
6
  } from "./chunk-7VRCGWQL.js";
@@ -7,9 +10,6 @@ import {
7
10
  import {
8
11
  useAddressSelection
9
12
  } from "./chunk-VRPCZ3IE.js";
10
- import {
11
- useAddressPredictions
12
- } from "./chunk-HEBZ7Q7O.js";
13
13
 
14
14
  // src/components/form/AddressAutocomplete/AddressAutocomplete.hooks.ts
15
15
  import { useCallback, useState } from "react";
@@ -70,4 +70,4 @@ var useAddressAutocomplete = ({
70
70
  export {
71
71
  useAddressAutocomplete
72
72
  };
73
- //# sourceMappingURL=chunk-ZOUWHGV3.js.map
73
+ //# sourceMappingURL=chunk-4MGFUPQT.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-KHG57NAE.js";
7
7
  import {
8
8
  Checkbox
9
- } from "./chunk-DDL6W7JS.js";
9
+ } from "./chunk-FRD7U6QO.js";
10
10
  import {
11
11
  default as default2
12
12
  } from "./chunk-6DPAWXZ3.js";
@@ -134,4 +134,4 @@ export {
134
134
  SelectSlot,
135
135
  DiscloseSlot
136
136
  };
137
- //# sourceMappingURL=chunk-26QYVCDK.js.map
137
+ //# sourceMappingURL=chunk-525AOF6I.js.map
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-5AK2EZG5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,11 +1,11 @@
1
- import {
2
- useUploadButton
3
- } from "./chunk-QWVETTIY.js";
4
1
  import {
5
2
  UploadDropzone,
6
3
  UploadFeedback,
7
4
  UploadTrigger
8
5
  } from "./chunk-A5UYPUS2.js";
6
+ import {
7
+ useUploadButton
8
+ } from "./chunk-QWVETTIY.js";
9
9
 
10
10
  // src/components/form/UploadButton/UploadButton.tsx
11
11
  import Box from "@mui/material/Box/index.js";
@@ -73,4 +73,4 @@ UploadButton.displayName = "UploadButton";
73
73
  export {
74
74
  UploadButton
75
75
  };
76
- //# sourceMappingURL=chunk-5752357K.js.map
76
+ //# sourceMappingURL=chunk-5KGABAQB.js.map
@@ -1,6 +1,3 @@
1
- import {
2
- TextFieldSlim
3
- } from "./chunk-SL6454K7.js";
4
1
  import {
5
2
  filledStyles,
6
3
  floatingLabelStyles,
@@ -10,6 +7,9 @@ import {
10
7
  outlinedStyles,
11
8
  pulseStyles
12
9
  } from "./chunk-YLXQWYOG.js";
10
+ import {
11
+ TextFieldSlim
12
+ } from "./chunk-SL6454K7.js";
13
13
  import {
14
14
  INPUT_LOADING,
15
15
  SIZE_MAP,
@@ -137,4 +137,4 @@ Input.displayName = "Input";
137
137
  export {
138
138
  Input
139
139
  };
140
- //# sourceMappingURL=chunk-SDKOOVEX.js.map
140
+ //# sourceMappingURL=chunk-6GAZAJXB.js.map
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-2TSGRQ2J.js";
6
6
  import {
7
7
  Skeleton
8
- } from "./chunk-BEGTLELZ.js";
8
+ } from "./chunk-2K2B5QM2.js";
9
9
  import {
10
10
  fieldHeight
11
11
  } from "./chunk-M47ZOUGF.js";
@@ -274,4 +274,4 @@ LazyImage.displayName = "LazyImage";
274
274
  export {
275
275
  LazyImage
276
276
  };
277
- //# sourceMappingURL=chunk-EO6LCGGQ.js.map
277
+ //# sourceMappingURL=chunk-6J32H2RN.js.map
@@ -0,0 +1,62 @@
1
+ import {
2
+ Box,
3
+ CONTROL_RESET,
4
+ focusRing
5
+ } from "./chunk-HYEOKBFV.js";
6
+ import {
7
+ rem
8
+ } from "./chunk-YKCAJ2TN.js";
9
+
10
+ // src/components/navigation/SectionNav/SectionNav.primary.tsx
11
+ import { useTheme } from "@mui/material/styles/index.js";
12
+ import { jsx } from "react/jsx-runtime";
13
+ function RaisedActionButton({
14
+ label,
15
+ icon,
16
+ onClick,
17
+ open,
18
+ closeLabel,
19
+ dataTestId = "raised-action"
20
+ }) {
21
+ const theme = useTheme();
22
+ const size = rem(theme, 52);
23
+ const expanded = open === true;
24
+ return /* @__PURE__ */ jsx(Box, { sx: { flex: "none", display: "flex", alignItems: "flex-start", justifyContent: "center", px: 0.5 }, children: /* @__PURE__ */ jsx(
25
+ Box,
26
+ {
27
+ component: "button",
28
+ type: "button",
29
+ onClick,
30
+ "aria-label": expanded && closeLabel ? closeLabel : label,
31
+ "aria-expanded": open,
32
+ "data-testid": dataTestId,
33
+ sx: {
34
+ ...CONTROL_RESET,
35
+ ...focusRing(theme),
36
+ width: size,
37
+ height: size,
38
+ // Lifted half out of the bar: the one control that is not a place.
39
+ marginTop: rem(theme, -18),
40
+ borderRadius: "50%",
41
+ display: "flex",
42
+ alignItems: "center",
43
+ justifyContent: "center",
44
+ bgcolor: "primary.main",
45
+ color: "primary.contrastText",
46
+ boxShadow: theme.shadows[6],
47
+ "& svg": {
48
+ fontSize: rem(theme, 26),
49
+ transition: theme.transitions.create("transform", { duration: theme.transitions.duration.shorter }),
50
+ transform: expanded ? "rotate(45deg)" : "none"
51
+ },
52
+ "@media (prefers-reduced-motion: reduce)": { "& svg": { transition: "none" } }
53
+ },
54
+ children: icon
55
+ }
56
+ ) });
57
+ }
58
+
59
+ export {
60
+ RaisedActionButton
61
+ };
62
+ //# sourceMappingURL=chunk-6OLJ2RAT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/navigation/SectionNav/SectionNav.primary.tsx"],"sourcesContent":["import { useTheme } from '@mui/material/styles/index.js';\nimport type { ReactNode } from 'react';\n\nimport { rem } from '../../../tokens/scales';\n\nimport { Box, CONTROL_RESET, focusRing } from './SectionNav.parts';\n\nexport interface RaisedActionButtonProps {\n /** The button's accessible name — it has no visible label. */\n label: string;\n icon: ReactNode;\n onClick: () => void;\n /**\n * Whether what the button opens is open. Omit for a button that opens\n * nothing (a plain action): it then carries no `aria-expanded` and its icon\n * never turns.\n */\n open?: boolean;\n /** The name it takes while `open` — the same control closes what it opened. REQUIRED with `open`. */\n closeLabel?: string;\n dataTestId?: string;\n}\n\n/**\n * The raised round button in the middle of a bottom bar — the one control in\n * the row that is an ACTION rather than a place.\n *\n * Lifted half out of the bar so it reads as different in kind from the tabs\n * beside it, and unlabelled so it costs the row less width than a tab: that\n * width is what lets a bar keep four labelled tabs AND this button at 320px.\n *\n * `SectionNav` draws it for its `primary` menu. It is exported on its own for\n * a bar the host already draws — drop it between two tabs, in a flex row.\n */\nexport function RaisedActionButton({\n label,\n icon,\n onClick,\n open,\n closeLabel,\n dataTestId = 'raised-action',\n}: RaisedActionButtonProps): React.JSX.Element {\n const theme = useTheme();\n const size = rem(theme, 52);\n const expanded = open === true;\n return (\n <Box sx={{ flex: 'none', display: 'flex', alignItems: 'flex-start', justifyContent: 'center', px: 0.5 }}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClick}\n aria-label={expanded && closeLabel ? closeLabel : label}\n aria-expanded={open}\n data-testid={dataTestId}\n sx={{\n ...CONTROL_RESET,\n ...focusRing(theme),\n width: size,\n height: size,\n // Lifted half out of the bar: the one control that is not a place.\n marginTop: rem(theme, -18),\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n bgcolor: 'primary.main',\n color: 'primary.contrastText',\n boxShadow: theme.shadows[6],\n '& svg': {\n fontSize: rem(theme, 26),\n transition: theme.transitions.create('transform', { duration: theme.transitions.duration.shorter }),\n transform: expanded ? 'rotate(45deg)' : 'none',\n },\n '@media (prefers-reduced-motion: reduce)': { '& svg': { transition: 'none' } },\n }}\n >\n {icon}\n </Box>\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;;AAAA,SAAS,gBAAgB;AA+CnB;AAbC,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AACf,GAA+C;AAC7C,QAAM,QAAQ,SAAS;AACvB,QAAM,OAAO,IAAI,OAAO,EAAE;AAC1B,QAAM,WAAW,SAAS;AAC1B,SACE,oBAAC,OAAI,IAAI,EAAE,MAAM,QAAQ,SAAS,QAAQ,YAAY,cAAc,gBAAgB,UAAU,IAAI,IAAI,GACpG;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL;AAAA,MACA,cAAY,YAAY,aAAa,aAAa;AAAA,MAClD,iBAAe;AAAA,MACf,eAAa;AAAA,MACb,IAAI;AAAA,QACF,GAAG;AAAA,QACH,GAAG,UAAU,KAAK;AAAA,QAClB,OAAO;AAAA,QACP,QAAQ;AAAA;AAAA,QAER,WAAW,IAAI,OAAO,GAAG;AAAA,QACzB,cAAc;AAAA,QACd,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,gBAAgB;AAAA,QAChB,SAAS;AAAA,QACT,OAAO;AAAA,QACP,WAAW,MAAM,QAAQ,CAAC;AAAA,QAC1B,SAAS;AAAA,UACP,UAAU,IAAI,OAAO,EAAE;AAAA,UACvB,YAAY,MAAM,YAAY,OAAO,aAAa,EAAE,UAAU,MAAM,YAAY,SAAS,QAAQ,CAAC;AAAA,UAClG,WAAW,WAAW,kBAAkB;AAAA,QAC1C;AAAA,QACA,2CAA2C,EAAE,SAAS,EAAE,YAAY,OAAO,EAAE;AAAA,MAC/E;AAAA,MAEC;AAAA;AAAA,EACH,GACF;AAEJ;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  PillControl
3
- } from "./chunk-RRAWJQIO.js";
3
+ } from "./chunk-A64MQ7GW.js";
4
4
  import {
5
5
  PanelRangeField
6
- } from "./chunk-44USLRMT.js";
6
+ } from "./chunk-TPPFWETI.js";
7
7
  import {
8
8
  useDataViewsCopy
9
9
  } from "./chunk-KHG57NAE.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-FXWXBEOZ.js";
13
13
  import {
14
14
  StackedModal
15
- } from "./chunk-3I77A65F.js";
15
+ } from "./chunk-442FSG7G.js";
16
16
  import {
17
17
  StackedModalContent
18
18
  } from "./chunk-L4G5BZFF.js";
@@ -157,4 +157,4 @@ export {
157
157
  GridFilterPanel,
158
158
  FilterDialog
159
159
  };
160
- //# sourceMappingURL=chunk-7XDET7PL.js.map
160
+ //# sourceMappingURL=chunk-6OQHZVK6.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- buildDayArgs
3
- } from "./chunk-E2Y7G4MP.js";
4
1
  import {
5
2
  CalendarDay
6
3
  } from "./chunk-H3AQQOTI.js";
4
+ import {
5
+ buildDayArgs
6
+ } from "./chunk-E2Y7G4MP.js";
7
7
  import {
8
8
  isSameDay
9
9
  } from "./chunk-TERT6TIS.js";
@@ -40,4 +40,4 @@ var CalendarDayCell = ({
40
40
  export {
41
41
  CalendarDayCell
42
42
  };
43
- //# sourceMappingURL=chunk-F3AYISXT.js.map
43
+ //# sourceMappingURL=chunk-6PU3JYVY.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-3XS37SQT.js";
7
7
  import {
8
8
  CategorySelect
9
- } from "./chunk-WQ3KTELX.js";
9
+ } from "./chunk-V4R6Q5ED.js";
10
10
 
11
11
  // src/components/data-display/DataViews/data-views-category-pill.tsx
12
12
  import { jsx } from "react/jsx-runtime";
@@ -79,4 +79,4 @@ export {
79
79
  emitPillDiff,
80
80
  PillControl
81
81
  };
82
- //# sourceMappingURL=chunk-RRAWJQIO.js.map
82
+ //# sourceMappingURL=chunk-A64MQ7GW.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CalendarDayCell
3
- } from "./chunk-F3AYISXT.js";
3
+ } from "./chunk-6PU3JYVY.js";
4
4
  import {
5
5
  getMonthName
6
6
  } from "./chunk-TERT6TIS.js";
@@ -104,4 +104,4 @@ var CalendarMonth = ({
104
104
  export {
105
105
  CalendarMonth
106
106
  };
107
- //# sourceMappingURL=chunk-ADSA76T7.js.map
107
+ //# sourceMappingURL=chunk-AG3DY5TH.js.map
@@ -17,13 +17,13 @@ import {
17
17
  } from "./chunk-KHG57NAE.js";
18
18
  import {
19
19
  Checkbox
20
- } from "./chunk-DDL6W7JS.js";
20
+ } from "./chunk-FRD7U6QO.js";
21
21
  import {
22
22
  default as default2
23
23
  } from "./chunk-6DPAWXZ3.js";
24
24
  import {
25
25
  Card
26
- } from "./chunk-WN5PNP6F.js";
26
+ } from "./chunk-OP5JR5Q5.js";
27
27
  import {
28
28
  Text
29
29
  } from "./chunk-YZHX2HTC.js";
@@ -268,4 +268,4 @@ function BaseCard(props) {
268
268
  export {
269
269
  BaseCard
270
270
  };
271
- //# sourceMappingURL=chunk-CIBTYBBN.js.map
271
+ //# sourceMappingURL=chunk-AJ4MRDKM.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-6KEXHOIF.js";
4
4
  import {
5
5
  SettingsSectionChips
6
- } from "./chunk-BKBELIUR.js";
6
+ } from "./chunk-YWQ7QCWR.js";
7
7
  import {
8
8
  TOUCH_TARGET,
9
9
  atLeastRail,
@@ -167,4 +167,4 @@ function SettingsPanel({
167
167
  export {
168
168
  SettingsPanel
169
169
  };
170
- //# sourceMappingURL=chunk-RJ35IXFD.js.map
170
+ //# sourceMappingURL=chunk-B7HYM3QB.js.map
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-Q4JWWTL4.js";
8
8
  import {
9
9
  Input
10
- } from "./chunk-SDKOOVEX.js";
10
+ } from "./chunk-6GAZAJXB.js";
11
11
 
12
12
  // src/components/form/NumberField/NumberField.tsx
13
13
  import React, { useCallback, useId } from "react";
@@ -82,4 +82,4 @@ NumberField.displayName = "NumberField";
82
82
  export {
83
83
  NumberField
84
84
  };
85
- //# sourceMappingURL=chunk-X3C3VTYS.js.map
85
+ //# sourceMappingURL=chunk-BEX3FLHB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  renderChartByType
3
- } from "./chunk-X4VWYWFK.js";
3
+ } from "./chunk-SJY4DDG7.js";
4
4
  import {
5
5
  ChartContainer
6
6
  } from "./chunk-RIRTW5EU.js";
@@ -111,4 +111,4 @@ var Chart = (props) => {
111
111
  export {
112
112
  Chart
113
113
  };
114
- //# sourceMappingURL=chunk-C5RTSOXD.js.map
114
+ //# sourceMappingURL=chunk-BUAFRLSB.js.map
@@ -1,3 +1,8 @@
1
+ import {
2
+ MIN_QUERY_LENGTH,
3
+ addressOptionLabel,
4
+ isSameAddressOption
5
+ } from "./chunk-MTGEJRE4.js";
1
6
  import {
2
7
  AddressSuggestionsPaper
3
8
  } from "./chunk-C5RQBTRZ.js";
@@ -7,11 +12,6 @@ import {
7
12
  import {
8
13
  AddressInputField
9
14
  } from "./chunk-BVSSEOLI.js";
10
- import {
11
- MIN_QUERY_LENGTH,
12
- addressOptionLabel,
13
- isSameAddressOption
14
- } from "./chunk-MTGEJRE4.js";
15
15
 
16
16
  // src/components/form/AddressAutocomplete/AddressAutocompleteField.tsx
17
17
  import Alert from "@mui/material/Alert/index.js";
@@ -89,4 +89,4 @@ var AddressAutocompleteField = ({
89
89
  export {
90
90
  AddressAutocompleteField
91
91
  };
92
- //# sourceMappingURL=chunk-DH6SL3SY.js.map
92
+ //# sourceMappingURL=chunk-DSDNGTH6.js.map