@12-apps/ui 6.37.0 → 6.38.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 (661) hide show
  1. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +4 -4
  2. package/dist/_internal/components/data-display/CardKit/CardKebab.js +2 -2
  3. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +2 -2
  4. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +40 -40
  5. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +48 -49
  6. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +4 -5
  7. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +4 -5
  8. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +5 -6
  9. package/dist/_internal/components/data-display/DataViews/base-card.js +4 -5
  10. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +4 -4
  11. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +3 -3
  12. package/dist/_internal/components/data-display/DataViews/base-list-card.js +7 -8
  13. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +8 -8
  14. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +2 -2
  15. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +3 -3
  16. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +5 -5
  17. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +2 -2
  18. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +2 -2
  19. package/dist/_internal/components/data-display/DataViews/data-views-export.js +2 -2
  20. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +14 -14
  21. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +6 -6
  22. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +2 -2
  23. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +37 -37
  24. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +2 -2
  25. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +14 -14
  26. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +11 -11
  27. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +12 -12
  28. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +4 -4
  29. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  30. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +2 -2
  31. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +17 -17
  32. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +14 -15
  33. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +16 -16
  34. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +2 -2
  35. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +2 -2
  36. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +4 -4
  37. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +2 -2
  38. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +4 -4
  39. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +5 -5
  40. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +3 -3
  41. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +3 -3
  42. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +3 -3
  43. package/dist/_internal/components/data-display/StatCard/StatCard.js +3 -3
  44. package/dist/_internal/components/data-display/index.js +11 -11
  45. package/dist/_internal/components/feedback/Dialog/Dialog.js +3 -3
  46. package/dist/_internal/components/feedback/Dialog/Dialog.styles.js +2 -2
  47. package/dist/_internal/components/feedback/Modal/Modal.js +3 -2
  48. package/dist/_internal/components/feedback/Modal/Modal.styles.js +2 -1
  49. package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
  50. package/dist/_internal/components/feedback/Sonner/SonnerToast.js +1 -1
  51. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +4 -3
  52. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +3 -2
  53. package/dist/_internal/components/feedback/StackedModal/StackedModal.styles.js +2 -1
  54. package/dist/_internal/components/feedback/Toast/Toast.js +2 -1
  55. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.geometry.js +1 -1
  56. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.hooks.js +3 -2
  57. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +5 -4
  58. package/dist/_internal/components/feedback/TutorialOverlay/TutorialStepBody.js +2 -1
  59. package/dist/_internal/components/feedback/index.js +14 -15
  60. package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -2
  61. package/dist/_internal/components/index.js +83 -84
  62. package/dist/_internal/components/layout/Accordion/Accordion.js +3 -2
  63. package/dist/_internal/components/layout/Accordion/Accordion.styles.js +2 -1
  64. package/dist/_internal/components/layout/Box/Box.js +1 -1
  65. package/dist/_internal/components/layout/Card/Card.js +3 -3
  66. package/dist/_internal/components/layout/Card/Card.styles.js +2 -2
  67. package/dist/_internal/components/layout/Collapsible/Collapsible.helpers.js +2 -1
  68. package/dist/_internal/components/layout/Collapsible/Collapsible.js +3 -2
  69. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +1 -1
  70. package/dist/_internal/components/layout/ContentToolbar/ContentToolbar.js +1 -1
  71. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +1 -1
  72. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +1 -1
  73. package/dist/_internal/components/layout/ContentToolbar/SavedViewsMenu.js +1 -1
  74. package/dist/_internal/components/layout/ContentToolbar/SortByDropdown.js +1 -1
  75. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +1 -1
  76. package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
  77. package/dist/_internal/components/layout/Dashboard/DashboardParts.js +1 -1
  78. package/dist/_internal/components/layout/Drawer/Drawer.js +2 -1
  79. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +5 -4
  80. package/dist/_internal/components/layout/ScrollArea/ScrollArea.styles.js +6 -3
  81. package/dist/_internal/components/layout/ScrollArea/ScrollAreaContent.js +2 -1
  82. package/dist/_internal/components/layout/ScrollArea/ScrollViewport.js +3 -2
  83. package/dist/_internal/components/layout/Separator/Separator.js +4 -2
  84. package/dist/_internal/components/layout/Separator/Separator.styles.js +3 -1
  85. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.items.js +3 -3
  86. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +8 -8
  87. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.rail.js +4 -4
  88. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.styles.js +6 -5
  89. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +5 -5
  90. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionChips.js +3 -3
  91. package/dist/_internal/components/layout/SettingsLayout/SettingsSectionHeader.js +2 -2
  92. package/dist/_internal/components/layout/SettingsLayout/SettingsStatusMarker.js +2 -2
  93. package/dist/_internal/components/layout/Sidebar/Sidebar.js +2 -1
  94. package/dist/_internal/components/layout/Skeleton/Skeleton.js +3 -2
  95. package/dist/_internal/components/layout/Skeleton/Skeleton.styles.js +6 -3
  96. package/dist/_internal/components/layout/Spacer/Spacer.js +2 -1
  97. package/dist/_internal/components/layout/Stack/Stack.js +2 -2
  98. package/dist/_internal/components/layout/TableFilter/TableFilter.js +1 -1
  99. package/dist/_internal/components/layout/index.js +27 -28
  100. package/dist/_internal/components/navigation/AppHeader/AppHeader.brand.js +1 -1
  101. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +3 -4
  102. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -2
  103. package/dist/_internal/components/navigation/AppHeader/AppHeader.js +1 -1
  104. package/dist/_internal/components/navigation/Breadcrumbs/BreadcrumbEntry.js +2 -2
  105. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +3 -3
  106. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.styles.js +1 -1
  107. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +3 -3
  108. package/dist/_internal/components/navigation/CommandPalette/CommandPaletteResults.js +2 -2
  109. package/dist/_internal/components/navigation/CommandPalette/ShortcutChip.js +1 -1
  110. package/dist/_internal/components/navigation/ContextMenu/ContextMenu.js +1 -1
  111. package/dist/_internal/components/navigation/DropdownMenu/DropdownMenu.js +1 -1
  112. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +4 -4
  113. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +6 -6
  114. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.shell.js +2 -2
  115. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.styles.js +1 -1
  116. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenuItem.js +2 -2
  117. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +4 -4
  118. package/dist/_internal/components/navigation/Pagination/Pagination.js +3 -3
  119. package/dist/_internal/components/navigation/Pagination/Pagination.styles.js +1 -1
  120. package/dist/_internal/components/navigation/Pagination/PaginationParts.js +2 -1
  121. package/dist/_internal/components/navigation/Tabs/Tabs.js +10 -3
  122. package/dist/_internal/components/navigation/Tabs/Tabs.styles.js +8 -1
  123. package/dist/_internal/components/navigation/Tabs/TabsPanel.js +2 -1
  124. package/dist/_internal/components/navigation/index.js +26 -27
  125. package/dist/_internal/components/typography/Blockquote/Blockquote.js +1 -1
  126. package/dist/_internal/components/typography/Code/Code.js +1 -1
  127. package/dist/_internal/components/typography/Text/Text.js +1 -1
  128. package/dist/_internal/components/typography/index.js +3 -3
  129. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.animations.js +2 -1
  130. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +3 -3
  131. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.styles.js +2 -2
  132. package/dist/_internal/components/utility/AspectRatio/AspectRatio.js +2 -1
  133. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +3 -3
  134. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +1 -1
  135. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +2 -2
  136. package/dist/_internal/components/utility/index.js +7 -7
  137. package/dist/_internal/social-login-button/social-login-button.js +6 -7
  138. package/dist/_internal/tokens/shadow.js +19 -8
  139. package/dist/_internal/tokens/shadow.js.map +1 -1
  140. package/dist/_internal/user-avatar/user-avatar.js +4 -5
  141. package/dist/{chunk-BLJDCMFU.js → chunk-2ARVNCVU.js} +7 -7
  142. package/dist/chunk-2ARVNCVU.js.map +1 -0
  143. package/dist/{chunk-SJO3K7SB.js → chunk-2OYFTSG4.js} +4 -4
  144. package/dist/{chunk-CRZXSZ5O.js → chunk-2S752BIJ.js} +2 -2
  145. package/dist/{chunk-IYTBTK2M.js → chunk-2WU52FLP.js} +19 -30
  146. package/dist/chunk-2WU52FLP.js.map +1 -0
  147. package/dist/{chunk-RSQMPCCR.js → chunk-34643ATX.js} +10 -4
  148. package/dist/chunk-34643ATX.js.map +1 -0
  149. package/dist/{chunk-6GRZ77IS.js → chunk-3AIRFAI3.js} +13 -12
  150. package/dist/chunk-3AIRFAI3.js.map +1 -0
  151. package/dist/{chunk-Q73PTVNO.js → chunk-3FNXOCBD.js} +24 -12
  152. package/dist/chunk-3FNXOCBD.js.map +1 -0
  153. package/dist/{chunk-BAQBUKDU.js → chunk-3KREF4ZF.js} +2 -2
  154. package/dist/{chunk-EL7CMURV.js → chunk-3LSIFHQK.js} +3 -3
  155. package/dist/chunk-3LSIFHQK.js.map +1 -0
  156. package/dist/{chunk-MP4VSWHK.js → chunk-3NJMNMWB.js} +12 -2
  157. package/dist/chunk-3NJMNMWB.js.map +1 -0
  158. package/dist/{chunk-N52O2OKZ.js → chunk-3NNO6YIH.js} +8 -3
  159. package/dist/chunk-3NNO6YIH.js.map +1 -0
  160. package/dist/{chunk-SYN46YL6.js → chunk-3RMDIO4G.js} +3 -3
  161. package/dist/{chunk-MJ3BVWPZ.js → chunk-43G3WMYN.js} +12 -7
  162. package/dist/chunk-43G3WMYN.js.map +1 -0
  163. package/dist/{chunk-E7MSDXED.js → chunk-43H66TVT.js} +12 -5
  164. package/dist/chunk-43H66TVT.js.map +1 -0
  165. package/dist/{chunk-IL7JZKXY.js → chunk-442FSG7G.js} +3 -3
  166. package/dist/{chunk-DYVAOEW4.js → chunk-4D4LLSQC.js} +6 -5
  167. package/dist/chunk-4D4LLSQC.js.map +1 -0
  168. package/dist/{chunk-NEGCJNGJ.js → chunk-4G47KBTP.js} +9 -9
  169. package/dist/chunk-4G47KBTP.js.map +1 -0
  170. package/dist/{chunk-MVXFMIVZ.js → chunk-4GB46HLK.js} +8 -4
  171. package/dist/chunk-4GB46HLK.js.map +1 -0
  172. package/dist/{chunk-CS3KOKL3.js → chunk-4GWHYLEB.js} +2 -2
  173. package/dist/{chunk-4OEKIFBC.js → chunk-4VMFS3VJ.js} +6 -3
  174. package/dist/chunk-4VMFS3VJ.js.map +1 -0
  175. package/dist/{chunk-6CTPDNNX.js → chunk-52G2KRL4.js} +14 -14
  176. package/dist/chunk-52G2KRL4.js.map +1 -0
  177. package/dist/{chunk-E7T3A4IR.js → chunk-5JCGBCFJ.js} +2 -2
  178. package/dist/{chunk-FC7NQ6XM.js → chunk-5MW7OYBM.js} +2 -2
  179. package/dist/{chunk-CQLPDY2J.js → chunk-5OBXEMQO.js} +3 -3
  180. package/dist/{chunk-MK4CH4VT.js → chunk-5OUEKIWQ.js} +14 -12
  181. package/dist/chunk-5OUEKIWQ.js.map +1 -0
  182. package/dist/{chunk-GHXFCMFP.js → chunk-5QAJ3Y5F.js} +3 -3
  183. package/dist/{chunk-GHXFCMFP.js.map → chunk-5QAJ3Y5F.js.map} +1 -1
  184. package/dist/{chunk-CPTY6UZ6.js → chunk-6KEXHOIF.js} +5 -4
  185. package/dist/chunk-6KEXHOIF.js.map +1 -0
  186. package/dist/{chunk-BW62QQAG.js → chunk-6N4AA2Y7.js} +2 -2
  187. package/dist/{chunk-EFHIMCJN.js → chunk-6P2OFMBX.js} +11 -9
  188. package/dist/chunk-6P2OFMBX.js.map +1 -0
  189. package/dist/{chunk-GUW5BUK7.js → chunk-6WBKOM5K.js} +15 -7
  190. package/dist/chunk-6WBKOM5K.js.map +1 -0
  191. package/dist/{chunk-7EIOXZWL.js → chunk-74P3YX7R.js} +4 -4
  192. package/dist/{chunk-VYSFKR32.js → chunk-75CGLX6Q.js} +3 -3
  193. package/dist/{chunk-VYSFKR32.js.map → chunk-75CGLX6Q.js.map} +1 -1
  194. package/dist/{chunk-LVEG6XQL.js → chunk-76X6JRVI.js} +19 -33
  195. package/dist/chunk-76X6JRVI.js.map +1 -0
  196. package/dist/{chunk-2NLYGZP3.js → chunk-77JL5XVD.js} +13 -9
  197. package/dist/chunk-77JL5XVD.js.map +1 -0
  198. package/dist/{chunk-T3WHW7ZC.js → chunk-BAZXVFLR.js} +10 -6
  199. package/dist/chunk-BAZXVFLR.js.map +1 -0
  200. package/dist/{chunk-7F7TTOYN.js → chunk-BEGTLELZ.js} +7 -6
  201. package/dist/chunk-BEGTLELZ.js.map +1 -0
  202. package/dist/{chunk-VT5HQ2AD.js → chunk-BFMDA6UO.js} +3 -3
  203. package/dist/{chunk-R75DZ3AK.js → chunk-BVLMKSHX.js} +2 -2
  204. package/dist/{chunk-PMP6WJJS.js → chunk-BWMHGENX.js} +20 -19
  205. package/dist/chunk-BWMHGENX.js.map +1 -0
  206. package/dist/{chunk-QAP3FW33.js → chunk-C66RGVAS.js} +30 -20
  207. package/dist/chunk-C66RGVAS.js.map +1 -0
  208. package/dist/{chunk-UZ6AUTE6.js → chunk-CNQUCNEA.js} +7 -7
  209. package/dist/{chunk-JL75FJRG.js → chunk-CZIX4BW2.js} +4 -4
  210. package/dist/{chunk-CAHWCSRE.js → chunk-D46SLMCX.js} +22 -8
  211. package/dist/chunk-D46SLMCX.js.map +1 -0
  212. package/dist/{chunk-2OIP3T5O.js → chunk-DBFRCTI5.js} +4 -4
  213. package/dist/{chunk-2OIP3T5O.js.map → chunk-DBFRCTI5.js.map} +1 -1
  214. package/dist/{chunk-HU7TX7RB.js → chunk-DUBTI4DI.js} +4 -4
  215. package/dist/{chunk-RMCNEKBZ.js → chunk-DW6F7354.js} +2 -2
  216. package/dist/{chunk-Q4BQYYPU.js → chunk-E2QIKJX2.js} +11 -5
  217. package/dist/chunk-E2QIKJX2.js.map +1 -0
  218. package/dist/{chunk-XJUEHG72.js → chunk-EERUSI52.js} +2 -2
  219. package/dist/{chunk-NPP44TQG.js → chunk-EYZ6QBTV.js} +2 -2
  220. package/dist/{chunk-NPP44TQG.js.map → chunk-EYZ6QBTV.js.map} +1 -1
  221. package/dist/{chunk-C55AWF3U.js → chunk-FFCJ7NR2.js} +2 -2
  222. package/dist/{chunk-U342T7ZR.js → chunk-FOCU4QT5.js} +13 -10
  223. package/dist/chunk-FOCU4QT5.js.map +1 -0
  224. package/dist/{chunk-FYTLKHEN.js → chunk-FYKFQPVT.js} +19 -18
  225. package/dist/chunk-FYKFQPVT.js.map +1 -0
  226. package/dist/{chunk-TVL5V2JK.js → chunk-GGMB6LJH.js} +7 -3
  227. package/dist/chunk-GGMB6LJH.js.map +1 -0
  228. package/dist/{chunk-AYLEZM6T.js → chunk-GLFTIGOF.js} +3 -3
  229. package/dist/{chunk-7UZ2TFIK.js → chunk-GNCSDUGY.js} +12 -4
  230. package/dist/chunk-GNCSDUGY.js.map +1 -0
  231. package/dist/{chunk-L4UP5VYS.js → chunk-GVH7C2PT.js} +2 -2
  232. package/dist/{chunk-MBSYD3ZU.js → chunk-GWFAINQ7.js} +3 -3
  233. package/dist/chunk-GWFAINQ7.js.map +1 -0
  234. package/dist/{chunk-AER4245J.js → chunk-H67EL3CG.js} +6 -6
  235. package/dist/{chunk-3D6HXKZM.js → chunk-HDJQDMHB.js} +18 -13
  236. package/dist/chunk-HDJQDMHB.js.map +1 -0
  237. package/dist/{chunk-57JLS55D.js → chunk-I4QA2F4L.js} +4 -4
  238. package/dist/{chunk-L7SFH3ED.js → chunk-I7GSRTGQ.js} +37 -28
  239. package/dist/chunk-I7GSRTGQ.js.map +1 -0
  240. package/dist/{chunk-Q4CAZ2TP.js → chunk-IG23YZZR.js} +6 -5
  241. package/dist/chunk-IG23YZZR.js.map +1 -0
  242. package/dist/{chunk-5W4BLTDI.js → chunk-IWFENXST.js} +7 -6
  243. package/dist/chunk-IWFENXST.js.map +1 -0
  244. package/dist/{chunk-HXEBKOSM.js → chunk-J5UZB6Y6.js} +2 -2
  245. package/dist/chunk-J5UZB6Y6.js.map +1 -0
  246. package/dist/{chunk-AJ5SDHX5.js → chunk-JCL7WK4G.js} +2 -2
  247. package/dist/{chunk-5CKDRLRN.js → chunk-JXECOCNA.js} +35 -19
  248. package/dist/chunk-JXECOCNA.js.map +1 -0
  249. package/dist/{chunk-WUTHROII.js → chunk-JYWF76Z5.js} +11 -5
  250. package/dist/chunk-JYWF76Z5.js.map +1 -0
  251. package/dist/{chunk-B76QCDCE.js → chunk-K4L42FF6.js} +6 -3
  252. package/dist/chunk-K4L42FF6.js.map +1 -0
  253. package/dist/{chunk-WE3LJPRN.js → chunk-KE473LK6.js} +2 -2
  254. package/dist/{chunk-TBF2CPJW.js → chunk-KIHGTL2D.js} +21 -11
  255. package/dist/chunk-KIHGTL2D.js.map +1 -0
  256. package/dist/{chunk-3T5Z5HXF.js → chunk-KM3Y5TCG.js} +40 -36
  257. package/dist/chunk-KM3Y5TCG.js.map +1 -0
  258. package/dist/{chunk-RWTFZ7J5.js → chunk-L4G5BZFF.js} +22 -13
  259. package/dist/chunk-L4G5BZFF.js.map +1 -0
  260. package/dist/{chunk-HB7ISSLK.js → chunk-L5RQIQIP.js} +26 -22
  261. package/dist/chunk-L5RQIQIP.js.map +1 -0
  262. package/dist/{chunk-CQPFSEJB.js → chunk-L7NQCLFU.js} +2 -2
  263. package/dist/{chunk-2ZIHZLF5.js → chunk-M2JTIH5M.js} +3 -3
  264. package/dist/{chunk-OATHOXIU.js → chunk-MC4KYGSX.js} +8 -8
  265. package/dist/chunk-MC4KYGSX.js.map +1 -0
  266. package/dist/{chunk-2BIVCYTO.js → chunk-MR2HKBHS.js} +4 -4
  267. package/dist/{chunk-YVUD3MY4.js → chunk-N23GCN5U.js} +7 -4
  268. package/dist/chunk-N23GCN5U.js.map +1 -0
  269. package/dist/{chunk-2TJOCI54.js → chunk-NCEQWEXT.js} +3 -3
  270. package/dist/{chunk-2TJOCI54.js.map → chunk-NCEQWEXT.js.map} +1 -1
  271. package/dist/{chunk-IVIHRZEY.js → chunk-NDMPXMW2.js} +12 -8
  272. package/dist/chunk-NDMPXMW2.js.map +1 -0
  273. package/dist/{chunk-UUUMNJPP.js → chunk-NLYNRE7L.js} +10 -10
  274. package/dist/chunk-NLYNRE7L.js.map +1 -0
  275. package/dist/{chunk-KLWW67WP.js → chunk-NOKN4HRK.js} +12 -11
  276. package/dist/chunk-NOKN4HRK.js.map +1 -0
  277. package/dist/{chunk-LIG7TKIB.js → chunk-NYFNF7I5.js} +11 -6
  278. package/dist/chunk-NYFNF7I5.js.map +1 -0
  279. package/dist/{chunk-KK57AHWS.js → chunk-OAEYCKBN.js} +2 -2
  280. package/dist/{chunk-JGRE56GQ.js → chunk-OB56SZGL.js} +2 -2
  281. package/dist/{chunk-VRDNUY4H.js → chunk-OHC3F7GJ.js} +4 -4
  282. package/dist/chunk-OHC3F7GJ.js.map +1 -0
  283. package/dist/{chunk-E4TNDTWV.js → chunk-OL2BEJZR.js} +2 -2
  284. package/dist/{chunk-NDNYD4FG.js → chunk-OS6KPL4D.js} +4 -4
  285. package/dist/{chunk-ZTYUKEN3.js → chunk-OVXSQQDK.js} +12 -7
  286. package/dist/chunk-OVXSQQDK.js.map +1 -0
  287. package/dist/{chunk-ZQL5RXVE.js → chunk-PA3AA55Q.js} +2 -2
  288. package/dist/{chunk-ZQL5RXVE.js.map → chunk-PA3AA55Q.js.map} +1 -1
  289. package/dist/{chunk-75LOTMSN.js → chunk-PPRV4LTM.js} +2 -2
  290. package/dist/{chunk-LT4NEKXB.js → chunk-QA2ZGCRL.js} +3 -3
  291. package/dist/{chunk-2E2WOBID.js → chunk-QGFBIUOK.js} +5 -5
  292. package/dist/chunk-QGFBIUOK.js.map +1 -0
  293. package/dist/{chunk-ROT57BP4.js → chunk-R2XVTUVR.js} +2 -2
  294. package/dist/{chunk-QEG3P5D4.js → chunk-R6SN73RX.js} +10 -10
  295. package/dist/{chunk-MVKYNDT2.js → chunk-RKROWJVF.js} +11 -9
  296. package/dist/chunk-RKROWJVF.js.map +1 -0
  297. package/dist/{chunk-NYZO3JNB.js → chunk-RXJQA3FQ.js} +2 -3
  298. package/dist/chunk-RXJQA3FQ.js.map +1 -0
  299. package/dist/{chunk-IKLOIONQ.js → chunk-RZYSKQTS.js} +3 -3
  300. package/dist/{chunk-NCPWLHZT.js → chunk-SKT2V2OX.js} +3 -3
  301. package/dist/{chunk-EOW2ECB3.js → chunk-SNURSSTN.js} +2 -2
  302. package/dist/{chunk-GRDPGHQJ.js → chunk-SV6JGFHG.js} +9 -5
  303. package/dist/chunk-SV6JGFHG.js.map +1 -0
  304. package/dist/{chunk-CZBND7AY.js → chunk-T7DE44SP.js} +2 -2
  305. package/dist/{chunk-DB2ZFZVW.js → chunk-TKC6WHGB.js} +2 -2
  306. package/dist/{chunk-3CVTQZQJ.js → chunk-TNYKM4UU.js} +13 -9
  307. package/dist/chunk-TNYKM4UU.js.map +1 -0
  308. package/dist/{chunk-3VMGE7CU.js → chunk-TZFBJ47T.js} +3 -3
  309. package/dist/chunk-TZFBJ47T.js.map +1 -0
  310. package/dist/{chunk-VFHGILXI.js → chunk-U3DBQXPI.js} +20 -17
  311. package/dist/chunk-U3DBQXPI.js.map +1 -0
  312. package/dist/{chunk-JLQGRZMN.js → chunk-UEVHI62V.js} +2 -2
  313. package/dist/{chunk-4CXEWFKO.js → chunk-UFJYJHQI.js} +2 -2
  314. package/dist/{chunk-QKPD322X.js → chunk-UFNIS7KC.js} +2 -2
  315. package/dist/chunk-UFNIS7KC.js.map +1 -0
  316. package/dist/{chunk-BNEWMFVB.js → chunk-UGGJ3KDT.js} +2 -2
  317. package/dist/{chunk-L4QCIUTJ.js → chunk-UMNXSQ7I.js} +3 -3
  318. package/dist/{chunk-L4QCIUTJ.js.map → chunk-UMNXSQ7I.js.map} +1 -1
  319. package/dist/{chunk-2CTTASUD.js → chunk-V5EWCJBT.js} +7 -4
  320. package/dist/chunk-V5EWCJBT.js.map +1 -0
  321. package/dist/{chunk-236V2GRH.js → chunk-VCBV5JM7.js} +49 -41
  322. package/dist/chunk-VCBV5JM7.js.map +1 -0
  323. package/dist/{chunk-KREWQAEV.js → chunk-VIRYHNEM.js} +2 -2
  324. package/dist/{chunk-PT2XADGH.js → chunk-VPRNKJHP.js} +9 -6
  325. package/dist/chunk-VPRNKJHP.js.map +1 -0
  326. package/dist/{chunk-JXUWWPZR.js → chunk-VQYR64QB.js} +14 -8
  327. package/dist/chunk-VQYR64QB.js.map +1 -0
  328. package/dist/{chunk-72DKEBJM.js → chunk-VRPREI27.js} +3 -3
  329. package/dist/chunk-VRPREI27.js.map +1 -0
  330. package/dist/{chunk-N6CSXHFJ.js → chunk-WN5PNP6F.js} +2 -2
  331. package/dist/{chunk-6QLPSMTA.js → chunk-XEWMY4ZM.js} +52 -47
  332. package/dist/chunk-XEWMY4ZM.js.map +1 -0
  333. package/dist/{chunk-XR46FSOH.js → chunk-XIG3DXXX.js} +2 -2
  334. package/dist/{chunk-35S6QI5G.js → chunk-XJJXBUPN.js} +2 -2
  335. package/dist/{chunk-GHTBUJ6E.js → chunk-XRUW7DMH.js} +2 -2
  336. package/dist/{chunk-CSTAQX2B.js → chunk-XWZJLXJT.js} +7 -6
  337. package/dist/chunk-XWZJLXJT.js.map +1 -0
  338. package/dist/{chunk-MBC55H6M.js → chunk-Y5UTYBZW.js} +12 -6
  339. package/dist/chunk-Y5UTYBZW.js.map +1 -0
  340. package/dist/{chunk-HNPWZ3W2.js → chunk-Y7F5JBAT.js} +4 -4
  341. package/dist/{chunk-WTOYEWW6.js → chunk-YBH4SPMM.js} +4 -3
  342. package/dist/chunk-YBH4SPMM.js.map +1 -0
  343. package/dist/{chunk-5QWQR7XT.js → chunk-YHGOPZXW.js} +11 -8
  344. package/dist/chunk-YHGOPZXW.js.map +1 -0
  345. package/dist/{chunk-6BDYC4RA.js → chunk-YRSR5LVZ.js} +3 -3
  346. package/dist/{chunk-57JY4OI2.js → chunk-YUXDVW62.js} +3 -3
  347. package/dist/chunk-YUXDVW62.js.map +1 -0
  348. package/dist/{chunk-RNEYZTE4.js → chunk-Z6MCTGIK.js} +2 -2
  349. package/dist/{chunk-RNEYZTE4.js.map → chunk-Z6MCTGIK.js.map} +1 -1
  350. package/dist/{chunk-FFOQZRFC.js → chunk-ZAY6OA6F.js} +2 -2
  351. package/dist/data-display/AsyncStateContainer.js +4 -4
  352. package/dist/data-display/CardKit.js +2 -2
  353. package/dist/data-display/DataViews.js +55 -56
  354. package/dist/data-display/DescriptionItem.js +2 -2
  355. package/dist/data-display/FleetMap.js +5 -5
  356. package/dist/data-display/LazyImage.js +3 -3
  357. package/dist/data-display/LoadingState.js +3 -3
  358. package/dist/data-display/StatCard.js +3 -3
  359. package/dist/feedback/Dialog.js +3 -3
  360. package/dist/feedback/Modal.js +3 -2
  361. package/dist/feedback/Sonner.js +2 -2
  362. package/dist/feedback/StackedModal.js +4 -3
  363. package/dist/feedback/Toast.js +2 -1
  364. package/dist/feedback/TutorialOverlay.js +5 -4
  365. package/dist/form/total-form.js +2 -2
  366. package/dist/layout/Accordion.js +3 -2
  367. package/dist/layout/Box.js +1 -1
  368. package/dist/layout/Card.js +3 -3
  369. package/dist/layout/Collapsible.js +3 -2
  370. package/dist/layout/ContentToolbar.js +7 -7
  371. package/dist/layout/Dashboard.js +2 -2
  372. package/dist/layout/Drawer.js +2 -1
  373. package/dist/layout/ScrollArea.js +5 -4
  374. package/dist/layout/Separator.js +4 -2
  375. package/dist/layout/SettingsLayout.js +8 -8
  376. package/dist/layout/Sidebar.js +2 -1
  377. package/dist/layout/Skeleton.js +3 -2
  378. package/dist/layout/Spacer.js +2 -1
  379. package/dist/layout/Stack.js +2 -2
  380. package/dist/layout/TableFilter.js +1 -1
  381. package/dist/navigation/AppHeader.js +6 -7
  382. package/dist/navigation/Breadcrumbs.js +3 -3
  383. package/dist/navigation/CommandPalette.js +3 -3
  384. package/dist/navigation/ContextMenu.js +1 -1
  385. package/dist/navigation/DropdownMenu.js +1 -1
  386. package/dist/navigation/NavigationMenu.js +6 -6
  387. package/dist/navigation/Pagination.js +3 -3
  388. package/dist/navigation/Tabs.js +10 -3
  389. package/dist/social-login-button.js +6 -7
  390. package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts.map +1 -1
  391. package/dist/types/components/feedback/Modal/Modal.d.ts.map +1 -1
  392. package/dist/types/components/feedback/Modal/Modal.styles.d.ts.map +1 -1
  393. package/dist/types/components/feedback/StackedModal/StackedModal.parts.d.ts.map +1 -1
  394. package/dist/types/components/feedback/StackedModal/StackedModal.styles.d.ts.map +1 -1
  395. package/dist/types/components/feedback/Toast/Toast.d.ts.map +1 -1
  396. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.d.ts.map +1 -1
  397. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.geometry.d.ts +3 -1
  398. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.geometry.d.ts.map +1 -1
  399. package/dist/types/components/feedback/TutorialOverlay/TutorialOverlay.hooks.d.ts.map +1 -1
  400. package/dist/types/components/feedback/TutorialOverlay/TutorialStepBody.d.ts.map +1 -1
  401. package/dist/types/components/layout/Accordion/Accordion.d.ts.map +1 -1
  402. package/dist/types/components/layout/Accordion/Accordion.styles.d.ts.map +1 -1
  403. package/dist/types/components/layout/Box/Box.d.ts +2 -1
  404. package/dist/types/components/layout/Box/Box.d.ts.map +1 -1
  405. package/dist/types/components/layout/Card/Card.styles.d.ts.map +1 -1
  406. package/dist/types/components/layout/Collapsible/Collapsible.d.ts.map +1 -1
  407. package/dist/types/components/layout/Collapsible/Collapsible.helpers.d.ts +1 -1
  408. package/dist/types/components/layout/Collapsible/Collapsible.helpers.d.ts.map +1 -1
  409. package/dist/types/components/layout/Drawer/Drawer.d.ts.map +1 -1
  410. package/dist/types/components/layout/ScrollArea/ScrollArea.d.ts.map +1 -1
  411. package/dist/types/components/layout/ScrollArea/ScrollArea.styles.d.ts +6 -0
  412. package/dist/types/components/layout/ScrollArea/ScrollArea.styles.d.ts.map +1 -1
  413. package/dist/types/components/layout/ScrollArea/ScrollViewport.d.ts.map +1 -1
  414. package/dist/types/components/layout/Separator/Separator.d.ts.map +1 -1
  415. package/dist/types/components/layout/Separator/Separator.styles.d.ts +7 -4
  416. package/dist/types/components/layout/Separator/Separator.styles.d.ts.map +1 -1
  417. package/dist/types/components/layout/SettingsLayout/SettingsLayout.items.d.ts.map +1 -1
  418. package/dist/types/components/layout/SettingsLayout/SettingsLayout.rail.d.ts.map +1 -1
  419. package/dist/types/components/layout/SettingsLayout/SettingsLayout.styles.d.ts +4 -4
  420. package/dist/types/components/layout/SettingsLayout/SettingsLayout.styles.d.ts.map +1 -1
  421. package/dist/types/components/layout/Sidebar/Sidebar.d.ts.map +1 -1
  422. package/dist/types/components/layout/Skeleton/Skeleton.d.ts.map +1 -1
  423. package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts +8 -1
  424. package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts.map +1 -1
  425. package/dist/types/components/layout/Spacer/Spacer.d.ts.map +1 -1
  426. package/dist/types/components/layout/TableFilter/TableFilter.d.ts.map +1 -1
  427. package/dist/types/components/navigation/AppHeader/AppHeader.d.ts.map +1 -1
  428. package/dist/types/components/navigation/AppHeader/AppHeader.details.d.ts.map +1 -1
  429. package/dist/types/components/navigation/AppHeader/AppHeader.identity.d.ts.map +1 -1
  430. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.styles.d.ts +2 -2
  431. package/dist/types/components/navigation/Breadcrumbs/Breadcrumbs.styles.d.ts.map +1 -1
  432. package/dist/types/components/navigation/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  433. package/dist/types/components/navigation/NavigationMenu/NavigationMegaSection.d.ts.map +1 -1
  434. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.d.ts.map +1 -1
  435. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.shell.d.ts.map +1 -1
  436. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.styles.d.ts +2 -2
  437. package/dist/types/components/navigation/NavigationMenu/NavigationMenu.styles.d.ts.map +1 -1
  438. package/dist/types/components/navigation/NavigationMenu/NavigationStandardBody.d.ts.map +1 -1
  439. package/dist/types/components/navigation/Pagination/Pagination.d.ts.map +1 -1
  440. package/dist/types/components/navigation/Pagination/PaginationParts.d.ts.map +1 -1
  441. package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
  442. package/dist/types/components/navigation/Tabs/Tabs.styles.d.ts.map +1 -1
  443. package/dist/types/components/navigation/Tabs/TabsPanel.d.ts.map +1 -1
  444. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.animations.d.ts +9 -8
  445. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.animations.d.ts.map +1 -1
  446. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.styles.d.ts +1 -1
  447. package/dist/types/components/utility/AnimatedIcon/AnimatedIcon.styles.d.ts.map +1 -1
  448. package/dist/types/components/utility/AspectRatio/AspectRatio.d.ts.map +1 -1
  449. package/dist/types/social-login-button/social-login-button.d.ts.map +1 -1
  450. package/dist/typography/Blockquote.js +1 -1
  451. package/dist/typography/Code.js +1 -1
  452. package/dist/typography/Text.js +1 -1
  453. package/dist/user-avatar.js +4 -5
  454. package/dist/utility/AnimatedIcon.js +3 -3
  455. package/dist/utility/AspectRatio.js +2 -1
  456. package/dist/utility/WorkflowStep.js +3 -3
  457. package/package.json +1 -1
  458. package/src/components/feedback/Dialog/Dialog.styles.ts +16 -28
  459. package/src/components/feedback/Modal/Modal.styles.ts +9 -8
  460. package/src/components/feedback/Modal/Modal.tsx +3 -2
  461. package/src/components/feedback/Sonner/Sonner.tsx +4 -4
  462. package/src/components/feedback/Sonner/SonnerToast.tsx +9 -9
  463. package/src/components/feedback/StackedModal/StackedModal.parts.tsx +26 -19
  464. package/src/components/feedback/StackedModal/StackedModal.styles.ts +11 -9
  465. package/src/components/feedback/Toast/Toast.tsx +11 -7
  466. package/src/components/feedback/TutorialOverlay/TutorialOverlay.geometry.ts +2 -3
  467. package/src/components/feedback/TutorialOverlay/TutorialOverlay.hooks.ts +6 -1
  468. package/src/components/feedback/TutorialOverlay/TutorialOverlay.tsx +43 -37
  469. package/src/components/feedback/TutorialOverlay/TutorialStepBody.tsx +3 -2
  470. package/src/components/layout/Accordion/Accordion.styles.ts +8 -6
  471. package/src/components/layout/Accordion/Accordion.tsx +10 -8
  472. package/src/components/layout/Box/Box.tsx +18 -5
  473. package/src/components/layout/Card/Card.styles.ts +22 -30
  474. package/src/components/layout/Collapsible/Collapsible.helpers.ts +4 -2
  475. package/src/components/layout/Collapsible/Collapsible.tsx +8 -4
  476. package/src/components/layout/ContentToolbar/ColumnsMenu.tsx +1 -1
  477. package/src/components/layout/ContentToolbar/ContentToolbar.tsx +2 -2
  478. package/src/components/layout/ContentToolbar/FilterTrigger.tsx +2 -2
  479. package/src/components/layout/ContentToolbar/MultiSelectDropdown.tsx +1 -1
  480. package/src/components/layout/ContentToolbar/SavedViewsMenu.tsx +2 -2
  481. package/src/components/layout/ContentToolbar/SortByDropdown.tsx +2 -2
  482. package/src/components/layout/ContentToolbar/ViewSelector.tsx +2 -2
  483. package/src/components/layout/Dashboard/Dashboard.tsx +1 -1
  484. package/src/components/layout/Dashboard/DashboardParts.tsx +1 -1
  485. package/src/components/layout/Drawer/Drawer.tsx +23 -10
  486. package/src/components/layout/ScrollArea/ScrollArea.styles.ts +45 -32
  487. package/src/components/layout/ScrollArea/ScrollArea.tsx +31 -16
  488. package/src/components/layout/ScrollArea/ScrollAreaContent.tsx +2 -2
  489. package/src/components/layout/ScrollArea/ScrollViewport.tsx +6 -4
  490. package/src/components/layout/Separator/Separator.styles.ts +30 -9
  491. package/src/components/layout/Separator/Separator.tsx +4 -3
  492. package/src/components/layout/SettingsLayout/SettingsLayout.items.tsx +4 -2
  493. package/src/components/layout/SettingsLayout/SettingsLayout.rail.tsx +6 -5
  494. package/src/components/layout/SettingsLayout/SettingsLayout.styles.ts +9 -7
  495. package/src/components/layout/SettingsLayout/SettingsLayout.tsx +2 -2
  496. package/src/components/layout/SettingsLayout/SettingsPanel.tsx +1 -1
  497. package/src/components/layout/SettingsLayout/SettingsSectionChips.tsx +3 -3
  498. package/src/components/layout/SettingsLayout/SettingsSectionHeader.tsx +3 -3
  499. package/src/components/layout/SettingsLayout/SettingsStatusMarker.tsx +2 -2
  500. package/src/components/layout/Sidebar/Sidebar.tsx +16 -6
  501. package/src/components/layout/Skeleton/Skeleton.styles.ts +13 -3
  502. package/src/components/layout/Skeleton/Skeleton.tsx +6 -4
  503. package/src/components/layout/Spacer/Spacer.tsx +16 -1
  504. package/src/components/layout/TableFilter/TableFilter.tsx +2 -1
  505. package/src/components/navigation/AppHeader/AppHeader.brand.tsx +2 -2
  506. package/src/components/navigation/AppHeader/AppHeader.details.tsx +9 -7
  507. package/src/components/navigation/AppHeader/AppHeader.identity.tsx +28 -15
  508. package/src/components/navigation/AppHeader/AppHeader.tsx +18 -6
  509. package/src/components/navigation/Breadcrumbs/BreadcrumbEntry.tsx +4 -4
  510. package/src/components/navigation/Breadcrumbs/Breadcrumbs.styles.tsx +15 -15
  511. package/src/components/navigation/CommandPalette/CommandPalette.tsx +7 -7
  512. package/src/components/navigation/CommandPalette/CommandPaletteResults.tsx +5 -5
  513. package/src/components/navigation/CommandPalette/ShortcutChip.tsx +1 -1
  514. package/src/components/navigation/ContextMenu/ContextMenu.tsx +8 -8
  515. package/src/components/navigation/DropdownMenu/DropdownMenu.tsx +25 -16
  516. package/src/components/navigation/NavigationMenu/NavigationMegaSection.tsx +5 -4
  517. package/src/components/navigation/NavigationMenu/NavigationMenu.shell.tsx +22 -20
  518. package/src/components/navigation/NavigationMenu/NavigationMenu.styles.ts +11 -11
  519. package/src/components/navigation/NavigationMenu/NavigationMenu.tsx +7 -2
  520. package/src/components/navigation/NavigationMenu/NavigationMenuItem.tsx +12 -12
  521. package/src/components/navigation/NavigationMenu/NavigationStandardBody.tsx +3 -2
  522. package/src/components/navigation/Pagination/Pagination.styles.ts +18 -18
  523. package/src/components/navigation/Pagination/Pagination.tsx +2 -1
  524. package/src/components/navigation/Pagination/PaginationParts.tsx +4 -3
  525. package/src/components/navigation/Tabs/Tabs.styles.ts +14 -12
  526. package/src/components/navigation/Tabs/Tabs.tsx +11 -9
  527. package/src/components/navigation/Tabs/TabsPanel.tsx +10 -3
  528. package/src/components/typography/Blockquote/Blockquote.tsx +8 -8
  529. package/src/components/typography/Code/Code.tsx +17 -17
  530. package/src/components/typography/Text/Text.tsx +2 -2
  531. package/src/components/utility/AnimatedIcon/AnimatedIcon.animations.ts +38 -35
  532. package/src/components/utility/AnimatedIcon/AnimatedIcon.styles.ts +51 -46
  533. package/src/components/utility/AnimatedIcon/AnimatedIcon.tsx +1 -1
  534. package/src/components/utility/AspectRatio/AspectRatio.tsx +13 -2
  535. package/src/components/utility/WorkflowStep/WorkflowStep.parts.tsx +7 -7
  536. package/src/social-login-button/social-login-button.tsx +25 -8
  537. package/dist/chunk-236V2GRH.js.map +0 -1
  538. package/dist/chunk-2CTTASUD.js.map +0 -1
  539. package/dist/chunk-2E2WOBID.js.map +0 -1
  540. package/dist/chunk-2NLYGZP3.js.map +0 -1
  541. package/dist/chunk-3CVTQZQJ.js.map +0 -1
  542. package/dist/chunk-3D6HXKZM.js.map +0 -1
  543. package/dist/chunk-3T5Z5HXF.js.map +0 -1
  544. package/dist/chunk-3VMGE7CU.js.map +0 -1
  545. package/dist/chunk-4OEKIFBC.js.map +0 -1
  546. package/dist/chunk-57JY4OI2.js.map +0 -1
  547. package/dist/chunk-5CKDRLRN.js.map +0 -1
  548. package/dist/chunk-5QWQR7XT.js.map +0 -1
  549. package/dist/chunk-5W4BLTDI.js.map +0 -1
  550. package/dist/chunk-6CTPDNNX.js.map +0 -1
  551. package/dist/chunk-6GRZ77IS.js.map +0 -1
  552. package/dist/chunk-6QLPSMTA.js.map +0 -1
  553. package/dist/chunk-72DKEBJM.js.map +0 -1
  554. package/dist/chunk-73BEVJCS.js +0 -28
  555. package/dist/chunk-73BEVJCS.js.map +0 -1
  556. package/dist/chunk-7F7TTOYN.js.map +0 -1
  557. package/dist/chunk-7UZ2TFIK.js.map +0 -1
  558. package/dist/chunk-B76QCDCE.js.map +0 -1
  559. package/dist/chunk-BLJDCMFU.js.map +0 -1
  560. package/dist/chunk-CAHWCSRE.js.map +0 -1
  561. package/dist/chunk-CPTY6UZ6.js.map +0 -1
  562. package/dist/chunk-CSTAQX2B.js.map +0 -1
  563. package/dist/chunk-DYVAOEW4.js.map +0 -1
  564. package/dist/chunk-E7MSDXED.js.map +0 -1
  565. package/dist/chunk-EFHIMCJN.js.map +0 -1
  566. package/dist/chunk-EL7CMURV.js.map +0 -1
  567. package/dist/chunk-FYTLKHEN.js.map +0 -1
  568. package/dist/chunk-GRDPGHQJ.js.map +0 -1
  569. package/dist/chunk-GUW5BUK7.js.map +0 -1
  570. package/dist/chunk-HB7ISSLK.js.map +0 -1
  571. package/dist/chunk-HXEBKOSM.js.map +0 -1
  572. package/dist/chunk-IVIHRZEY.js.map +0 -1
  573. package/dist/chunk-IYTBTK2M.js.map +0 -1
  574. package/dist/chunk-JXUWWPZR.js.map +0 -1
  575. package/dist/chunk-KLWW67WP.js.map +0 -1
  576. package/dist/chunk-L7SFH3ED.js.map +0 -1
  577. package/dist/chunk-LIG7TKIB.js.map +0 -1
  578. package/dist/chunk-LVEG6XQL.js.map +0 -1
  579. package/dist/chunk-MBC55H6M.js.map +0 -1
  580. package/dist/chunk-MBSYD3ZU.js.map +0 -1
  581. package/dist/chunk-MJ3BVWPZ.js.map +0 -1
  582. package/dist/chunk-MK4CH4VT.js.map +0 -1
  583. package/dist/chunk-MP4VSWHK.js.map +0 -1
  584. package/dist/chunk-MVKYNDT2.js.map +0 -1
  585. package/dist/chunk-MVXFMIVZ.js.map +0 -1
  586. package/dist/chunk-N52O2OKZ.js.map +0 -1
  587. package/dist/chunk-NEGCJNGJ.js.map +0 -1
  588. package/dist/chunk-NYZO3JNB.js.map +0 -1
  589. package/dist/chunk-OATHOXIU.js.map +0 -1
  590. package/dist/chunk-PMP6WJJS.js.map +0 -1
  591. package/dist/chunk-PT2XADGH.js.map +0 -1
  592. package/dist/chunk-Q4BQYYPU.js.map +0 -1
  593. package/dist/chunk-Q4CAZ2TP.js.map +0 -1
  594. package/dist/chunk-Q73PTVNO.js.map +0 -1
  595. package/dist/chunk-QAP3FW33.js.map +0 -1
  596. package/dist/chunk-QKPD322X.js.map +0 -1
  597. package/dist/chunk-RSQMPCCR.js.map +0 -1
  598. package/dist/chunk-RWTFZ7J5.js.map +0 -1
  599. package/dist/chunk-T3WHW7ZC.js.map +0 -1
  600. package/dist/chunk-TBF2CPJW.js.map +0 -1
  601. package/dist/chunk-TVL5V2JK.js.map +0 -1
  602. package/dist/chunk-U342T7ZR.js.map +0 -1
  603. package/dist/chunk-UUUMNJPP.js.map +0 -1
  604. package/dist/chunk-VFHGILXI.js.map +0 -1
  605. package/dist/chunk-VRDNUY4H.js.map +0 -1
  606. package/dist/chunk-WTOYEWW6.js.map +0 -1
  607. package/dist/chunk-WUTHROII.js.map +0 -1
  608. package/dist/chunk-YVUD3MY4.js.map +0 -1
  609. package/dist/chunk-ZTYUKEN3.js.map +0 -1
  610. /package/dist/{chunk-SJO3K7SB.js.map → chunk-2OYFTSG4.js.map} +0 -0
  611. /package/dist/{chunk-CRZXSZ5O.js.map → chunk-2S752BIJ.js.map} +0 -0
  612. /package/dist/{chunk-BAQBUKDU.js.map → chunk-3KREF4ZF.js.map} +0 -0
  613. /package/dist/{chunk-SYN46YL6.js.map → chunk-3RMDIO4G.js.map} +0 -0
  614. /package/dist/{chunk-IL7JZKXY.js.map → chunk-442FSG7G.js.map} +0 -0
  615. /package/dist/{chunk-CS3KOKL3.js.map → chunk-4GWHYLEB.js.map} +0 -0
  616. /package/dist/{chunk-E7T3A4IR.js.map → chunk-5JCGBCFJ.js.map} +0 -0
  617. /package/dist/{chunk-FC7NQ6XM.js.map → chunk-5MW7OYBM.js.map} +0 -0
  618. /package/dist/{chunk-CQLPDY2J.js.map → chunk-5OBXEMQO.js.map} +0 -0
  619. /package/dist/{chunk-BW62QQAG.js.map → chunk-6N4AA2Y7.js.map} +0 -0
  620. /package/dist/{chunk-7EIOXZWL.js.map → chunk-74P3YX7R.js.map} +0 -0
  621. /package/dist/{chunk-VT5HQ2AD.js.map → chunk-BFMDA6UO.js.map} +0 -0
  622. /package/dist/{chunk-R75DZ3AK.js.map → chunk-BVLMKSHX.js.map} +0 -0
  623. /package/dist/{chunk-UZ6AUTE6.js.map → chunk-CNQUCNEA.js.map} +0 -0
  624. /package/dist/{chunk-JL75FJRG.js.map → chunk-CZIX4BW2.js.map} +0 -0
  625. /package/dist/{chunk-HU7TX7RB.js.map → chunk-DUBTI4DI.js.map} +0 -0
  626. /package/dist/{chunk-RMCNEKBZ.js.map → chunk-DW6F7354.js.map} +0 -0
  627. /package/dist/{chunk-XJUEHG72.js.map → chunk-EERUSI52.js.map} +0 -0
  628. /package/dist/{chunk-C55AWF3U.js.map → chunk-FFCJ7NR2.js.map} +0 -0
  629. /package/dist/{chunk-AYLEZM6T.js.map → chunk-GLFTIGOF.js.map} +0 -0
  630. /package/dist/{chunk-L4UP5VYS.js.map → chunk-GVH7C2PT.js.map} +0 -0
  631. /package/dist/{chunk-AER4245J.js.map → chunk-H67EL3CG.js.map} +0 -0
  632. /package/dist/{chunk-57JLS55D.js.map → chunk-I4QA2F4L.js.map} +0 -0
  633. /package/dist/{chunk-AJ5SDHX5.js.map → chunk-JCL7WK4G.js.map} +0 -0
  634. /package/dist/{chunk-WE3LJPRN.js.map → chunk-KE473LK6.js.map} +0 -0
  635. /package/dist/{chunk-CQPFSEJB.js.map → chunk-L7NQCLFU.js.map} +0 -0
  636. /package/dist/{chunk-2ZIHZLF5.js.map → chunk-M2JTIH5M.js.map} +0 -0
  637. /package/dist/{chunk-2BIVCYTO.js.map → chunk-MR2HKBHS.js.map} +0 -0
  638. /package/dist/{chunk-KK57AHWS.js.map → chunk-OAEYCKBN.js.map} +0 -0
  639. /package/dist/{chunk-JGRE56GQ.js.map → chunk-OB56SZGL.js.map} +0 -0
  640. /package/dist/{chunk-E4TNDTWV.js.map → chunk-OL2BEJZR.js.map} +0 -0
  641. /package/dist/{chunk-NDNYD4FG.js.map → chunk-OS6KPL4D.js.map} +0 -0
  642. /package/dist/{chunk-75LOTMSN.js.map → chunk-PPRV4LTM.js.map} +0 -0
  643. /package/dist/{chunk-LT4NEKXB.js.map → chunk-QA2ZGCRL.js.map} +0 -0
  644. /package/dist/{chunk-ROT57BP4.js.map → chunk-R2XVTUVR.js.map} +0 -0
  645. /package/dist/{chunk-QEG3P5D4.js.map → chunk-R6SN73RX.js.map} +0 -0
  646. /package/dist/{chunk-IKLOIONQ.js.map → chunk-RZYSKQTS.js.map} +0 -0
  647. /package/dist/{chunk-NCPWLHZT.js.map → chunk-SKT2V2OX.js.map} +0 -0
  648. /package/dist/{chunk-EOW2ECB3.js.map → chunk-SNURSSTN.js.map} +0 -0
  649. /package/dist/{chunk-CZBND7AY.js.map → chunk-T7DE44SP.js.map} +0 -0
  650. /package/dist/{chunk-DB2ZFZVW.js.map → chunk-TKC6WHGB.js.map} +0 -0
  651. /package/dist/{chunk-JLQGRZMN.js.map → chunk-UEVHI62V.js.map} +0 -0
  652. /package/dist/{chunk-4CXEWFKO.js.map → chunk-UFJYJHQI.js.map} +0 -0
  653. /package/dist/{chunk-BNEWMFVB.js.map → chunk-UGGJ3KDT.js.map} +0 -0
  654. /package/dist/{chunk-KREWQAEV.js.map → chunk-VIRYHNEM.js.map} +0 -0
  655. /package/dist/{chunk-N6CSXHFJ.js.map → chunk-WN5PNP6F.js.map} +0 -0
  656. /package/dist/{chunk-XR46FSOH.js.map → chunk-XIG3DXXX.js.map} +0 -0
  657. /package/dist/{chunk-35S6QI5G.js.map → chunk-XJJXBUPN.js.map} +0 -0
  658. /package/dist/{chunk-GHTBUJ6E.js.map → chunk-XRUW7DMH.js.map} +0 -0
  659. /package/dist/{chunk-HNPWZ3W2.js.map → chunk-Y7F5JBAT.js.map} +0 -0
  660. /package/dist/{chunk-6BDYC4RA.js.map → chunk-YRSR5LVZ.js.map} +0 -0
  661. /package/dist/{chunk-FFOQZRFC.js.map → chunk-ZAY6OA6F.js.map} +0 -0
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-XPMGFAJ3.js";
10
10
  import {
11
11
  Skeleton
12
- } from "./chunk-7F7TTOYN.js";
12
+ } from "./chunk-BEGTLELZ.js";
13
13
  import {
14
14
  rem
15
15
  } from "./chunk-YKCAJ2TN.js";
@@ -220,4 +220,4 @@ function FleetRoster({
220
220
  export {
221
221
  FleetRoster
222
222
  };
223
- //# sourceMappingURL=chunk-E7T3A4IR.js.map
223
+ //# sourceMappingURL=chunk-5JCGBCFJ.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-PBMCRDZI.js";
4
4
  import {
5
5
  LoadingState
6
- } from "./chunk-E4TNDTWV.js";
6
+ } from "./chunk-OL2BEJZR.js";
7
7
  import {
8
8
  EmptyState
9
9
  } from "./chunk-HN3PZTUK.js";
@@ -65,4 +65,4 @@ export {
65
65
  AsyncStateContainer,
66
66
  AsyncStateContainer_default
67
67
  };
68
- //# sourceMappingURL=chunk-FC7NQ6XM.js.map
68
+ //# sourceMappingURL=chunk-5MW7OYBM.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  GridShell
3
- } from "./chunk-QEG3P5D4.js";
3
+ } from "./chunk-R6SN73RX.js";
4
4
  import {
5
5
  useDataViewsState
6
- } from "./chunk-IKLOIONQ.js";
6
+ } from "./chunk-RZYSKQTS.js";
7
7
 
8
8
  // src/components/data-display/DataViews/DataViewsGrid.tsx
9
9
  import { useEffect, useRef } from "react";
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
27
27
  export {
28
28
  DataViewsGrid
29
29
  };
30
- //# sourceMappingURL=chunk-CQLPDY2J.js.map
30
+ //# sourceMappingURL=chunk-5OBXEMQO.js.map
@@ -4,13 +4,15 @@ import {
4
4
  import {
5
5
  navItemButtonStyles,
6
6
  pulseGlow
7
- } from "./chunk-6GRZ77IS.js";
7
+ } from "./chunk-3AIRFAI3.js";
8
8
  import {
9
9
  onMedia,
10
10
  shadowInk,
11
11
  uiInk
12
12
  } from "./chunk-FQ6UW7IY.js";
13
13
  import {
14
+ rem,
15
+ rems,
14
16
  sxRem
15
17
  } from "./chunk-YKCAJ2TN.js";
16
18
 
@@ -76,11 +78,11 @@ var MenuItemPopover = ({ anchorEl, item, size, minimal, onClose, onMouseEnter, o
76
78
  pointerEvents: "auto",
77
79
  mt: 0.5,
78
80
  borderRadius: 2,
79
- boxShadow: (theme) => `0 12px 40px ${shadowInk(theme, 0.15)}`,
81
+ boxShadow: (theme) => `0 ${rems(theme, 12, 40)} ${shadowInk(theme, 0.15)}`,
80
82
  border: (theme) => `1px solid ${alpha(theme.palette.divider, 0.1)}`,
81
83
  background: (theme) => `linear-gradient(145deg, ${theme.palette.background.paper} 0%, ${alpha(theme.palette.background.default, 0.95)} 100%)`,
82
- backdropFilter: "blur(10px)",
83
- minWidth: 200
84
+ backdropFilter: (theme) => `blur(${rem(theme, 10)})`,
85
+ minWidth: sxRem(200)
84
86
  }
85
87
  }
86
88
  },
@@ -137,16 +139,16 @@ var MenuItemLabel = ({ item, collapsed, open, hasChildren, size, variant }) => /
137
139
  display: "inline-flex",
138
140
  alignItems: "center",
139
141
  justifyContent: "center",
140
- minWidth: 20,
141
- height: 20,
142
+ minWidth: sxRem(20),
143
+ height: sxRem(20),
142
144
  px: 0.75,
143
- borderRadius: "10px",
145
+ borderRadius: sxRem(10),
144
146
  fontSize: sxRem(12),
145
147
  fontWeight: 600,
146
148
  color: (theme) => onMedia(theme),
147
149
  background: (theme) => `linear-gradient(135deg, ${uiInk(theme).attention.from} 0%, ${uiInk(theme).attention.to} 100%)`,
148
- boxShadow: (theme) => `0 2px 8px ${alpha(uiInk(theme).attention.glow, 0.4)}`,
149
- animation: typeof item.badge === "number" && item.badge > 0 ? `${pulseGlow} 2s infinite` : "none"
150
+ boxShadow: (theme) => `0 ${rems(theme, 2, 8)} ${alpha(uiInk(theme).attention.glow, 0.4)}`,
151
+ animation: (theme) => typeof item.badge === "number" && item.badge > 0 ? `${pulseGlow(theme)} 2s infinite` : "none"
150
152
  },
151
153
  children: item.badge
152
154
  }
@@ -201,11 +203,11 @@ var MenuItemContent = ({
201
203
  ListItemIcon,
202
204
  {
203
205
  sx: {
204
- minWidth: collapsed ? 0 : 40,
206
+ minWidth: collapsed ? 0 : sxRem(40),
205
207
  justifyContent: "center",
206
208
  transition: "all 0.3s ease",
207
209
  "& svg": {
208
- filter: (theme) => item.active ? `drop-shadow(0 2px 8px ${shadowInk(theme, 0.15)})` : "none",
210
+ filter: (theme) => item.active ? `drop-shadow(0 ${rems(theme, 2, 8)} ${shadowInk(theme, 0.15)})` : "none",
209
211
  transition: "all 0.3s ease"
210
212
  }
211
213
  },
@@ -309,4 +311,4 @@ var renderMenuItem = (item, variant = "vertical", size = "md", collapsed = false
309
311
  export {
310
312
  renderMenuItem
311
313
  };
312
- //# sourceMappingURL=chunk-MK4CH4VT.js.map
314
+ //# sourceMappingURL=chunk-5OUEKIWQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/navigation/NavigationMenu/NavigationMenuItem.tsx"],"sourcesContent":["import ChevronRight from '@mui/icons-material/ChevronRight';\nimport ExpandMore from '@mui/icons-material/ExpandMore';\nimport Box from '@mui/material/Box/index.js';\nimport Collapse from '@mui/material/Collapse/index.js';\nimport Fade from '@mui/material/Fade/index.js';\nimport Grow from '@mui/material/Grow/index.js';\nimport List from '@mui/material/List/index.js';\nimport ListItem from '@mui/material/ListItem/index.js';\nimport ListItemButton from '@mui/material/ListItemButton/index.js';\nimport ListItemIcon from '@mui/material/ListItemIcon/index.js';\nimport ListItemText from '@mui/material/ListItemText/index.js';\nimport Popover from '@mui/material/Popover/index.js';\nimport { alpha, styled } from '@mui/material/styles/index.js';\nimport React, { } from 'react';\n\nimport { useMenuItemState } from './NavigationMenuItem.hooks';\nimport { navItemButtonStyles, pulseGlow } from './NavigationMenu.styles';\nimport type { NavigationMenuItem } from './NavigationMenu.types';\nimport { onMedia, shadowInk, uiInk } from '../../../tokens/ink';\nimport { rem, rems, sxRem } from '../../../tokens/relative';\n\nconst StyledListItem = styled(ListItem, {\n shouldForwardProp: (prop) => !['variant', 'active', 'size', 'level'].includes(prop as string) })<{ variant?: string; active?: boolean; size?: string; level?: number }>(\n ({ theme, variant, level = 0 }) => ({\n padding: 0,\n ...(variant === 'horizontal' && {\n width: 'auto' }),\n ...(level > 0 && {\n paddingLeft: theme.spacing(2 * level) }) }),\n);\n\nconst StyledListItemButton = styled(ListItemButton, {\n shouldForwardProp: (prop) => !['variant', 'active', 'size', 'collapsed', 'minimal'].includes(prop as string) })<{ variant?: string; active?: boolean; size?: string; collapsed?: boolean; minimal?: boolean }>(\n ({ theme, variant, active, size, collapsed, minimal }) => ({\n ...navItemButtonStyles({ theme, variant, active, size, collapsed, minimal }) }),\n);\n\ninterface MenuItemRendererProps {\n item: NavigationMenuItem;\n variant: string;\n size: string;\n collapsed: boolean;\n minimal: boolean;\n level: number;\n onItemClick?: (item: NavigationMenuItem) => void;\n}\n\n// Hover intent and open/anchor state live in NavigationMenuItem.hooks.\n\n// The flyout a horizontal menu opens on hover.\nconst MenuItemPopover: React.FC<{\n anchorEl: HTMLElement | null;\n item: NavigationMenuItem;\n size?: string;\n minimal?: boolean;\n onClose: () => void;\n onMouseEnter: () => void;\n onMouseLeave: () => void;\n onItemClick?: (item: NavigationMenuItem) => void;\n}> = ({ anchorEl, item, size, minimal, onClose, onMouseEnter, onMouseLeave, onItemClick }) => (\n <Popover\n open={Boolean(anchorEl)}\n anchorEl={anchorEl}\n onClose={onClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left' }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left' }}\n disableRestoreFocus\n sx={{\n pointerEvents: 'none' }}\n slotProps={{\n paper: {\n onMouseEnter,\n onMouseLeave,\n sx: {\n pointerEvents: 'auto',\n mt: 0.5,\n borderRadius: 2,\n boxShadow: (theme) => `0 ${rems(theme, 12, 40)} ${shadowInk(theme, 0.15)}`,\n border: (theme) => `1px solid ${alpha(theme.palette.divider, 0.1)}`,\n background: (theme) =>\n `linear-gradient(145deg, ${theme.palette.background.paper} 0%, ${alpha(theme.palette.background.default, 0.95)} 100%)`,\n backdropFilter: (theme) => `blur(${rem(theme, 10)})`,\n minWidth: sxRem(200) } } }}\n >\n <List sx={{ p: 1 }}>\n {item.children?.map((child) => {\n const childHasChildren = child.children && child.children.length > 0;\n\n // Only close popover when clicking leaf nodes (items without children)\n if (childHasChildren) {\n return renderMenuItem(child, 'vertical', size, false, minimal, 0, onItemClick);\n }\n\n // For leaf nodes, wrap with onClick to close the popover\n return (\n <Box\n key={child.id}\n onClick={onClose}\n >\n {renderMenuItem(child, 'vertical', size, false, minimal, 0, onItemClick)}\n </Box>\n );\n })}\n </List>\n </Popover>\n);\n\n// Label, badge/chip and the expand chevron, faded out when the rail collapses.\nconst MenuItemLabel: React.FC<{\n item: NavigationMenuItem;\n collapsed?: boolean;\n minimal?: boolean;\n open: boolean;\n hasChildren?: boolean;\n size?: string;\n variant?: string;\n}> = ({ item, collapsed, open, hasChildren, size, variant }) => (\n <Fade in={!collapsed} timeout={400}>\n <Box sx={{ display: 'flex', alignItems: 'center', width: '100%', gap: 1 }}>\n <ListItemText\n primary={item.label}\n secondary={item.description}\n sx={{\n flex: 1,\n minWidth: 0, // Allows text truncation if needed\n }}\n slotProps={{\n primary: {\n variant: size === 'sm' ? 'body2' : size === 'lg' ? 'h6' : 'body1',\n sx: {\n fontWeight: item.active ? 600 : 400,\n transition: 'all 0.3s ease' } },\n secondary: {\n sx: {\n opacity: 0.7,\n transition: 'all 0.3s ease' } } }}\n />\n {item.badge && (\n <Box\n component=\"span\"\n sx={{\n flexShrink: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: sxRem(20),\n height: sxRem(20),\n px: 0.75,\n borderRadius: sxRem(10),\n fontSize: sxRem(12),\n fontWeight: 600,\n color: (theme) => onMedia(theme),\n background: (theme) =>\n `linear-gradient(135deg, ${uiInk(theme).attention.from} 0%, ${uiInk(theme).attention.to} 100%)`,\n boxShadow: (theme) => `0 ${rems(theme, 2, 8)} ${alpha(uiInk(theme).attention.glow, 0.4)}`,\n animation: (theme) =>\n typeof item.badge === 'number' && item.badge > 0\n ? `${pulseGlow(theme)} 2s infinite`\n : 'none' }}\n >\n {item.badge}\n </Box>\n )}\n {hasChildren && (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0, // Prevents expand icon from shrinking\n transition: 'transform 0.3s ease',\n transform: open ? 'rotate(180deg)' : 'rotate(0deg)' }}\n >\n {variant === 'horizontal' ? <ChevronRight fontSize=\"small\" /> : <ExpandMore />}\n </Box>\n )}\n </Box>\n </Fade>\n);\n\n// The row itself: icon, label, badge and the expand chevron.\nconst MenuItemContent: React.FC<{\n item: NavigationMenuItem;\n variant?: string;\n size?: string;\n active?: boolean;\n collapsed?: boolean;\n minimal?: boolean;\n level: number;\n open: boolean;\n hasChildren?: boolean;\n onClick: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseEnter: (event: React.MouseEvent<HTMLElement>) => void;\n onMouseLeave: () => void;\n}> = ({\n item,\n variant,\n size,\n active: _active,\n collapsed,\n minimal,\n level,\n open,\n hasChildren,\n onClick,\n onMouseEnter,\n onMouseLeave }) => (\n<StyledListItem key={item.id} variant={variant} active={item.active} size={size} level={level}>\n <StyledListItemButton\n variant={variant}\n active={item.active}\n size={size}\n collapsed={collapsed}\n minimal={minimal}\n disabled={item.disabled}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n {...(item.href && !hasChildren\n ? {\n component: 'a' as React.ElementType,\n href: item.href,\n target: item.target }\n : {})}\n >\n {item.icon && (\n <ListItemIcon\n sx={{\n minWidth: collapsed ? 0 : sxRem(40),\n justifyContent: 'center',\n transition: 'all 0.3s ease',\n '& svg': {\n filter: (theme) => (item.active ? `drop-shadow(0 ${rems(theme, 2, 8)} ${shadowInk(theme, 0.15)})` : 'none'),\n transition: 'all 0.3s ease' } }}\n >\n <Grow in={true} timeout={600}>\n <Box>{item.icon}</Box>\n </Grow>\n </ListItemIcon>\n )}\n {!collapsed && (\n <MenuItemLabel\n item={item}\n collapsed={collapsed}\n minimal={minimal}\n open={open}\n hasChildren={hasChildren}\n size={size}\n variant={variant}\n />\n )}\n </StyledListItemButton>\n </StyledListItem>\n);\n\nconst MenuItemRenderer: React.FC<MenuItemRendererProps> = ({\n item,\n variant,\n size,\n collapsed,\n minimal,\n level,\n onItemClick }) => {\n const {\n open,\n anchorEl,\n hasChildren,\n handleClick,\n handleMouseEnter,\n handleMouseLeave,\n handlePopoverMouseEnter,\n handlePopoverMouseLeave,\n closePopover } = useMenuItemState({ item, variant, onItemClick });\n\n const itemContent = (\n <MenuItemContent\n item={item}\n variant={variant}\n size={size}\n active={item.active}\n collapsed={collapsed}\n minimal={minimal}\n level={level}\n open={open}\n hasChildren={hasChildren}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n />\n );\n\n // Horizontal variant with children - use Popover\n if (hasChildren && variant === 'horizontal') {\n return (\n <React.Fragment key={item.id}>\n {itemContent}\n <MenuItemPopover\n anchorEl={anchorEl}\n item={item}\n size={size}\n minimal={minimal}\n onClose={closePopover}\n onMouseEnter={handlePopoverMouseEnter}\n onMouseLeave={handlePopoverMouseLeave}\n onItemClick={onItemClick}\n />\n </React.Fragment>\n );\n }\n\n // Vertical variant with children - use Collapse\n if (hasChildren && variant !== 'horizontal') {\n return (\n <React.Fragment key={item.id}>\n {itemContent}\n {!collapsed && (\n <Collapse in={open} timeout=\"auto\" unmountOnExit>\n <List component=\"div\" disablePadding>\n {item.children?.map((child) =>\n renderMenuItem(child, variant, size, collapsed, minimal, level + 1, onItemClick),\n )}\n </List>\n </Collapse>\n )}\n </React.Fragment>\n );\n }\n\n return itemContent;\n};\n\nexport const renderMenuItem = (\n item: NavigationMenuItem,\n variant: string = 'vertical',\n size: string = 'md',\n collapsed: boolean = false,\n minimal: boolean = false,\n level: number = 0,\n onItemClick?: (item: NavigationMenuItem) => void,\n): React.ReactNode => (\n <MenuItemRenderer\n key={item.id}\n item={item}\n variant={variant}\n size={size}\n collapsed={collapsed}\n minimal={minimal}\n level={level}\n onItemClick={onItemClick}\n />\n );\n"],"mappings":"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","names":[]}
@@ -6,7 +6,7 @@ import {
6
6
  DashboardInfo,
7
7
  DashboardSettings,
8
8
  DashboardSpacer
9
- } from "./chunk-QKPD322X.js";
9
+ } from "./chunk-UFNIS7KC.js";
10
10
  import {
11
11
  DashboardContext,
12
12
  useDashboardContext
@@ -135,7 +135,7 @@ var DashboardHeader = ({ title, children, className }) => {
135
135
  {
136
136
  className,
137
137
  "data-testid": `${testIdPrefix}-header`,
138
- sx: { display: "flex", alignItems: "center", gap: 1, flexWrap: "wrap", minHeight: 40 },
138
+ sx: { display: "flex", alignItems: "center", gap: 1, flexWrap: "wrap", minHeight: sxRem(40) },
139
139
  children: [
140
140
  /* @__PURE__ */ jsx(Typography, { variant: "h5", component: "h1", sx: { fontWeight: 600, mr: 0.5 }, children: title }),
141
141
  children
@@ -210,4 +210,4 @@ export {
210
210
  markDashboardSlot,
211
211
  Dashboard
212
212
  };
213
- //# sourceMappingURL=chunk-GHXFCMFP.js.map
213
+ //# sourceMappingURL=chunk-5QAJ3Y5F.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/layout/Dashboard/Dashboard.tsx"],"sourcesContent":["'use client';\n\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport FilterIcon from '@mui/icons-material/FilterListRounded';\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext';\nimport Box from '@mui/material/Box/index.js';\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Collapse from '@mui/material/Collapse/index.js';\nimport MuiLink from '@mui/material/Link/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React, { useMemo, useState } from 'react';\n\nimport { DashboardContext, useDashboardContext } from './DashboardContext';\nimport {\n DashboardAction,\n DashboardActions,\n DashboardExport,\n DashboardFilterToggle,\n DashboardInfo,\n DashboardSettings,\n DashboardSpacer,\n} from './DashboardParts';\nimport type {\n DashboardBodyProps,\n DashboardBreadcrumbProps,\n DashboardFiltersProps,\n DashboardHeaderProps,\n DashboardMoreFiltersProps,\n DashboardProps,\n} from './Dashboard.types';\nimport { sxRem } from '../../../tokens/relative';\n\n/**\n * Ordered slot keys. The root reorders composed children into this sequence so\n * authoring order in JSX never matters — a `<Dashboard.Filters>` placed above\n * a `<Dashboard.Header>` still renders below it.\n */\nconst SLOT_ORDER = ['breadcrumb', 'header', 'filters', 'body'] as const;\n/** A slot a component can occupy in the canonical Dashboard order. */\nexport type DashboardSlot = (typeof SLOT_ORDER)[number];\n\n/** Marker attached to each sub-component so the root can rank it by slot. */\ntype SlottedComponent = { dashboardSlot?: DashboardSlot };\n\n/**\n * Tag a component with the Dashboard slot it occupies so the root ranks it in\n * canonical order. The root inspects only its DIRECT children's `type`, so a\n * page that wraps a `<Dashboard.Header>` (or any part) in its own component MUST\n * mark that wrapper — otherwise it counts as an unrecognised child and sinks\n * below the body. Returns the component for convenient inline use.\n *\n * @example\n * ```tsx\n * function ProductsHeader(props) {\n * return <Dashboard.Header title=\"Products\">{/* … *\\/}</Dashboard.Header>;\n * }\n * markDashboardSlot(ProductsHeader, 'header');\n * ```\n */\nexport function markDashboardSlot<T>(component: T, slot: DashboardSlot): T {\n (component as SlottedComponent).dashboardSlot = slot;\n return component;\n}\n\nconst Root = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n width: '100%',\n}));\n\nfunction slotRank(node: React.ReactNode): number {\n if (React.isValidElement(node)) {\n const slot = (node.type as SlottedComponent).dashboardSlot;\n if (slot) {\n const rank = SLOT_ORDER.indexOf(slot);\n if (rank >= 0) {\n return rank;\n }\n }\n }\n // Unknown / arbitrary children keep their relative position after the\n // recognised slots.\n return SLOT_ORDER.length;\n}\n\n/**\n * Composable page shell. `<Dashboard>` provides shared state through context\n * and renders whichever sub-components you compose — nothing is implied. Drop\n * in only the parts you need; omit `<Dashboard.Filters>` and there is simply no\n * filter UI.\n *\n * @example\n * ```tsx\n * <Dashboard activeFilterCount={2}>\n * <Dashboard.Breadcrumb items={[{ label: 'Admin', href: '/admin' }, { label: 'Products' }]} />\n * <Dashboard.Header title=\"Products\">\n * <Dashboard.Info>What this page does…</Dashboard.Info>\n * <Dashboard.FilterToggle />\n * <Dashboard.Settings>In development</Dashboard.Settings>\n * <Dashboard.Spacer />\n * <Dashboard.Export onExport={handleExport} />\n * <Dashboard.Action><Button variant=\"contained\">New product</Button></Dashboard.Action>\n * </Dashboard.Header>\n * <Dashboard.Filters>{/* search + pills *\\/}</Dashboard.Filters>\n * <Dashboard.Body>{table}</Dashboard.Body>\n * </Dashboard>\n * ```\n */\nexport const Dashboard = ({\n children,\n defaultFiltersVisible = true,\n activeFilterCount = 0,\n testIdPrefix = 'dashboard',\n className,\n}: DashboardProps): React.JSX.Element => {\n const [filtersVisible, setFiltersVisible] = useState(defaultFiltersVisible);\n const [moreFiltersOpen, setMoreFiltersOpen] = useState(false);\n\n const value = useMemo(\n () => ({\n filtersVisible,\n toggleFilters: () => setFiltersVisible((v) => !v),\n moreFiltersOpen,\n toggleMoreFilters: () => setMoreFiltersOpen((v) => !v),\n activeFilterCount,\n testIdPrefix,\n }),\n [filtersVisible, moreFiltersOpen, activeFilterCount, testIdPrefix],\n );\n\n // Stable sort recognised slots into canonical order, preserving the original\n // order of anything unrecognised.\n const ordered = useMemo(() => {\n const arr = React.Children.toArray(children);\n return arr\n .map((node, index) => ({ node, index, rank: slotRank(node) }))\n .sort((a, b) => (a.rank === b.rank ? a.index - b.index : a.rank - b.rank))\n .map((entry) => entry.node);\n }, [children]);\n\n return (\n <DashboardContext.Provider value={value}>\n <Root className={className} data-testid={testIdPrefix}>\n {ordered}\n </Root>\n </DashboardContext.Provider>\n );\n};\n\nDashboard.displayName = 'Dashboard';\n\n/* -------------------------------------------------------------------------- */\n/* Breadcrumb */\n/* -------------------------------------------------------------------------- */\n\nconst DashboardBreadcrumb = ({\n items,\n renderLink,\n className,\n}: DashboardBreadcrumbProps): React.JSX.Element => {\n const { testIdPrefix } = useDashboardContext();\n return (\n <MuiBreadcrumbs\n separator={<NavigateNextIcon fontSize=\"small\" />}\n className={className}\n aria-label=\"breadcrumb\"\n data-testid={`${testIdPrefix}-breadcrumb`}\n sx={{ fontSize: sxRem(14), color: 'text.secondary' }}\n >\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n if (isLast || !item.href) {\n return (\n <Typography\n key={`${item.label}-${index}`}\n component=\"span\"\n sx={{ fontSize: sxRem(14), color: isLast ? 'text.primary' : 'text.secondary' }}\n aria-current={isLast ? 'page' : undefined}\n >\n {item.label}\n </Typography>\n );\n }\n const linkContent = item.label;\n if (renderLink) {\n return <React.Fragment key={`${item.label}-${index}`}>{renderLink(item, linkContent)}</React.Fragment>;\n }\n return (\n <MuiLink\n key={`${item.label}-${index}`}\n href={item.href}\n underline=\"hover\"\n color=\"inherit\"\n sx={{ fontSize: sxRem(14) }}\n >\n {linkContent}\n </MuiLink>\n );\n })}\n </MuiBreadcrumbs>\n );\n};\nDashboardBreadcrumb.displayName = 'Dashboard.Breadcrumb';\n(DashboardBreadcrumb as SlottedComponent).dashboardSlot = 'breadcrumb';\n\n/* -------------------------------------------------------------------------- */\n/* Header + action parts */\n/* -------------------------------------------------------------------------- */\n\nconst DashboardHeader = ({ title, children, className }: DashboardHeaderProps): React.JSX.Element => {\n const { testIdPrefix } = useDashboardContext();\n return (\n <Box\n className={className}\n data-testid={`${testIdPrefix}-header`}\n sx={{ display: 'flex', alignItems: 'center', gap: 1, flexWrap: 'wrap', minHeight: 40 }}\n >\n <Typography variant=\"h5\" component=\"h1\" sx={{ fontWeight: 600, mr: 0.5 }}>\n {title}\n </Typography>\n {children}\n </Box>\n );\n};\nDashboardHeader.displayName = 'Dashboard.Header';\n(DashboardHeader as SlottedComponent).dashboardSlot = 'header';\n\n/** Flexible spacer — everything composed after it is pushed to the right. */\n/* -------------------------------------------------------------------------- */\n/* Filters */\n/* -------------------------------------------------------------------------- */\n\nconst DashboardFilters = ({ children, className }: DashboardFiltersProps): React.JSX.Element => {\n const { filtersVisible, testIdPrefix } = useDashboardContext();\n return (\n <Collapse in={filtersVisible} unmountOnExit data-testid={`${testIdPrefix}-filters`}>\n <Box\n className={className}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 1.5,\n p: 2,\n borderRadius: 1,\n border: 1,\n borderColor: 'divider',\n bgcolor: 'action.hover',\n }}\n >\n {children}\n </Box>\n </Collapse>\n );\n};\nDashboardFilters.displayName = 'Dashboard.Filters';\n(DashboardFilters as SlottedComponent).dashboardSlot = 'filters';\n\nconst DashboardMoreFilters = ({ children, label = 'More filters' }: DashboardMoreFiltersProps): React.JSX.Element => {\n const { moreFiltersOpen, toggleMoreFilters, testIdPrefix } = useDashboardContext();\n return (\n <Box>\n <Button\n variant=\"text\"\n size=\"small\"\n startIcon={<FilterIcon fontSize=\"small\" />}\n endIcon={moreFiltersOpen ? <ExpandLessIcon fontSize=\"small\" /> : <ExpandMoreIcon fontSize=\"small\" />}\n onClick={toggleMoreFilters}\n aria-expanded={moreFiltersOpen}\n data-testid={`${testIdPrefix}-more-filters-toggle`}\n >\n {label}\n </Button>\n <Collapse in={moreFiltersOpen} unmountOnExit data-testid={`${testIdPrefix}-more-filters-panel`}>\n <Box sx={{ mt: 1.5, p: 2, borderRadius: 1, border: 1, borderColor: 'divider', bgcolor: 'background.paper' }}>\n {children}\n </Box>\n </Collapse>\n </Box>\n );\n};\nDashboardMoreFilters.displayName = 'Dashboard.MoreFilters';\n\n/* -------------------------------------------------------------------------- */\n/* Body */\n/* -------------------------------------------------------------------------- */\n\nconst DashboardBody = ({ children, className }: DashboardBodyProps): React.JSX.Element => {\n const { testIdPrefix } = useDashboardContext();\n return (\n <Box className={className} data-testid={`${testIdPrefix}-body`}>\n {children}\n </Box>\n );\n};\nDashboardBody.displayName = 'Dashboard.Body';\n(DashboardBody as SlottedComponent).dashboardSlot = 'body';\n\n/* -------------------------------------------------------------------------- */\n/* Attach sub-components as dot-notation parts */\n/* -------------------------------------------------------------------------- */\n\nDashboard.Breadcrumb = DashboardBreadcrumb;\nDashboard.Header = DashboardHeader;\nDashboard.Spacer = DashboardSpacer;\nDashboard.Info = DashboardInfo;\nDashboard.FilterToggle = DashboardFilterToggle;\nDashboard.Settings = DashboardSettings;\nDashboard.Export = DashboardExport;\nDashboard.Action = DashboardAction;\nDashboard.Actions = DashboardActions;\nDashboard.Filters = DashboardFilters;\nDashboard.MoreFilters = DashboardMoreFilters;\nDashboard.Body = DashboardBody;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/components/layout/Dashboard/Dashboard.tsx"],"sourcesContent":["'use client';\n\nimport ExpandLessIcon from '@mui/icons-material/ExpandLess';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport FilterIcon from '@mui/icons-material/FilterListRounded';\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext';\nimport Box from '@mui/material/Box/index.js';\nimport MuiBreadcrumbs from '@mui/material/Breadcrumbs/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport Collapse from '@mui/material/Collapse/index.js';\nimport MuiLink from '@mui/material/Link/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport React, { useMemo, useState } from 'react';\n\nimport { DashboardContext, useDashboardContext } from './DashboardContext';\nimport {\n DashboardAction,\n DashboardActions,\n DashboardExport,\n DashboardFilterToggle,\n DashboardInfo,\n DashboardSettings,\n DashboardSpacer,\n} from './DashboardParts';\nimport type {\n DashboardBodyProps,\n DashboardBreadcrumbProps,\n DashboardFiltersProps,\n DashboardHeaderProps,\n DashboardMoreFiltersProps,\n DashboardProps,\n} from './Dashboard.types';\nimport { sxRem } from '../../../tokens/relative';\n\n/**\n * Ordered slot keys. The root reorders composed children into this sequence so\n * authoring order in JSX never matters — a `<Dashboard.Filters>` placed above\n * a `<Dashboard.Header>` still renders below it.\n */\nconst SLOT_ORDER = ['breadcrumb', 'header', 'filters', 'body'] as const;\n/** A slot a component can occupy in the canonical Dashboard order. */\nexport type DashboardSlot = (typeof SLOT_ORDER)[number];\n\n/** Marker attached to each sub-component so the root can rank it by slot. */\ntype SlottedComponent = { dashboardSlot?: DashboardSlot };\n\n/**\n * Tag a component with the Dashboard slot it occupies so the root ranks it in\n * canonical order. The root inspects only its DIRECT children's `type`, so a\n * page that wraps a `<Dashboard.Header>` (or any part) in its own component MUST\n * mark that wrapper — otherwise it counts as an unrecognised child and sinks\n * below the body. Returns the component for convenient inline use.\n *\n * @example\n * ```tsx\n * function ProductsHeader(props) {\n * return <Dashboard.Header title=\"Products\">{/* … *\\/}</Dashboard.Header>;\n * }\n * markDashboardSlot(ProductsHeader, 'header');\n * ```\n */\nexport function markDashboardSlot<T>(component: T, slot: DashboardSlot): T {\n (component as SlottedComponent).dashboardSlot = slot;\n return component;\n}\n\nconst Root = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: theme.spacing(2),\n width: '100%',\n}));\n\nfunction slotRank(node: React.ReactNode): number {\n if (React.isValidElement(node)) {\n const slot = (node.type as SlottedComponent).dashboardSlot;\n if (slot) {\n const rank = SLOT_ORDER.indexOf(slot);\n if (rank >= 0) {\n return rank;\n }\n }\n }\n // Unknown / arbitrary children keep their relative position after the\n // recognised slots.\n return SLOT_ORDER.length;\n}\n\n/**\n * Composable page shell. `<Dashboard>` provides shared state through context\n * and renders whichever sub-components you compose — nothing is implied. Drop\n * in only the parts you need; omit `<Dashboard.Filters>` and there is simply no\n * filter UI.\n *\n * @example\n * ```tsx\n * <Dashboard activeFilterCount={2}>\n * <Dashboard.Breadcrumb items={[{ label: 'Admin', href: '/admin' }, { label: 'Products' }]} />\n * <Dashboard.Header title=\"Products\">\n * <Dashboard.Info>What this page does…</Dashboard.Info>\n * <Dashboard.FilterToggle />\n * <Dashboard.Settings>In development</Dashboard.Settings>\n * <Dashboard.Spacer />\n * <Dashboard.Export onExport={handleExport} />\n * <Dashboard.Action><Button variant=\"contained\">New product</Button></Dashboard.Action>\n * </Dashboard.Header>\n * <Dashboard.Filters>{/* search + pills *\\/}</Dashboard.Filters>\n * <Dashboard.Body>{table}</Dashboard.Body>\n * </Dashboard>\n * ```\n */\nexport const Dashboard = ({\n children,\n defaultFiltersVisible = true,\n activeFilterCount = 0,\n testIdPrefix = 'dashboard',\n className,\n}: DashboardProps): React.JSX.Element => {\n const [filtersVisible, setFiltersVisible] = useState(defaultFiltersVisible);\n const [moreFiltersOpen, setMoreFiltersOpen] = useState(false);\n\n const value = useMemo(\n () => ({\n filtersVisible,\n toggleFilters: () => setFiltersVisible((v) => !v),\n moreFiltersOpen,\n toggleMoreFilters: () => setMoreFiltersOpen((v) => !v),\n activeFilterCount,\n testIdPrefix,\n }),\n [filtersVisible, moreFiltersOpen, activeFilterCount, testIdPrefix],\n );\n\n // Stable sort recognised slots into canonical order, preserving the original\n // order of anything unrecognised.\n const ordered = useMemo(() => {\n const arr = React.Children.toArray(children);\n return arr\n .map((node, index) => ({ node, index, rank: slotRank(node) }))\n .sort((a, b) => (a.rank === b.rank ? a.index - b.index : a.rank - b.rank))\n .map((entry) => entry.node);\n }, [children]);\n\n return (\n <DashboardContext.Provider value={value}>\n <Root className={className} data-testid={testIdPrefix}>\n {ordered}\n </Root>\n </DashboardContext.Provider>\n );\n};\n\nDashboard.displayName = 'Dashboard';\n\n/* -------------------------------------------------------------------------- */\n/* Breadcrumb */\n/* -------------------------------------------------------------------------- */\n\nconst DashboardBreadcrumb = ({\n items,\n renderLink,\n className,\n}: DashboardBreadcrumbProps): React.JSX.Element => {\n const { testIdPrefix } = useDashboardContext();\n return (\n <MuiBreadcrumbs\n separator={<NavigateNextIcon fontSize=\"small\" />}\n className={className}\n aria-label=\"breadcrumb\"\n data-testid={`${testIdPrefix}-breadcrumb`}\n sx={{ fontSize: sxRem(14), color: 'text.secondary' }}\n >\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n if (isLast || !item.href) {\n return (\n <Typography\n key={`${item.label}-${index}`}\n component=\"span\"\n sx={{ fontSize: sxRem(14), color: isLast ? 'text.primary' : 'text.secondary' }}\n aria-current={isLast ? 'page' : undefined}\n >\n {item.label}\n </Typography>\n );\n }\n const linkContent = item.label;\n if (renderLink) {\n return <React.Fragment key={`${item.label}-${index}`}>{renderLink(item, linkContent)}</React.Fragment>;\n }\n return (\n <MuiLink\n key={`${item.label}-${index}`}\n href={item.href}\n underline=\"hover\"\n color=\"inherit\"\n sx={{ fontSize: sxRem(14) }}\n >\n {linkContent}\n </MuiLink>\n );\n })}\n </MuiBreadcrumbs>\n );\n};\nDashboardBreadcrumb.displayName = 'Dashboard.Breadcrumb';\n(DashboardBreadcrumb as SlottedComponent).dashboardSlot = 'breadcrumb';\n\n/* -------------------------------------------------------------------------- */\n/* Header + action parts */\n/* -------------------------------------------------------------------------- */\n\nconst DashboardHeader = ({ title, children, className }: DashboardHeaderProps): React.JSX.Element => {\n const { testIdPrefix } = useDashboardContext();\n return (\n <Box\n className={className}\n data-testid={`${testIdPrefix}-header`}\n sx={{ display: 'flex', alignItems: 'center', gap: 1, flexWrap: 'wrap', minHeight: sxRem(40) }}\n >\n <Typography variant=\"h5\" component=\"h1\" sx={{ fontWeight: 600, mr: 0.5 }}>\n {title}\n </Typography>\n {children}\n </Box>\n );\n};\nDashboardHeader.displayName = 'Dashboard.Header';\n(DashboardHeader as SlottedComponent).dashboardSlot = 'header';\n\n/** Flexible spacer — everything composed after it is pushed to the right. */\n/* -------------------------------------------------------------------------- */\n/* Filters */\n/* -------------------------------------------------------------------------- */\n\nconst DashboardFilters = ({ children, className }: DashboardFiltersProps): React.JSX.Element => {\n const { filtersVisible, testIdPrefix } = useDashboardContext();\n return (\n <Collapse in={filtersVisible} unmountOnExit data-testid={`${testIdPrefix}-filters`}>\n <Box\n className={className}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 1.5,\n p: 2,\n borderRadius: 1,\n border: 1,\n borderColor: 'divider',\n bgcolor: 'action.hover',\n }}\n >\n {children}\n </Box>\n </Collapse>\n );\n};\nDashboardFilters.displayName = 'Dashboard.Filters';\n(DashboardFilters as SlottedComponent).dashboardSlot = 'filters';\n\nconst DashboardMoreFilters = ({ children, label = 'More filters' }: DashboardMoreFiltersProps): React.JSX.Element => {\n const { moreFiltersOpen, toggleMoreFilters, testIdPrefix } = useDashboardContext();\n return (\n <Box>\n <Button\n variant=\"text\"\n size=\"small\"\n startIcon={<FilterIcon fontSize=\"small\" />}\n endIcon={moreFiltersOpen ? <ExpandLessIcon fontSize=\"small\" /> : <ExpandMoreIcon fontSize=\"small\" />}\n onClick={toggleMoreFilters}\n aria-expanded={moreFiltersOpen}\n data-testid={`${testIdPrefix}-more-filters-toggle`}\n >\n {label}\n </Button>\n <Collapse in={moreFiltersOpen} unmountOnExit data-testid={`${testIdPrefix}-more-filters-panel`}>\n <Box sx={{ mt: 1.5, p: 2, borderRadius: 1, border: 1, borderColor: 'divider', bgcolor: 'background.paper' }}>\n {children}\n </Box>\n </Collapse>\n </Box>\n );\n};\nDashboardMoreFilters.displayName = 'Dashboard.MoreFilters';\n\n/* -------------------------------------------------------------------------- */\n/* Body */\n/* -------------------------------------------------------------------------- */\n\nconst DashboardBody = ({ children, className }: DashboardBodyProps): React.JSX.Element => {\n const { testIdPrefix } = useDashboardContext();\n return (\n <Box className={className} data-testid={`${testIdPrefix}-body`}>\n {children}\n </Box>\n );\n};\nDashboardBody.displayName = 'Dashboard.Body';\n(DashboardBody as SlottedComponent).dashboardSlot = 'body';\n\n/* -------------------------------------------------------------------------- */\n/* Attach sub-components as dot-notation parts */\n/* -------------------------------------------------------------------------- */\n\nDashboard.Breadcrumb = DashboardBreadcrumb;\nDashboard.Header = DashboardHeader;\nDashboard.Spacer = DashboardSpacer;\nDashboard.Info = DashboardInfo;\nDashboard.FilterToggle = DashboardFilterToggle;\nDashboard.Settings = DashboardSettings;\nDashboard.Export = DashboardExport;\nDashboard.Action = DashboardAction;\nDashboard.Actions = DashboardActions;\nDashboard.Filters = DashboardFilters;\nDashboard.MoreFilters = DashboardMoreFilters;\nDashboard.Body = DashboardBody;\n"],"mappings":"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","names":[]}
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  TOUCH_TARGET,
3
3
  displayAcrossRail
4
- } from "./chunk-LIG7TKIB.js";
4
+ } from "./chunk-NYFNF7I5.js";
5
5
  import {
6
+ rem,
6
7
  sxRem
7
8
  } from "./chunk-YKCAJ2TN.js";
8
9
 
@@ -100,8 +101,8 @@ function SettingsSectionHeader({
100
101
  display: "inline-flex",
101
102
  alignItems: "center",
102
103
  justifyContent: "center",
103
- width: TOUCH_TARGET,
104
- height: TOUCH_TARGET,
104
+ width: rem(theme, TOUCH_TARGET),
105
+ height: rem(theme, TOUCH_TARGET),
105
106
  border: 1,
106
107
  borderColor: "divider",
107
108
  borderRadius: 2,
@@ -121,4 +122,4 @@ function SettingsSectionHeader({
121
122
  export {
122
123
  SettingsSectionHeader
123
124
  };
124
- //# sourceMappingURL=chunk-CPTY6UZ6.js.map
125
+ //# sourceMappingURL=chunk-6KEXHOIF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/layout/SettingsLayout/SettingsSectionHeader.tsx"],"sourcesContent":["'use client';\n\nimport ChevronLeftIcon from '@mui/icons-material/ChevronLeft';\nimport Box from '@mui/material/Box/index.js';\nimport React from 'react';\n\nimport { displayAcrossRail, TOUCH_TARGET } from './SettingsLayout.styles';\nimport type { SettingsLayoutProps, SettingsRailBreakpoint } from './SettingsLayout.types';\nimport { rem, sxRem } from '../../../tokens/relative';\n\n/** One line that must not wrap, whatever the section is called. */\nconst CLIP = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n} as const;\n\n/**\n * The name of where you are, and optionally what it holds.\n *\n * `minWidth: 0` on the wrapper is what lets the clipping work at all: without\n * it a flex item refuses to shrink below its content, so a long section name\n * pushes the back button off the row instead of ellipsising.\n */\nfunction HeaderText({\n title,\n description,\n}: {\n title: string;\n description?: string;\n}): React.JSX.Element {\n return (\n <Box sx={{ minWidth: 0 }}>\n <Box\n component=\"h2\"\n sx={{ m: 0, font: 'inherit', fontSize: sxRem(16), fontWeight: 600, lineHeight: 1.3, ...CLIP }}\n >\n {title}\n </Box>\n {description !== undefined && description !== '' && (\n <Box\n component=\"p\"\n sx={{\n m: 0,\n font: 'inherit',\n fontSize: sxRem(13),\n color: 'text.secondary',\n lineHeight: 1.35,\n ...CLIP,\n }}\n >\n {description}\n </Box>\n )}\n </Box>\n );\n}\n\n/**\n * The narrow-width panel header: a back control, and the name of where you are.\n *\n * ## Why this replaced a \"‹ Voltar\" link\n *\n * The bare link spent a whole row saying only that a back existed. Under it came\n * the sibling chips and under those the section's own Salvar, so three stacked\n * rows went by before the first field — on the width with the least room for\n * them. Worse, none of the three said WHICH section was open: the chips mark the\n * active one, but a chip strip scrolls, so the answer could be off-screen.\n *\n * Folding the control into a square button beside the title buys back a row and\n * makes the header say where you are, which is what a header is for.\n *\n * ## Narrow only, and mounted at every width\n *\n * `displayAcrossRail` hides this above the breakpoint rather than unmounting it,\n * for the reason the whole component works that way: navigation that exists at\n * one width and not the other is navigation nothing can assert about. Above the\n * breakpoint the rail is on screen with the open row marked, so a back control\n * would point at a list already visible.\n *\n * The button is `TOUCH_TARGET` square because this is the phone shape, and it\n * keeps the accessible name — the visible text is the section, not the verb, so\n * a screen reader still hears \"Voltar\" rather than being handed an icon.\n */\nexport function SettingsSectionHeader({\n href,\n backLabel,\n title,\n description,\n breakpoint,\n linkComponent,\n testIdPrefix,\n}: {\n href: string;\n backLabel: string;\n title: string;\n description?: string;\n breakpoint: SettingsRailBreakpoint;\n linkComponent: NonNullable<SettingsLayoutProps['linkComponent']>;\n testIdPrefix: string;\n}): React.JSX.Element {\n return (\n <Box\n data-testid={`${testIdPrefix}-section-header`}\n sx={(theme) => ({\n ...displayAcrossRail(theme, breakpoint, 'flex', 'none'),\n alignItems: 'center',\n gap: 1.5,\n minWidth: 0,\n // ITS OWN SURFACE, not the panel's.\n //\n // The header, the chip strip and the first card were all the same\n // white, so nothing said where \"you are here\" ended and the screen\n // began — the eye had only the type sizes to go on. A tint plus the\n // rule below turns three stacked runs of text into two blocks.\n //\n // `paper` against a `default` panel rather than a hand-picked grey, so\n // it tracks the host's theme (and its dark mode) instead of being a\n // light-mode constant that goes wrong the moment the palette does.\n bgcolor: 'background.paper',\n px: 1.5,\n pt: 1.5,\n pb: 1.5,\n mb: 1,\n borderRadius: 1,\n // A rule under the header, because what follows it is the sibling strip\n // — a row of other sections. Without a line the section's own name and\n // the chip naming a DIFFERENT section sit in one undifferentiated\n // block, which reads as one navigation rather than as \"you are here\"\n // above \"go elsewhere\".\n borderBottom: 1,\n borderColor: 'divider',\n })}\n >\n <Box\n component={linkComponent}\n href={href}\n aria-label={backLabel}\n data-testid={`${testIdPrefix}-back`}\n sx={(theme) => ({\n flex: '0 0 auto',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: rem(theme, TOUCH_TARGET),\n height: rem(theme, TOUCH_TARGET),\n border: 1,\n borderColor: 'divider',\n borderRadius: 2,\n color: 'text.primary',\n textDecoration: 'none',\n '&:hover': { backgroundColor: theme.palette.action.hover },\n })}\n >\n <ChevronLeftIcon fontSize=\"small\" />\n </Box>\n\n <HeaderText title={title} description={description} />\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;;AAEA,OAAO,qBAAqB;AAC5B,OAAO,SAAS;AA6BZ,SACE,KADF;AArBJ,IAAM,OAAO;AAAA,EACX,UAAU;AAAA,EACV,cAAc;AAAA,EACd,YAAY;AACd;AASA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AACF,GAGsB;AACpB,SACE,qBAAC,OAAI,IAAI,EAAE,UAAU,EAAE,GACrB;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI,EAAE,GAAG,GAAG,MAAM,WAAW,UAAU,MAAM,EAAE,GAAG,YAAY,KAAK,YAAY,KAAK,GAAG,KAAK;AAAA,QAE3F;AAAA;AAAA,IACH;AAAA,IACC,gBAAgB,UAAa,gBAAgB,MAC5C;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,IAAI;AAAA,UACF,GAAG;AAAA,UACH,MAAM;AAAA,UACN,UAAU,MAAM,EAAE;AAAA,UAClB,OAAO;AAAA,UACP,YAAY;AAAA,UACZ,GAAG;AAAA,QACL;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,KAEJ;AAEJ;AA4BO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAQsB;AACpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAa,GAAG,YAAY;AAAA,MAC5B,IAAI,CAAC,WAAW;AAAA,QACd,GAAG,kBAAkB,OAAO,YAAY,QAAQ,MAAM;AAAA,QACtD,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAWV,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMd,cAAc;AAAA,QACd,aAAa;AAAA,MACf;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,YACX;AAAA,YACA,cAAY;AAAA,YACZ,eAAa,GAAG,YAAY;AAAA,YAC5B,IAAI,CAAC,WAAW;AAAA,cACd,MAAM;AAAA,cACN,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,cAChB,OAAO,IAAI,OAAO,YAAY;AAAA,cAC9B,QAAQ,IAAI,OAAO,YAAY;AAAA,cAC/B,QAAQ;AAAA,cACR,aAAa;AAAA,cACb,cAAc;AAAA,cACd,OAAO;AAAA,cACP,gBAAgB;AAAA,cAChB,WAAW,EAAE,iBAAiB,MAAM,QAAQ,OAAO,MAAM;AAAA,YAC3D;AAAA,YAEA,8BAAC,mBAAgB,UAAS,SAAQ;AAAA;AAAA,QACpC;AAAA,QAEA,oBAAC,cAAW,OAAc,aAA0B;AAAA;AAAA;AAAA,EACtD;AAEJ;","names":[]}
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-2EAAWOZ2.js";
10
10
  import {
11
11
  Text
12
- } from "./chunk-WTOYEWW6.js";
12
+ } from "./chunk-YBH4SPMM.js";
13
13
  import {
14
14
  rem,
15
15
  sxRem
@@ -176,4 +176,4 @@ function DataViewsExportMenu({
176
176
  export {
177
177
  DataViewsExportMenu
178
178
  };
179
- //# sourceMappingURL=chunk-BW62QQAG.js.map
179
+ //# sourceMappingURL=chunk-6N4AA2Y7.js.map
@@ -2,6 +2,8 @@ import {
2
2
  shadowInk
3
3
  } from "./chunk-FQ6UW7IY.js";
4
4
  import {
5
+ rem,
6
+ rems,
5
7
  sxRem
6
8
  } from "./chunk-YKCAJ2TN.js";
7
9
 
@@ -19,7 +21,7 @@ import IconButton from "@mui/material/IconButton/index.js";
19
21
  import Typography from "@mui/material/Typography/index.js";
20
22
  import { alpha, useTheme } from "@mui/material/styles/index.js";
21
23
  import { jsx, jsxs } from "react/jsx-runtime";
22
- var renderToastIcon = (icon, type) => {
24
+ var renderToastIcon = (theme, icon, type) => {
23
25
  if (icon) return icon;
24
26
  switch (type) {
25
27
  case "success":
@@ -31,7 +33,7 @@ var renderToastIcon = (icon, type) => {
31
33
  case "info":
32
34
  return /* @__PURE__ */ jsx(InfoIcon, { sx: { fontSize: sxRem(20), color: "info.main" } });
33
35
  case "loading":
34
- return /* @__PURE__ */ jsx(CircularProgress, { size: 16 });
36
+ return /* @__PURE__ */ jsx(CircularProgress, { size: rem(theme, 16) });
35
37
  default:
36
38
  return null;
37
39
  }
@@ -60,9 +62,9 @@ var buildToastStyles = (theme, variant, visible) => {
60
62
  return {
61
63
  ...baseStyles,
62
64
  backgroundColor: alpha(theme.palette.background.paper, 0.1),
63
- backdropFilter: "blur(20px)",
65
+ backdropFilter: `blur(${rem(theme, 20)})`,
64
66
  border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}`,
65
- boxShadow: `0 8px 32px ${shadowInk(theme, 0.1)}`
67
+ boxShadow: `${rems(theme, 0, 8, 32)} ${shadowInk(theme, 0.1)}`
66
68
  };
67
69
  case "minimal":
68
70
  return {
@@ -70,7 +72,7 @@ var buildToastStyles = (theme, variant, visible) => {
70
72
  backgroundColor: theme.palette.background.default,
71
73
  border: "none",
72
74
  boxShadow: "none",
73
- borderLeft: `4px solid ${theme.palette.primary.main}`,
75
+ borderLeft: `${rem(theme, 4)} solid ${theme.palette.primary.main}`,
74
76
  borderRadius: 0
75
77
  };
76
78
  default:
@@ -136,14 +138,14 @@ var SonnerToast = ({
136
138
  ...buildToastStyles(theme, variant, visible),
137
139
  p: 2,
138
140
  mb: 1,
139
- minWidth: 356,
140
- maxWidth: 400,
141
+ minWidth: sxRem(356),
142
+ maxWidth: sxRem(400),
141
143
  display: "flex",
142
144
  alignItems: "flex-start",
143
145
  gap: 1.5
144
146
  },
145
147
  children: [
146
- renderToastIcon(icon, type),
148
+ renderToastIcon(theme, icon, type),
147
149
  /* @__PURE__ */ jsx(
148
150
  ToastContent,
149
151
  {
@@ -178,4 +180,4 @@ var SonnerToast = ({
178
180
  export {
179
181
  SonnerToast
180
182
  };
181
- //# sourceMappingURL=chunk-EFHIMCJN.js.map
183
+ //# sourceMappingURL=chunk-6P2OFMBX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/feedback/Sonner/SonnerToast.tsx"],"sourcesContent":["import SuccessIcon from '@mui/icons-material/CheckCircle';\nimport CloseIcon from '@mui/icons-material/Close';\nimport ErrorIcon from '@mui/icons-material/Error';\nimport InfoIcon from '@mui/icons-material/Info';\nimport WarningIcon from '@mui/icons-material/Warning';\nimport Box from '@mui/material/Box/index.js';\nimport Button from '@mui/material/Button/index.js';\nimport CircularProgress from '@mui/material/CircularProgress/index.js';\nimport Collapse from '@mui/material/Collapse/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, useTheme } from '@mui/material/styles/index.js';\nimport type { CSSObject, Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { shadowInk } from '../../../tokens/ink';\nimport { rem, rems, sxRem } from '../../../tokens/relative';\n\nimport type { SonnerItem } from './Sonner.types';\nimport type { SonnerProps } from './Sonner.types';\n\nconst renderToastIcon = (theme: Theme, icon: SonnerProps['icon'], type: SonnerProps['type']) => {\n if (icon) return icon;\n\n switch (type) {\n case 'success':\n return <SuccessIcon sx={{ fontSize: sxRem(20), color: 'success.main' }} />;\n case 'error':\n return <ErrorIcon sx={{ fontSize: sxRem(20), color: 'error.main' }} />;\n case 'warning':\n return <WarningIcon sx={{ fontSize: sxRem(20), color: 'warning.main' }} />;\n case 'info':\n return <InfoIcon sx={{ fontSize: sxRem(20), color: 'info.main' }} />;\n case 'loading':\n return <CircularProgress size={rem(theme, 16)} />;\n default:\n return null;\n }\n};\n\n// Errors and toasts flagged important interrupt the screen reader; the rest wait\n// for the next pause. Computed once instead of duplicating the same condition\n// across the role and aria-live attributes.\nconst resolveToastAnnouncement = (important: boolean, type: SonnerProps['type']) => {\n const interrupts = important || type === 'error';\n\n return {\n role: interrupts ? 'alert' : 'status',\n live: (interrupts ? 'assertive' : 'polite') as 'assertive' | 'polite',\n };\n};\n\nconst buildToastStyles = (\n theme: Theme,\n variant: SonnerProps['variant'],\n visible: boolean,\n): CSSObject => {\n const baseStyles: CSSObject = {\n borderRadius: theme.spacing(1.5),\n border: `1px solid ${theme.palette.divider}`,\n backgroundColor: theme.palette.background.paper,\n boxShadow: theme.shadows[4],\n transition: theme.transitions.create(['all', 'transform', 'opacity'], {\n duration: theme.transitions.duration.short,\n }),\n transform: visible ? 'scale(1)' : 'scale(0.95)',\n opacity: visible ? 1 : 0,\n };\n\n switch (variant) {\n case 'glass':\n return {\n ...baseStyles,\n backgroundColor: alpha(theme.palette.background.paper, 0.1),\n backdropFilter: `blur(${rem(theme, 20)})`,\n border: `1px solid ${alpha(theme.palette.primary.main, 0.2)}`,\n boxShadow: `${rems(theme, 0, 8, 32)} ${shadowInk(theme, 0.1)}`,\n };\n\n case 'minimal':\n return {\n ...baseStyles,\n backgroundColor: theme.palette.background.default,\n border: 'none',\n boxShadow: 'none',\n borderLeft: `${rem(theme, 4)} solid ${theme.palette.primary.main}`,\n borderRadius: 0,\n };\n\n default:\n return baseStyles;\n }\n};\n\n// Title, description and the optional action row. Split out so the toast shell\n// keeps only its own concerns — announcement, styling and dismissal.\nconst ToastContent: React.FC<{\n title?: SonnerProps['title'];\n description?: SonnerProps['description'];\n important: boolean;\n action?: SonnerProps['action'];\n cancel?: SonnerProps['cancel'];\n}> = ({ title, description, important, action, cancel }) => (\n <Box sx={{ flex: 1, minWidth: 0 }}>\n {title && (\n <Typography\n variant=\"body2\"\n sx={{\n fontWeight: important ? 600 : 500,\n color: 'text.primary',\n mb: description ? 0.5 : 0,\n }}\n >\n {title}\n </Typography>\n )}\n\n {description && (\n <Typography variant=\"body2\" sx={{ color: 'text.secondary', fontSize: sxRem(14) }}>\n {description}\n </Typography>\n )}\n\n {(action || cancel) && (\n <Box sx={{ display: 'flex', gap: 1, mt: 1.5 }}>\n {action && (\n <ToastActionButton action={action} buttonVariant=\"contained\" />\n )}\n {cancel && <ToastActionButton action={cancel} buttonVariant=\"outlined\" />}\n </Box>\n )}\n </Box>\n);\n\nconst ToastActionButton: React.FC<{\n action: NonNullable<SonnerProps['action']>;\n buttonVariant: 'contained' | 'outlined';\n}> = ({ action, buttonVariant }) => (\n <Button\n size=\"small\"\n onClick={action.onClick}\n variant={buttonVariant}\n sx={{ fontSize: sxRem(12), py: 0.5, px: 1.5 }}\n >\n {action.label}\n </Button>\n);\n\nexport const SonnerToast: React.FC<SonnerItem & { onDismiss: (id: string) => void }> = ({\n id,\n title,\n description,\n type = 'default',\n variant = 'default',\n closable = true,\n dismissLabel,\n action,\n cancel,\n icon,\n important = false,\n visible,\n onDismiss,\n}) => {\n const theme = useTheme();\n const announcement = resolveToastAnnouncement(important, type);\n\n const handleDismiss = () => {\n onDismiss(id);\n };\n\n return (\n <Collapse in={visible} timeout={200}>\n <Box\n role={announcement.role}\n aria-live={announcement.live}\n aria-atomic=\"true\"\n sx={{\n ...buildToastStyles(theme, variant, visible),\n p: 2,\n mb: 1,\n minWidth: sxRem(356),\n maxWidth: sxRem(400),\n display: 'flex',\n alignItems: 'flex-start',\n gap: 1.5,\n }}\n >\n {renderToastIcon(theme, icon, type)}\n\n <ToastContent\n title={title}\n description={description}\n important={important}\n action={action}\n cancel={cancel}\n />\n\n {closable && (\n <IconButton\n size=\"small\"\n onClick={handleDismiss}\n aria-label={dismissLabel}\n sx={{\n ml: 'auto',\n color: 'text.secondary',\n '&:hover': {\n backgroundColor: 'action.hover',\n },\n }}\n >\n <CloseIcon fontSize=\"small\" />\n </IconButton>\n )}\n </Box>\n </Collapse>\n );\n};\n"],"mappings":"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","names":[]}
@@ -8,9 +8,13 @@ import {
8
8
  import {
9
9
  resolveTestId
10
10
  } from "./chunk-TYJR4GOF.js";
11
+ import {
12
+ rem
13
+ } from "./chunk-YKCAJ2TN.js";
11
14
 
12
15
  // src/components/layout/Box/Box.tsx
13
16
  import MuiBox from "@mui/material/Box/index.js";
17
+ import { useTheme } from "@mui/material/styles/index.js";
14
18
  import * as React from "react";
15
19
  import { jsx } from "react/jsx-runtime";
16
20
  var PX_KEYS = /* @__PURE__ */ new Set([
@@ -24,23 +28,27 @@ var PX_KEYS = /* @__PURE__ */ new Set([
24
28
  "marginLeft",
25
29
  "gap",
26
30
  "borderRadius",
27
- "borderWidth",
28
- "width",
29
- "height"
31
+ "borderWidth"
30
32
  ]);
31
- function layoutToSx(layout) {
33
+ var DESIGN_PX_KEYS = /* @__PURE__ */ new Set(["width", "height"]);
34
+ function lengthOf(theme, key, value) {
35
+ if (DESIGN_PX_KEYS.has(key)) return rem(theme, value);
36
+ return PX_KEYS.has(key) ? `${value}px` : value;
37
+ }
38
+ function layoutToSx(layout, theme) {
32
39
  return Object.fromEntries(
33
40
  Object.entries(layout).map(([key, value]) => [
34
41
  key,
35
- typeof value === "number" && PX_KEYS.has(key) ? `${value}px` : value
42
+ typeof value === "number" ? lengthOf(theme, key, value) : value
36
43
  ])
37
44
  );
38
45
  }
39
46
  var Box = React.forwardRef(
40
47
  ({ children, sx, ...props }, ref) => {
41
48
  const theme = useUiTheme();
49
+ const muiTheme = useTheme();
42
50
  const { layout, rest } = splitBoxProps(props);
43
- const resolved = layoutToSx(resolveBoxLayout(layout, theme));
51
+ const resolved = layoutToSx(resolveBoxLayout(layout, theme), muiTheme);
44
52
  const testId = resolveTestId(layout);
45
53
  const merged = [
46
54
  resolved,
@@ -55,4 +63,4 @@ export {
55
63
  layoutToSx,
56
64
  Box
57
65
  };
58
- //# sourceMappingURL=chunk-GUW5BUK7.js.map
66
+ //# sourceMappingURL=chunk-6WBKOM5K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/layout/Box/Box.tsx"],"sourcesContent":["import MuiBox from '@mui/material/Box/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport type { SxProps, Theme } from '@mui/material/styles/index.js';\nimport * as React from 'react';\n\nimport { resolveBoxLayout, splitBoxProps, type BoxLayout } from './box-layout';\nimport type { BoxProps } from './Box.types';\nimport { resolveTestId } from '../../../platform/test-id';\nimport { useUiTheme } from '../../../provider/use-ui-theme';\nimport { rem } from '../../../tokens/relative';\n\n/**\n * `sx` is not CSS: it reads a bare number on `padding`, `margin` or `gap` as\n * SPACING UNITS, on `borderRadius` as a multiple of `shape.borderRadius`, and a\n * `width` of `1` or less as a fraction. The resolver's numbers are already px,\n * so every one of them is written as a length string — otherwise a `p={2}` box\n * renders 128px of padding on the web and 16dp on native, which is the one\n * thing this component exists to rule out.\n *\n * Spacing, radius and the border are already the host theme's own px (read\n * through `uiThemeFromMui`), so they stay px: through `rem` they would scale\n * twice. `width`/`height` are the caller's design px, so they go through `rem`.\n */\nconst PX_KEYS = new Set<keyof BoxLayout>([\n 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'marginTop', 'marginRight', 'marginBottom', 'marginLeft',\n 'gap', 'borderRadius', 'borderWidth',\n]);\nconst DESIGN_PX_KEYS = new Set<keyof BoxLayout>(['width', 'height']);\n\nfunction lengthOf(theme: Theme, key: keyof BoxLayout, value: number): string | number {\n if (DESIGN_PX_KEYS.has(key)) return rem(theme, value);\n return PX_KEYS.has(key) ? `${value}px` : value;\n}\n\nexport function layoutToSx(layout: BoxLayout, theme: Theme): Record<string, string | number> {\n return Object.fromEntries(\n Object.entries(layout).map(([key, value]) => [\n key,\n typeof value === 'number' ? lengthOf(theme, key as keyof BoxLayout, value) : value,\n ]),\n );\n}\n\n/**\n * The web `Box`: MUI's, with the neutral layout props resolved into `sx` ahead\n * of whatever `sx` the caller adds — so the caller's escape hatch still wins.\n */\nexport const Box = React.forwardRef<HTMLDivElement, BoxProps>(\n ({ children, sx, ...props }, ref) => {\n const theme = useUiTheme();\n const muiTheme = useTheme();\n const { layout, rest } = splitBoxProps(props);\n const resolved = layoutToSx(resolveBoxLayout(layout, theme), muiTheme) as SxProps<Theme>;\n const testId = resolveTestId(layout);\n const merged: SxProps<Theme> = [\n resolved,\n ...(Array.isArray(sx) ? sx : sx === undefined ? [] : [sx]),\n ] as SxProps<Theme>;\n\n return (\n <MuiBox ref={ref} sx={merged} data-testid={testId} {...rest}>\n {children}\n </MuiBox>\n );\n },\n);\n\nBox.displayName = 'Box';\n"],"mappings":";;;;;;;;;;;;;;;AAAA,OAAO,YAAY;AACnB,SAAS,gBAAgB;AAEzB,YAAY,WAAW;AA0DjB;AAtCN,IAAM,UAAU,oBAAI,IAAqB;AAAA,EACvC;AAAA,EAAc;AAAA,EAAgB;AAAA,EAAiB;AAAA,EAC/C;AAAA,EAAa;AAAA,EAAe;AAAA,EAAgB;AAAA,EAC5C;AAAA,EAAO;AAAA,EAAgB;AACzB,CAAC;AACD,IAAM,iBAAiB,oBAAI,IAAqB,CAAC,SAAS,QAAQ,CAAC;AAEnE,SAAS,SAAS,OAAc,KAAsB,OAAgC;AACpF,MAAI,eAAe,IAAI,GAAG,EAAG,QAAO,IAAI,OAAO,KAAK;AACpD,SAAO,QAAQ,IAAI,GAAG,IAAI,GAAG,KAAK,OAAO;AAC3C;AAEO,SAAS,WAAW,QAAmB,OAA+C;AAC3F,SAAO,OAAO;AAAA,IACZ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAAA,MAC3C;AAAA,MACA,OAAO,UAAU,WAAW,SAAS,OAAO,KAAwB,KAAK,IAAI;AAAA,IAC/E,CAAC;AAAA,EACH;AACF;AAMO,IAAM,MAAY;AAAA,EACvB,CAAC,EAAE,UAAU,IAAI,GAAG,MAAM,GAAG,QAAQ;AACnC,UAAM,QAAQ,WAAW;AACzB,UAAM,WAAW,SAAS;AAC1B,UAAM,EAAE,QAAQ,KAAK,IAAI,cAAc,KAAK;AAC5C,UAAM,WAAW,WAAW,iBAAiB,QAAQ,KAAK,GAAG,QAAQ;AACrE,UAAM,SAAS,cAAc,MAAM;AACnC,UAAM,SAAyB;AAAA,MAC7B;AAAA,MACA,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,OAAO,SAAY,CAAC,IAAI,CAAC,EAAE;AAAA,IAC1D;AAEA,WACE,oBAAC,UAAO,KAAU,IAAI,QAAQ,eAAa,QAAS,GAAG,MACpD,UACH;AAAA,EAEJ;AACF;AAEA,IAAI,cAAc;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RangeBounds
3
- } from "./chunk-AJ5SDHX5.js";
3
+ } from "./chunk-JCL7WK4G.js";
4
4
  import {
5
5
  isRangeSet
6
6
  } from "./chunk-GCZJH4XL.js";
@@ -9,13 +9,13 @@ import {
9
9
  } from "./chunk-KHG57NAE.js";
10
10
  import {
11
11
  MultiSelectDropdown
12
- } from "./chunk-NPP44TQG.js";
12
+ } from "./chunk-EYZ6QBTV.js";
13
13
  import {
14
14
  default as default2
15
15
  } from "./chunk-6DPAWXZ3.js";
16
16
  import {
17
17
  Text
18
- } from "./chunk-WTOYEWW6.js";
18
+ } from "./chunk-YBH4SPMM.js";
19
19
  import {
20
20
  fieldHeight
21
21
  } from "./chunk-CGO452DC.js";
@@ -201,4 +201,4 @@ export {
201
201
  fieldClearing,
202
202
  MoreGroup
203
203
  };
204
- //# sourceMappingURL=chunk-7EIOXZWL.js.map
204
+ //# sourceMappingURL=chunk-74P3YX7R.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  iconSx,
3
3
  sizeConfigs
4
- } from "./chunk-6QLPSMTA.js";
4
+ } from "./chunk-XEWMY4ZM.js";
5
5
  import {
6
6
  withDefaults
7
7
  } from "./chunk-HPK33ACY.js";
@@ -59,7 +59,7 @@ var AnimatedIcon = (props) => {
59
59
  return /* @__PURE__ */ jsx(
60
60
  AnimationContainer,
61
61
  {
62
- $size: config.size,
62
+ $size: config.ring,
63
63
  $fontSize: config.glyph,
64
64
  $animationVariant: variant,
65
65
  $duration: duration,
@@ -94,4 +94,4 @@ export {
94
94
  AnimatedIcon,
95
95
  AnimatedIcon_default
96
96
  };
97
- //# sourceMappingURL=chunk-VYSFKR32.js.map
97
+ //# sourceMappingURL=chunk-75CGLX6Q.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/utility/AnimatedIcon/AnimatedIcon.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { withDefaults } from '../../../utils/withDefaults';\n\nimport { iconSx, sizeConfigs } from './AnimatedIcon.styles';\nimport type { IconStyleFlags } from './AnimatedIcon.styles';\nimport type { AnimatedIconProps } from './AnimatedIcon.types';\n\nconst AnimationContainer = styled(Box)<IconStyleFlags>(({ theme, ...flags }) => ({\n ...iconSx(theme, flags),\n}));\n\nconst DEFAULTS = {\n variant: 'none',\n size: 'md',\n duration: 2,\n delay: 0,\n loop: true,\n glow: false,\n glass: false,\n metallic: false,\n gradient: false,\n shadow: 'none',\n ripple: false,\n neon: false,\n holographic: false,\n} satisfies Partial<AnimatedIconProps>;\n\ntype ResolvedProps = AnimatedIconProps & Required<Pick<AnimatedIconProps, keyof typeof DEFAULTS>>;\n\nexport const AnimatedIcon: FC<AnimatedIconProps> = (props) => {\n const {\n children, variant, size, color, duration, delay, loop, glow, glass, glowColor,\n metallic, gradient, shadow, ripple, neon, holographic, className, style,\n 'aria-label': ariaLabel, onClick, tabIndex, onFocus, onBlur, dataTestId,\n } = withDefaults(props, DEFAULTS) as ResolvedProps;\n\n const config = sizeConfigs[size] ?? sizeConfigs.md;\n\n return (\n <AnimationContainer\n $size={config.size}\n $fontSize={config.glyph}\n $animationVariant={variant}\n $duration={duration}\n $delay={delay}\n $loop={loop}\n $glow={glow}\n $glass={glass}\n $glowColor={glowColor}\n $customColor={color}\n $metallic={metallic}\n $gradient={gradient}\n $shadow={shadow}\n $ripple={ripple}\n $neon={neon}\n $holographic={holographic}\n className={className}\n style={style}\n role=\"img\"\n aria-label={ariaLabel || `Animated ${variant} icon`}\n onClick={onClick}\n tabIndex={tabIndex}\n onFocus={onFocus}\n onBlur={onBlur}\n data-testid={dataTestId}\n >\n {children}\n </AnimationContainer>\n );\n};\n\nexport default AnimatedIcon;\n"],"mappings":";;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAS,cAAc;AA0CnB;AAhCJ,IAAM,qBAAqB,OAAO,GAAG,EAAkB,CAAC,EAAE,OAAO,GAAG,MAAM,OAAO;AAAA,EAC/E,GAAG,OAAO,OAAO,KAAK;AACxB,EAAE;AAEF,IAAM,WAAW;AAAA,EACf,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACf;AAIO,IAAM,eAAsC,CAAC,UAAU;AAC5D,QAAM;AAAA,IACJ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAM;AAAA,IAAO;AAAA,IAAU;AAAA,IAAO;AAAA,IAAM;AAAA,IAAM;AAAA,IAAO;AAAA,IACpE;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAM;AAAA,IAAa;AAAA,IAAW;AAAA,IAClE,cAAc;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,EAC/D,IAAI,aAAa,OAAO,QAAQ;AAEhC,QAAM,SAAS,YAAY,IAAI,KAAK,YAAY;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,OAAO;AAAA,MACd,WAAW,OAAO;AAAA,MAClB,mBAAmB;AAAA,MACnB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,MAAK;AAAA,MACL,cAAY,aAAa,YAAY,OAAO;AAAA,MAC5C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAa;AAAA,MAEZ;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,uBAAQ;","names":[]}
1
+ {"version":3,"sources":["../src/components/utility/AnimatedIcon/AnimatedIcon.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { styled } from '@mui/material/styles/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport { withDefaults } from '../../../utils/withDefaults';\n\nimport { iconSx, sizeConfigs } from './AnimatedIcon.styles';\nimport type { IconStyleFlags } from './AnimatedIcon.styles';\nimport type { AnimatedIconProps } from './AnimatedIcon.types';\n\nconst AnimationContainer = styled(Box)<IconStyleFlags>(({ theme, ...flags }) => ({\n ...iconSx(theme, flags),\n}));\n\nconst DEFAULTS = {\n variant: 'none',\n size: 'md',\n duration: 2,\n delay: 0,\n loop: true,\n glow: false,\n glass: false,\n metallic: false,\n gradient: false,\n shadow: 'none',\n ripple: false,\n neon: false,\n holographic: false,\n} satisfies Partial<AnimatedIconProps>;\n\ntype ResolvedProps = AnimatedIconProps & Required<Pick<AnimatedIconProps, keyof typeof DEFAULTS>>;\n\nexport const AnimatedIcon: FC<AnimatedIconProps> = (props) => {\n const {\n children, variant, size, color, duration, delay, loop, glow, glass, glowColor,\n metallic, gradient, shadow, ripple, neon, holographic, className, style,\n 'aria-label': ariaLabel, onClick, tabIndex, onFocus, onBlur, dataTestId,\n } = withDefaults(props, DEFAULTS) as ResolvedProps;\n\n const config = sizeConfigs[size] ?? sizeConfigs.md;\n\n return (\n <AnimationContainer\n $size={config.ring}\n $fontSize={config.glyph}\n $animationVariant={variant}\n $duration={duration}\n $delay={delay}\n $loop={loop}\n $glow={glow}\n $glass={glass}\n $glowColor={glowColor}\n $customColor={color}\n $metallic={metallic}\n $gradient={gradient}\n $shadow={shadow}\n $ripple={ripple}\n $neon={neon}\n $holographic={holographic}\n className={className}\n style={style}\n role=\"img\"\n aria-label={ariaLabel || `Animated ${variant} icon`}\n onClick={onClick}\n tabIndex={tabIndex}\n onFocus={onFocus}\n onBlur={onBlur}\n data-testid={dataTestId}\n >\n {children}\n </AnimationContainer>\n );\n};\n\nexport default AnimatedIcon;\n"],"mappings":";;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAS,cAAc;AA0CnB;AAhCJ,IAAM,qBAAqB,OAAO,GAAG,EAAkB,CAAC,EAAE,OAAO,GAAG,MAAM,OAAO;AAAA,EAC/E,GAAG,OAAO,OAAO,KAAK;AACxB,EAAE;AAEF,IAAM,WAAW;AAAA,EACf,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,aAAa;AACf;AAIO,IAAM,eAAsC,CAAC,UAAU;AAC5D,QAAM;AAAA,IACJ;AAAA,IAAU;AAAA,IAAS;AAAA,IAAM;AAAA,IAAO;AAAA,IAAU;AAAA,IAAO;AAAA,IAAM;AAAA,IAAM;AAAA,IAAO;AAAA,IACpE;AAAA,IAAU;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAQ;AAAA,IAAM;AAAA,IAAa;AAAA,IAAW;AAAA,IAClE,cAAc;AAAA,IAAW;AAAA,IAAS;AAAA,IAAU;AAAA,IAAS;AAAA,IAAQ;AAAA,EAC/D,IAAI,aAAa,OAAO,QAAQ;AAEhC,QAAM,SAAS,YAAY,IAAI,KAAK,YAAY;AAEhD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO,OAAO;AAAA,MACd,WAAW,OAAO;AAAA,MAClB,mBAAmB;AAAA,MACnB,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,cAAc;AAAA,MACd,WAAW;AAAA,MACX,WAAW;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,MACP,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,MAAK;AAAA,MACL,cAAY,aAAa,YAAY,OAAO;AAAA,MAC5C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAa;AAAA,MAEZ;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,uBAAQ;","names":[]}